[SCM] Git repository for pkg-virtuoso branch, master, updated. debian/6.1.4+dfsg1-3-6-gf62b814

José Manuel Santamar?==?UTF-8?Q?ía Lema panfaust at gmail.com
Tue Jan 22 02:42:29 UTC 2013


The following commit has been merged in the master branch:
commit d092ba8b1402745c730eb3c8c79af6b5789ba34d
Author: José Manuel Santamaría Lema <panfaust at gmail.com>
Date:   Tue Jan 22 02:45:48 2013 +0100

    Imported Upstream version 6.1.6+dfsg1

diff --git a/AUTHORS b/AUTHORS
index 5433cae..a250a0f 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,5 +1,5 @@
 #
-#  $Id: AUTHORS,v 1.1.1.1 2006/04/11 17:56:09 source Exp $
+#  $Id$
 #
 #  List of Authors/Contributors
 #
diff --git a/COPYING b/COPYING
index d60c31a..d159169 100644
--- a/COPYING
+++ b/COPYING
@@ -1,12 +1,12 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
 
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
-			    Preamble
+                            Preamble
 
   The licenses for most software are designed to take away your
 freedom to share and change it.  By contrast, the GNU General Public
@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users.  This
 General Public License applies to most of the Free Software
 Foundation's software and to any other program whose authors commit to
 using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
+the GNU Lesser General Public License instead.)  You can apply it to
 your programs, too.
 
   When we speak of free software, we are referring to freedom, not
@@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
 
   The precise terms and conditions for copying, distribution and
 modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
+
+                    GNU GENERAL PUBLIC LICENSE
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
   0. This License applies to any program or other work which contains
@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
     License.  (Exception: if the Program itself is interactive but
     does not normally print such an announcement, your work based on
     the Program is not required to print an announcement.)
-
+
 These requirements apply to the modified work as a whole.  If
 identifiable sections of that work are not derived from the Program,
 and can be reasonably considered independent and separate works in
@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
 access to copy the source code from the same place counts as
 distribution of the source code, even though third parties are not
 compelled to copy the source along with the object code.
-
+
   4. You may not copy, modify, sublicense, or distribute the Program
 except as expressly provided under this License.  Any attempt
 otherwise to copy, modify, sublicense or distribute the Program is
@@ -225,7 +225,7 @@ impose that choice.
 
 This section is intended to make thoroughly clear what is believed to
 be a consequence of the rest of this License.
-
+
   8. If the distribution and/or use of the Program is restricted in
 certain countries either by patents or by copyrighted interfaces, the
 original copyright holder who places the Program under this License
@@ -255,7 +255,7 @@ make exceptions for this.  Our decision will be guided by the two goals
 of preserving the free status of all derivatives of our free software and
 of promoting the sharing and reuse of software generally.
 
-			    NO WARRANTY
+                            NO WARRANTY
 
   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
@@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGES.
 
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
 
   If you develop a new program, and you want it to be of the greatest
 possible use to the public, the best way to achieve this is to make it
@@ -303,17 +303,16 @@ the "copyright" line and a pointer to where the full notice is found.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 Also add information on how to contact you by electronic and paper mail.
 
 If the program is interactive, make it output a short notice like this
 when it starts in an interactive mode:
 
-    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision version 69, Copyright (C) year name of author
     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
     This is free software, and you are welcome to redistribute it
     under certain conditions; type `show c' for details.
@@ -336,5 +335,5 @@ necessary.  Here is a sample; alter the names:
 This General Public License does not permit incorporating your program into
 proprietary programs.  If your program is a subroutine library, you may
 consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
+library.  If this is what you want to do, use the GNU Lesser General
 Public License instead of this License.
diff --git a/CREDITS b/CREDITS
index 5eff8e3..7561519 100644
--- a/CREDITS
+++ b/CREDITS
@@ -1,12 +1,12 @@
 #
-#  $Id: CREDITS,v 1.8.2.6 2010/02/03 15:08:59 source Exp $
+#  $Id$
 #
 #  CREDITS
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2010 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 
 Included Functionality
diff --git a/ChangeLog b/ChangeLog
index e516b4e..38c08ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8130 +1,17753 @@
-2011-10-28 23:28  source
+2012-08-01  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Updated version to 6.1.4 for final release
+	* Fixed issue with Bison 2.6 code generation
 
-2011-10-28 23:22  source
+	* Updated Changelog
 
-	* Enabled check for bad index due to XML fragment
+	* Updated NEWS
 
-2011-10-28 23:21  source
+	* Fixed files for distribution
 
-	* Added information about upgrading from previous 6.1.x to 6.1.4
+2012-07-30  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-10-28 21:46  source
+	* Updated version number to 6.1.6 for final release
 
-	* Fixed prototype
+	* Updated ChangeLog
 
-2011-10-28 21:41  source
+	* Updated NEWS
 
-	* Fixed datetime fraction
+2012-07-27  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-10-28 21:10  source
+	* Fixed use http_value
 
-	* Rebuild drivers
+	* Updated version to 6.1.6-rc3
 
-2011-10-28 16:09  source
+	* Merged conductor VAD
+	 - Fixed priority flag
+	 - Fixed ACLs
 
-	* Fixed disable strict void var checking as /fct sometimes generates
-	  undefined vars
+	* Fixed wrong place for flags in argument list
 
-2011-10-28 16:00  source
+	* Fixed use webid verifier module
 
-	* Added support for setting syslog facility
+2012-07-25  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-10-28 15:56  source
+	* Fixed bad acl file creation
 
-	* Fixed call auth check only when needed
+	* Updated version of vad package
 
-2011-10-28 15:55  source
+	* Added missing user param
 
-	* Fixed flags for ods
+	* Fixed use position to get correct entry
 
-2011-10-28 13:16  source
+2012-07-24  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Added common function for testing extensions for rdfxml
+	* Updated version to 6.1.6-rc2
 
-2011-10-28 13:14  source
+	* Fixed resource name encoding problem
 
-	* Fixed encoding issues
+	* Merged DET_S3.sql
+	 - Fixed resource server side encryption problem
+	 - Fixed file permissions (after file update)
 
-2011-10-26 15:38  source
+	* Merged cutter tool
+	 - Added new -KP command-line option
+	 - Added new -BE command-line option
+	 - Fixed ISQL normalizations
+	 - Fixed compiler warnings
 
-	* Added new UI for conditionals like = < > ranges and IN
-	* Added initial UI for geo based conditionals
-	* Added support for proper permalink
-	* Added Twitter, Facebook and Google+ share buttons to footer
-	* Added version info to footer
+	* Updated version numbers
 
-2011-10-26 15:22  source
+	* Fixed typos
 
-	* Added AddThis share buttons
+	* Merged Briefcase VAD
+	 - Added refresh function
+	 - Fixed resource server side encryption problem
 
-2011-10-26 09:34  source
+	* Fixed role binding can be one to many
 
-	* Fixed Compiled for line in usage
-	* Fixed compiler warning
+	* Added loading for rdb2rdf vad
 
-2011-10-26 00:21  source
+	* Fixed initialize ot_rds
 
-	* Updated documentation
+	* Fixed IN operator
+	  Optimization by ssg_print_builtin_expre so that it does not complete
+	  RDF boxes (for IRIs only at right side).
 
-2011-10-26 00:00  source
+	* Fixed disabled accounts can still be used in set_user_id
 
-	* Fixed run check init on local
+	* Fixed small issues for VOS release
 
-2011-10-25 23:56  source
+	* Added initial support for rdb2rdf VAD
 
-	* Fixed package uninstall
+2012-07-23  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-10-25 23:54  source
+	* Updated documentation
 
-	* Added async rdf extraction
+	* Fixed file permission
 
-2011-10-25 23:36  source
+	* Fixed date format
 
-	* Added opl:mentions and opl:NamedEntity class to OpenLink Attribution
+	* Added optimizations to JSON parser
 
-2011-10-25 23:31  source
+	* Added BIF get_plaintext_row
 
-	* Added missing location support
+	* Fixed reset both pairs
 
-2011-10-25 23:28  source
+2012-07-20  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Added finger print from twitter entry
-	* Fixed minor issues
+	* Added debug code for sponger
 
-2011-10-25 23:25  source
+	* Merged ODS Framework VAD
+	 - Added initial API documentation
+	 - Fixed advanced acl settings for sparql or services auth
 
-	* Added support for Google+ comments
+	* Merged ODS Calendar VAD
+	 - Added initial API documentation
 
-2011-10-25 23:20  source
+	* Merged ODS Bookmark VAD
+	 - Added initial API documentation
+	 - Added support for WebDAV DET
 
-	* Fixed when dropping a graph, also check if there is a quad map for it
-	* Fixed move all cols in pk rdf view sel
-	* Fixed handling of syncml functionality
-	* Fixed labels
+	* Added initial data for doxify
 
-2011-10-25 19:36  source
+	* Added initial data for doxify
 
-	* Added new implementation of search_excerpt that can handle both
-	  ANSI/UTF8 and Wide strings
+	* Merged DBpedia VAD fixes
+	 - Usse foaf:isPrimaryTopicOf for dbpedia 3.8 dataset
+	 - Fixed use proper encoding for wikipedia link
 
-2011-10-25 10:54  source
+	* Fixed Base URI of DirectMapping R2RML into a configurable param
 
-	* Fixed problems re-creating quad map
+	* Fixed permissions for ' -,acl' files
 
-2011-10-21 12:03  source
+	* Fixed indentation
 
-	* Fixed drop stmt gr
+	* Fixed ETag calculation
 
-2011-10-21 11:53  source
+2012-07-19  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Fixed bad conversion of utf8 in rdf/xml
+	* Fixed R2RML PK format
 
-2011-10-19 15:22  source
+2012-07-18  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Fixed dtp check
+	* Added WebDAV DET folder type
 
-2011-10-19 15:18  source
+	* Fixed issue editing mounted resources
 
-	* Fixed reset bitmap flag as previous insert might have set it to true
+	* Fixed COPYRIGHT to use current address of FSF
 
-2011-10-19 15:14  source
+	* Updated version to 6.1.6-rc1
 
-	* Fixed missing cast
+	* Added openSUSE layout
 
-2011-10-18 12:45  source
+	* Fixed buffer overflow when using wide chars
 
-	* Fixed if one column cannot fit into available space, then instead
-	  of guessing how much space is needed we calculate space for all
-	  columns which cannot fit
+	* Fixed potential buffer overwrite
 
-2011-10-18 12:41  source
+	* Fixed compiler warning
 
-	* Fixed error adding inherited roles as they can overlap
+	* Fixed memset should use sizeof struct, not sizeof pointer to struct
 
-2011-10-18 09:15  source
+2012-07-17  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Updated default settings file
+	* Merged Framework VAD
+	 - Added advanced acl settings for sparql or services authentication
+	 - Fixed ACL UI
+	 - Fixed UTF-8 problem
 
-2011-10-17 15:50  source
+	* Merged Briefcase VAD
+	 - Added ACL for IMAP DET folder
+	 - Fixed problem with editing mounted sources
+	 - Fixed host and port in IMAP server address
+	 - Fixed ACL UI
+	 - Fixed ' -,acl' files
 
-	* Fixed issue building with Mono
+	* Fixed use absolute path to prevent looking for local part
 
-2011-10-17 14:06  source
+	* Added advanced ACL settings for sparql or services authentication
 
-	* Fixed log info about row state
+	* Added webid protected endpoints template
 
-2011-10-17 09:55  source
+2012-07-16  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Fixed labels
+	* Fixed indentation
 
-2011-10-17 09:48  source
+	* Fixed return HTML body
 
-	* Fixed issue with SPASQL and ADONET3 named parameters
-	* Fixed ADO.Net Provider failure retrieving RDF datetime literal values
-	* Removed duplicate functions
+	* Merged S3 DET fixes
+	 - Fixed ACL rules update
+	 - Fixed property list function
+	 - Fixed bad owner in some DET resources
+	 - Fixed problem with editing mounted resources
 
-2011-10-14 17:02  source
+	* Fixed removed BOM
 
-	* Fixed issue with rdfview generation
+	* Fixed http_ses_arg is supposed to return ws_session
 
-2011-10-14 12:54  source
+	* Added missing stringdate
 
-	* Fixed if BeginTransaction is called with an Unspecified isolation
-	  level, use a default of ReadCommitted
+	* Fixed datetime conversion
 
-2011-10-14 12:47  source
+2012-07-12  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Fixed recompile all qr's cached on cli connection when dropping
-	  a group or creating new graph group
+	* Removed test for @rel, @rev or @property from application/xhtml+xml
 
-2011-10-14 10:33  source
+2012-07-04  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Fixed labels
+	* Merged Framework VAD
+	 - Fixed remove session when acl is altered
+	 - Fixed check if user exists
 
-2011-10-14 00:32  source
+	* Merged Briefcase VAD
+	 - Fixed bad owner in some DET resources
+	 - Fixed properties list function
+	 - Updated S3 DET folder
 
-	* Fixed missing Diagnostic
+	* Fixed ACL
 
-2011-10-13 22:14  source
+2012-07-03  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Rebuild driver
+	* Added alias SSLPublicKey
 
-2011-10-13 22:07  source
+	* Added support for SSL Chain Certificates
 
-	* Upgraded driver to Sesame 2.5.1
+	* Added error reporting if query compilation fails
 
-2011-10-13 18:36  source
+2012-07-02  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Added new Google+ cartridge
-	* Added new Jigsaw cartridge
-	* Added gr:Brand information to Ebay cartridge
-	* Added money class similar to GoodRelations prices for Crunchbase
-	* Fixed handling of HTTPS Groupon URIs
-	* Fixed do not immediately index in normal mode
-	* Fixed eBay URL-schemes
-	* Fixed MIME type for JSON-LD
-	* Fixed documentation
-	* Removed CRLF
+	* Fixed XHTML+RDFa validation
 
-2011-10-13 18:33  source
+	* Added support for rel="nofollow" on external links
 
-	* Added new tabs to Linked Data
-	* Added PSH tabs
-	* Fixed labels and texts
+2012-06-30  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-10-13 18:32  source
+	* Added support for new S3
 
-	* Fixed issue displayong characters in isql.vspx
+2012-06-29  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-10-13 18:29  source
+	* Fixed GPF on TTLP with flag 4096 and named bnodes
 
-	* Fixed uninitialized var
+	* Merged ODS Framework VAD
+	 - Update xml creation function
+	 - Fixed ACLs
+	 - Fixed bad cast
+	 - Fixed typos
 
-2011-10-13 18:28  source
+	* Fixed datatypes and missing return types from functions
 
-	* Added support for ms-author-va : sparql header
-	* Fixed use new virtuoso_ini_item_value
-	* Fixed set id of current user
-	* Fixed issue compiling stored procedure
+	* Fixed datatypes and missing return types from functions
 
-2011-10-13 17:08  source
+	* Fixed typo in label
 
-	* Added support for VirtuosoDateTime, VirtuosoDateTimeOffset and
-	  VirtuosoTimeSpan
-	* Fixed issue with dropped connection after multiple bad login attempts
-	* Fixed dispose methods should never throw an exception
-	* Fixed drop statement in Virtuoso when it is disposed in the provider
+	* Fixed datatype
 
-2011-10-13 16:52  source
+2012-06-27  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Fixed copyright year to 2011
+	* Fixed run authentication function as dba
 
-2011-10-13 16:50  source
+	* Fixed ACL
 
-	* Fixed buggy comparison when installing VAD packages
+	* Added missing check for theads or locks
 
-2011-10-13 16:48  source
+	* Added deadlock handler
 
-	* Added stats for time waiting on a mutex
+2012-06-26  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-10-13 16:29  source
+	* Fixed issues loading microdata with namespace decls
 
-	* Removed duplicate stored procedures
+2012-06-25  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-10-13 14:39  source
+	* Fixed missing txn mtx when resetting flag
 
-	* Fixed use openssl md5 where available
+	* Fixed compiler issue
 
-2011-10-13 14:24  source
+	* Added support for nested relative xml:base-s
 
-	* Fixed check for min async queue size
+	* Merged briefcase VAD
+	 - Added default values for cartridges
+	 - Fixed 'Box Net' typo
+	 - Fixed folder typo
+	 - Fixed SkyDrive authentication button name
+	 - Fixed resource uploade
+	 - Fixed issues with Box DET
 
-2011-10-13 14:21  source
+2012-06-23  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Added new setting RdfFreeTextRulesSize
+	* Added support for maintaining SSL Chain certificates
 
-2011-10-13 14:08  source
+	* Added support for exporting keys
 
-	* Fixed execute on all partitions at same time
+2012-06-22  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-10-13 14:06  source
+	* Added support for loading extra SSL Chain certificates
 
-	* Fixed undefined Inference rule error when rule created from graph
-	  created from SPARUL insert statement
-	* Fixed issue loading inf rules on cluster
+	* Fixed flag must be set inside txn mutex
 
-2011-10-13 14:00  source
+2012-06-21  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Added support to sql_bif_excerpt for using wide string
+	* Added http_limited() function
+	This restricts certain slow pages from claiming all threads
 
-2011-10-13 13:59  source
+	* Added support for protocol switching e.g. using websockets
 
-	* Fixed memleak
+2012-06-20  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-10-13 13:58  source
+	* Merged Framework VAD
+	 - Added access page and API keys for Box
+	 - Added Help links
+	 - Added expiration check box
+	 - Added support for private graphs
+	 - Fixed deadlock handler
+	 - Fixed inst list
+	 - Fixed input pars
+	 - Removed debug info
 
-	* Fixed issue with fulltext indexing
+	* Merged Briefcase VAD
+	 - Added support for Box
+	 - Added box.net folder definition
+	 - Added support for private graphs
+	 - Fixed permission problem for some DETs
 
-2011-10-13 13:56  source
+	* Fixed missing grant
 
-	* Fixed issue with bif:contains
+	* Added support for Skydrive and Box DET
 
-2011-10-13 13:54  source
+2012-06-19  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Fixed deadlock on attempt of qr_recompile during the run of
-	  SPARQL-to_SQL front-end
+	* Fixed do not signal eror when dummy cartridge is installed
 
-2011-10-13 13:28  source
+	* Fixed compare rdfbox with IN values using box value
 
-	* Fixed http recording
+	* Fixed handling of literals with language tag
+	  Literals with language are now generated as RDF boxes even for SQL
+	  valmode
 
-2011-10-13 13:27  source
+	* Added initial support for SPARQL 1.1 BINDINGS clause
 
-	* Fixed crash when array is bad
+2012-06-18  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-10-13 13:26  source
+	* Added RDFa and MTML+Microdata autodetection
 
-	* Fixed function name in argument
+	* Merged tutorial VAD
+	 - Added note for sparql-ssl endpoint
+	 - Fixed regex expression
+	 - Fixed RDF DET is in server
+	 - Fixed make clean
 
-2011-10-13 13:11  source
+	* Added encoding field
 
-	* Fixed SSL verification context
+	* Added sponger ACL
 
-2011-10-13 13:00  source
+2012-06-17  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Added inproved support for inference and RDF views to "non-default"
-	  storages
-	* Added option to register pos-processing callbacks to DESCRIBE
+	* Fixed issue with regexp_replace
 
-2011-10-13 12:54  source
+	* Fixed check len before calling second memcpy
 
-	* Added new BIF functions for handling dictionaries of triples
+	* Fixed compiler warnings
 
-2011-10-13 12:15  source
+	* Fixed valgrind warnings
 
-	* Added iri range size setting
+2012-06-15  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-10-13 12:14  source
+	* Fixed check Pls for non-empty string value
 
-	* Added new "mode" flag to TURTLE parser, so it adds source line
-	  numbers (and source text labels) to blank nodes of the parsed
-	  document
+	* Fixed memory access after free
 
-2011-10-13 12:12  source
+	* Fixed memory leak
 
-	* Fixed check for DAV
+	* Fixed mime for images
 
-2011-10-13 11:09  source
+	* Updated images
 
-	* Added dbs id hash to log
+2012-06-14  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-10-13 11:05  source
+	* Fixed memory leak
 
-	* Fixed compiler warning
+2012-06-13  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-10-13 11:04  source
+	* Use long iris by default
 
-	* Fixed private key protection
+	* Fixed check len before calling memcpy
 
-2011-10-13 11:03  source
+	* Fixed typo
 
-	* Fixed checks
+	* Added support for per datasource default refresh interval
 
-2011-10-13 11:03  source
+	* Fixed check key col is used in sampling before guessing about it
 
-	* Fixed inlist to mean equality, not a lt of the one_of_these call
-	  comparison
+	* Fixed memory leak
 
-2011-10-13 11:01  source
+	* Merge remote-tracking branch 'origin/develop/6' into develop/6
 
-	* Fixed label
+	* Merged iSPARQL vad
+	 - Added control for raw URIs in sparql result set view
+	 - Added persistence in permalinks
 
-2011-10-13 11:00  source
+2012-06-07  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Fixed use cartridge if such is defined
+	* Updated documentation
 
-2011-10-13 10:59  source
+	* Updated images
 
-	* Fixed moved assignment before loop, as sqlerror can lead to a
-	  double free
+	* Remember options on /sparql endpoints upon recreation
 
-2011-10-13 10:58  source
+	* Added support for tab-separated-values (TSV) format in sparql
 
-	* Fixed issue with foreignkey handling inside rdfview
+	* Added backtrace in assert
 
-2011-09-28 17:04  source
+2012-06-06  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Rewrite HTML generation for /sparql endpoint
+	* Fixed portability issue on freebsd
 
-2011-09-28 17:01  source
+	* Fixed issue with make clean on freebsd
 
-	* Added new function virtuoso_ini_item_value which can read settings
-	  from the virtuoso.ini, without having to open/parse it for every
-	  request
+2012-06-05  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-09-27 09:42  source
+	* Added support for text/turtle
 
-	* Fixed sql codegen for combination of SERVICE {} that binds a
-	  variable and OPTIONAL {} that uses it later, and the binding in
-	  SERVICE is the only non-nullable binding of that variable
+	* Added support for more patterns
 
-2011-09-27 09:40  source
+	* Merged Framework VAD
+	 - Added support for SkyDrive
+	 - Added JSON output option for certgen
+	 - Updated Google API access
 
-	* Fixed do not cache samples indefinitely
+	* Merged Briefcase VAD
+	 - Added support for SkyDrive
+	 - Added mail notification for webid sharing
+	 - Fixed file name encoding
+	 - Fixed sponge feature
+	 - Fixed download problem
 
-2011-09-23 19:22  source
+	* Merged dbpedia vad
+	 - Fixed check if modified
+	 - Fixed reset timezone
 
-	* Added initial support for filtering on value ranges
-	* Added new export formats
-	* Fixed MIME type for JSON-LD
-	* Fixed use lang for properties labels
-	* Fixed pretty-print query
-	* Fixed check for owl:Class
-	* Fixed label prefs and metadata
-	* Fixed footer
+	* Fixed if scalar is rdf_box, print as string
 
-2011-09-23 19:12  source
+	* Fixed free path at the end of processing the request
 
-	* Added extra mime types to accept header
+	* Added generation of url rewrite rules
 
-2011-09-23 15:20  source
+	* Added expiration_function to http options map
 
-	* Fixed overflow in bif_date_diff
+	* Fixed json-ld encoding
 
-2011-09-21 15:23  source
+	* Fixed string type support
 
-	* FIxed do not make UNAMEs in SQL texts immortal
+2012-06-02  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-09-21 15:22  source
+	* Fixed skip _IDN cols
 
-	* Fixed must save IN list as it will be reset to 0 inside
+	* Added support for rdf import of gzipped content
 
-2011-09-21 13:27  source
+	* Merged dbpedia vad
+	 - Added support for If-Modified-Since
+	 - Added registry setting dbp_last_modification to get SP returning last
+	  modified date
+	 - Fixed use owl graph for properties
 
-	* Fixed use len of the N leading chars represented as UTF8
+2012-06-01  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-09-21 13:23  source
+	* Removed temp files
 
-	* Added support for DV_BIN
+	* Small cleanups
 
-2011-09-20 12:03  source
+2012-05-30  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Fixed issues detecting images
+	* Fixed issue with gdrive/dropbox
 
-2011-09-20 11:58  source
+	* Fixed issue with cyclic references
 
-	* Fixed handling of sparql endpoint in Pivot permalink generation
+	* Added new predicates to load as JSO triples
 
-2011-09-19 13:37  source
+	* Improved error diagnostics for ALTER QUAD STORAGE <> { DROP }
 
-	* Fixed do not check byte-order on crash recovery replay
+	* Fixed ignore _IDN columns
 
-2011-09-15 16:02  source
+	* Fixed recursion limit in order to save runing out of stackspace
 
-	* Updated version to 6.1.4-rc1
+	* Add xml comment around ill-formed property xml elements
 
-2011-09-15 10:42  source
+	* Fixed ODBC driver
+	 - Fixed clear errors on connection handle
+	 - Fixed use provided password from connect handle
+	 - Fixed debug statements
 
-	* Fixed mem leaks
+	* Added aliases for ssl key/cert
 
-2011-09-14 19:06  source
+	* Fixed access rights and status for SPARUL_LOAD_SERVICE_DATA
 
-	* Fixed uninitialized variable
+	* Fixed grants for SPARQL LOAD SERVICE <...> DATA
 
-2011-09-14 15:38  source
+	* Fixed service SPARQL codegen with zero retvals
 
-	* Fixed memory leaks
+	* Added procedure view for SPARQL BINDINDS
 
-2011-09-14 15:38  source
+	* Merged SPARQL fixes
+	 - Added support for self-description
+	 - Fixed SPARQL LOAD SERVICE <...> DATA
 
-	* Fixed valgrind warning when using DEBUG
+	* Merged SPARQL fixes
+	 - Added support for BINDINGS
+	 - Fixed support for SERVICE
+	  (with new SPARQL LOAD SERVICE <...> DATA statement)
 
-2011-09-13 14:50  source
+2012-05-23  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Fixed memory leaks
+	* Added option to download ca key
 
-2011-09-12 21:05  source
+	* Fixed jump to individual grants if user is edited
 
-	* Fixed GPF on optimization of DELETE/INSERT/MODIFY due to lists
-	  of known vars that were not deALIASed properly
+	* Merged Briefcase VAD
+	 - Added ACL for GDrive and Dropbox
+	 - Added Dropbox DET
 
-2011-09-12 20:08  source
+2012-05-21  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Added log when built-in procedure has duplicate in the db
+	* Fixed missing end of LSB comment
 
-2011-09-12 20:04  source
+	* Fixed copy col opts else tables with xml cols cannot be altered
 
-	* Fixed removed duplicate procedures
+	* Fixed code should come after declarations
 
-2011-09-12 20:01  source
+	* Added Dropbox API keys
 
-	* Fixed crash
+	* Added new function bif_jso_triples_del
 
-2011-09-12 12:30  source
+	* Fixed compiler warnings
 
-	* Fixed mime type of JSON-ld to application/ld+json
+	* Fixes for date
+	 - Adding days to date results in date
+	 - Adding seconds to date results in datetime
+	 - Fixed debugging
 
-2011-09-12 11:02  source
+	* Added virtrdf:dialect static uname
 
-	* Updated documentation
+	* Added new mime type application/n-triples
 
-2011-09-12 10:52  source
+	* Fixed compiler warnings
 
-	* Fixed use available non-expiring access token
-	* Fixed drilldown through Posts (including posted links) to show
-	  associated comments
-	* Fixed removed oplcb:competitor property from its oplcb:competition
-	  wrapper and dropped latter
-	* Fixed use dbpedia:author property when handling books
-	* Fixed use string session with serialized XML for large csv files
+	* Changed NULL is treated like 0 element array for bif_get_keyword
 
-2011-09-12 10:47  source
+	* Fixed compiler warning
 
-	* Added initial support for PHP 5.3
+	* Added new BIF functions
 
-2011-09-12 10:36  source
+	* Fixed compiler warnings
 
-	* Fixed indentation
+	* Added better MALLOC_DEBUG handling of box_iri_id
 
-2011-09-12 10:28  source
+	* Added new function hash_list_keys
 
-	* Fixed use shorter names
+	* Added new aliases
 
-2011-09-12 10:21  source
+2012-05-16  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Fixed WebID demo pages
+	* Fixed disble repl user login via odbc or dav
 
-2011-09-09 14:09  source
+	* Fixed datatype should be iri_id8
 
-	* Updated documentation
+2012-05-14  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-09-09 13:30  source
+	* Added support for Google Drive
 
-	* Fixed warning about uninitialized data
+	* Fixed typo in ACL filters
 
-2011-09-09 13:21  source
+	* Fixed small issue in testsuite
 
-	* Added option for explicit graph
-	* Fixed SyncML Folder Types in drop-down list
-	* Fixed labels
+	* Added option to wait for last request in an aq first
 
-2011-09-09 13:20  source
+2012-05-13  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Fixed do not remove trailing cr/lf
+	* Fixed compiler issue on Solaris
 
-2011-09-09 13:19  source
+2012-05-11  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Fixed issue when dirname is a blob
+	* Fixed text index is not possible on views at this time
 
-2011-09-09 13:12  source
+	* Added function RDFA_LOAD_DICT
 
-	* Added dbpedia:author property when handling books
-	* Fixed ACL rule */* allows everybody
-	* Fixed Facebook auth
-	* Fixed use string session with serialized XML for large csv files
-	* Fixed map OpenLink Zillow ontology to geo:lat/long
-	* Fixed map oplog:likes_XXX property to like:likes
+	* Fixed bug in regeneration of permalink when RDFMini view changed
 
-2011-09-09 13:11  source
+	* Merged fixes to MAP code
+	 - Upgraded MAP support for latest OpenLayers/OpenStreetmap
+	 - Disabled dysfunctional NASA blue marble tiles
 
-	* Added support for switchable favicon to Sponger front page
+	* Upgraded to OpenLayers v2.12-rc2
 
-2011-09-09 12:51  source
+	* Fixed typo
 
-	* Fixed issues with linked data upload
+	* Fixed graph name to /DAV/
 
-2011-09-09 11:16  source
+	* Fixed removed missing define
 
-	* Added HTTP status codes in SPARQL graph store protocol
+	* Merged SPARQL fixes
+	 - Added propagation of LIMIT restrictions
+	 - Fixed issues with SERVICE
+	 - Fixed issues with UNIONs
 
-2011-09-09 11:13  source
+	* Added support for Sparql Service Description
 
-	* Fixed issue with SPARUL LOAD INTO command creating duplicate graphs
+	* Merged Briefcase fixes
+	 - Added support for Google Drive
 
-2011-09-09 00:10  source
+	* Fixed check lang box
 
-	* Fixed issue when pragma list was empty
-	* Fixed issues generating Pivot Permalink
-	* Fixed whitespace and stray > char from Raw formats line
+	* Fixed issue with semaphores on Mac OS X 10.7
+	  When signalled, make sure we do not miss another signal, as signals
+	  on a condvar w/o wating thread is a NOOP
 
-2011-09-08 18:54  source
+	* Fixed det resources for google drive
 
-	* Fixed handling of GROUP BY and ORDER BY using expressions
+	* Fixed formatting
 
-2011-09-08 15:29  source
+2012-05-10  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Fixed re-definition of a quad map that is a single user of a quad
-	  map format
+	* Merged Framework fixes
+	 - Added Google API
+	 - Fixed Resource /dataspace/doc/services/user not found error
+	 - Fixed interop
+	 - Fixed annotation bug - not unique primary key
 
-2011-09-08 15:28  source
+	* Merged Calendar fixes
+	 - Fixed WebID write access
+	 - Fixed redirect
 
-	* Fixed codegeneration issue with awk 4.0
+	* Merged Briefcase fixes
+	 - Added Google Drive DET folder type create
 
-2011-09-08 12:51  source
+	* Merged Addressbook fixes
+	 - Fixed redirect
 
-	* Fixed UI for sponger options
+	* Added support for CORS in web services
 
-2011-09-08 12:19  source
+	* Added missing prototypes
 
-	* Fixed issue with sparql LOAD from file
+	* Fixed compiler warning and small code cleanup
 
-2011-09-07 22:44  source
+2012-05-04  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Fixed crash running FILTER query containing IN clause with only
-	  one item in it
-	* Fixed issue with ORDER BY expression optimization
+	* Merged iSPARQL fixes
+	 - Added alternate links in HEAD
+	 - Added support to remember rdf display/tab
 
-2011-09-05 15:27  source
+	* Added support to remember previous tab
 
-	* Added test for empty graph result
-	* Added margins for RDF mini browser container
-	* Added check for existence of sparql_cxml to enable display of CXML
-	  result link
-	* Replaced default AJAX throbber with new OAT Notify
-	* Fixed undef variable causing dereference control malfunction
-	* Fixed layout bug causing the dereference mode control hiding behind
-	  a block
+	* Fixed do not use DBA as soap user as it takes ages to recompile PL
 
-2011-09-05 15:26  source
+	* Added files to ignore
 
-	* Added support for replacing existing content on OAT.Notify.send
+	* Added extra checks for db slices
 
-2011-08-30 15:02  source
+	* Added dsn name to explain output
 
-	* Fixed issue with code generation using gawk 4
+	* Fixed set pn_query to nil to avoid using free mem
 
-2011-08-29 10:37  source
+2012-05-03  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Added Google Place cartridge
-	* Added Seatgeek cartridge
-	* Added API for selective sponging
-	* Added Google+ button
-	* Added menu item linking direct to 'How it Works'
-	* Fixed bug when offline_access=1 not present in OpenGraph cartridge
-	* Fixed access token requests now request permission to read user and
-	  friend checkins
-	* Fixed complete rdf boxes when looking for label
-	* Fixed lang use for comment
-	* Fixed missing block op
-	* Fixed minor issues
+	* Updated version of facet browser
 
-2011-08-29 10:27  source
+	* Added graph to qrcode
 
-	* Added support for anytime query (timeout) on virtuoso
-	* Added CSS for pushbar notify
-	* Fixed bug with updated maxrow value not being passed
-	* Fixed dereferencing preference dropdown disappearing when paging
-	  between results
-	* Fixed cosmetics
+	* Updated version of conductor
 
-2011-08-29 10:23  source
+	* Remove old view before creating newer one
 
-	* Added support for oplzilw:latitude and longitude
-	* Fixed rdftabs notification to use PUSHBAR
-	* Fixed problem in geo coordinates detection
+2012-05-02  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-08-29 10:22  source
+	* Fixed issue with incomplete box
 
-	* Added new option to rdfmini to facilitate placing of view control
-	  outside its container
+	* Fixed version number
 
-2011-08-29 10:21  source
+	* Added macro t_revlist_to_array_or_null
 
-	* Added new notification widget types PUSHBAR and BAR
-	* Added target class for notify content for skinning
+	* Fixed escape chars in CSV output
 
-2011-08-29 10:19  source
+2012-05-01  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Added support for HEAD requests in AJAX
+	* Fixed use internal call to set proper user for exec
 
-2011-08-29 10:18  source
+2012-04-27  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Added limit to number of open statements
+	* Removed rdf det as it is already embedded in server itself
 
-2011-08-26 19:34  source
+	* Added missing account in check
 
-	* Fixed if we have a wide string and want typed string we cast to utf-8
+	* Added mp_set_nreverse and t_set_nreverse
 
-2011-08-26 18:04  source
+	* Fixed multi-column transitivity
 
-	* Fixed /sparql/ endpoint to produce more accurate diagnostics for
-	  failed INSERT DATA statements
+	* Fixed re-use of "similar" constants of different types
 
-2011-08-26 18:03  source
+2012-04-26  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Fixed timeout should be specified in miliseconds according to docs
+	* Fixed check for MAC_OS_X_VERSION_10_7
 
-2011-08-26 17:59  source
+	* Fixed typo
 
-	* Added limit to number of open statements
+	* Fixed graph level security
 
-2011-08-26 17:57  source
+	* Added indication to log when backup is done
 
-	* Added mem debug support for sqlp_box_id_upcase
+2012-04-25  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-08-26 17:55  source
+	* Added printing of soap struct tags
 
-	* Fixed memory leak
+2012-04-24  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-08-26 10:58  source
+	* Fixed use proper semping rest endpoint
 
-	* Fixed crash when un-expected array is passed as argument
+	* Updated IMAP DET options and actions
 
-2011-08-26 10:57  source
+	* Fixed negation to use SPARQL 1.1 FILTER NOT EXISTS
 
-	* Fixed loading member functions of UDT that refer to XML namespace
-	  declarations and other items loaded after the loading of the UTD
-	  declaration
+	* Fixed clear variables after report
 
-2011-08-26 10:54  source
+	* Added support for FROM SUBQUERY { .. } in quad map
 
-	* Fixed issue with trim('test', null)
+	* Added support for subqueries inside QUAP MAP { .. } groups
 
-2011-08-21 12:54  source
+	* Fixed issue with _UDBC_ always set
 
-	* Added initial code for timeout handling
-	* Added param to control the anchor mode, persisted in permalinks.
-	* Added anchor mode to pass the URL to /describe
-	* Added missing URI encoding in some generated links/queries
-	* Fixed "aliased" qtxt URL param
-	* Fixed re-enabled anchor mode to control what to do when dereferencing links.
-	* Fixed try to set values of nonexisting UI objects in /view
-	* Fixed visibility of footer in /view
+2012-04-20  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-08-21 12:52  source
+	* Added support for new name for cartridges vad
 
-	* Fixed display of RDF store stats
+	* Fixed error reporting
 
-2011-08-21 12:51  source
+	* Fixed if no one is verified to match, return NULL
 
-	* Fixed set default anchorMode back to 0
+	* Updated CKeditor to version 3.6.3
 
-2011-08-21 12:50  source
+	* Fixed popup forms UI
 
-	* Fixed footer background
+2012-04-19  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-08-21 12:50  source
+	* Updated version
 
-	* Added MSG MAP_NOTHING_TO_SHOW to rdftabs Map widget
-	* Added MAP_NOTHING_TO_SHOW to rdfmini by switching to default viewer
-	* Added references in map popups
-	* Added function to detect nodes that only contain coordinates
-	* Fixed bugs in getContent link generation
-	* Fixed removed attempt to resolve item references throught recursion
-	* Fixed drawMarker to extract properties from referencing node when node contains only
-	  coordinate data
-	* Fixed structure of rdftabs marker popups
-	* Fixed make properties list scrollable instead of whole window
+	* Fixed labels
 
-2011-08-21 12:34  source
+	* Added check for policy_manager vad
 
-	* Rebuild drivers
+	* Merged Polls fixes
+	 - Added ACL filters
+	 - Fixed IE UI
+	 - Fixed icons
 
-2011-08-21 12:33  source
+	* Merged Framework fixes
+	 - Added ACL filters
+	 - Moved common functions to framework
+	 - Fixed front page
+	 - Fixed rest interface page
+	 - Fixed semping protocol
 
-	* Removed deprecated functions and files
+	* Merged Feedmanager fixes
+	 - Added ACL filters
+	 - Fixed icons
 
-2011-08-18 09:16  source
+	* Merged Calendar fixes
+	 - Added ACL filters
+	 - Fixed daylight savings time on import to calendar
+	 - Fixed issue with IE UI
+	 - Fixed minor issue with CalDav
+	 - Fixed icons
 
-	* Fixed connection leak in connection pool during long checkpoints
+	* Merged Briefcase fixes
+	 - Added ACL filters
+	 - Fixed icons
 
-2011-08-17 17:46  source
+	* Merged Bookmark fixes
+	 - Added ACL filters
+	 - Fixed icons
 
-	* Fixed memory leak in statement when using connectionpooling
+	* Merged Addressbook fixes
+	 - Added ACL filters
+	 - Fixed minor problem with CardDav
+	 - Fixed icons
 
-2011-08-17 17:36  source
+	* Fixed r2rml
+	 - Fixed error handling
+	 - Fixed syntax
+	 - Fixed validation to report errors with line numbers
+	 - Fixed import of R2RML turtle files to provide debugging
+	  information about blank nodes
 
-	* Rebuild drivers
+	* Added references view mode
 
-2011-08-17 17:20  source
+	* Fixed VAD checks
+	 - Added proper check for vad versions
+	 - Fixed show r2rml tab only when rdb2rdf vad is installed
 
-	* Rebuild driver
+	* Disable repl user
 
-2011-08-17 17:20  source
+	* Fixed rdf repl security
 
-	* Updated hibernate support to work with Hibernate 3.6.6-Final
+	* Fixed issue compiling with malloc debug
 
-2011-08-15 15:30  source
+	* Added format for MSACCESS with special column types
 
-	* Fixed bad merge
+2012-04-18  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-08-14 14:48  source
+	* Fixed swapped pk and fk column
 
-	* Fixed check for NULL IRI before printing
+	* Fixed error message
 
-2011-08-09 11:19  source
+	* Rebuild driver for Sesame version 2.6.5
 
-	* Fixed indentation and whitespace
+	* Fixed do not search in rdf views when checking for graphs
 
-2011-08-09 11:17  source
+	* Upgraded driver to use Sesame 2.5.6
 
-	* Fixed missing namespave declarations
+	* Updated vad version
 
-2011-08-09 11:11  source
+	* Merged FCT fixes
+	 - Added NOT IN conditional
+	 - Fixed problem in conditional literals with LANG
 
-	* Fixed minor issue
+	* Changed Graph column label
 
-2011-08-09 10:58  source
+	* Added start new facet option in description of classes
 
-	* Added SimpleGeo cartridge
-	* Added Eventful cartridge
-	* Fixed use standard properties for Latitude and Longitude
-	* Fixed use /about to sponge URL
+	* Fixed debug code
 
-2011-08-03 11:36  source
+	* Fixed link for dset
 
-	* Added show photo in WebID login/registrer
-	* Fixed typo in messages
-	* Fixed facebook accounts
+	* Fixed link for dset
 
-2011-08-03 11:34  source
+	* Added Graph column to the output of text matches
 
-	* Added missing files
+	* Fixed problem counting ancestry with nested property, etc. pred.
 
-2011-08-01 14:19  source
+	* Fixed check for vector
 
-	* Added Twitter cartridge using OAuth and Twitter REST api
-	* Added XRD cartridge
-	* Added Google Profile cartridge
-	* Fixed use OG community page as starting point for facebook OpenGraph
-	  cartridge
-	* Fixed minor issues
+	* Added making class contraint
+	 - When ?S is rdfs:Class or owl:Class, or <something> a ?S
 
-2011-08-01 14:17  source
+2012-04-17  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Added check for XML
-	* Fixed update must do delta and remove all entries which are not
-	  from this source
+	* Fixed rdf replication security
 
-2011-08-01 14:15  source
+	* Fixed issue mixing declarations and code
 
-	* Fixed SIOC data
+	* Added support for SOUNDEX and DIFFERENCE
 
-2011-08-01 14:13  source
+2012-04-16  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Updated CKeditor to version 3.6.1
+	* Added cfg_parse_size_with_modifier to parse stripe size
 
-2011-08-01 14:12  source
+	* Added advanced ACL filters
 
-	* Added RDF links in header and head
+	* Added X -options of foaf response
 
-2011-08-01 14:12  source
+	* Fixed digest split function
 
-	* FIxed Delicious publish
+	* Fixed issue with 'Edit Properties'
 
-2011-08-01 14:09  source
+	* Fixed image path to /ods
 
-	* Fixed undefined function
+	* Removed deprecated images
 
-2011-08-01 14:08  source
+2012-04-12  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Added user/mail availablitiy action
-	* Added mail verification service
-	* Fixed WebID login and registration
-	* Fixed Facebook accounts
-	* Fixed order tabs and labels
-	* Fixed SIOC RDF links API functions
+	* Fixed st_cli_n_http_threads should be int32
 
-2011-08-01 14:05  source
+	* Fixed issue with unknown BIF msg in SPARQL compiler error
 
-	* Added ACL eXecute flag
-	* Fixed ACl issue with editing .acl file
-	* Fixed API functions
+	* Fixed issue with content type if already set by rewrite rule
 
-2011-08-01 14:04  source
+2012-04-10  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Fixed encryption and signing
-	* Fixed security properties
-	* Fixed mail parameters
+	* Added meetup pattern
 
-2011-08-01 13:18  source
+	* Fixed indentation
 
-	* Fixed throw away old content before starting execute
+	* Fixed internal error on spar_selid_pop()
 
-2011-07-29 10:04  source
+	* Merged Framework fixes
+	 - Added link tags to user's pages
+	 - Fixed private graphs init
+	 - Fixed 'Enable Automatic WebID Login' value
+	 - Fixed format arg
+	 - Fixed void dset
+	 - Fixed clean bad application creation
 
-	* Fixed debug code
+	* Merged Calendar fixes
+	 - Added CalDAV import
+	 - Fixed source labels in imports
+	 - Fixed CalDAV DET imports
+	 - Updated CalDAV Import
 
-2011-07-29 10:03  source
+	* Merged Addressbook fixes
+	 -  Fixed CardDAV DET imports
+	 -  Added CalDAV Import
 
-	* Fixed must redirect on OPTIONS
+2012-04-09  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-07-29 10:03  source
+	* Fixed issue with xsd:dateTime in SPARQL results
 
-	* Fixed calculate lenght before inserting the row
+2012-04-08  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-07-29 10:00  source
+	* Fixed issue with join on Solaris
 
-	* Fixed unnamed GPF
+	* Added extra debugging code to SPARQL engine
 
-2011-07-20 15:56  source
+2012-04-06  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Added check for %nn
+	* FIxed issue with box_length
 
-2011-07-20 09:50  source
+	* Fixed issue with graph level security check in SPARQL-FED subquery
 
-	* Added Idp
-	* Added Domain check
-	* Added WebID
+	* Fixed check for MS SQL Server
 
-2011-07-20 08:58  source
+2012-04-05  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Added Hyperpublic cartridge
+	* Fixed keep ssl flag when https redir to https
 
-2011-07-20 08:56  source
+	* Fixed file not found error when virtuoso.ini changed
 
-	* Added configuration option for page title
+2012-04-03  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-07-20 08:51  source
+	* Added virtuoso.ini setting to configure page compress mode
 
-	* Added webid_check option to control execution flag
+	* Fixed syntax metadata backups of TTL format
 
-2011-07-20 08:51  source
+	* Fixed possible stack overflow on long UNIONs
 
-	* Fixed problems with big tokens
+	* Fixed get string instead of iri_id on cluster
 
-2011-07-20 08:29  source
+	* Fixed issue with transitive query
 
-	* Added support for dumping v5 in v6 log format
+	* Fixed GPF on DBpedia query
+	    select distinct ?ci fn:lang(?la)
+	    where {
+	      ?si dbpedia-owl:country dbpedia:Germany.
+	    } limit 10
 
-2011-07-20 00:01  source
+	* Fixed safe cloning of equivalence classes
 
-	* Reverted merge from wrong branch
+	* Fixed issues with RDF View, bif:contains and option(?score)
 
-2011-07-19 23:58  source
+	* Fixed allocation of nodes during tree duplication
 
-	* Fixed DV_RDF serialization
+	* Fixed compiler warnings
 
-2011-07-19 23:43  source
+2012-03-31  VOS Maintainer  <vos.admin at openlinksw.com>
 
-	* Fixed small issue for single engine
+	* Merged Calendar fixes
+	 - Added CalDAV import
+	 - Added CalDAV, CardDAV DETs and RESTful CRUD
+	 - Fixed CalDAV to Subscription options
 
-2011-07-19 23:40  source
+	* Merged Framework fixes
+	 - Added foreign key for certificates table
+	 - Added html rule for /mv/data
+	 - Fixed bad certificate related info
 
-	* Added new aggregate DB.DBA.GROUP_DIGEST which makes it possible
-	  to return part of big output of DB.DBA.GROUP_CONCAT without
-	  running out of row length limits
+2012-03-29  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-07-19 23:38  source
+	* Added support for slash proxy IRIs
 
-	* Added support to call XPath/XQuery functions in SPARQL
-	* Added bif functions xpath_funcall and xpath_apply
+	* Fixed iframes and scripts
 
-2011-07-19 23:34  source
+	* Added check if mail actually exists
 
-	* Fixed moved macros isdatechar, isfloatchar and inplainURIchar
+	* Fixed check for null
 
-2011-07-19 23:33  source
+	* Exclude certain sites from iframe
 
-	* Added option 'exec_as_get' to http map
-	* Added support for SPARQL Graph CRUD
+	* Removed debug statements
 
-2011-07-19 23:30  source
+	* Added Wolfram|Alpha cartridge
 
-	* Added function isfinitenumeric()
+	* Added support for sponging of ftp urls
 
-2011-07-19 23:30  source
+	* Fixed using fix_identified_case
 
-	* Fixed memleak
+	* Fixed minor issues
 
-2011-07-19 23:29  source
+	* Fixed LinkedIn cartridge
+	 - Added support for sponging job postings and company profiles
+	 - Added accept_lang option to override locale sensitive
+	  output in job postings
 
-	* Fixed compiler warnings
+	* Fixed version control properties
 
-2011-07-19 23:27  source
+	* Merged Framework fixes
+	 - Added di: scheme
+	 - Added check for WebID validation
+	 - Fixed quotes on sparql vars
 
-	* Added optimized codegen for built-in aggregate functions
+	* Fixed CalDAV, CardDAV DETs and RESTful CRUD
 
-2011-07-19 23:26  source
+	* Added di: scheme
 
-	* Fixed DV_RDF serializationo
-	* Added upgrade procedure for RDF_QUAD
+	* Fixed CalDAV, CardDAV DETs and RESTful CRUD
 
-2011-07-19 19:36  source
+	* Fixed digest mode should not report it accepts basic
 
-	* Added generic function to describe objects
-	* Fixed check to see if ssl is in effect
-	* Fixed use proper case as sparql is always using quoted identifiers
+	* Fixed issue joining two federated queries to the same host
 
-2011-07-19 19:27  source
+	* Fixed debug print of wide strings
 
-	* Fixed bug in endpoint setting persistence
-	* Fixed visibility of pager in navigator
-	* Improved recovery from some proxy-AJAX-related errors
+2012-03-27  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-07-19 19:25  source
+	* Added REPORT method
 
-	* Changed handling of anchors in map bubbles
+	* Fixed issue with SPARQL-FED code generation
 
-2011-07-15 11:17  source
+	* Added support for INF, -INF and NaN in SPARQL
 
-	* Added missing opl:provided by property
+2012-03-23  VOS Maintainer  <vos.admin at openlinksw.com>
 
-2011-07-15 11:16  source
+	* Set version to 6.1.6-dev to indicate development cycle
 
-	* Added option to set site logo in banner text
-	* Added new serialization format examples
+	* Use .gitignore instead of .cvsignore
 
-2011-07-15 11:15  source
+	* Added check to prevent out of range seek
 
-	* Added Seevl cartridge
-	* Added Guardian cartridge
+	* Fixed initialization issue
 
-2011-07-15 11:15  source
+	* Added support for long nvarchar
 
-	* Fixed minor issue
+	* Fixed check to see if stmt returned a resultset
 
-2011-07-15 11:07  source
+	* Fixed DDL logging
 
-	* Added new export formats
+	* Fixed missing unbox else check is always true
 
-2011-07-15 11:06  source
+	* Fixed wrong pointer indirection calling itc_bust_this_trx
 
-	* Added generation of CV from LinkedIn using the oplcv ontology
+	* Fixed number of issues with _UDBC_
+	 - Fixed issue with transitive subqueries
+	 - Fixed external vars in table subqueries of scalar subqueries
+	 - Fixed print of builtin expressions with multipart alias name
+	 - Fixed issue with double "AS" for lang in resultset
+	 - Fixed bad code for clear graph <xxxx>
 
-2011-07-15 11:02  source
+	* Fixed issue with RDF_DICT_OF_TRIPLES_TO_THREE_COLS
 
-	* Added OpenLink CV/Resume ontology
+	* Fixed escaping of weird IRIs in RDF/XML output
 
-2011-07-14 19:14  source
+	* Fixed some checks of XPATH from MALLOC_DEBUG to XTREE_DEBUG
 
-	* Fixed use the actual length of the string in cli_utf82narrow not max len
+	* Fixed moved some checks of XPATH from DEBUG to XPATH_DEBUG
 
-2011-07-13 19:09  source
+	* Fixed use of dt encapsulation
 
-	* Added check for cert
+2012-03-15 17:16  source
 
-2011-07-12 14:46  source
+	* Updated version to 6.1.5 for final release
 
-	* Fixed extra debugging
+2012-03-15 16:41  source
 
-2011-07-08 13:44  source
+	* Fixed labels
 
-	* Merged first part of V7
+2012-03-15 16:41  source
 
-2011-07-05 21:09  source
+	* Fixed minor issues to xbrl
 
-	* Fixed GPF as stmt not available at this point
+2012-03-15 16:35  source
 
-2011-07-04 09:59  source
+	* Fixed minor issues
 
-	* Fixed XML escape data
-	* Fixed issues with mail addresses and encrypted mails
+2012-03-15 14:44  source
 
-2011-07-04 09:57  source
+	* Fixed column name back to __ask_retval for odbc/jdbc connections
 
-	* Added header and head links for IRIs
+2012-03-15 13:57  source
 
-2011-07-04 09:56  source
+	* Moved define to more logical place
 
-	* Added header and head procedures for IRI URLs
-	* Added new ODS rewrite rules
-	* Fixed get CA from connection if not set
-	* Fixed ACL using patterns
-	* Fixed default cert login
-	* FIxed take relevant webid
-	* Fixed Offers
+2012-03-15 13:41  source
 
-2011-07-04 09:54  source
+	* Fixed set default catalog name to %
 
-	* Added LinkedIn cartridge
-	* Added linkedIn access token
-	* Added Zoopla cartridge
-	* Added new pattern for Eventbrite
-	* Added support for acct scheme
-	* Adjustments to OpenGraph RDF mappings and additions to OpenGraph ontology
-	* Fixed Yelp cartridge
-	* Fixed minor issuesdded additional checks for RDFa
-	* Fixed use origin as a base, not graph
-	* Fixed protection against bad datetime offsets returned by OpenGraph
+2012-03-15 13:06  source
 
-2011-07-04 09:33  source
+	* Fixed enabled tests to run on jdk4
 
-	* Added loading NS prefixes into IRIDB through virtuoso defaults page
+2012-03-15 12:56  source
 
-2011-06-29 10:10  source
+	* Removed old _JAVA_ pragma
 
-	* Fixed cannot perform file_stat as it runs on a different node
+2012-03-15 12:00  source
 
-2011-06-27 19:45  source
+	* Fixed unhandled rdf type
 
-	* Added nsprefix and rulelist pages
+2012-03-15 11:48  source
 
-2011-06-27 11:24  source
+	* Rebuild drivers
 
-	* Fixed do not perform keyset update on non pk ref
+2012-03-15 11:17  source
 
-2011-06-24 19:05  source
+	* Fixed leak with statement handles
 
-	* Added initial support for HTML+Microformat, Microformat/JSON and
-	  JSON-LD output formats
+2012-03-15 11:08  source
 
-2011-06-24 11:25  source
+	* Added stub isgeometry so point data can be inserted normally
 
-	* Added result type detection
-	* Fixed SVG capability detection
+2012-03-15 10:32  source
 
-2011-06-24 11:25  source
+	* Fixed check for odbc/jdbc connection
 
-	* Fixed .isparql serialization in FF4 and IE9
+2012-03-14 20:46  source
 
-2011-06-24 11:24  source
+	* Added missing files to distribution
 
-	* Fixed JSON output for native parsers
+2012-03-14 19:47  source
 
-2011-06-24 11:22  source
+	* Fixed meta information on ANY type
 
-	* Added prefix for http://www.w3.org/2002/07/owl# (owl:)
-	* Added prefix for http://www.openlinksw.com/schemas/rdfs/ (oplrdfs:)
-	* Fixed prefix handling in IRIDB, rdfstore and rdftabs
+2012-03-14 14:12  source
 
-2011-06-24 11:20  source
+	* Updated documentation
 
-	* Fixed MSIE detection in opacity anim
+2012-03-14 14:07  source
 
-2011-06-24 11:20  source
+	* Fixed allow http client session to be put on hold and leave thread free
 
-	* Fixed handling of decoding url values with + instead of spaces
+2012-03-14 13:59  source
 
-2011-06-22 13:30  source
+	* Updated version to 6.1.5-rc3
 
-	* Fixed no not crash when key is empty
+2012-03-14 13:58  source
 
-2011-06-22 13:29  source
+	* Updated SSL support
 
-	* Fixed check for NULL pred
+2012-03-14 12:50  source
 
-2011-06-21 18:11  source
+	* Fixed compiler warning
 
-	* Fixed make sure all required dfe are placed before making a decision
+2012-03-14 12:46  source
 
-2011-06-20 19:27  source
+	* Fixed set default value for CheckExtentFreePages to 1
 
-	* Fixed replay as we need to take into account non txn mode
+2012-03-14 11:40  source
 
-2011-06-20 19:25  source
+	* Added option to accept pragma
 
-	* Fixed memory leak
+2012-03-14 11:39  source
 
-2011-06-20 14:15  source
+	* Added entries for entity types and scores
 
-	* Fixed cast to uint32 instead of long as this is a serialized type
+2012-03-14 11:17  source
 
-2011-06-17 15:21  source
+	* Fixed version of vad package
 
-	* Fixed when sas, O is considered to be an iri
+2012-03-14 11:10  source
 
-2011-06-17 15:20  source
+	* Fixed use new xlat cb
 
-	* Fixed if result is empty but input is same variable as input then
-	  pesumable we have distinct and have to send input
+2012-03-14 11:06  source
 
-2011-06-17 00:11  source
+	* Fixed small issue
 
-	* Fixed placement of ifdef
+2012-03-14 11:05  source
 
-2011-06-16 22:53  source
+	* Fixed issue awol:content on stackoverflow.com
 
-	* Added check for errors on bitmap insert
+2012-03-14 00:46  source
 
-2011-06-13 14:25  source
+	* Added new SPARQL DESCRIBE modes OBJCBD and SCBD
 
-	* Fixed if too many cursors, do not crash server, just kill txn
+2012-03-14 00:43  source
 
-2011-06-13 09:31  source
+	* Fixed issue with Oracle double which should be decimal
 
-	* Fixed "delayed" filters like
-	  ?x p1 ?o1 ; p2 ?o2 . optional { ... } . filter (?o1 = ?o2)
+2012-03-14 00:42  source
 
-2011-06-13 09:29  source
+	* Fixed call to xlat_cbk to detect rdf:type etc
 
-	* Added function to backup index to log
+2012-03-13 12:07  source
 
-2011-06-11 16:41  source
+	* Fixed metadata for S, P and O
 
-	* Added support for SQLQUERY syntax in declaration of RDF views
-	* Fixed SQL codegen bug in SPARQL queries of R2RML rewriter
+2012-03-13 12:05  source
 
-2011-06-11 16:39  source
+	* Fixed set default output:format to _UDBC_ for ODBC/JDBC/.NET apps
 
-	* Fixed issue with variable argument list
+2012-03-13 11:51  source
 
-2011-06-11 16:28  source
+	* Fixed typo in subcode
 
-	* Fixed fill can get out of bounds
+2012-03-13 11:50  source
 
-2011-06-10 22:45  source
+	* Fixed when row is deleted, place the single bm entry over it
 
-	* Fixed disable debug code from standard binary
+2012-03-13 11:48  source
 
-2011-06-10 22:44  source
+	* Fixed issue when codegen takes dtp from 1st param and no ssl exists yet
 
-	* Fixed skip rules which perform http redirect when doing a POST
+2012-03-13 11:46  source
 
-2011-06-10 21:39  source
+	* Fixed issue with union
 
-	* Fixed check if instance has trx and it has thread, else we do not
-	  run
+2012-03-12 22:50  source
 
-2011-06-09 17:41  source
+	* Updated version to 6.1.5-rc2
 
-	* Fixed problem with non-existing item and get API function
-	* Fixed myA JS error
+2012-03-12 22:45  source
 
-2011-06-09 17:39  source
+	* Added additional tests
+	* Fixed building/checking vads on VOS
 
-	* Added tooltop for 'Language' property
-	* Fixed 'My Offers' typo
-	* Fixex get CA from connection if not set
-	* Fixed myA JS error
-	* Fixed error message
-	* Fixed check name when uload private key
+2012-03-12 17:43  source
 
-2011-06-09 17:26  source
+	* Fixed ignore log files
 
-	* Fixed crash when trying to unbox non-boxed item from tree
+2012-03-12 17:41  source
 
-2011-06-09 15:32  source
+	* Fixed issue with Bookmark app that caused user to be logged out
 
-	* Added sponger splash page
+2012-03-12 14:28  source
 
-2011-06-09 15:29  source
+	* Fixed issue with semaphores on Mac OS X 10.7
 
-	* Added sponger splash page
-	* Fixed minor issues
+2012-03-12 14:25  source
 
-2011-06-09 13:27  source
+	* Fixed wrong function name
 
-	* Added option to enable/disable ?P statistics
+2012-03-12 14:24  source
 
-2011-06-09 13:25  source
+	* FIxed typo in function name
 
-	* FIxed added option to enable/disable ?P statistics
+2012-03-12 10:28  source
 
-2011-06-09 13:24  source
+	* Added SET EXPLAIN ON and SET SPARQL_TRANSLATE ON options
 
-	* Fixed memory leak
+2012-03-12 10:28  source
 
-2011-06-07 18:53  source
+	* Fixed issue with fd in binary mode
 
-	* Fixed compiler warning
+2012-03-12 10:18  source
 
-2011-06-07 18:52  source
+	* Added alias _UDBC_ for _JAVA_
 
-	* Added new functions
+2012-03-12 10:17  source
 
-2011-06-07 18:51  source
+	* Fixed issue if dfe is not initialized yet and used inside gdb
 
-	* Fixed if cannot ensure sas then return proper error not null
+2012-03-11 13:30  source
 
-2011-06-07 12:30  source
+	* Updated vad version
 
-	* Fixed print ins options
+2012-03-11 13:26  source
 
-2011-06-07 12:29  source
+	* Fixed use of foaf_check_ssl function
 
-	* Fixed issue with int32 stats
+2012-03-09 17:33  source
 
-2011-06-06 08:06  source
+	* Fixed issue with uninitialized variables
 
-	* Added function to create certificate from CSR
+2012-03-09 15:07  source
 
-2011-06-06 08:02  source
+	* Fixed do not output NULL triples
 
-	* Fixed memory leaks
+2012-03-09 14:42  source
 
-2011-06-03 15:13  source
+	* Added README.GIT
+	* Added discontinuation notice to README.CVS
 
-	* Fixed memory leak
+2012-03-09 14:41  source
 
-2011-06-02 12:32  source
+	* Added information for Mac OS X 10.7
 
-	* Fixed bad URL in typeahead.css
-	* Fixed issue with external ccount creation
-	* Fixed WebDAV selection
+2012-03-09 13:42  source
 
-2011-06-02 12:25  source
+	* Fixed compiler warnings
 
-	* Fixed iCalendar parser
+2012-03-08 16:22  source
 
-2011-06-02 12:24  source
+	* Fixed CRLF
 
-	* Added daylight saving time
-	* Fixed issue with validation
-	* Fixed WebDAV selection
+2012-03-08 15:52  source
 
-2011-06-02 12:22  source
+	* Fixed list of files to distribute for Windows build
 
-	* Fixed WebDAV selection
+2012-03-08 13:52  source
 
-2011-06-02 12:22  source
+	* Fixed use portable method for escaping symbol for gawk 3 and 4
 
-	* Fixed issue with validation
-	* Fixed WebDAV selection
+2012-03-08 13:30  source
 
-2011-06-02 12:21  source
+	* Updated vad_version
 
-	* Fixed issue with validation
-	* Fixed WebDAV selection
-	* Fixed uninstall some views
+2012-03-08 13:25  source
 
-2011-06-02 12:20  source
+	* Updated version to 6.1.5-rc1
 
-	* Added user's rewrite rules
-	* Added WebID verify service
+2012-03-08 12:14  source
 
-2011-06-02 12:08  source
+	* Added CalDAV
+	* Added ACLs
+	* Added ACL editing for DETs
+	* Added new procedures for WebDAV
+	* Updated private graphs data
+	* Updated to latest SIOC functions
+	* Fixed data generated by SIOC
+	* Fixed 'Create and New' button
+	* Fixed drag and drop
+	* Fixed authentication functions
+	* Fixed issue registering CalDAV links
+	* Fixed check for nulls
+	* Fixed issues with validate
+	* Fixed SyncML owner resources
+	* Fixed issue importing file without timezone info
+	* Fixed CSS load
+	* Fixed clear button in settings
+	* Fixed issue with JSON
+	* Fixed error reporting
 
-	* Added ProgrammableWeb cartridge
+2012-03-08 12:08  source
 
-2011-06-02 12:08  source
+	* Added CardDAV
+	* Added VCARD Property Grouping
+	* Added new procedures for WebDAV
+	* Added ACLs
+	* Added ACL editing for DETs
+	* Added folder selecton for SyncML
+	* Updated private graphs data
+	* Updated ACL items list
+	* Updated latest SIOC functions
+	* Fixed issues importing contacts
+	* Fixed user's image on profile page
+	* Fixed issue with  syncML
+	* Fixed issue with validate
+	* Fixed syncML owner resources
+	* Fixed issue with progress bar after loading contacts
+	* Fixed CSS loading
+	* Fixed clear button in settings
+	* Fixed CSS in footer
+	* Fixed error reporting
 
-	* Fixed minor issue
+2012-03-08 12:03  source
 
-2011-06-02 11:18  source
+	* Fixed issues with patching versions automatically
+	* Fixed wrong ctype
+	* Fixed bad url
+	* Fixed all columns in the table def
 
-	* Fixed check vdb col for nullable
+2012-03-08 12:00  source
 
-2011-06-01 09:20  source
+	* Added 'create' to store in RDF
+	* Added ACLs
+	* Added ACL editing for DETs
+	* Added option to import rdf data from file
+	* Added folder types for CalDAV and CardDAV
+	* Added rule for briefcase folder IRIs
+	* Updated private graphs data
+	* Fixed about dialog
+	* Fixed issue with edit file content
+	* Fixed issue with resource not found on delete
+	* Fixed rdf_sink folder creation
+	* Fixed typos
+	* Fixed DET folder sharing
+	* Fixed syntax checks
+	* Fixed IMAP DET folder params
+	* Fixed IMAP and webmail DETs support
+	* Fixed syncML folders
+	* Fixed versions view
+	* Fixed RDF upload
+	* Fixed linked upload folder
+	* Fixed CSS load
+	* Fixed issue after rename
+	* Fixed issue with group settings
+	* Fixed clear button in settings
+	* Fixed issue with JSON
+	* Fixed error reporting
 
-	* Fixed signal error instead of GPF in normal build
+2012-03-08 11:52  source
+
+	* Updated ACL items list
+	* Updated private graphs data
+	* Updated to latest SIOC functions
+	* Fixed folder creation with bookmark update
+	* Fixed syntax checks
+	* Fixed issue with text index
+	* Fixed pre tag show
+	* Fixed validate bug
+	* Fixed issue with progress bar after loading bookmarks
+	* Fixed CSS loading
+	* Fixed clear button in settings
+	* Fixed issue with JSON
+	* Fixed error reporting
 
-2011-05-31 15:34  source
+2012-03-08 11:48  source
 
-	* Fixed set rehash factor if expecting large number of inserts in hash
+	* Updated private graphs data
+	* Fixed about dialog
+	* Fixed generated SIOC data
+	* Fixed validate bug
+	* Fixed issue with progress bar after loading contacts
+	* Fixed CSS loading
+	* Fixed clear button in settings
+	* Fixed issue with JSON
+	* Fixed error reporting
 
-2011-05-31 15:33  source
+2012-03-08 11:46  source
 
-	* Added function for CSR generation
+	* Fixed whitespace
 
-2011-05-31 15:32  source
+2012-03-08 11:46  source
 
-	* Fixed use max number to avoid buffer overrun
+	* Fixed minor issues
 
-2011-05-30 20:19  source
+2012-03-08 11:44  source
 
-	* Fixed translation from nodeiD://xxx to _:xxx
+	* Updated private graphs data
+	* Fixed about dialog
+	* Fixed generated SIOC data
+	* Fixed validate bug
+	* Fixed clear button in settings
+	* Fixed footer CSS
+	* Fixed error reporting
 
-2011-05-30 20:17  source
+2012-03-08 11:41  source
 
-	* Fixed issue with cost based optimizer
+	* Fixed html encoding in title
 
-2011-05-24 18:57  source
+2012-03-08 11:19  source
 
-	* Fixed when iri exceeds 2KB limit and flag is enabled then shorten
-	  the iri, instead of rejecting it
+	* Fixed issue with vad_version
 
-2011-05-24 18:56  source
+2012-03-08 11:18  source
 
-	* Fixed loop so it only uses local files
+	* Added files to ignore
 
-2011-05-23 13:44  source
+2012-03-08 10:49  source
 
-	* Added initial support for SPARQL 1.1. build-in IF and COALISCE
+	* Fixed attachemt problem with rights
+	* Fixed upstream URL
+	* Fixed ordering of acl triggers
+	* Fixed issue with blobs in triggers
 
-2011-05-23 11:24  source
+2012-03-08 10:46  source
 
-	* Fixed minor issue
+	* Fixed copyright year
 
-2011-05-23 11:23  source
+2012-03-08 10:39  source
 
-	* Fixed LastFM cartridge
+	* Fixed use monospace font for textedit area
 
-2011-05-23 09:02  source
+2012-03-07 23:45  source
 
-	* Added support for CREATE LITERAL CLASS "format string" ...
+	* Added function xenc_pubkey_ssh_export
 
-2011-05-20 16:20  source
+2012-03-07 21:14  source
 
-	* Fixed WebID selection
+	* Fixed encoding problems
 
-2011-05-20 16:20  source
+2012-03-07 16:16  source
 
-	* Fixed use certificate to verify the signature as an option
-	* Fixed use ldap&webid login
+	* Added function xenc_pubkey_DER_export
 
-2011-05-20 16:11  source
+2012-03-07 15:28  source
 
-	* Fixed add sponger ACL when installed
+	* Updated documentation
 
-2011-05-20 12:01  source
+2012-03-07 14:57  source
 
-	* Fixed comments
+	* Added missing file
 
-2011-05-20 12:00  source
+2012-03-07 13:16  source
 
-	* Added support for WebID idp
-	* Fixed WebID selection
+	* Fixed use vad_version when generating vad packages in VOS
 
-2011-05-20 11:51  source
+2012-03-07 11:37  source
 
-	* Added csv bulk loader script
+	* Fixed indentation and whitespace
 
-2011-05-20 11:46  source
+2012-03-07 11:29  source
 
-	* Fixed CSV import failed importing NULL values
+	* Fixed typo in json-ld output
 
-2011-05-20 11:44  source
+2012-03-07 11:28  source
 
-	* Fixed dav_enable should not be touched for dba account
+	* Fixed debug lines
 
-2011-05-19 18:32  source
+2012-03-07 11:27  source
 
-	* Fixed NULL value is not an error in lax mode
+	* Added empty RDF_TRIPLES_BATCH_COMPLETE
 
-2011-05-19 18:22  source
+2012-03-07 11:23  source
 
-	* Fixed wrong arg
+	* Fixed compiler warnings on trigraphs in generated code
 
-2011-05-19 13:34  source
+2012-03-07 11:16  source
 
-	* Added ldap schema support to WebID
+	* Fixed initialization on db creation
 
-2011-05-19 13:15  source
+2012-03-07 10:56  source
 
-	* Added version and timeout argument
+	* Fixed windows build
 
-2011-05-19 13:11  source
+2012-03-07 10:47  source
 
-	* Fixed duplicate symbol
+	* Added new Visual Studio 11 project files containing rules for both
+	  32bit and 64bit builds
+	* Removed old win32 and win64 build environments
 
-2011-05-19 10:17  source
+2012-03-07 02:16  source
 
-	* Fixed API contact edit function
+	* Fixed missing var decl
 
-2011-05-19 09:58  source
+2012-03-07 02:16  source
 
-	* Fixed compiler warning
+	* Updated vad version
 
-2011-05-19 09:57  source
+2012-03-07 02:09  source
 
-	* Fixed add user to bootstrap as it can run procs in this context
+	* Updated vad version to 1.85.83
 
-2011-05-18 21:15  source
+2012-03-07 02:09  source
 
-	* Fixed SIOC object services
+	* Fixed demo
 
-2011-05-18 21:12  source
+2012-03-07 02:08  source
 
-	* Fixed install/uninstall bugs
+	* Fixed remove duplicate lines
 
-2011-05-18 09:19  source
+2012-03-07 02:02  source
 
-	* Added Eventbrite cartridge
-	* Fixed guard against using revoked long-lived FB access token
+	* Fixed use of common WebID verifier
 
-2011-05-18 09:10  source
+2012-03-07 02:00  source
 
-	* Added instructions on revoking access tokens to FB on retrieval
-	  confirmation page
+	* Fixed bad code
 
-2011-05-18 09:09  source
+2012-03-07 01:59  source
 
-	* Fixed issue with properties
+	* Added /sparql-oauth
 
-2011-05-18 09:01  source
+2012-03-07 01:59  source
 
-	* Added Upcoming cartridge
-	* Added Plancast cartridge
-	* Fixed use labels by default
-	* Fixed remove pro
-	* Fixed minor issues
+	* Fixed sparql-webid
 
-2011-05-17 22:53  source
+2012-03-07 01:59  source
 
-	* Added SIOC object services
-	* Fixed problem with edit command and Wiki version folders
-	* Fixed version history properties
-	* Fixed move/copy API with wrong source/destination
-	* Fixed problems with WebID
+	* Fixed JS errors
 
-2011-05-17 22:51  source
+2012-03-07 01:58  source
 
-	* Added SIOC object services
-	* Fixed IE JS problems
-	* Fixed UI bug
+	* Fixed WebID check procedure
 
-2011-05-17 22:50  source
+2012-03-07 01:57  source
 
-	* Added SIOC object services
-	* Fixed changing/deleting events does not trigger re-sync with publication
-	* Fixed import/export bug
-	* Fixed IE JS problems
+	* Fixed graph issues
 
-2011-05-17 22:48  source
+2012-03-07 01:56  source
 
-	* Added SIOC object services
-	* Added annotation rules
-	* Fixed navigation and UI
-	* Fixed css
-	* Fixed IE bug
-	* Fixed UI bug
+	* Fixed return on sparql errors
 
-2011-05-17 22:46  source
+2012-03-07 01:56  source
 
-	* Added SIOC object services
-	* Fixed IE bug
-	* Fixed UI bug
+	* Fixed grant permission for API to sponge
 
-2011-05-17 22:45  source
+2012-03-07 01:55  source
 
-	* Fixed IE JS problems
-	* Fixed UI bugs
+	* Fixed output from verifier
 
-2011-05-17 22:44  source
+2012-03-07 01:54  source
 
-	* Added SIOC object services
+	* Fixed new param in WebID verifier
 
-2011-05-17 22:43  source
+2012-03-07 01:54  source
 
-	* Fixed issue with Wiki after delete and restore VVC folder
+	* Fixed return if no user
 
-2011-05-17 22:42  source
+2012-03-07 01:53  source
 
-	* Added SIOC object services
-	* Fixed a++
+	* Fixed openid registration
 
-2011-05-17 21:14  source
+2012-03-07 01:53  source
 
-	* Fixed compiler warnings
+	* Fixed date check
 
-2011-05-17 14:06  source
+2012-03-07 01:52  source
 
-	* Added optimization for %g specifier for "Decimal" types in RDFViews
+	* Fixed selecting identifier
 
-2011-05-17 13:51  source
+2012-03-07 01:51  source
 
-	* Rebuild drivers
+	* Fixed use 15s timeout
 
-2011-05-17 13:48  source
+2012-03-07 01:51  source
 
-	* Added function to get/set Query timeout (default = 0 = unlimited)
+	* Fixed error condition checks
 
-2011-05-16 09:04  source
+2012-03-07 01:51  source
 
-	* Added initial support for SPARQL 1.1 Graph Store HTTP Protocol
+	* Fixed use vector of vectors
 
-2011-05-16 08:51  source
+2012-03-07 01:50  source
 
-	* Fixed usage of http_request_header
-	* Fixed useage of last modified
+	* Fixed handling of di:
 
-2011-05-16 08:50  source
+2012-03-07 01:50  source
 
-	* Fixed empty subject
-	* Fixed WebID selection
-	* Fixed problem with certificate generation using Safari on windows
-	* Fixed topic of interests
-	* Fixed a++
+	* Fixed copyright year to include 2012
 
-2011-05-16 08:35  source
+2012-03-07 01:49  source
 
-	* Fixed setting name
+	* Fixed rdf_sink folder creation for new users
 
-2011-05-16 08:34  source
+2012-03-07 01:49  source
 
-	* Fixed entry page for sponged Facebook user's profile to top level
-	  container document
+	* Fixed expiration check
 
-2011-05-12 20:53  source
+2012-03-07 01:49  source
 
-	* Fixed compiler warning
+	* Fixed get WebID function
 
-2011-05-12 20:53  source
+2012-03-07 01:48  source
 
-	* Added more system unames
+	* Fixed copyright year to 2012
 
-2011-05-11 14:49  source
+2012-03-07 01:48  source
+
+	* Fixed DI URI
+
+2012-03-07 01:47  source
 
 	* Fixed small issue
 
-2011-05-11 13:32  source
+2012-03-07 01:47  source
 
-	* Fixed issue compiling zip support on Mac OS X
+	* Fixed same-as
 
-2011-05-11 13:19  source
+2012-03-07 01:46  source
 
-	* Fixed typo in Content-Type header
+	* Fixed to preserve content
 
-2011-05-11 13:15  source
+2012-03-07 01:46  source
 
-	* Added missing file
+	* Added new rule for /mv
 
-2011-05-11 13:11  source
+2012-03-07 01:46  source
 
-	* Fixed rdf_sink is not a DET
+	* Added void to graph
 
-2011-05-11 13:09  source
+2012-03-07 01:45  source
 
-	* Added more parameters for crawling
-	* Fixed top proc must run as dba
-	* Fixed use array for values
+	* Fixed image show in login
 
-2011-05-11 09:39  source
+2012-03-07 01:44  source
 
-	* Added WebID support to dynares
-	* Added optional async mode for dav meta extraction
+	* Fixed multiple values in SAN
 
-2011-05-11 08:08  source
+2012-03-07 01:44  source
 
-	* Added missing files
+	* Fixed VAD upgrade
 
-2011-05-10 18:57  source
+2012-03-07 01:44  source
 
-	* Fixed write processing status to sponger queue
-	* Fixed access tokens for OpenGraph cartridge save/restore from table
-	  instead of the API key
+	* Added support to enable automatic login
 
-2011-05-10 18:43  source
+2012-03-07 01:43  source
 
-	* Fixed access tokens for OpenGraph cartridge save/restore from table
-	  instead of the API key
+	* Fixed grant
 
-2011-05-10 18:42  source
+2012-03-07 01:43  source
 
-	* Fixed minor issues
+	* FIxed key usage
 
-2011-05-10 18:40  source
+2012-03-07 01:42  source
 
-	* Fixed disabled pg_check_map by default to make cpt faster
+	* Fixed primary topic should be the profile
 
-2011-05-10 18:37  source
+2012-03-07 01:41  source
 
-	* Fixed disable pg_check_map by default to make cpt faster
+	* Fixed VAD install problem
 
-2011-05-10 12:20  source
+2012-03-07 01:41  source
 
-	* Fixed myust set sl_owner before cpt_rollback in order to know which
-	  thread owns the process, otherwise other threads may wrongly go
-	  inside the wait_checkpoint
+	* Added private graphs data
 
-2011-05-10 12:18  source
+2012-03-07 01:39  source
 
-	* Added initial support for B.C. datetimes
-	* Added new functions to convert datetime from/to NASA Truncated
-	  Julian Day
-	* Fixed bug in date2num and num2date
+	* Fixed use get:soft "add"
 
-2011-05-09 12:06  source
+2012-03-07 01:38  source
 
-	* Fixed internal error in sparql_detalize on SPARUL statement
+	* Fixed vhosts define
 
-2011-05-09 12:05  source
+2012-03-07 01:37  source
 
-	* Added new statistic counters
+	* Fixed typo
 
-2011-05-08 22:24  source
+2012-03-07 01:37  source
 
-	* Added GROUP_CONCAT and SAMPLE
+	* Fixed twitter sha1 post
 
-2011-05-08 22:23  source
+2012-03-07 01:36  source
 
-	* Added common function to set certificate server-side
+	* Added private data in graph
 
-2011-05-08 22:18  source
+2012-03-07 01:34  source
 
-	* Added option to use certificates stored in the db
+	* Fixed try sha1 for fingerprint
 
-2011-05-06 11:34  source
+2012-03-07 01:33  source
 
-	* Fixed call to sponger status procedure
+	* Added rule for briefcase folder IRIs
 
-2011-05-05 12:55  source
+2012-03-07 01:32  source
 
-	* Fixed do not use aq if in sponger queue
+	* Fixed user's image on profile page
 
-2011-05-05 12:54  source
+2012-03-07 01:32  source
 
-	* Fixed print literals with meta info only when html is requested
+	* Fixed use proper digest
 
-2011-05-03 18:00  source
+2012-03-07 01:32  source
 
-	* Fixed workaround for missing offers
+	* Fixed proper namespace
 
-2011-05-03 18:00  source
+2012-03-07 01:31  source
 
-	* Fixed minor issue
+	* Fixed use new property
 
-2011-05-03 17:55  source
+2012-03-07 01:30  source
 
-	* Fixed compiling on VC10
+	* Added option to ask to delete data
 
-2011-05-03 17:51  source
+2012-03-07 01:29  source
 
-	* Fixed function signature for windows build
+	* Fixed use sponger
 
-2011-05-03 17:50  source
+2012-03-07 01:28  source
 
-	* Fixed error checking
+	* Fixed verification
 
-2011-05-03 14:03  source
+2012-03-07 01:28  source
 
-	* Added check for native JSON serializer/deserializer when available
-	* Fixed detection of buggy XML serializer in IE9
-	* Fixed MSIE detection
-	* Fixed SVG detection in OAT.Browser
+	* Added more checks
 
-2011-05-03 11:50  source
+2012-03-07 01:27  source
 
-	* Fixed set rehash pct
+	* Fixed search twitter for tweet
 
-2011-05-03 11:15  source
+2012-03-07 01:26  source
 
-	* Fixed SPARQL OPTIONAL keyword sometimes causing queries to not
-	  return graph matches
+	* Fixed check for fingerprint
 
-2011-05-02 14:16  source
+2012-03-07 01:26  source
 
-	* Added app discussion rules
-	* Added annotation rules
-	* Added common css
-	* Fixed navigation and standardize UI
-	* Fixed updating external URIs access rights in UI profile
-	* Fixed missing webfinger lookup
-	* Fixed OpenId not registered id message
-	* Fixed user selection page size
-	* Fixed popup windows
-	* Fixed security tab
+	* Fixed page show and SIOC data
 
-2011-05-02 14:09  source
+2012-03-07 01:25  source
 
-	* Added support for social bookmarking
-	* Fixed use 404 when no data is found
-	* Fixed links in footer
-	* Fixed escape the single quote char
+	* Fixed labels
 
-2011-05-02 14:06  source
+2012-03-07 01:25  source
 
-	* Fixed labels
+	* Fixed ampersand
 
-2011-05-02 14:02  source
+2012-03-07 01:24  source
 
-	* Fixed links
+	* Fixed MIME type for JSON-LD to application/ld+json
 
-2011-05-02 12:48  source
+2012-03-07 01:24  source
 
-	* Fixed popup windows
+	* Fixed ODS upgrade proc
 
-2011-05-02 12:44  source
+2012-03-07 01:23  source
 
-	* Added annotation rules
-	* Added discussion IRIs
-	* Fixed navigation and standardize UI
-	* Fixed popup windows
+	* Fixed row selection style
 
-2011-05-02 12:30  source
+2012-03-07 01:23  source
 
-	* Added option to obtain a Facebook OAuth access token for use with
-	  sponger cartridge
-	* Fixed group export and delete of crawling targets
-	* Fixed crawling feeds, parameters for crawling
-	* Fixed disable config if no https
-	* Fixed shorten queue description
+	* Fixed issues with session expire in new ODS UI
 
-2011-05-02 12:22  source
+2012-03-07 01:21  source
 
-	* Added Gowalla cartridge
-	* Added Productontology
-	* Added Google Product
-	* Updated Facebook cartridge with multiple access tokens
-	* Fixed do not print empty container string if there is no name
+	* Fixed SPARQL clear graph
 
-2011-05-02 08:24  source
+2012-03-07 01:20  source
 
-	* Fixed col_default to be same dtp as col_dtp to prevent default value
-	  misuse
+	* Fixed path to OAT style sheets
 
-2011-05-02 08:23  source
+2012-03-07 01:19  source
 
-	* Fixed wrong deref of default int value
+	* Fixed missing CSS file
 
-2011-04-29 11:56  source
+2012-03-07 01:18  source
 
-	* Fixed when redirect is to secure site, setup the appropriate flags
+	* Fixed call to obsolete hostip
 
-2011-04-26 12:16  source
+2012-03-07 01:17  source
 
-	* Fixed loading TriG
+	* Upgraded ODS css
 
-2011-04-26 12:14  source
+2012-03-07 01:16  source
 
-	* Fixed loading NQuads
+	* Fixed JS table API
 
-2011-04-26 12:13  source
+2012-03-07 01:16  source
 
-	* Fixed check webid only if not uathenticated
+	* Fixed photo value
 
-2011-04-21 13:09  source
+2012-03-07 01:16  source
 
-	* Added session counters for read/write/seek on gzip file
+	* Fixed deactivate user
 
-2011-04-21 11:41  source
+2012-03-07 01:15  source
 
-	* Upgraded to zlib 1.2.5
+	* Fixed photo show
 
-2011-04-20 15:12  source
+2012-03-07 01:14  source
 
-	* FIxed hang or crash after cpt over
+	* Fixed triggers
 
-2011-04-20 15:12  source
+2012-03-07 01:13  source
 
-	* Fixed disable dep cols check
+	* Added option to deactivate user
 
-2011-04-20 15:11  source
+2012-03-07 01:12  source
 
-	* Added debug code to detect mutex hang on same thread
+	* Fixed common applications CSS
 
-2011-04-19 20:50  source
+2012-03-07 01:11  source
 
-	* Fixed lock status report
+	* Fixed tab labels
 
-2011-04-19 20:49  source
+2012-03-07 01:10  source
 
-	* Fixed key dep cols check for sample
+	* Fixed WebID login
 
-2011-04-19 16:16  source
+2012-03-07 01:09  source
 
-	* Fixed bad bnode syntax in output
+	* Fixed login dialog with unregistered users
 
-2011-04-19 16:15  source
+2012-03-07 01:09  source
 
-	* Added session read waits statistic
+	* Fixed labels and CSS for Firefox
 
-2011-04-18 16:03  source
+2012-03-07 01:07  source
 
-	* Fixed default mode for sponger should be sync instead of async
+	* Added new verification proc
 
-2011-04-18 16:03  source
+2012-03-07 01:06  source
 
-	* Fixed http_lock requires that maintenance page is set
+	* Added QRCode
 
-2011-04-18 16:02  source
+2012-03-07 01:05  source
 
-	* Added statistics on read/write/seek session via file/gzip counters
+	* Updated WebID demo pages
 
-2011-04-15 12:42  source
+2012-03-07 01:04  source
 
-	* Added deadlock retry handler
-	* Added support to use redirect and timeout options
+	* Added WebID WaterMark
 
-2011-04-15 12:39  source
+2012-03-07 00:57  source
 
-	* Added Foursquare cartridge
-	* Added Zappos cartridge
-	* Added enhancements to Facebook OpenGraph cartridge
-	* Fixed minor issues
+	* Fixed HREF to not need proxy
 
-2011-04-15 12:33  source
+2012-03-07 00:56  source
 
-	* Added "Raw linked data format" permalinks
-	* Fixed CSS
+	* Added proxy url
 
-2011-04-15 12:05  source
+2012-03-07 00:56  source
 
-	* Fixed codegen for service invocation for case of IN parameter
-	  that is not bound in SINV subquery (used only in filter) and is
-	  neither external/global nor fixed in parent group pattern
+	* Added data graph associated with the WebID
+	* Fixed present WebID as link
+	* Fixed syntax
 
-2011-04-15 12:04  source
+2012-03-07 00:54  source
 
-	* Fixed support for xsd:time() in sparql when the argument value
-	  is safe for SQL CASET instead of function call
+	* Fixed WebID to be presented as link
 
-2011-04-13 22:51  source
+2012-03-07 00:53  source
 
-	* Added initial variant for estimate taking dep cols in account
-	  (by default disabled)
+	* Fixed warning if no key found
 
-2011-04-13 22:50  source
+2012-03-07 00:52  source
 
-	* Added missing param for http_get
+	* Removed fixed link from webid_demo pages
 
-2011-04-13 10:16  source
+2012-03-07 00:49  source
 
-	* Fixed if tf_xx signals an error, xn_children were released twice
+	* Added new /ods/webid endpoint
 
-2011-04-12 18:29  source
+2012-03-07 00:47  source
 
-	* Fixed check bnode subject
-	* Fixed clear avalues array before possible jump
-	* Fixed compiler warnings
+	* Updated WebID 1.0 spec
 
-2011-04-11 21:44  source
+2012-03-07 00:44  source
 
-	* Fixed do not report a frequent error re unescaped "&&" in <SCRIPT>
-	  HTML tag
-	* Fixed can jump over buffer boundary if you have an &xx not ending
-	  in a semicolon
+	* Added callback
 
-2011-04-11 21:42  source
+2012-03-07 00:42  source
 
-	* Added option top copy/clone crawler target
-	* Added option for crawl-delay
+	* Fixed webid_demo https requirements
 
-2011-04-11 21:39  source
+2012-03-07 00:41  source
 
-	* Added support for crawl-delay
+	* Fixed photo url
 
-2011-04-11 21:01  source
+2012-03-07 00:38  source
 
-	* Fixed removed leading CRLF
+	* Added WebID demo pages
 
-2011-04-11 21:01  source
+2012-03-06 23:46  source
 
-	* Fixed wrong function call
-	* Fixed bad inference tag
+	* Fixed SPARQL initialization
 
-2011-04-11 20:55  source
+2012-03-06 20:12  source
 
-	* Fixed error message in spar_find_sc_for_big_ssl_const
+	* Added extra MALLOC_DEBUG checks
 
-2011-04-11 20:54  source
+2012-03-06 17:10  source
 
-	* Added support for RDFa 1.1
+	* Fixed MALLOC_DEBUG support for box_iri_id()
 
-2011-04-11 20:53  source
+2012-03-06 16:54  source
 
-	* Fixed compiler warnings
+	* Updated vad_version to 1.34.22
 
-2011-04-11 15:36  source
+2012-03-06 16:48  source
 
-	* Added DB.DBA.RDF_RDFA11_FETCH_PROFILES() to sponge and return
-	  RDFa 1.1 external profile data
+	* Fixed copyright comment
 
-2011-04-11 15:35  source
+2012-03-06 16:32  source
 
-	* Added rdfa: namespace prefix
+	* Added StackOverflow cartridge
 
-2011-04-11 15:05  source
+2012-03-06 16:31  source
 
-	* Added w3-1999-xhtml/vocab for RDFa 1.1
+	* Added support for DI: in mail address
 
-2011-04-11 09:15  source
+2012-03-06 16:28  source
 
-	* Fxed issue with rdf_type attr
+	* Fixed tsuite failure
 
-2011-04-11 08:28  source
+2012-03-06 16:28  source
 
-	* Fixed double free
+	* Fixed qualify opl:mentions  with cartridge identifier
 
-2011-04-11 08:27  source
+2012-03-06 16:27  source
 
-	* Added support for trig
+	* Added function dbpedia_url_label
 
-2011-04-11 08:27  source
+2012-03-06 16:26  source
 
-	* Fixed check if file is present on local fs
+	* Fixed issues with RM_CLEAN_DEST
 
-2011-04-07 21:19  source
+2012-03-06 16:25  source
 
-	* Added function to validate rdfxml
+	* Added logging to NYT Article cartridge
 
-2011-04-07 21:17  source
+2012-03-06 16:25  source
 
-	* Fixed do not flush immediately, as client may ask for gzip later
+	* Added Angellist ontology and cartridge
+	* Added generic blog-URL links to oplbase
 
-2011-04-07 21:16  source
+2012-03-06 16:23  source
 
-	* FIxed if bitmap error on a cursor, kill the transaction instead of GPF
+	* Added oplbase ontology
 
-2011-04-07 11:11  source
+2012-03-06 16:22  source
 
-	* Fixed if process is swapping do not try to signal self as lock reaper
-	  may decide to kill this transaction where it may wait for select
-	  thread to run its signal function
+	* Added binding subproperty in new oplbase: ontology
+	* Aligned social-profile-url property across some social cartridges
 
-2011-04-06 12:09  source
+2012-03-06 16:21  source
 
-	* Fixed issue with multiple transitive subqueries in sql optimizer
+	* Added Crunchbase ontology
+	* Added DBpedia Spotlight ontology
 
-2011-04-06 12:01  source
+2012-03-06 16:16  source
 
-	* Fixed when doing subseq, session will return session handle, which
-	  needs to be converted to string
+	* Fixed LinkedIn cartridge
 
-2011-04-05 14:38  source
+2012-03-06 16:15  source
 
-	* Fixed issues with RDFa 1.1 test
+	* Fixed Amazon cartridge to work with new Product Advertising API
 
-2011-04-05 14:37  source
+2012-03-06 16:14  source
 
-	* Fixed possible mutex deadlock
+	* Added support for extracting all meta and link head-element data from
+	  XHTML documents
 
-2011-04-04 12:32  source
+2012-03-06 16:13  source
 
-	* Added support for javascript-like hrefs in RDFa
+	* Fixed handling of # in About header
 
-2011-04-04 12:31  source
+2012-03-06 16:08  source
 
-	* Fixed when not a string, use a cast to string
+	* Fixed DI: handling
 
-2011-04-04 12:31  source
+2012-03-06 16:07  source
 
-	* Fixed use mtx in proper order
+	* Addded webid via DI: text link
 
-2011-03-31 21:33  source
+2012-03-06 16:07  source
 
-	* Fixed issues with RDFa parsing
+	* Fixed DI: like mask
 
-2011-03-31 21:32  source
+2012-03-06 16:06  source
 
-	* Added check for MacDataSourceSize with default of 20MB
+	* Fixed DI: detection
 
-2011-03-29 23:20  source
+2012-03-06 16:06  source
 
-	* Updated version to 6.1.3 for final release
+	* Fixed twitter profile
 
-2011-03-29 22:55  source
+2012-03-06 16:06  source
 
-	* Fixed do not check immutable graph when dba is running
+	* Added post-processing script for generating owl:sameAs links for
+	  co-reference resolution
 
-2011-03-29 22:52  source
+2012-03-06 15:41  source
 
-	* FIxed minor issue
+	 * Fixed typos
 
-2011-03-29 22:52  source
+2012-03-06 15:35  source
 
-	* FIxed ACL
+	* Added DI spoort for certs
+	* Fixed xslt, no xmlns
 
-2011-03-29 22:49  source
+2012-03-06 15:34  source
 
-	* Fixed minor issue with prices
+	* Fixed copyright year
 
-2011-03-29 22:46  source
+2012-03-06 15:33  source
 
-	* Fixed swapped menu items
+	* Added support for ld+json and microdata+json
 
-2011-03-29 22:43  source
+2012-03-06 15:32  source
 
-	* Fixed use INFORMATION_SCHEMA.TABLES
+	* Added curl examples for other structured data formats
 
-2011-03-29 21:08  source
+2012-03-06 15:32  source
 
-	* Fixed menu layout
+	* Fixed rdf mapper logging
 
-2011-03-29 20:14  source
+2012-03-06 15:31  source
 
-	* Fixed JS IE bug on profile page
-	* Small code cleanup
+	* Fixed bad fmt
 
-2011-03-29 14:06  source
+2012-03-06 15:31  source
 
-	* Fixed typo in Makefile.am
+	* Fixed extraction of a cert:key from sioc:content
 
-2011-03-29 12:45  source
+2012-03-06 15:29  source
 
-	* Fixed put absolute path for database in default virtuoso.ini
+	* Fixed key in vcard
 
-2011-03-29 11:02  source
+2012-03-06 15:29  source
 
-	* Added alt to images in rdftab
+	* Fixed link to the dataset
 
-2011-03-29 10:58  source
+2012-03-06 15:28  source
 
-	* Fixed tuned handling of page params
-	* Fixed permalinks now encode information of which editor was used
-	  to produce the query
+	* Added Klout extractor cartridge
 
-2011-03-29 10:53  source
+2012-03-06 15:28  source
 
-	* Fixed must return error when cast fails
+	* Added New York Times Article cartridge
 
-2011-03-29 10:53  source
+2012-03-06 15:27  source
 
-	* Fixed issue with sparql filter with two optionals
+	* Added get:cartridge option
 
-2011-03-29 00:31  source
+2012-03-06 15:21  source
 
-	* FIxed issue locating jvm runtime library location on linux x86_64
+	* Fixed sponger front pages
 
-2011-03-29 00:09  source
+2012-03-06 15:21  source
 
-	* Fixed build issue when prerequisite support .jar files not present
+	* Added NTY ontology
 
-2011-03-28 23:11  source
+2012-03-06 15:20  source
 
-	* Fixed check for demo data before continuing
+	* Fixed check to ensure only access tokens granted to sponger are used
 
-2011-03-28 17:29  source
+2012-03-06 15:19  source
 
-	* Added configure option for enabling mutex debugging
+	* Added Klout ontology
 
-2011-03-28 16:04  source
+2012-03-06 15:19  source
 
-	* Fixed dependency for VOS
+	* Added twitter v2 screen_name
 
-2011-03-28 15:56  source
+2012-03-06 15:18  source
 
-	* Rolled back previous patch
+	* Fixed sponger frontpage
+	* Added Foursquare button
 
-2011-03-28 13:52  source
+2012-03-06 15:13  source
 
-	* Added missing files to distribution
+	* Added support for flagging access tokens as invalid in FB cartridge
 
-2011-03-28 12:57  source
+2012-03-06 15:13  source
 
-	* Fixed minor layout issue
+	* Added sponger param
 
-2011-03-28 12:53  source
+2012-03-06 15:13  source
 
-	* Added support for posh triples
+	* Fixed Facebook cartridge
 
-2011-03-28 12:52  source
+2012-03-06 15:12  source
 
-	* Fixed labels
+	* Fixed equivproperties etc
 
-2011-03-28 12:22  source
+2012-03-06 15:12  source
 
-	* Fixed allow varbinary as input for obj
+	* Fixed long descs
 
-2011-03-26 14:22  source
+2012-03-06 15:11  source
 
-	* Fixed user's pages to start with profile page
+	* Added OpenGraph mapping
 
-2011-03-26 14:21  source
+2012-03-06 15:10  source
 
-	* Fixed skin handling
+	* Added FB Parrot specification classes/properties
 
-2011-03-25 21:33  source
+2012-03-06 15:10  source
 
-	* Updated version
+	* Fixed ordering needs an int
 
-2011-03-25 21:29  source
+2012-03-06 15:09  source
 
-	* Updated build environment for win32 and win64
+	* Added code to delete orig triples
 
-2011-03-25 17:47  source
+2012-03-06 15:08  source
 
-	* Fixed possible copy overlap on some newer C libs
+	* Fixed minor issues
 
-2011-03-25 16:23  source
+2012-03-06 15:06  source
 
-	* Fixed vcard handling
+	* Added support for paging over large collections to FB cartridge
 
-2011-03-25 16:19  source
+2012-03-06 15:05  source
 
-	* Fixed encoding
+	* Fixed shadow var
 
-2011-03-25 15:10  source
+2012-03-06 15:04  source
 
-	* Updated testsuite
+	* Fixed use triple dict
 
-2011-03-25 12:20  source
+2012-03-06 15:04  source
 
-	* Fixed if there is no subclass/property but there is an equivalent,
-	  then use that as the statrt point, otherwise we would not get a
-	  result
+	* Added cert ontology
 
-2011-03-24 16:15  source
+2012-03-06 15:03  source
 
-	* Added bulk-loader to virtuoso binary
+	* Fixed cert in html
 
-2011-03-24 16:04  source
+2012-03-06 15:03  source
 
-	* Updated documentation
+	* Fixed syntax
 
-2011-03-24 15:50  source
+2012-03-06 15:02  source
 
-	* Fixed do now use daq because rdf_label has two keys and soft
-	  does not work
-	* Fixed use labels if not curie or uri
-	* Fixed issue with recent dbpedia onthology
-	* Fixed labels
-	* Fixed auto-complete failed when exact match & prefix found
+	* Added equivalence triples for linkedin
 
-2011-03-24 15:47  source
+2012-03-06 15:02  source
 
-	* Fixed use labels for IRIs only
-	* Fixed use special describe mode to avoid empty results
-	* Fixed error handling
-	* Fixed keep sas & inf
-	* Fixed bad encoding
-	* Fixed proper escape for uris
-	* Fixed wrong labels
+	* Fixed use batch request for facebook
+	* Added hasCertificate property in relevant cartridges
 
-2011-03-24 13:48  source
+2012-03-06 15:01  source
 
-	* Fixed additional xml document parser error handling for Opera
+	* Fixed run fb only on facebook uri
 
-2011-03-23 16:45  source
+2012-03-06 15:00  source
 
-	* Added function to format rdf object for printing in html
+	* Fixed cert property
+	* Fixed opengraph returns 1/-1 depending on mime type
 
-2011-03-23 12:25  source
+2012-03-06 14:59  source
 
-	* Fixed typo
+	* Fixed favour activity_title over providerTitle for Google+
 
-2011-03-23 12:17  source
+2012-03-06 14:58  source
 
-	* Added LinkedIn import
-	* Fixed duplicate addressbook entries issue
+	* Fixed wrong property
 
-2011-03-23 12:13  source
+2012-03-06 14:58  source
 
-	* Added rdfs schema
-	* Fixed datetime format
-	* Fixed minor issues
+	* Fixed google plus cartridge
 
-2011-03-23 12:13  source
+2012-03-06 14:52  source
 
-	* Added more properties
+	* Added Twitter ontology to dbpedia, foaf, sioc, vcard etc ontologies
 
-2011-03-23 12:13  source
+2012-03-06 14:52  source
 
-	* Fixed minor issues
+	* Removed equivalent triples
 
-2011-03-23 12:03  source
+2012-03-06 14:51  source
 
-	* Added more options for exporting a site
-	* Added more delimiters
-	* Fixed folder DET type presentation
-	* Fixed export as text
+	* Fixed check if operation returned triples and set flag appropriately
 
-2011-03-23 12:01  source
+2012-03-06 14:50  source
 
-	* Fixed wrong serialization of VirtuosoExplicitString when it is
-	  binding with DV_ANY parameter
+	* Fixed use uppercase proedure names
 
-2011-03-23 11:05  source
+2012-03-06 14:49  source
 
-	* Rebuild drivers
+	* Identify application agent used for posting to twitter v2 cartridge
 
-2011-03-23 11:04  source
+2012-03-06 14:48  source
 
-	* Fixed issue with using _JAVA_ on sparql select
+	* Moved mappings from google plus
 
-2011-03-23 10:49  source
+2012-03-06 14:47  source
 
-	* Fixed duplicate addressbook entries issue
+	* Added mappings to BIBO, Dublin Core, FOAF, vCard, SIOC, Dbpedia
 
-2011-03-23 10:48  source
+2012-03-06 14:44  source
 
-	* Fixed broken show filter
+	* Fixed bad expression
 
-2011-03-23 10:48  source
+2012-03-06 14:44  source
 
-	* Fixed feeds aggregator
+	* Added check for RDF content-type
+	* Added doc links
 
-2011-03-23 10:47  source
+2012-03-06 14:42  source
 
-	* Updated folder type list with 'Dynamic Resource'
+	* Changed datatype of oplgp:published/oplgp:updated to xsd:dateTime
 
-2011-03-23 10:37  source
+2012-03-06 14:41  source
 
-	* Added support for DV_RDF in v:isql rendering
+	* Fixed status handling
 
-2011-03-23 10:35  source
+2012-03-06 14:37  source
 
-	* Added custom UA
-	* Fixed gunzip the zipped rdfs
-	* Fixed large pages in results
+	* Fixed missing stop timer
 
-2011-03-23 10:33  source
+2012-03-06 14:33  source
 
-	* Improved session persistence
-	* Fixed handling of XML+RDF parsing errors
-	* Fixed bugs in query cache handling/paging
-	* Fixed Cosmetics in "Raw triples" view
-	* Fixed Default view set as "Advanced" in query permalinks
-	* Fixed URL params handling so they always take precedence from
-	  persisted session
-	* Fixed bug in menu item to Reset session
+	* Fixed status
 
-2011-03-23 10:28  source
+2012-03-06 14:33  source
 
-	* Added code to facilitate better error recovery when parsing
-	  invalid RDF+XML
-	* Fixed small code cosmetics
+	* Added status
 
-2011-03-22 23:50  source
+2012-03-06 14:29  source
 
-	* Fixed missing globals
+	* Fixed minor issue
 
-2011-03-21 13:30  source
+2012-03-06 14:28  source
 
-	* Fixed missing variable initialization
+	* Fixed do not use bnodes for labels
 
-2011-03-21 10:44  source
+2012-03-06 14:27  source
 
-	* Fixed check if subselect has a recursive ref
+	* Fixed need triple dict as 1st argument
 
-2011-03-18 10:51  source
+2012-03-06 14:27  source
 
-	* Fixed use new pages & disk reads to trigger the startup values
+	* Fixed use dictionary
 
-2011-03-17 16:30  source
+2012-03-06 14:22  source
 
-	* Added lax mode in csv import
+	* Fixed SocialStatistics
 
-2011-03-17 13:55  source
+2012-03-06 14:22  source
 
-	* Fixed when removing a join from outer's branches, do that repeatedly
-	  to remove all not needed. The recursion is done via sqlo_scope in
-	  order to get new labels for columns in select list, so process does
-	  not get confused by moving left part into FROM
+	* Added function XSLT_SANEURI
 
-2011-03-17 13:53  source
+2012-03-06 14:21  source
 
-	* Fixed when compiling a shared query, we must have a reset context
-	  as it may jump from compiler outside of shared cache and leave
-	  a mutex locked, thus eventually can get hang
+	* Added support for sponging Albums in Facebook cartridge
 
-2011-03-16 10:34  source
+2012-03-06 14:20  source
 
-	* Fixed issue with partial index when no path is followed
+	* Replaced namedEntityConcept by entityType property
 
-2011-03-14 15:52  source
+2012-03-06 14:18  source
 
-	* Fixed return byte[] data from column with datatype = DV_ANY
+	* Fixed date parsing
 
-2011-03-14 15:47  source
+2012-03-06 14:18  source
 
-	* Fixed disable debug messages
+	* Added SocialStatistics cartridge
 
-2011-03-14 15:46  source
+2012-03-06 14:16  source
 
-	* Fixed use dv_bin where needed like for dav-res
+	* Fixed make html default choice
 
-2011-03-12 00:17  source
+2012-03-06 14:16  source
 
-	* Fixed increase delay on sequential deadlock
+	* Added Linkedin Shares cartridge
 
-2011-03-12 00:17  source
+2012-03-06 14:15  source
 
-	* Fixed labels
+	* Added new FP signature
 
-2011-03-11 18:26  source
+2012-03-06 14:09  source
 
-	* Fixed use exclusive locks when doing sparul ops
+	* Fixed match mime type
 
-2011-03-11 13:08  source
+2012-03-06 14:08  source
 
-	* Fixed comment about missing io sect
+	* Fixed deprecated items
 
-2011-03-11 13:08  source
+2012-03-06 12:45  source
 
-	* Added retry deadlock if session is not flushed
+	* Added option to specify the accept header
 
-2011-03-11 13:07  source
+2012-03-06 12:43  source
 
-	* Fixed do not do read ahead with less than 10k buffers available
+	* Added support for XHTML+Microdata
+	* Added common infrastructure for RDF-specific XML parsers
+	* Fixed memory leaks
 
-2011-03-11 12:17  source
+2012-03-06 12:40  source
 
-	* Fixed if no free buffer available, signal an error
+	* Fixed redundant self-comparison in min_nonnull and max_nonnull
 
-2011-03-11 11:28  source
+2012-03-06 12:34  source
 
-	* Fixed do not do read-ahead on extent map
+	* Fixed compiler warnings
 
-2011-03-10 23:24  source
+2012-03-06 12:30  source
 
-	* Added index to search over label text
+	* Fixed permission check reading XML file
 
-2011-03-09 16:41  source
+2012-03-06 12:28  source
 
-	* FIxed _java_ should not have effect on select
+	* Fixed MALLOC_DEBUG support
 
-2011-03-08 15:46  source
+2012-03-06 10:43  source
 
-	* Fixed labels in value side
-	* Fixed pages to pass W3C validator (mostly)
-	* Fixed check for integers
-	* FIxed xml excape will happen on <?V use
+	* Added function to get local filename from "path" portion of IRIs
 
-2011-03-08 15:44  source
+2012-03-06 10:22  source
 
-	* Fixed hide value ranges option for now
+	* Ignore generated files
 
-2011-03-08 15:43  source
+2012-03-06 10:21  source
 
-	* Fixed copyright year
+	* Fixed integer overflow
 
-2011-03-08 14:32  source
+2012-03-06 10:20  source
 
-	* Added missing files to distribution
+	* Fixed build dependancy
 
-2011-03-08 13:56  source
+2012-03-05 17:38  source
 
-	* Added workaround to tell _JAVA_ driver the input is string as it is
-	  confused on DV_ANY and breaks utf-8 support
+	* Fixed whitespace
 
-2011-03-08 13:44  source
+2012-03-05 17:25  source
 
-	* Added quick rule to check version string
+	* Fixed issue saving state
 
-2011-03-08 13:44  source
+2012-03-05 17:22  source
 
-	* Rebuild driver
+	* Fixed typo
 
-2011-03-08 13:44  source
+2012-03-05 17:21  source
 
-	* Fixed only allow URI or Blank nodes as subjects
+	* Added XSL for setting location in COND
 
-2011-03-08 13:38  source
+2012-03-05 17:14  source
 
-	* Added additional crawler params
-	* Fixed show status without errors
-	* Fixed label
+	* Fixed missing image
 
-2011-03-08 13:36  source
+2012-03-05 17:11  source
 
-	* Added Described By
-	* Added ProductWiki cartridge
-	* Fixed do not use triple dicts on long files
-	* Fixed OWL
-	* Fixed labels
-	* Fixed minor issues
+	* Updated vad version to 1.11.70
 
-2011-03-08 13:24  source
+2012-03-05 17:10  source
 
-	* Updated to CKeditor version 3.5.2
+	* Fixed issue distinguishing lables between various NLP cartridges
 
-2011-03-08 13:08  source
+2012-03-05 17:09  source
 
-	* Added map markers for various types of things
-	* Added a smaller throbber animated gif
-	* Fixed resizing issue for mobile browsers
-	* Fixed bug in processing item title HREFs in map popup
-	* Fixed bugs in marker selection code using rtb:useMarker
+	* Fixed keep info in permalink
 
-2011-03-08 12:48  source
+2012-03-05 17:08  source
 
-	* Fixed mime types
-	* Fixed mail rendering
+	* Added oplweb ontology
 
-2011-03-08 12:47  source
+2012-03-05 17:07  source
 
-	* Fixed attendees
+	* Fixed suppress errors if any
 
-2011-03-08 12:47  source
+2012-03-05 17:07  source
 
-	* Fixed Twitter and LinkedIn registration/login
-	* Fixed RDF object properties
-	* Fixed UI
-	* Fixed escape params
-	* Fixed scroll bars
+	* Fixed functionality between /about and /describe
 
-2011-03-08 12:35  source
+2012-03-05 17:06  source
 
-	* Added support for AddThis
-	* Added manual mode for entering location when automatic location fails
-	* Added more geocoding support
-	* Fixed location timeout to 10 sec
-	* Fixed location popup
-	* Fixed text when Javascript is not enabled
-	* Fixed bug in management of user settings
-	* Fixed bugs in session persistance
+	* Added generation of Pivot link for entities-list view type
 
-2011-03-08 12:24  source
+2012-03-05 17:06  source
 
-	* Fixed debug defines
+	* Added registry setting for CSS stylesheet
+	* Fixed copyright statements
+	* Fixed map initialization
+	* Fixed problem with Class URIs
 
-2011-03-08 12:19  source
+2012-03-05 17:04  source
 
-	* Added support for robots.txt
+	* Fixed debug statements
 
-2011-03-08 12:18  source
+2012-03-05 17:03  source
 
-	* Fixed update crawler entries using id and avoid table scans
+	* Fixed check if data is returned as it can timeout transaction without
+	  any data
 
-2011-03-08 11:52  source
+2012-03-05 17:02  source
 
-	* Fixed size of input buffer of an XML parser is now adaptive
+	* Added check for wide labels
 
-2011-03-08 10:38  source
+2012-03-05 17:01  source
 
-	* Updated version to 6.1.3-rc7
+	* Fixed copyright statement on describe page
 
-2011-03-07 21:49  source
+2012-03-05 17:00  source
 
-	* Fixed when there is a gb node, test the sort node for dep part in
-	  the sort spec
+	* Added more labels in the ontology
 
-2011-03-05 00:03  source
+2012-03-05 17:00  source
 
-	* Updated documentation
+	* Added registry key for data license markup
+	* Fixed missing datatype in some conditionals
+	* Fixed datatype selector to reflect last clicked value dtp
 
-2011-03-04 14:46  source
+2012-03-05 16:55  source
 
-	* Fixed moved mutex lock/unlock calls to avoid deadlock
+	* Fixed missing initialization
 
-2011-03-03 17:12  source
+2012-03-05 16:54  source
 
-	* Added read-ahead on extent
+	* Fixed initialization of the main page
 
-2011-03-03 17:10  source
+2012-03-05 16:54  source
 
-	* Fixed immutable graph setting can be a pattern, so we can disable
-	  sponging on all graphs
+	* Added encoding page in permalink in describe
+	* Fixed regression disabling the COND UI
 
-2011-03-03 11:56  source
+2012-03-05 16:53  source
 
-	* Fixed DATETIME to DATE conversions
+	* Added permalink for usage stats page
 
-2011-03-02 12:24  source
+2012-03-05 16:52  source
 
-	* Fixed issue with special sparql variables
+	* Fixed small bug
 
-2011-03-02 12:24  source
+2012-03-05 16:51  source
 
-	* Fixed issue with qualifier in SQLForeignKeys
+	* Fixed missing menu on Metadata page
+	* Fixed header on Metadata and Settings pages
+	* Fixed formatting of SID in sponger link
 
-2011-03-01 19:35  source
+2012-03-05 16:50  source
 
-	* Fixed initialization of defaults
+	* Fixed qrcode link
 
-2011-03-01 19:32  source
+2012-03-05 16:49  source
 
-	* Fixed set HTTP status to 503 when showing maintenance page and
-	  added a Retry-After: 1800 (seconds) header as a hint to the remote
+	* Added support for AddThis
+	* Added registry keys to override debug output
+	* Fixed bad icons by using text links
+	* Small CSS tweaks
 
-2011-02-28 17:02  source
+2012-03-05 13:15  source
 
-	* Fixed issue if data did not generate prefix2iri hash
+	* Fixed handing of wide/narrow labels
 
-2011-02-28 13:47  source
+2012-03-05 13:15  source
 
-	* Fixed check for 5xx or 4xx status codes
+	* Fixed label order
 
-2011-02-26 08:35  source
+2012-03-05 13:14  source
 
-	* Added http maintenance functions
+	* Fixed guessing Type label for entities
+	* Fixed rendering of set class UI when no class is found
 
-2011-02-25 17:31  source
+2012-03-05 13:13  source
 
-	* Fixed only start from the beginning when there is a thread else we
-	  could get into a busy loop
+	* Fixed sponger parameter
 
-2011-02-23 21:35  source
+2012-03-05 13:13  source
 
-	* Fixed bad regexp
+	* Added prefixes
+	* Fixed sponger call
 
-2011-02-23 17:31  source
+2012-03-05 13:12  source
 
-	* Fixed size of input buffer of an XML parser is made adaptive
+	* Added better indication of current focus in query description
+	* Fixed display of entities list when focused on e1
+	* Fixed display of "Describe" link for URIs
+	* Removed extra page elems when query has no result
+	* Minor typography and colour tweaks.
 
-2011-02-21 13:36  source
+2012-03-05 13:01  source
 
-	* Added support for named parameters
+	* Fixed permalink
 
-2011-02-20 16:14  source
+2012-03-05 13:00  source
 
-	* Fixed increase the size of the input buffer of the TURTLE lexer
-	  for file resources, in order to improve disk access pattern if many
-	  resources are loaded in parallel
+	* Fixed description page to not generate a sid in sponger link
 
-2011-02-18 15:49  source
+2012-03-05 13:00  source
 
-	* Updated version to 6.1.3-rc6
+	* Fixed default mode in /about
 
-2011-02-18 15:49  source
+2012-03-05 12:59  source
 
-	* Fixed issue with scalar subq with SSG_VALMODE_NUM output as in TPCD
+	* Added mode for sponger
 
-2011-02-18 15:37  source
+2012-03-05 12:59  source
 
-	* Updated version
+	* Fixed pager button
 
-2011-02-18 15:36  source
+2012-03-05 12:58  source
 
-	* Added language and type options for offers
+	* Fixed check for lang
 
-2011-02-18 15:32  source
+2012-03-05 12:57  source
 
-	* Fixed issues with map sizing
+	* Added new pager to allow change page lenght and jump to row number
 
-2011-02-18 15:30  source
+2012-03-05 12:56  source
 
-	* Fixed rdftab height for maps
+	* Fixed description page when encountering labels of numeric DTP
 
-2011-02-18 11:19  source
+2012-03-05 12:56  source
 
-	* Added initial codegen for ASK subquery
-	* Fixed issue with sponging options and DESCRIBE on /sparql endpoint
+	* Added better remore debug logging facility
 
-2011-02-18 11:16  source
+2012-03-05 12:54  source
 
-	* Fixed "serialize" debugging output of many threads and label
-	  messages of different threads
+	* Fixed use EN if no language specified
 
-2011-02-18 11:14  source
+2012-03-05 12:54  source
 
-	* Added better support of "seealso" predicate in case of recursive
-	  sponging
+	* Fixed use short summary when available
 
-2011-02-18 10:37  source
+2012-03-05 12:53  source
 
-	* Fixed use mem pool to release all objects if an error occurs
+	* Fixed description page dropdown to show distinct IRI
+	* Fixed description page to show curie of page resource uri in title
 
-2011-02-18 10:24  source
+2012-03-05 12:52  source
+
+	* Fixed description page to use CURIEs in the constrain facet to type
+	  dropdown
+
+2012-03-05 12:51  source
+
+	* Fixed description page to allow selection of class as FCT starting
+	  point when the entity is member of many classes
+
+2012-03-05 12:50  source
+
+	* Fixed layout of demo queries page
+	* Fixed display of detailed information in error handler
+	* Fixed setting empty default graph in SPARQL query link
+
+2012-03-05 12:47  source
+
+	* Fixed check lenght
+
+2012-03-05 12:46  source
+
+	* Added better handling of strings with LAND for BETWEEN condition
+
+2012-03-05 12:46  source
+
+	* Added workaround for narrow cset in literals
+
+2012-03-05 12:45  source
+
+	* Added check for bnodes
+
+2012-03-05 12:45  source
+
+	* Fixed typo in locating throbber file name
+	* Fixed  display of autolocating NEAR cond in query description
+	* Fixed generation of conditionals in UI
+	* Fixed missing hyphen in pager indicator for range of results
+
+2012-03-05 12:43  source
+
+	* Added xsl to strip lat/long from autoacquire cond permalinks
+
+2012-03-05 12:42  source
+
+	* Fixed bug causing addig NEAR COND in Firefox to fail
+
+2012-03-05 12:41  source
+
+	* Fixed bug adding location marker
+
+2012-03-05 12:39  source
+
+	* Added support for autolocating proximity queries
+
+2012-03-05 12:32  source
+
+	* Fixed small bugs
+
+2012-03-05 12:30  source
+
+	* Fixed datatype field showing up in contains cond UX
+	* Fixed generation of conds without enclosing property pattern
+
+2012-03-05 12:28  source
+
+	* Fixed fct_view_pos to return value 0 in case of an empty tree
+
+2012-03-05 12:06  source
+
+	* Updated vad version
+
+2012-03-05 12:05  source
+
+	* Merged replication pages
+
+2012-03-05 12:04  source
+
+	* Added option to browse table definitions
+
+2012-03-05 12:03  source
+
+	* Fixed message
+
+2012-03-05 12:02  source
+
+	* Added option to scope ACL to a VD
+
+2012-03-05 12:01  source
+
+	* Fixed rdfmapper logging
+
+2012-03-05 12:01  source
+
+	* Added support for r2rml graph generation
+
+2012-03-05 12:00  source
+
+	* Fixed do not use autoritykeyid
+
+2012-03-05 11:59  source
+
+	* Added initial pages for r2rml
+
+2012-03-05 11:57  source
+
+	* Added support for unicode strings in password
+
+2012-03-05 11:47  source
+
+	* Fixed copyright to include 2012
+
+2012-03-05 11:45  source
+
+	* Updated copyright to include 2012
+
+2012-03-05 11:45  source
+
+	* Fixed use dbpedia url for testing
+
+2012-03-05 11:43  source
+
+	* Added asynchronous connection detection for DAV
+
+2012-03-05 11:42  source
+
+	* Fixed use Grid View as initial tab
+	* Fixed use raw iris instead of shortened
+
+2012-03-05 11:40  source
+
+	* Fixed copyright year to include 2012
+
+2012-03-05 11:37  source
+
+	* Fixed issue with rdf_mappers
+
+2012-03-05 11:34  source
+
+	* Added more types to check
+
+2012-03-05 11:33  source
+
+	* Fixed use new WebiD module
+
+2012-03-05 11:32  source
+
+	* Fixed issue with sink folder
+
+2012-03-05 11:31  source
+
+	* Fixed return http status 500 when execution fails
+
+2012-03-05 00:08  source
+
+	* Updated version to 3.60
+
+2012-03-04 23:58  source
+
+	* Fixed  problem with blobs when using getString()
+
+2012-03-03 10:36  source
+
+	* Fixed XMLA Columns, PrimaryKey and Foreignkey
+
+2012-03-03 09:56  source
+
+	* Fixed ignore generated files
+
+2012-03-03 09:55  source
+
+	* Removed bad symbol
+
+2012-03-03 02:09  source
+
+	* Added function virt_mbrlen
+
+2012-03-03 02:08  source
+
+	* Fixed skip internal options
+
+2012-03-03 02:07  source
+
+	* Fixed memleak
+
+2012-03-03 02:06  source
+
+	* Fixed potential filedesc leak
+
+2012-03-03 02:05  source
+
+	* Added function strses_wide_string
+
+2012-03-03 00:03  source
+
+	* Added TRIG formatter
+	* Updated TRIG parser to comply with latest draft spec
+
+2012-03-02 23:57  source
+
+	* Added support for SPARQL 1.1 WITH, USING, NAMED
+	* Added support for SPARQL 1.1 Update
+
+2012-03-02 23:37  source
+
+	* Added human-readable HTML output for DESCRIBE (list and table)
+
+2012-03-02 23:10  source
+
+	* Added functionnumeric_rescale_noround
+
+2012-03-02 22:48  source
+
+	* Added support for long nvarchar
+
+2012-03-02 22:34  source
+
+	* Fixed dump of all subject entries
+
+2012-03-02 22:33  source
+
+	* Fixed use graph in the r2rml graph
+
+2012-03-02 22:32  source
+
+	* Fixed FOAF query
+
+2012-03-02 22:15  source
+
+	* Updated version of sparql internals to match cached resources
+
+2012-03-02 22:11  source
+
+	* Fixed warning from gperf by using different way to calculate hash key
+
+2012-03-02 22:09  source
+
+	* Applied missing patch
+
+2012-03-02 21:53  source
+
+	* Small cleanups
+
+2012-03-02 21:52  source
+
+	* Added support for SELECT scalar_expression subqueries without FROM
+	  clause to avoid extra lock on fake subqueries like:
+	  (SELECT TOP 1 scalar_expression FROM nonempty_table) AS alias
+
+2012-03-02 21:48  source
+
+	* Fixed additional case of SPARQL OPTIONAL bug
+
+2012-03-02 21:45  source
+
+	* Fixed buildin call to IN
+
+2012-03-02 21:42  source
+
+	* Fixed problem where /sparql endpoint seems to retain graph data
+	  after deletion
+
+2012-03-02 21:37  source
+
+	* Added difference between DB.DBA.rdf_...impl() stored procedures
+	  and rdf_.._impl() BIFs for SPARQL 1.1
+
+2012-03-02 21:32  source
+
+	* Added additional checking if two variables are equal
+
+2012-03-02 21:26  source
+
+	* Added nice syntax for declarations of macro libraries
+
+2012-03-02 21:22  source
+
+	* Added support for SPARQL 1.1 ISNUMERIC()
+	* Added enhancements to codegen to speed up fake subqueries
+	* Fixed checks in ISREF() and ISLITERAL for nullable arguments
+
+2012-03-02 19:23  source
+
+	* Fixed debug code
+
+2012-03-02 18:54  source
+
+	* Fixed JSON-LD syntax to match recent draft of the spec
+
+2012-03-02 18:51  source
+
+	* Fixed compiler warnings
+
+2012-03-02 18:49  source
+
+	* Fixed need to escape amp etc in rdf/xml
+
+2012-03-02 18:48  source
+
+	* Fixed mixed declarations and code
+
+2012-03-02 18:47  source
+
+	* Added support for wide strings in all SPARQL serializers
+	  (Turtle-like, NT, JSONs and SPARQL-XML result set)
+
+2012-03-02 18:45  source
+
+	* Fixed output of bnodes in RDF/XML format
+
+2012-03-02 18:42  source
+
+	* Fixed warnings
+
+2012-03-02 18:40  source
+
+	* Fixed CONTRUCT with constant "string"@lang
+
+2012-03-02 18:37  source
+
+	* Added new RDF/XML printer (fater + pretty print)
+	* Fixed CONSTRUCT with constant string objects with language
+	* FIxed bad TTL output for DV_WIDE objects
+
+2012-03-02 18:32  source
+
+	* Fixed memory leak
+
+2012-03-02 18:24  source
+
+	* Fixed whitespace
+
+2012-03-02 18:23  source
+
+	* Fixed do not use etag when  using no-cache
+
+2012-03-02 18:19  source
+
+	* Added support for base64url encode/decode functions
+
+2012-03-02 18:14  source
+
+	* Added missing setting for ShortenLongURIs in SPARQL section
+
+2012-03-02 12:43  source
+
+	* Removed debug code
+
+2012-03-02 11:13  source
+
+	* Added DBpedia vad package to VOS release
+
+2012-02-27 01:16  source
+
+	* Added initial r2rml generator
+
+2012-02-27 01:13  source
+
+	* Fixed whitespace
+
+2012-02-27 01:08  source
+
+	* Added support for new SPARQL 1.1 BIFs
+
+2012-02-26 17:11  source
+
+	* Added initial implementation of SPARQL 1.1 functions
+
+2012-02-26 15:28  source
+
+	* Added support of comparions of DV_WIDE with DV_STRINGs flaged by
+	  BF_UTF8 or BF_IRI
+
+2012-02-26 15:17  source
+
+	* Fixed show http threads vs. internal calls
+
+2012-02-26 15:16  source
+
+	* Fixed get full name for procedure
+
+2012-02-26 15:07  source
+
+	* Added support of comparision of DV_WIDE with DV_STRING flagged
+	  by BF_URF8 or BF_IRI
+
+2012-02-26 15:04  source
+
+	* Added different digest for fingerprint
+
+2012-02-26 15:03  source
+
+	* Added hex2bin function
+
+2012-02-26 15:01  source
+
+	* Fixed low selectivity of min bnode call
+
+2012-02-26 15:00  source
+
+	* Fixed copyright year to 2012
+
+2012-02-26 14:59  source
+
+	* Fixed issue with ORDER BY
+
+2012-02-26 14:56  source
+
+	* Added flag for binary blob in sqlgetdata
+
+2012-02-26 14:52  source
+
+	* Added check for rd & tmp key when page check is enabled
+
+2012-02-26 14:49  source
+
+	* Added optional digest for x509 generator
+
+2012-02-26 13:54  source
+
+	* Extended SPARQL macro syntax to allow any IRI syntax
+
+2012-02-26 13:16  source
+
+	* Fixed invalid SQL
+
+2012-02-26 13:15  source
+
+	* Fixed resultSet of xmla_dbschema_columns
+	* Fixed call parameters to xmla_dbchema_tables
+
+2012-02-26 13:13  source
+
+	* Fixed describe should return 3 rows
+
+2012-02-15 13:46  source
+
+	* Added check for out slots
+
+2012-02-15 01:16  source
+
+	* Added flag to create text index in silent mode
+
+2012-02-15 01:14  source
+
+	* Fixed do not check preds are placed when there is no from clause
+
+2012-01-31 13:50  source
+
+	* Fixed handling of primarykeys and foreignkeys in XMLA
+
+2012-01-24 00:43  source
+
+	* Added alt link in header
+
+2012-01-24 00:39  source
+
+	* Fixed DET ACLs
+
+2012-01-24 00:34  source
+
+	* Fixed issues with CalDav and Mac OS X 10.6
+
+2012-01-18 20:46  source
+
+	* Added ld+json
+
+2012-01-17 12:15  source
+
+	* Fixed cannot use inline macro as it may read past end of buffer
+
+2012-01-12 19:15  source
+
+	* Added support for scoping ACL to a virtual dir
+
+2012-01-12 11:21  source
+
+	* Added flag to know if conten-len actually is read
+
+2012-01-10 14:22  source
+
+	* Added pragma "get:cartridge"
+
+2012-01-10 14:21  source
+
+	* Added support for "define get:..." options in SPARUL LOAD
+
+2012-01-10 14:17  source
+
+	* Fixed debug output
+
+2012-01-10 14:16  source
+
+	* Fixed allow underline in ?actor_name as part of regular SPARQL
+
+2012-01-10 14:04  source
+
+	* Fixed indentation
+
+2012-01-10 14:02  source
+
+	* Fixed do not write end of message to output
+
+2012-01-10 13:57  source
+
+	* Fixed should not kill transactions when checkpoint is pending
+
+2012-01-10 13:54  source
+
+	* Added support functions for SPARQL Macro library syntax
+
+2012-01-10 13:53  source
+
+	* Fixed minor issues
+
+2012-01-10 13:50  source
+
+	* Added support for get:soft add to proxy service
+
+2012-01-09 14:42  source
+
+	* Added support for CardDAV
+	* Fixed updating Apple calendars
+
+2012-01-09 14:41  source
+
+	* Fixed must have certain permissions to do cleanup
+
+2011-12-14 16:05  source
+
+	* Added human readable HTML outputs for DESCRIBE (list and table)
+
+2011-12-14 15:57  source
+
+	* Fixed check for scope
+
+2011-12-14 15:56  source
+
+	* Fixed support for sparql load <file:///....> i.e. with absolute path
+	  from system root
+
+2011-12-14 15:52  source
+
+	* Added support for wide and long-wide blobs
+
+2011-12-14 15:50  source
+
+	* Added atomic mode
+	* Added log mode parameter
+
+2011-12-14 15:48  source
+
+	* Fixed crash if stmt is invalid
+
+2011-12-08 21:25  source
+
+	* Added support for get:soft "add"
+
+2011-12-08 21:23  source
+
+	* Fixed RDF/XML parser to pass w3c tests dated 2003-Nov.
+
+2011-12-08 21:19  source
+
+	* Fixed if ssl session, make it regular as an error can leave it as ssl
+
+2011-12-08 21:16  source
+
+	* Added new function RDF_VIEW_DROP_STMT_BY_GRAPH
+
+2011-12-08 21:15  source
+
+	* Fixed only kill txn when we have the lt, else we should wait
+
+2011-12-08 21:11  source
+
+	* Fixed issue in IRI splitter used by RDFa serializer when namespace
+	  ends in '%' if the last char of the original IRI was %nn
+
+2011-12-08 21:08  source
+
+	* Added new function DB.DBA.RDF_GRAPH_USER_PERMS_DEL
+
+2011-11-29 14:31  source
+
+	* Fixed reduntant lock on DB.DBA.RDF_QUAD is removed in cases where
+	  RDF_QUAD was used as a stub
+
+2011-11-29 14:14  source
+
+	* Fixed labels
+
+2011-11-29 14:14  source
+
+	* Fixed use different physical graphs
+
+2011-11-29 13:53  source
+
+	* Added message OAT_MAP_API_LOADED in map API
+	* Added detection of right click in ghostdrag.js
+	* Added option raw-irix that disables URI shortning (namespave systhesis)
+	  in the rdf viewer components
+	* Updated version to 2.9.3
+
+2011-11-29 13:35  source
+
+	* Fixed conditional on long/short in mutex_try_enter
+	* Fixed problem with MTX_DEBUG
+
+2011-11-29 10:11  source
+
+	* Fixed webid
+
+2011-11-29 10:10  source
+
+	* Removed duplicate procedure
+
+2011-11-29 10:06  source
+
+	* Updated sparql metadata version
+
+2011-11-29 00:01  source
+
+	* Fixed int64 comparision
+
+2011-11-28 21:18  source
+
+	* Added initial support for SPARQL MACRO
+
+2011-11-28 21:15  source
+
+	* Fixed types
+
+2011-11-28 20:59  source
+
+	* Fixed expression logic
+
+2011-11-28 12:15  source
+
+	* Added RDF_VIEW_SYNC_TO_PHYSICAL API call
+
+2011-11-28 10:11  source
+
+	* Added extra alias E_MAIL to options field
+
+2011-11-28 10:10  source
+
+	* Added support for nvarchar passwords
+
+2011-11-28 10:09  source
+
+	* Fixed show maintenance page when database is in atomic lock
+
+2011-11-28 10:07  source
+
+	* Fixed crash on passing NULLs to xpath_funcall with functions that
+	  do not support NULLs
+
+2011-11-28 09:58  source
+
+	* Fixed issue with bad characters in long doublequoted strings
+
+2011-11-21 14:13  source
+
+	* Added support function for sponger to use dictionary for loading
+	  the main stream
+
+2011-11-21 14:10  source
+
+	* Added argument to sparql_rdb2rdf_codegen() that describes the
+	  translation of graph IRIs
+
+2011-11-21 13:43  source
+
+	* Fixed use options to make a physical graph different than a virtual
+
+2011-11-17 14:41  source
+
+	* Added aq_max_threads to sys_stat
+
+2011-11-17 14:39  source
+
+	* Fixed do not reset memcache flag for non-numeric dtps
+
+2011-11-16 15:27  source
+
+	* Fixed expressions should use NOT NULL
+
+2011-11-16 10:24  source
+
+	* FIxed if arg is already an XML entity, just copy it
+
+2011-11-16 10:23  source
+
+	* Fixed if dfe_tree is changed we cannot find the dfe later, so
+	  make full copy, modify and pass it on
+
+2011-11-16 10:21  source
+
+	* Fixed integrity of graph security objects
+
+2011-11-16 10:18  source
+
+	* Fixed when left hand side of expr returns unknown, test the right hand
+	  side for false, if so then return false
+
+2011-10-28 23:28  source
+
+	* Updated version to 6.1.4 for final release
+
+2011-10-28 23:22  source
+
+	* Enabled check for bad index due to XML fragment
+
+2011-10-28 23:21  source
+
+	* Added information about upgrading from previous 6.1.x to 6.1.4
+
+2011-10-28 21:46  source
+
+	* Fixed prototype
+
+2011-10-28 21:41  source
+
+	* Fixed datetime fraction
+
+2011-10-28 21:10  source
+
+	* Rebuild drivers
+
+2011-10-28 16:09  source
+
+	* Fixed disable strict void var checking as /fct sometimes generates
+	  undefined vars
+
+2011-10-28 16:00  source
+
+	* Added support for setting syslog facility
+
+2011-10-28 15:56  source
+
+	* Fixed call auth check only when needed
+
+2011-10-28 15:55  source
+
+	* Fixed flags for ods
+
+2011-10-28 13:16  source
+
+	* Added common function for testing extensions for rdfxml
+
+2011-10-28 13:14  source
+
+	* Fixed encoding issues
+
+2011-10-26 15:38  source
+
+	* Added new UI for conditionals like = < > ranges and IN
+	* Added initial UI for geo based conditionals
+	* Added support for proper permalink
+	* Added Twitter, Facebook and Google+ share buttons to footer
+	* Added version info to footer
+
+2011-10-26 15:22  source
+
+	* Added AddThis share buttons
+
+2011-10-26 09:34  source
+
+	* Fixed Compiled for line in usage
+	* Fixed compiler warning
+
+2011-10-26 00:21  source
+
+	* Updated documentation
+
+2011-10-26 00:00  source
+
+	* Fixed run check init on local
+
+2011-10-25 23:56  source
+
+	* Fixed package uninstall
+
+2011-10-25 23:56  source
+
+	file syncml_drop.sql was added on branch V6_0_0-DEVEL on 2011-10-25 23:58:36 +0000
+
+2011-10-25 23:54  source
+
+	* Added async rdf extraction
+
+2011-10-25 23:36  source
+
+	* Added opl:mentions and opl:NamedEntity class to OpenLink Attribution
+
+2011-10-25 23:31  source
+
+	file location.js was added on branch V6_0_0-DEVEL on 2011-10-25 23:37:37 +0000
+
+2011-10-25 23:31  source
+
+	* Added missing location support
+
+2011-10-25 23:28  source
+
+	* Added finger print from twitter entry
+	* Fixed minor issues
+
+2011-10-25 23:28  source
+
+	file twitter_fp2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-10-25 23:36:21 +0000
+
+2011-10-25 23:25  source
+
+	* Added support for Google+ comments
+
+2011-10-25 23:20  source
+
+	* Fixed when dropping a graph, also check if there is a quad map for it
+	* Fixed move all cols in pk rdf view sel
+	* Fixed handling of syncml functionality
+	* Fixed labels
+
+2011-10-25 19:36  source
+
+	* Added new implementation of search_excerpt that can handle both
+	  ANSI/UTF8 and Wide strings
+
+2011-10-25 10:54  source
+
+	* Fixed problems re-creating quad map
+
+2011-10-21 12:03  source
+
+	* Fixed drop stmt gr
+
+2011-10-21 11:53  source
+
+	* Fixed bad conversion of utf8 in rdf/xml
+
+2011-10-19 15:22  source
+
+	* Fixed dtp check
+
+2011-10-19 15:18  source
+
+	* Fixed reset bitmap flag as previous insert might have set it to true
+
+2011-10-19 15:14  source
+
+	* Fixed missing cast
+
+2011-10-18 12:45  source
+
+	* Fixed if one column cannot fit into available space, then instead
+	  of guessing how much space is needed we calculate space for all
+	  columns which cannot fit
+
+2011-10-18 12:41  source
+
+	* Fixed error adding inherited roles as they can overlap
+
+2011-10-18 09:15  source
+
+	* Updated default settings file
+
+2011-10-17 15:50  source
+
+	* Fixed issue building with Mono
+
+2011-10-17 14:06  source
+
+	* Fixed log info about row state
+
+2011-10-17 09:55  source
+
+	* Fixed labels
+
+2011-10-17 09:48  source
+
+	* Fixed issue with SPASQL and ADONET3 named parameters
+	* Fixed ADO.Net Provider failure retrieving RDF datetime literal values
+	* Removed duplicate functions
+
+2011-10-14 17:02  source
+
+	* Fixed issue with rdfview generation
+
+2011-10-14 12:54  source
+
+	* Fixed if BeginTransaction is called with an Unspecified isolation
+	  level, use a default of ReadCommitted
+
+2011-10-14 12:47  source
+
+	* Fixed recompile all qr's cached on cli connection when dropping
+	  a group or creating new graph group
+
+2011-10-14 10:33  source
+
+	* Fixed labels
+
+2011-10-14 00:32  source
+
+	* Fixed missing Diagnostic
+
+2011-10-13 22:14  source
+
+	* Rebuild driver
+
+2011-10-13 22:07  source
+
+	* Upgraded driver to Sesame 2.5.1
+
+2011-10-13 22:07  source
+
+	file VirtuosoOperation.java was added on branch V6_0_0-DEVEL on 2011-10-13 22:49:22 +0000
+
+2011-10-13 22:07  source
+
+	file VirtuosoUpdate.java was added on branch V6_0_0-DEVEL on 2011-10-13 22:49:22 +0000
+
+2011-10-13 18:36  source
+
+	* Added new Google+ cartridge
+	* Added new Jigsaw cartridge
+	* Added gr:Brand information to Ebay cartridge
+	* Added money class similar to GoodRelations prices for Crunchbase
+	* Fixed handling of HTTPS Groupon URIs
+	* Fixed do not immediately index in normal mode
+	* Fixed eBay URL-schemes
+	* Fixed MIME type for JSON-LD
+	* Fixed documentation
+	* Removed CRLF
+
+2011-10-13 18:33  source
+
+	* Added new tabs to Linked Data
+	* Added PSH tabs
+	* Fixed labels and texts
+
+2011-10-13 18:32  source
+
+	* Fixed issue displayong characters in isql.vspx
+
+2011-10-13 18:29  source
+
+	* Fixed uninitialized var
+
+2011-10-13 18:28  source
+
+	* Added support for ms-author-va : sparql header
+	* Fixed use new virtuoso_ini_item_value
+	* Fixed set id of current user
+	* Fixed issue compiling stored procedure
+
+2011-10-13 17:09  source
+
+	file VirtuosoDateTime.cs was added on branch V6_0_0-DEVEL on 2011-10-13 18:26:27 +0000
+
+2011-10-13 17:09  source
+
+	file VirtuosoDateTimeOffset.cs was added on branch V6_0_0-DEVEL on 2011-10-13 18:26:27 +0000
+
+2011-10-13 17:09  source
+
+	file VirtuosoTimeSpan.cs was added on branch V6_0_0-DEVEL on 2011-10-13 18:26:27 +0000
+
+2011-10-13 17:08  source
+
+	* Added support for VirtuosoDateTime, VirtuosoDateTimeOffset and
+	  VirtuosoTimeSpan
+	* Fixed issue with dropped connection after multiple bad login attempts
+	* Fixed dispose methods should never throw an exception
+	* Fixed drop statement in Virtuoso when it is disposed in the provider
+
+2011-10-13 16:52  source
+
+	* Fixed copyright year to 2011
+
+2011-10-13 16:50  source
+
+	* Fixed buggy comparison when installing VAD packages
+
+2011-10-13 16:48  source
+
+	* Added stats for time waiting on a mutex
+
+2011-10-13 16:35  source
+
+	file googleplus2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-10-13 18:36:28 +0000
+
+2011-10-13 16:35  source
+
+	file oplgoogleplus.owl was added on branch V6_0_0-DEVEL on 2011-10-13 18:36:28 +0000
+
+2011-10-13 16:29  source
+
+	* Removed duplicate stored procedures
+
+2011-10-13 14:39  source
+
+	* Fixed use openssl md5 where available
+
+2011-10-13 14:24  source
+
+	* Fixed check for min async queue size
+
+2011-10-13 14:21  source
+
+	* Added new setting RdfFreeTextRulesSize
+
+2011-10-13 14:08  source
+
+	* Fixed execute on all partitions at same time
+
+2011-10-13 14:06  source
+
+	* Fixed undefined Inference rule error when rule created from graph
+	  created from SPARUL insert statement
+	* Fixed issue loading inf rules on cluster
+
+2011-10-13 14:00  source
+
+	* Added support to sql_bif_excerpt for using wide string
+
+2011-10-13 13:59  source
+
+	* Fixed memleak
+
+2011-10-13 13:58  source
+
+	* Fixed issue with fulltext indexing
+
+2011-10-13 13:56  source
+
+	* Fixed issue with bif:contains
+
+2011-10-13 13:54  source
+
+	* Fixed deadlock on attempt of qr_recompile during the run of
+	  SPARQL-to_SQL front-end
+
+2011-10-13 13:28  source
+
+	* Fixed http recording
+
+2011-10-13 13:27  source
+
+	* Fixed crash when array is bad
+
+2011-10-13 13:26  source
+
+	* Fixed function name in argument
+
+2011-10-13 13:11  source
+
+	* Fixed SSL verification context
+
+2011-10-13 13:00  source
+
+	* Added inproved support for inference and RDF views to "non-default"
+	  storages
+	* Added option to register pos-processing callbacks to DESCRIBE
+
+2011-10-13 12:54  source
+
+	* Added new BIF functions for handling dictionaries of triples
+
+2011-10-13 12:15  source
+
+	* Added iri range size setting
+
+2011-10-13 12:14  source
+
+	* Added new "mode" flag to TURTLE parser, so it adds source line
+	  numbers (and source text labels) to blank nodes of the parsed
+	  document
+
+2011-10-13 12:12  source
+
+	* Fixed check for DAV
+
+2011-10-13 11:09  source
+
+	* Added dbs id hash to log
+
+2011-10-13 11:05  source
+
+	* Fixed compiler warning
+
+2011-10-13 11:04  source
+
+	* Fixed private key protection
+
+2011-10-13 11:03  source
+
+	* Fixed checks
+
+2011-10-13 11:03  source
+
+	* Fixed inlist to mean equality, not a lt of the one_of_these call
+	  comparison
+
+2011-10-13 11:01  source
+
+	* Fixed label
+
+2011-10-13 11:00  source
+
+	* Fixed use cartridge if such is defined
+
+2011-10-13 10:59  source
+
+	* Fixed moved assignment before loop, as sqlerror can lead to a
+	  double free
+
+2011-10-13 10:58  source
+
+	* Fixed issue with foreignkey handling inside rdfview
+
+2011-09-28 17:04  source
+
+	* Rewrite HTML generation for /sparql endpoint
+
+2011-09-28 17:01  source
+
+	* Added new function virtuoso_ini_item_value which can read settings
+	  from the virtuoso.ini, without having to open/parse it for every
+	  request
+
+2011-09-27 12:14  source
+
+	file sec_acl_edit_sp.vspx was added on branch V6_0_0-DEVEL on 2011-10-13 18:33:27 +0000
+
+2011-09-27 12:14  source
+
+	file sec_auth_serv_sp.vspx was added on branch V6_0_0-DEVEL on 2011-10-13 18:33:27 +0000
+
+2011-09-27 09:42  source
+
+	* Fixed sql codegen for combination of SERVICE {} that binds a
+	  variable and OPTIONAL {} that uses it later, and the binding in
+	  SERVICE is the only non-nullable binding of that variable
+
+2011-09-27 09:40  source
+
+	* Fixed do not cache samples indefinitely
+
+2011-09-23 19:22  source
+
+	* Added initial support for filtering on value ranges
+	* Added new export formats
+	* Fixed MIME type for JSON-LD
+	* Fixed use lang for properties labels
+	* Fixed pretty-print query
+	* Fixed check for owl:Class
+	* Fixed label prefs and metadata
+	* Fixed footer
+
+2011-09-23 19:12  source
+
+	* Added extra mime types to accept header
+
+2011-09-23 15:20  source
+
+	* Fixed overflow in bif_date_diff
+
+2011-09-22 18:57  source
+
+	file jigsaw2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-10-13 18:36:28 +0000
+
+2011-09-22 18:57  source
+
+	file oplmoney.owl was added on branch V6_0_0-DEVEL on 2011-10-13 18:36:28 +0000
+
+2011-09-21 15:23  source
+
+	* FIxed do not make UNAMEs in SQL texts immortal
+
+2011-09-21 15:22  source
+
+	* Fixed must save IN list as it will be reset to 0 inside
+
+2011-09-21 13:27  source
+
+	* Fixed use len of the N leading chars represented as UTF8
+
+2011-09-21 13:23  source
+
+	* Added support for DV_BIN
+
+2011-09-20 12:03  source
+
+	* Fixed issues detecting images
+
+2011-09-20 11:58  source
+
+	* Fixed handling of sparql endpoint in Pivot permalink generation
+
+2011-09-19 13:37  source
+
+	* Fixed do not check byte-order on crash recovery replay
+
+2011-09-15 16:02  source
+
+	* Updated version to 6.1.4-rc1
+
+2011-09-15 10:42  source
+
+	* Fixed mem leaks
+
+2011-09-14 19:06  source
+
+	* Fixed uninitialized variable
+
+2011-09-14 15:38  source
+
+	* Fixed memory leaks
+
+2011-09-14 15:38  source
+
+	* Fixed valgrind warning when using DEBUG
+
+2011-09-13 14:50  source
+
+	* Fixed memory leaks
+
+2011-09-12 21:05  source
+
+	* Fixed GPF on optimization of DELETE/INSERT/MODIFY due to lists
+	  of known vars that were not deALIASed properly
+
+2011-09-12 20:08  source
+
+	* Added log when built-in procedure has duplicate in the db
+
+2011-09-12 20:04  source
+
+	* Fixed removed duplicate procedures
+
+2011-09-12 20:01  source
+
+	* Fixed crash
+
+2011-09-12 12:30  source
+
+	* Fixed mime type of JSON-ld to application/ld+json
+
+2011-09-12 11:02  source
+
+	* Updated documentation
+
+2011-09-12 10:52  source
+
+	* Fixed use available non-expiring access token
+	* Fixed drilldown through Posts (including posted links) to show
+	  associated comments
+	* Fixed removed oplcb:competitor property from its oplcb:competition
+	  wrapper and dropped latter
+	* Fixed use dbpedia:author property when handling books
+	* Fixed use string session with serialized XML for large csv files
+
+2011-09-12 10:47  source
+
+	* Added initial support for PHP 5.3
+
+2011-09-12 10:36  source
+
+	* Fixed indentation
+
+2011-09-12 10:28  source
+
+	* Fixed use shorter names
+
+2011-09-12 10:21  source
+
+	* Fixed WebID demo pages
+
+2011-09-09 14:09  source
+
+	* Updated documentation
+
+2011-09-09 13:30  source
+
+	* Fixed warning about uninitialized data
+
+2011-09-09 13:21  source
+
+	* Added option for explicit graph
+	* Fixed SyncML Folder Types in drop-down list
+	* Fixed labels
+
+2011-09-09 13:20  source
+
+	* Fixed do not remove trailing cr/lf
+
+2011-09-09 13:19  source
+
+	* Fixed issue when dirname is a blob
+
+2011-09-09 13:12  source
+
+	* Added dbpedia:author property when handling books
+	* Fixed ACL rule */* allows everybody
+	* Fixed Facebook auth
+	* Fixed use string session with serialized XML for large csv files
+	* Fixed map OpenLink Zillow ontology to geo:lat/long
+	* Fixed map oplog:likes_XXX property to like:likes
+
+2011-09-09 13:11  source
+
+	* Added support for switchable favicon to Sponger front page
+
+2011-09-09 12:51  source
+
+	* Fixed issues with linked data upload
+
+2011-09-09 11:16  source
+
+	* Added HTTP status codes in SPARQL graph store protocol
+
+2011-09-09 11:13  source
+
+	* Fixed issue with SPARUL LOAD INTO command creating duplicate graphs
+
+2011-09-09 00:10  source
+
+	* Fixed issue when pragma list was empty
+	* Fixed issues generating Pivot Permalink
+	* Fixed whitespace and stray > char from Raw formats line
+
+2011-09-08 18:54  source
+
+	* Fixed handling of GROUP BY and ORDER BY using expressions
+
+2011-09-08 15:29  source
+
+	* Fixed re-definition of a quad map that is a single user of a quad
+	  map format
+
+2011-09-08 15:28  source
+
+	* Fixed codegeneration issue with awk 4.0
+
+2011-09-08 12:51  source
+
+	* Fixed UI for sponger options
+
+2011-09-08 12:19  source
+
+	* Fixed issue with sparql LOAD from file
+
+2011-09-07 22:44  source
+
+	* Fixed crash running FILTER query containing IN clause with only
+	  one item in it
+	* Fixed issue with ORDER BY expression optimization
+
+2011-09-05 15:27  source
+
+	* Added test for empty graph result
+	* Added margins for RDF mini browser container
+	* Added check for existence of sparql_cxml to enable display of CXML
+	  result link
+	* Replaced default AJAX throbber with new OAT Notify
+	* Fixed undef variable causing dereference control malfunction
+	* Fixed layout bug causing the dereference mode control hiding behind
+	  a block
+
+2011-09-05 15:26  source
+
+	* Added support for replacing existing content on OAT.Notify.send
+
+2011-09-05 15:23  source
+
+	file notify-throbber.gif was added on branch V6_0_0-DEVEL on 2011-09-05 15:27:50 +0000
+
+2011-08-30 15:02  source
+
+	* Fixed issue with code generation using gawk 4
+
+2011-08-29 10:37  source
+
+	* Added Google Place cartridge
+	* Added Seatgeek cartridge
+	* Added API for selective sponging
+	* Added Google+ button
+	* Added menu item linking direct to 'How it Works'
+	* Fixed bug when offline_access=1 not present in OpenGraph cartridge
+	* Fixed access token requests now request permission to read user and
+	  friend checkins
+	* Fixed complete rdf boxes when looking for label
+	* Fixed lang use for comment
+	* Fixed missing block op
+	* Fixed minor issues
+
+2011-08-29 10:27  source
+
+	* Added support for anytime query (timeout) on virtuoso
+	* Added CSS for pushbar notify
+	* Fixed bug with updated maxrow value not being passed
+	* Fixed dereferencing preference dropdown disappearing when paging
+	  between results
+	* Fixed cosmetics
+
+2011-08-29 10:23  source
+
+	* Added support for oplzilw:latitude and longitude
+	* Fixed rdftabs notification to use PUSHBAR
+	* Fixed problem in geo coordinates detection
+
+2011-08-29 10:22  source
+
+	* Added new option to rdfmini to facilitate placing of view control
+	  outside its container
+
+2011-08-29 10:21  source
+
+	* Added new notification widget types PUSHBAR and BAR
+	* Added target class for notify content for skinning
+
+2011-08-29 10:19  source
+
+	* Added support for HEAD requests in AJAX
+
+2011-08-29 10:18  source
+
+	* Added limit to number of open statements
+
+2011-08-26 19:34  source
+
+	* Fixed if we have a wide string and want typed string we cast to utf-8
+
+2011-08-26 18:04  source
+
+	* Fixed /sparql/ endpoint to produce more accurate diagnostics for
+	  failed INSERT DATA statements
+
+2011-08-26 18:03  source
+
+	* Fixed timeout should be specified in miliseconds according to docs
+
+2011-08-26 17:59  source
+
+	* Added limit to number of open statements
+
+2011-08-26 17:57  source
+
+	* Added mem debug support for sqlp_box_id_upcase
+
+2011-08-26 17:55  source
+
+	* Fixed memory leak
+
+2011-08-26 10:58  source
+
+	* Fixed crash when un-expected array is passed as argument
+
+2011-08-26 10:57  source
+
+	* Fixed loading member functions of UDT that refer to XML namespace
+	  declarations and other items loaded after the loading of the UTD
+	  declaration
+
+2011-08-26 10:54  source
+
+	* Fixed issue with trim('test', null)
+
+2011-08-23 12:24  source
+
+	file google_place2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-08-29 10:37:48 +0000
+
+2011-08-23 12:24  source
+
+	file seatgeek2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-08-29 10:37:48 +0000
+
+2011-08-21 12:54  source
+
+	* Added initial code for timeout handling
+	* Added param to control the anchor mode, persisted in permalinks.
+	* Added anchor mode to pass the URL to /describe
+	* Added missing URI encoding in some generated links/queries
+	* Fixed "aliased" qtxt URL param
+	* Fixed re-enabled anchor mode to control what to do when dereferencing links.
+	* Fixed try to set values of nonexisting UI objects in /view
+	* Fixed visibility of footer in /view
+
+2011-08-21 12:52  source
+
+	* Fixed display of RDF store stats
+
+2011-08-21 12:51  source
+
+	* Fixed set default anchorMode back to 0
+
+2011-08-21 12:50  source
+
+	* Fixed footer background
+
+2011-08-21 12:50  source
+
+	* Added MSG MAP_NOTHING_TO_SHOW to rdftabs Map widget
+	* Added MAP_NOTHING_TO_SHOW to rdfmini by switching to default viewer
+	* Added references in map popups
+	* Added function to detect nodes that only contain coordinates
+	* Fixed bugs in getContent link generation
+	* Fixed removed attempt to resolve item references throught recursion
+	* Fixed drawMarker to extract properties from referencing node when node contains only
+	  coordinate data
+	* Fixed structure of rdftabs marker popups
+	* Fixed make properties list scrollable instead of whole window
+
+2011-08-21 12:34  source
+
+	* Rebuild drivers
+
+2011-08-21 12:33  source
+
+	* Removed deprecated functions and files
+
+2011-08-18 09:16  source
+
+	* Fixed connection leak in connection pool during long checkpoints
+
+2011-08-17 17:46  source
+
+	* Fixed memory leak in statement when using connectionpooling
+
+2011-08-17 17:36  source
+
+	* Rebuild drivers
+
+2011-08-17 17:20  source
+
+	* Rebuild driver
+
+2011-08-17 17:20  source
+
+	* Updated hibernate support to work with Hibernate 3.6.6-Final
+
+2011-08-15 15:30  source
+
+	* Fixed bad merge
+
+2011-08-14 14:48  source
+
+	* Fixed check for NULL IRI before printing
+
+2011-08-09 11:19  source
+
+	* Fixed indentation and whitespace
+
+2011-08-09 11:17  source
+
+	* Fixed missing namespave declarations
+
+2011-08-09 11:11  source
+
+	* Fixed minor issue
+
+2011-08-09 10:58  source
+
+	* Added SimpleGeo cartridge
+	* Added Eventful cartridge
+	* Fixed use standard properties for Latitude and Longitude
+	* Fixed use /about to sponge URL
+
+2011-08-05 21:33  source
+
+	file simplegeo2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-08-09 10:58:33 +0000
+
+2011-08-03 11:36  source
+
+	* Added show photo in WebID login/registrer
+	* Fixed typo in messages
+	* Fixed facebook accounts
+
+2011-08-03 11:34  source
+
+	* Added missing files
+
+2011-08-03 11:34  source
+
+	file mc.vsp was added on branch V6_0_0-DEVEL on 2011-08-03 11:42:19 +0000
+
+2011-08-03 11:34  source
+
+	file mv.vsp was added on branch V6_0_0-DEVEL on 2011-08-03 11:42:19 +0000
+
+2011-08-02 12:05  source
+
+	file eventful2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-08-09 10:58:33 +0000
+
+2011-08-01 14:19  source
+
+	* Added Twitter cartridge using OAuth and Twitter REST api
+	* Added XRD cartridge
+	* Added Google Profile cartridge
+	* Fixed use OG community page as starting point for facebook OpenGraph
+	  cartridge
+	* Fixed minor issues
+
+2011-08-01 14:17  source
+
+	* Added check for XML
+	* Fixed update must do delta and remove all entries which are not
+	  from this source
+
+2011-08-01 14:15  source
+
+	* Fixed SIOC data
+
+2011-08-01 14:13  source
+
+	* Updated CKeditor to version 3.6.1
+
+2011-08-01 14:12  source
+
+	* Added RDF links in header and head
+
+2011-08-01 14:12  source
+
+	* FIxed Delicious publish
+
+2011-08-01 14:09  source
+
+	* Fixed undefined function
+
+2011-08-01 14:08  source
+
+	* Added user/mail availablitiy action
+	* Added mail verification service
+	* Fixed WebID login and registration
+	* Fixed Facebook accounts
+	* Fixed order tabs and labels
+	* Fixed SIOC RDF links API functions
+
+2011-08-01 14:05  source
+
+	* Added ACL eXecute flag
+	* Fixed ACl issue with editing .acl file
+	* Fixed API functions
+
+2011-08-01 14:04  source
+
+	* Fixed encryption and signing
+	* Fixed security properties
+	* Fixed mail parameters
+
+2011-08-01 13:18  source
+
+	* Fixed throw away old content before starting execute
+
+2011-08-01 13:14  source
+
+	file google_profile2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-08-01 14:19:28 +0000
+
+2011-08-01 13:14  source
+
+	file xrd-generic.xsl was added on branch V6_0_0-DEVEL on 2011-08-01 14:19:28 +0000
+
+2011-08-01 13:11  source
+
+	file opltwitter.owl was added on branch V6_0_0-DEVEL on 2011-08-01 14:19:28 +0000
+
+2011-08-01 13:11  source
+
+	file twitter_access_token.vsp was added on branch V6_0_0-DEVEL on 2011-08-01 14:19:28 +0000
+
+2011-08-01 13:11  source
+
+	file twitter_rest_api2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-08-01 14:19:28 +0000
+
+2011-07-29 10:04  source
+
+	* Fixed debug code
+
+2011-07-29 10:03  source
+
+	* Fixed must redirect on OPTIONS
+
+2011-07-29 10:03  source
+
+	* Fixed calculate lenght before inserting the row
+
+2011-07-29 10:00  source
+
+	* Fixed unnamed GPF
+
+2011-07-20 15:56  source
+
+	* Added check for %nn
+
+2011-07-20 09:50  source
+
+	* Added Idp
+	* Added Domain check
+	* Added WebID
+
+2011-07-20 09:26  source
+
+	file idp_s_1.xml was added on branch V6_0_0-DEVEL on 2011-07-20 09:50:19 +0000
+
+2011-07-20 09:26  source
+
+	file webid_demo.html was added on branch V6_0_0-DEVEL on 2011-07-20 09:50:19 +0000
+
+2011-07-20 09:26  source
+
+	file webid_demo.html was added on branch V6_0_0-DEVEL on 2011-07-20 09:50:20 +0000
+
+2011-07-20 09:26  source
+
+	file webid_demo.php was added on branch V6_0_0-DEVEL on 2011-07-20 09:50:20 +0000
+
+2011-07-20 09:26  source
+
+	file webid_demo.vsp was added on branch V6_0_0-DEVEL on 2011-07-20 09:50:20 +0000
+
+2011-07-20 09:26  source
+
+	file dc_s_1.sql was added on branch V6_0_0-DEVEL on 2011-07-20 09:50:19 +0000
+
+2011-07-20 09:26  source
+
+	file dc_s_1.xml was added on branch V6_0_0-DEVEL on 2011-07-20 09:50:19 +0000
+
+2011-07-20 09:26  source
+
+	file dc_s_1_sample.vsp was added on branch V6_0_0-DEVEL on 2011-07-20 09:50:19 +0000
+
+2011-07-20 09:26  source
+
+	file idp_s_1.vsp was added on branch V6_0_0-DEVEL on 2011-07-20 09:50:19 +0000
+
+2011-07-20 09:26  source
+
+	file options.xml was added on branch V6_0_0-DEVEL on 2011-07-20 09:50:19 +0000
+
+2011-07-20 08:58  source
+
+	* Added Hyperpublic cartridge
+
+2011-07-20 08:58  source
+
+	file hyperpublic2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-07-20 09:55:07 +0000
+
+2011-07-20 08:56  source
+
+	* Added configuration option for page title
+
+2011-07-20 08:51  source
+
+	* Added webid_check option to control execution flag
+
+2011-07-20 08:51  source
+
+	* Fixed problems with big tokens
+
+2011-07-20 08:29  source
+
+	* Added support for dumping v5 in v6 log format
+
+2011-07-20 00:01  source
+
+	* Reverted merge from wrong branch
+
+2011-07-19 23:58  source
+
+	* Fixed DV_RDF serialization
+
+2011-07-19 23:43  source
+
+	* Fixed small issue for single engine
+
+2011-07-19 23:40  source
+
+	* Added new aggregate DB.DBA.GROUP_DIGEST which makes it possible
+	  to return part of big output of DB.DBA.GROUP_CONCAT without
+	  running out of row length limits
+
+2011-07-19 23:38  source
+
+	* Added support to call XPath/XQuery functions in SPARQL
+	* Added bif functions xpath_funcall and xpath_apply
+
+2011-07-19 23:34  source
+
+	* Fixed moved macros isdatechar, isfloatchar and inplainURIchar
+
+2011-07-19 23:33  source
+
+	* Added option 'exec_as_get' to http map
+	* Added support for SPARQL Graph CRUD
+
+2011-07-19 23:30  source
+
+	* Added function isfinitenumeric()
+
+2011-07-19 23:30  source
+
+	* Fixed memleak
+
+2011-07-19 23:29  source
+
+	* Fixed compiler warnings
+
+2011-07-19 23:27  source
+
+	* Added optimized codegen for built-in aggregate functions
+
+2011-07-19 23:26  source
+
+	* Fixed DV_RDF serializationo
+	* Added upgrade procedure for RDF_QUAD
+
+2011-07-19 19:36  source
+
+	* Added generic function to describe objects
+	* Fixed check to see if ssl is in effect
+	* Fixed use proper case as sparql is always using quoted identifiers
+
+2011-07-19 19:27  source
+
+	* Fixed bug in endpoint setting persistence
+	* Fixed visibility of pager in navigator
+	* Improved recovery from some proxy-AJAX-related errors
+
+2011-07-19 19:25  source
+
+	* Changed handling of anchors in map bubbles
+
+2011-07-15 11:17  source
+
+	* Added missing opl:provided by property
+
+2011-07-15 11:16  source
+
+	* Added option to set site logo in banner text
+	* Added new serialization format examples
+
+2011-07-15 11:15  source
+
+	* Added Seevl cartridge
+	* Added Guardian cartridge
+
+2011-07-15 11:15  source
+
+	* Fixed minor issue
+
+2011-07-15 11:07  source
+
+	* Added new export formats
+
+2011-07-15 11:06  source
+
+	* Added generation of CV from LinkedIn using the oplcv ontology
+
+2011-07-15 11:05  source
+
+	file guardian2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-07-15 11:15:47 +0000
+
+2011-07-15 11:05  source
+
+	file seevl2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-07-15 11:15:47 +0000
+
+2011-07-15 11:02  source
+
+	* Added OpenLink CV/Resume ontology
+
+2011-07-15 11:02  source
+
+	file oplcv.owl was added on branch V6_0_0-DEVEL on 2011-07-15 11:14:01 +0000
+
+2011-07-14 19:14  source
+
+	* Fixed use the actual length of the string in cli_utf82narrow not max len
+
+2011-07-13 19:09  source
+
+	* Added check for cert
+
+2011-07-12 14:46  source
+
+	* Fixed extra debugging
+
+2011-07-08 13:44  source
+
+	* Merged first part of V7
+
+2011-07-05 21:09  source
+
+	* Fixed GPF as stmt not available at this point
+
+2011-07-04 09:59  source
+
+	* Fixed XML escape data
+	* Fixed issues with mail addresses and encrypted mails
+
+2011-07-04 09:57  source
+
+	* Added header and head links for IRIs
+
+2011-07-04 09:56  source
+
+	* Added header and head procedures for IRI URLs
+	* Added new ODS rewrite rules
+	* Fixed get CA from connection if not set
+	* Fixed ACL using patterns
+	* Fixed default cert login
+	* FIxed take relevant webid
+	* Fixed Offers
+
+2011-07-04 09:54  source
+
+	* Added LinkedIn cartridge
+	* Added linkedIn access token
+	* Added Zoopla cartridge
+	* Added new pattern for Eventbrite
+	* Added support for acct scheme
+	* Adjustments to OpenGraph RDF mappings and additions to OpenGraph ontology
+	* Fixed Yelp cartridge
+	* Fixed minor issuesdded additional checks for RDFa
+	* Fixed use origin as a base, not graph
+	* Fixed protection against bad datetime offsets returned by OpenGraph
+
+2011-07-04 09:33  source
+
+	* Added loading NS prefixes into IRIDB through virtuoso defaults page
+
+2011-07-04 09:31  source
+
+	file linkedin2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-07-04 09:54:06 +0000
+
+2011-07-04 09:31  source
+
+	file linkedin_access_token.vsp was added on branch V6_0_0-DEVEL on 2011-07-04 09:54:05 +0000
+
+2011-07-04 09:31  source
+
+	file opllinkedin.owl was added on branch V6_0_0-DEVEL on 2011-07-04 09:54:04 +0000
+
+2011-07-04 09:31  source
+
+	file zoopla2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-07-04 09:54:06 +0000
+
+2011-06-29 10:10  source
+
+	* Fixed cannot perform file_stat as it runs on a different node
+
+2011-06-27 19:45  source
+
+	* Added nsprefix and rulelist pages
+
+2011-06-27 11:24  source
+
+	* Fixed do not perform keyset update on non pk ref
+
+2011-06-24 19:05  source
+
+	* Added initial support for HTML+Microformat, Microformat/JSON and
+	  JSON-LD output formats
+
+2011-06-24 11:25  source
+
+	* Added result type detection
+	* Fixed SVG capability detection
+
+2011-06-24 11:25  source
+
+	* Fixed .isparql serialization in FF4 and IE9
+
+2011-06-24 11:24  source
+
+	* Fixed JSON output for native parsers
+
+2011-06-24 11:22  source
+
+	* Added prefix for http://www.w3.org/2002/07/owl# (owl:)
+	* Added prefix for http://www.openlinksw.com/schemas/rdfs/ (oplrdfs:)
+	* Fixed prefix handling in IRIDB, rdfstore and rdftabs
+
+2011-06-24 11:20  source
+
+	* Fixed MSIE detection in opacity anim
+
+2011-06-24 11:20  source
+
+	* Fixed handling of decoding url values with + instead of spaces
+
+2011-06-22 13:30  source
+
+	* Fixed no not crash when key is empty
+
+2011-06-22 13:29  source
+
+	* Fixed check for NULL pred
+
+2011-06-21 18:11  source
+
+	* Fixed make sure all required dfe are placed before making a decision
+
+2011-06-20 19:27  source
+
+	* Fixed replay as we need to take into account non txn mode
+
+2011-06-20 19:25  source
+
+	* Fixed memory leak
+
+2011-06-20 14:15  source
+
+	* Fixed cast to uint32 instead of long as this is a serialized type
+
+2011-06-17 15:21  source
+
+	* Fixed when sas, O is considered to be an iri
+
+2011-06-17 15:20  source
+
+	* Fixed if result is empty but input is same variable as input then
+	  pesumable we have distinct and have to send input
+
+2011-06-17 00:11  source
+
+	* Fixed placement of ifdef
+
+2011-06-16 22:53  source
+
+	* Added check for errors on bitmap insert
+
+2011-06-13 14:25  source
+
+	* Fixed if too many cursors, do not crash server, just kill txn
+
+2011-06-13 09:31  source
+
+	* Fixed "delayed" filters like
+	  ?x p1 ?o1 ; p2 ?o2 . optional { ... } . filter (?o1 = ?o2)
+
+2011-06-13 09:29  source
+
+	* Added function to backup index to log
+
+2011-06-11 16:41  source
+
+	* Added support for SQLQUERY syntax in declaration of RDF views
+	* Fixed SQL codegen bug in SPARQL queries of R2RML rewriter
+
+2011-06-11 16:39  source
+
+	* Fixed issue with variable argument list
+
+2011-06-11 16:28  source
+
+	* Fixed fill can get out of bounds
+
+2011-06-10 22:45  source
+
+	* Fixed disable debug code from standard binary
+
+2011-06-10 22:44  source
+
+	* Fixed skip rules which perform http redirect when doing a POST
+
+2011-06-10 21:39  source
+
+	* Fixed check if instance has trx and it has thread, else we do not
+	  run
+
+2011-06-09 17:41  source
+
+	* Fixed problem with non-existing item and get API function
+	* Fixed myA JS error
+
+2011-06-09 17:39  source
+
+	* Added tooltop for 'Language' property
+	* Fixed 'My Offers' typo
+	* Fixex get CA from connection if not set
+	* Fixed myA JS error
+	* Fixed error message
+	* Fixed check name when uload private key
+
+2011-06-09 17:26  source
+
+	* Fixed crash when trying to unbox non-boxed item from tree
+
+2011-06-09 15:32  source
+
+	* Added sponger splash page
+
+2011-06-09 15:29  source
+
+	file linked_data_gen_opts3a.png was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:38 +0000
+
+2011-06-09 15:29  source
+
+	file linkeddata.jpg was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:38 +0000
+
+2011-06-09 15:29  source
+
+	file linkedin.jpg was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:38 +0000
+
+2011-06-09 15:29  source
+
+	file openlinklogo_wstrap_2008_100h.png was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:38 +0000
+
+2011-06-09 15:29  source
+
+	file sponger_frontpage.css was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:38 +0000
+
+2011-06-09 15:29  source
+
+	file twitter.jpg was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:38 +0000
+
+2011-06-09 15:29  source
+
+	file webfinger.png was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:38 +0000
+
+2011-06-09 15:29  source
+
+	file webid_icon.png was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:38 +0000
+
+2011-06-09 15:29  source
+
+	file cartridge_config.jpg was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:37 +0000
+
+2011-06-09 15:29  source
+
+	file delicious.png was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:37 +0000
+
+2011-06-09 15:29  source
+
+	file facebook_icon.jpg was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:37 +0000
+
+2011-06-09 15:29  source
+
+	file flickr.jpg was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:37 +0000
+
+2011-06-09 15:29  source
+
+	file google.jpg was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:37 +0000
+
+2011-06-09 15:29  source
+
+	file help_button.gif was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:38 +0000
+
+2011-06-09 15:29  source
+
+	file sponge_uri.vsp was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:37 +0000
+
+2011-06-09 15:29  source
+
+	file sponger_architecture.vsp was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:37 +0000
+
+2011-06-09 15:29  source
+
+	file sponger_setup.vsp was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:37 +0000
+
+2011-06-09 15:29  source
+
+	file examples.vsp was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:36 +0000
+
+2011-06-09 15:29  source
+
+	file fb_access_token_popup.vsp was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:36 +0000
+
+2011-06-09 15:29  source
+
+	file index.vsp was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:36 +0000
+
+2011-06-09 15:29  source
+
+	file jquery.js was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:36 +0000
+
+2011-06-09 15:29  source
+
+	file sponge_flickr.vsp was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:36 +0000
+
+2011-06-09 15:29  source
+
+	file sponge_social_profile.vsp was added on branch V6_0_0-DEVEL on 2011-06-09 15:35:37 +0000
+
+2011-06-09 15:29  source
+
+	* Added sponger splash page
+	* Fixed minor issues
+
+2011-06-09 13:27  source
+
+	* Added option to enable/disable ?P statistics
+
+2011-06-09 13:25  source
+
+	* FIxed added option to enable/disable ?P statistics
+
+2011-06-09 13:24  source
+
+	* Fixed memory leak
+
+2011-06-07 18:53  source
+
+	* Fixed compiler warning
+
+2011-06-07 18:52  source
+
+	* Added new functions
+
+2011-06-07 18:51  source
+
+	* Fixed if cannot ensure sas then return proper error not null
+
+2011-06-07 12:30  source
+
+	* Fixed print ins options
+
+2011-06-07 12:29  source
+
+	* Fixed issue with int32 stats
+
+2011-06-06 08:06  source
+
+	* Added function to create certificate from CSR
+
+2011-06-06 08:02  source
+
+	* Fixed memory leaks
+
+2011-06-03 15:13  source
+
+	* Fixed memory leak
+
+2011-06-02 12:32  source
+
+	* Fixed bad URL in typeahead.css
+	* Fixed issue with external ccount creation
+	* Fixed WebDAV selection
+
+2011-06-02 12:25  source
+
+	* Fixed iCalendar parser
+
+2011-06-02 12:24  source
+
+	* Added daylight saving time
+	* Fixed issue with validation
+	* Fixed WebDAV selection
+
+2011-06-02 12:22  source
+
+	* Fixed WebDAV selection
+
+2011-06-02 12:22  source
+
+	* Fixed issue with validation
+	* Fixed WebDAV selection
+
+2011-06-02 12:21  source
+
+	* Fixed issue with validation
+	* Fixed WebDAV selection
+	* Fixed uninstall some views
+
+2011-06-02 12:20  source
+
+	* Added user's rewrite rules
+	* Added WebID verify service
+
+2011-06-02 12:20  source
+
+	file webid_verify.vsp was added on branch V6_0_0-DEVEL on 2011-06-02 12:34:01 +0000
+
+2011-06-02 12:08  source
+
+	* Added ProgrammableWeb cartridge
+
+2011-06-02 12:08  source
+
+	file programmableweb2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-06-02 12:30:21 +0000
+
+2011-06-02 12:08  source
+
+	* Fixed minor issue
+
+2011-06-02 11:18  source
+
+	* Fixed check vdb col for nullable
+
+2011-06-01 09:20  source
+
+	* Fixed signal error instead of GPF in normal build
+
+2011-05-31 15:34  source
+
+	* Fixed set rehash factor if expecting large number of inserts in hash
+
+2011-05-31 15:33  source
+
+	* Added function for CSR generation
+
+2011-05-31 15:32  source
+
+	* Fixed use max number to avoid buffer overrun
+
+2011-05-30 20:19  source
+
+	* Fixed translation from nodeiD://xxx to _:xxx
+
+2011-05-30 20:17  source
+
+	* Fixed issue with cost based optimizer
+
+2011-05-24 18:57  source
+
+	* Fixed when iri exceeds 2KB limit and flag is enabled then shorten
+	  the iri, instead of rejecting it
+
+2011-05-24 18:56  source
+
+	* Fixed loop so it only uses local files
+
+2011-05-23 13:44  source
+
+	* Added initial support for SPARQL 1.1. build-in IF and COALISCE
+
+2011-05-23 11:24  source
+
+	* Fixed minor issue
+
+2011-05-23 11:23  source
+
+	* Fixed LastFM cartridge
+
+2011-05-23 09:02  source
+
+	* Added support for CREATE LITERAL CLASS "format string" ...
+
+2011-05-20 16:20  source
+
+	* Fixed WebID selection
+
+2011-05-20 16:20  source
+
+	* Fixed use certificate to verify the signature as an option
+	* Fixed use ldap&webid login
+
+2011-05-20 16:11  source
+
+	* Fixed add sponger ACL when installed
+
+2011-05-20 12:01  source
+
+	* Fixed comments
+
+2011-05-20 12:00  source
+
+	file webid_check.vsp was added on branch V6_0_0-DEVEL on 2011-05-20 12:02:32 +0000
+
+2011-05-20 12:00  source
+
+	* Added support for WebID idp
+	* Fixed WebID selection
+
+2011-05-20 11:51  source
+
+	* Added csv bulk loader script
+
+2011-05-20 11:46  source
+
+	* Fixed CSV import failed importing NULL values
+
+2011-05-20 11:44  source
+
+	* Fixed dav_enable should not be touched for dba account
+
+2011-05-19 18:32  source
+
+	* Fixed NULL value is not an error in lax mode
+
+2011-05-19 18:22  source
+
+	* Fixed wrong arg
+
+2011-05-19 13:34  source
+
+	* Added ldap schema support to WebID
+
+2011-05-19 13:15  source
+
+	* Added version and timeout argument
+
+2011-05-19 13:11  source
+
+	* Fixed duplicate symbol
+
+2011-05-19 10:17  source
+
+	* Fixed API contact edit function
+
+2011-05-19 09:58  source
+
+	* Fixed compiler warning
+
+2011-05-19 09:57  source
+
+	* Fixed add user to bootstrap as it can run procs in this context
+
+2011-05-18 21:15  source
+
+	* Fixed SIOC object services
+
+2011-05-18 21:12  source
+
+	* Fixed install/uninstall bugs
+
+2011-05-18 09:19  source
+
+	* Added Eventbrite cartridge
+	* Fixed guard against using revoked long-lived FB access token
+
+2011-05-18 09:10  source
+
+	* Added instructions on revoking access tokens to FB on retrieval
+	  confirmation page
+
+2011-05-18 09:09  source
+
+	* Fixed issue with properties
+
+2011-05-18 09:06  source
+
+	file eventbrite2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-05-18 09:19:11 +0000
+
+2011-05-18 09:01  source
+
+	* Added Upcoming cartridge
+	* Added Plancast cartridge
+	* Fixed use labels by default
+	* Fixed remove pro
+	* Fixed minor issues
+
+2011-05-17 22:53  source
+
+	* Added SIOC object services
+	* Fixed problem with edit command and Wiki version folders
+	* Fixed version history properties
+	* Fixed move/copy API with wrong source/destination
+	* Fixed problems with WebID
+
+2011-05-17 22:51  source
+
+	* Added SIOC object services
+	* Fixed IE JS problems
+	* Fixed UI bug
+
+2011-05-17 22:50  source
+
+	* Added SIOC object services
+	* Fixed changing/deleting events does not trigger re-sync with publication
+	* Fixed import/export bug
+	* Fixed IE JS problems
+
+2011-05-17 22:48  source
+
+	* Added SIOC object services
+	* Added annotation rules
+	* Fixed navigation and UI
+	* Fixed css
+	* Fixed IE bug
+	* Fixed UI bug
+
+2011-05-17 22:46  source
+
+	* Added SIOC object services
+	* Fixed IE bug
+	* Fixed UI bug
+
+2011-05-17 22:45  source
+
+	* Fixed IE JS problems
+	* Fixed UI bugs
+
+2011-05-17 22:44  source
+
+	* Added SIOC object services
+
+2011-05-17 22:43  source
+
+	* Fixed issue with Wiki after delete and restore VVC folder
+
+2011-05-17 22:42  source
+
+	* Added SIOC object services
+	* Fixed a++
+
+2011-05-17 21:14  source
+
+	* Fixed compiler warnings
+
+2011-05-17 14:06  source
+
+	* Added optimization for %g specifier for "Decimal" types in RDFViews
+
+2011-05-17 13:51  source
+
+	* Rebuild drivers
+
+2011-05-17 13:48  source
+
+	* Added function to get/set Query timeout (default = 0 = unlimited)
+
+2011-05-16 23:12  source
+
+	file upcoming2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-05-18 09:01:49 +0000
+
+2011-05-16 09:04  source
+
+	* Added initial support for SPARQL 1.1 Graph Store HTTP Protocol
+
+2011-05-16 08:51  source
+
+	* Fixed usage of http_request_header
+	* Fixed useage of last modified
+
+2011-05-16 08:50  source
+
+	* Fixed empty subject
+	* Fixed WebID selection
+	* Fixed problem with certificate generation using Safari on windows
+	* Fixed topic of interests
+	* Fixed a++
+
+2011-05-16 08:42  source
+
+	file plancast2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-05-18 09:01:49 +0000
+
+2011-05-16 08:35  source
+
+	* Fixed setting name
+
+2011-05-16 08:34  source
+
+	* Fixed entry page for sponged Facebook user's profile to top level
+	  container document
+
+2011-05-12 20:53  source
+
+	* Fixed compiler warning
+
+2011-05-12 20:53  source
+
+	* Added more system unames
+
+2011-05-11 14:49  source
+
+	* Fixed small issue
+
+2011-05-11 13:32  source
+
+	* Fixed issue compiling zip support on Mac OS X
+
+2011-05-11 13:19  source
+
+	* Fixed typo in Content-Type header
+
+2011-05-11 13:15  source
+
+	* Added missing file
+
+2011-05-11 13:11  source
+
+	* Fixed rdf_sink is not a DET
+
+2011-05-11 13:09  source
+
+	* Added more parameters for crawling
+	* Fixed top proc must run as dba
+	* Fixed use array for values
+
+2011-05-11 09:39  source
+
+	* Added WebID support to dynares
+	* Added optional async mode for dav meta extraction
+
+2011-05-11 08:08  source
+
+	* Added missing files
+
+2011-05-10 18:57  source
+
+	* Fixed write processing status to sponger queue
+	* Fixed access tokens for OpenGraph cartridge save/restore from table
+	  instead of the API key
+
+2011-05-10 18:43  source
+
+	* Fixed access tokens for OpenGraph cartridge save/restore from table
+	  instead of the API key
+
+2011-05-10 18:42  source
+
+	* Fixed minor issues
+
+2011-05-10 18:40  source
+
+	* Fixed disabled pg_check_map by default to make cpt faster
+
+2011-05-10 18:37  source
+
+	* Fixed disable pg_check_map by default to make cpt faster
+
+2011-05-10 12:20  source
+
+	* Fixed myust set sl_owner before cpt_rollback in order to know which
+	  thread owns the process, otherwise other threads may wrongly go
+	  inside the wait_checkpoint
+
+2011-05-10 12:18  source
+
+	* Added initial support for B.C. datetimes
+	* Added new functions to convert datetime from/to NASA Truncated
+	  Julian Day
+	* Fixed bug in date2num and num2date
+
+2011-05-09 12:06  source
+
+	* Fixed internal error in sparql_detalize on SPARUL statement
+
+2011-05-09 12:05  source
+
+	* Added new statistic counters
+
+2011-05-08 22:24  source
+
+	* Added GROUP_CONCAT and SAMPLE
+
+2011-05-08 22:23  source
+
+	* Added common function to set certificate server-side
+
+2011-05-08 22:18  source
+
+	* Added option to use certificates stored in the db
+
+2011-05-06 11:34  source
+
+	* Fixed call to sponger status procedure
+
+2011-05-05 12:55  source
+
+	* Fixed do not use aq if in sponger queue
+
+2011-05-05 12:54  source
+
+	* Fixed print literals with meta info only when html is requested
+
+2011-05-03 18:00  source
+
+	* Fixed workaround for missing offers
+
+2011-05-03 18:00  source
+
+	* Fixed minor issue
+
+2011-05-03 17:55  source
+
+	* Fixed compiling on VC10
+
+2011-05-03 17:51  source
+
+	* Fixed function signature for windows build
+
+2011-05-03 17:50  source
+
+	* Fixed error checking
+
+2011-05-03 14:03  source
+
+	* Added check for native JSON serializer/deserializer when available
+	* Fixed detection of buggy XML serializer in IE9
+	* Fixed MSIE detection
+	* Fixed SVG detection in OAT.Browser
+
+2011-05-03 11:50  source
+
+	* Fixed set rehash pct
+
+2011-05-03 11:15  source
+
+	* Fixed SPARQL OPTIONAL keyword sometimes causing queries to not
+	  return graph matches
+
+2011-05-02 14:16  source
+
+	* Added app discussion rules
+	* Added annotation rules
+	* Added common css
+	* Fixed navigation and standardize UI
+	* Fixed updating external URIs access rights in UI profile
+	* Fixed missing webfinger lookup
+	* Fixed OpenId not registered id message
+	* Fixed user selection page size
+	* Fixed popup windows
+	* Fixed security tab
+
+2011-05-02 14:09  source
+
+	* Added support for social bookmarking
+	* Fixed use 404 when no data is found
+	* Fixed links in footer
+	* Fixed escape the single quote char
+
+2011-05-02 14:06  source
+
+	* Fixed labels
+
+2011-05-02 14:02  source
+
+	* Fixed links
+
+2011-05-02 12:48  source
+
+	* Fixed popup windows
+
+2011-05-02 12:44  source
+
+	* Added annotation rules
+	* Added discussion IRIs
+	* Fixed navigation and standardize UI
+	* Fixed popup windows
+
+2011-05-02 12:43  source
+
+	file common.css was added on branch V6_0_0-DEVEL on 2011-05-02 14:16:01 +0000
+
+2011-05-02 12:30  source
+
+	* Added option to obtain a Facebook OAuth access token for use with
+	  sponger cartridge
+	* Fixed group export and delete of crawling targets
+	* Fixed crawling feeds, parameters for crawling
+	* Fixed disable config if no https
+	* Fixed shorten queue description
+
+2011-05-02 12:30  source
+
+	file fb_access_token_popup.vsp was added on branch V6_0_0-DEVEL on 2011-05-02 14:13:40 +0000
+
+2011-05-02 12:22  source
+
+	file google_store2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-05-02 14:10:54 +0000
+
+2011-05-02 12:22  source
+
+	file gowalla2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-05-02 14:10:54 +0000
+
+2011-05-02 12:22  source
+
+	* Added Gowalla cartridge
+	* Added Productontology
+	* Added Google Product
+	* Updated Facebook cartridge with multiple access tokens
+	* Fixed do not print empty container string if there is no name
+
+2011-05-02 08:24  source
+
+	* Fixed col_default to be same dtp as col_dtp to prevent default value
+	  misuse
+
+2011-05-02 08:23  source
+
+	* Fixed wrong deref of default int value
+
+2011-04-29 11:56  source
+
+	* Fixed when redirect is to secure site, setup the appropriate flags
+
+2011-04-26 12:16  source
+
+	* Fixed loading TriG
+
+2011-04-26 12:14  source
+
+	* Fixed loading NQuads
+
+2011-04-26 12:13  source
+
+	* Fixed check webid only if not uathenticated
+
+2011-04-21 13:09  source
+
+	* Added session counters for read/write/seek on gzip file
+
+2011-04-21 11:42  source
+
+	file README-WIN32.txt was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:13 +0000
+
+2011-04-21 11:42  source
+
+	file watcom_f.mak was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:13 +0000
+
+2011-04-21 11:42  source
+
+	file watcom_l.mak was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:13 +0000
+
+2011-04-21 11:42  source
+
+	file zlib.dsw was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:12 +0000
+
+2011-04-21 11:42  source
+
+	file README.txt was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:12 +0000
+
+2011-04-21 11:42  source
+
+	file bndsrc was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:11 +0000
+
+2011-04-21 11:42  source
+
+	file compile.clp was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:11 +0000
+
+2011-04-21 11:42  source
+
+	file example.dsp was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:12 +0000
+
+2011-04-21 11:42  source
+
+	file minigzip.dsp was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:12 +0000
+
+2011-04-21 11:42  source
+
+	file readme.txt was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:12 +0000
+
+2011-04-21 11:42  source
+
+	file zlib.dsp was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:12 +0000
+
+2011-04-21 11:42  source
+
+	file zlib.inc was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:12 +0000
+
+2011-04-21 11:42  source
+
+	file README was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:11 +0000
+
+2011-04-21 11:41  source
+
+	file algorithm.txt was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:09 +0000
+
+2011-04-21 11:41  source
+
+	file enough.c was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:10 +0000
+
+2011-04-21 11:41  source
+
+	file rfc1950.txt was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:10 +0000
+
+2011-04-21 11:41  source
+
+	file rfc1951.txt was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:10 +0000
+
+2011-04-21 11:41  source
+
+	file rfc1952.txt was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:10 +0000
+
+2011-04-21 11:41  source
+
+	file txtvsbin.txt was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:10 +0000
+
+2011-04-21 11:41  source
+
+	file zlibvc.vcproj was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:09 +0000
+
+2011-04-21 11:41  source
+
+	file miniunz.vcproj was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:08 +0000
+
+2011-04-21 11:41  source
+
+	file minizip.vcproj was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:09 +0000
+
+2011-04-21 11:41  source
+
+	file testzlib.vcproj was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:09 +0000
+
+2011-04-21 11:41  source
+
+	file testzlibdll.vcproj was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:09 +0000
+
+2011-04-21 11:41  source
+
+	file zlib.rc was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:09 +0000
+
+2011-04-21 11:41  source
+
+	file zlibstat.vcproj was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:09 +0000
+
+2011-04-21 11:41  source
+
+	file zlibvc.def was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:09 +0000
+
+2011-04-21 11:41  source
+
+	file zlibvc.sln was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:09 +0000
+
+2011-04-21 11:41  source
+
+	file zlibvc.sln was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:07 +0000
+
+2011-04-21 11:41  source
+
+	file zlibvc.vcxproj was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:07 +0000
+
+2011-04-21 11:41  source
+
+	file zlibvc.vcxproj.filters was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:08 +0000
+
+2011-04-21 11:41  source
+
+	file zlibvc.vcxproj.user was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:08 +0000
+
+2011-04-21 11:41  source
+
+	file testzlibdll.vcxproj was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:06 +0000
+
+2011-04-21 11:41  source
+
+	file testzlibdll.vcxproj.filters was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:07 +0000
+
+2011-04-21 11:41  source
+
+	file testzlibdll.vcxproj.user was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:07 +0000
+
+2011-04-21 11:41  source
+
+	file zlib.rc was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:07 +0000
+
+2011-04-21 11:41  source
+
+	file zlibstat.vcxproj was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:07 +0000
+
+2011-04-21 11:41  source
+
+	file zlibstat.vcxproj.filters was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:07 +0000
+
+2011-04-21 11:41  source
+
+	file zlibstat.vcxproj.user was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:07 +0000
+
+2011-04-21 11:41  source
+
+	file zlibvc.def was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:07 +0000
+
+2011-04-21 11:41  source
+
+	file miniunz.vcxproj.filters was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:06 +0000
+
+2011-04-21 11:41  source
+
+	file miniunz.vcxproj.user was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:06 +0000
+
+2011-04-21 11:41  source
+
+	file minizip.vcxproj was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:06 +0000
+
+2011-04-21 11:41  source
+
+	file minizip.vcxproj.filters was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:06 +0000
+
+2011-04-21 11:41  source
+
+	file minizip.vcxproj.user was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:06 +0000
+
+2011-04-21 11:41  source
+
+	file testzlib.vcxproj was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:06 +0000
+
+2011-04-21 11:41  source
+
+	file testzlib.vcxproj.filters was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:06 +0000
+
+2011-04-21 11:41  source
+
+	file testzlib.vcxproj.user was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:06 +0000
+
+2011-04-21 11:41  source
+
+	file miniunz.vcxproj was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:05 +0000
+
+2011-04-21 11:41  source
+
+	file MiniZip64_Changes.txt was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:04 +0000
+
+2011-04-21 11:41  source
+
+	file MiniZip64_info.txt was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:04 +0000
+
+2011-04-21 11:41  source
+
+	file make_vms.com was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:04 +0000
+
+2011-04-21 11:41  source
+
+	file match686.asm was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:04 +0000
+
+2011-04-21 11:41  source
+
+	file gvmat64.S was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:02 +0000
+
+2011-04-21 11:41  source
+
+	file amd64-match.S was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:01 +0000
+
+2011-04-21 11:41  source
+
+	file zconf.h.cmakein was added on branch V6_0_0-DEVEL on 2011-04-21 11:42:59 +0000
+
+2011-04-21 11:41  source
+
+	file zconf.h.in was added on branch V6_0_0-DEVEL on 2011-04-21 11:42:59 +0000
+
+2011-04-21 11:41  source
+
+	file zlib.3.pdf was added on branch V6_0_0-DEVEL on 2011-04-21 11:42:59 +0000
+
+2011-04-21 11:41  source
+
+	file zlib.map was added on branch V6_0_0-DEVEL on 2011-04-21 11:42:59 +0000
+
+2011-04-21 11:41  source
+
+	file zlib.pc.in was added on branch V6_0_0-DEVEL on 2011-04-21 11:42:59 +0000
+
+2011-04-21 11:41  source
+
+	file zlib2ansi was added on branch V6_0_0-DEVEL on 2011-04-21 11:43:00 +0000
+
+2011-04-21 11:41  source
+
+	file gzwrite.c was added on branch V6_0_0-DEVEL on 2011-04-21 11:42:58 +0000
+
+2011-04-21 11:41  source
+
+	file treebuild.xml was added on branch V6_0_0-DEVEL on 2011-04-21 11:42:58 +0000
+
+2011-04-21 11:41  source
+
+	file gzclose.c was added on branch V6_0_0-DEVEL on 2011-04-21 11:42:57 +0000
+
+2011-04-21 11:41  source
+
+	file gzguts.h was added on branch V6_0_0-DEVEL on 2011-04-21 11:42:57 +0000
+
+2011-04-21 11:41  source
+
+	file gzlib.c was added on branch V6_0_0-DEVEL on 2011-04-21 11:42:58 +0000
+
+2011-04-21 11:41  source
+
+	file gzread.c was added on branch V6_0_0-DEVEL on 2011-04-21 11:42:58 +0000
+
+2011-04-21 11:41  source
+
+	* Upgraded to zlib 1.2.5
+
+2011-04-21 11:41  source
+
+	file CMakeLists.txt was added on branch V6_0_0-DEVEL on 2011-04-21 11:42:56 +0000
+
+2011-04-20 15:12  source
+
+	* FIxed hang or crash after cpt over
+
+2011-04-20 15:12  source
+
+	* Fixed disable dep cols check
+
+2011-04-20 15:11  source
+
+	* Added debug code to detect mutex hang on same thread
+
+2011-04-19 20:50  source
+
+	* Fixed lock status report
+
+2011-04-19 20:49  source
+
+	* Fixed key dep cols check for sample
+
+2011-04-19 16:16  source
+
+	* Fixed bad bnode syntax in output
+
+2011-04-19 16:15  source
+
+	* Added session read waits statistic
+
+2011-04-18 16:03  source
+
+	* Fixed default mode for sponger should be sync instead of async
+
+2011-04-18 16:03  source
+
+	* Fixed http_lock requires that maintenance page is set
+
+2011-04-18 16:02  source
+
+	* Added statistics on read/write/seek session via file/gzip counters
+
+2011-04-15 12:42  source
+
+	* Added deadlock retry handler
+	* Added support to use redirect and timeout options
+
+2011-04-15 12:39  source
+
+	* Added Foursquare cartridge
+	* Added Zappos cartridge
+	* Added enhancements to Facebook OpenGraph cartridge
+	* Fixed minor issues
+
+2011-04-15 12:33  source
+
+	* Added "Raw linked data format" permalinks
+	* Fixed CSS
+
+2011-04-15 12:05  source
+
+	* Fixed codegen for service invocation for case of IN parameter
+	  that is not bound in SINV subquery (used only in filter) and is
+	  neither external/global nor fixed in parent group pattern
+
+2011-04-15 12:04  source
+
+	* Fixed support for xsd:time() in sparql when the argument value
+	  is safe for SQL CASET instead of function call
+
+2011-04-14 12:09  source
+
+	file zappos2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-04-15 12:39:05 +0000
+
+2011-04-13 22:51  source
+
+	* Added initial variant for estimate taking dep cols in account
+	  (by default disabled)
+
+2011-04-13 22:50  source
+
+	* Added missing param for http_get
+
+2011-04-13 10:16  source
+
+	* Fixed if tf_xx signals an error, xn_children were released twice
+
+2011-04-12 18:29  source
+
+	* Fixed check bnode subject
+	* Fixed clear avalues array before possible jump
+	* Fixed compiler warnings
+
+2011-04-11 21:44  source
+
+	* Fixed do not report a frequent error re unescaped "&&" in <SCRIPT>
+	  HTML tag
+	* Fixed can jump over buffer boundary if you have an &xx not ending
+	  in a semicolon
+
+2011-04-11 21:42  source
+
+	file copy_16.png was added on branch V6_0_0-DEVEL on 2011-04-11 21:45:59 +0000
+
+2011-04-11 21:42  source
+
+	* Added option top copy/clone crawler target
+	* Added option for crawl-delay
+
+2011-04-11 21:39  source
+
+	* Added support for crawl-delay
+
+2011-04-11 21:01  source
+
+	* Fixed removed leading CRLF
+
+2011-04-11 21:01  source
+
+	* Fixed wrong function call
+	* Fixed bad inference tag
+
+2011-04-11 20:55  source
+
+	* Fixed error message in spar_find_sc_for_big_ssl_const
+
+2011-04-11 20:54  source
+
+	* Added support for RDFa 1.1
+
+2011-04-11 20:53  source
+
+	* Fixed compiler warnings
+
+2011-04-11 15:36  source
+
+	* Added DB.DBA.RDF_RDFA11_FETCH_PROFILES() to sponge and return
+	  RDFa 1.1 external profile data
+
+2011-04-11 15:35  source
+
+	* Added rdfa: namespace prefix
+
+2011-04-11 15:05  source
+
+	* Added w3-1999-xhtml/vocab for RDFa 1.1
+
+2011-04-11 12:40  source
+
+	file foursquare2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-04-15 12:39:04 +0000
+
+2011-04-11 12:40  source
+
+	file oplopengraph.owl was added on branch V6_0_0-DEVEL on 2011-04-15 12:39:03 +0000
+
+2011-04-11 09:15  source
+
+	* Fxed issue with rdf_type attr
+
+2011-04-11 08:28  source
+
+	* Fixed double free
+
+2011-04-11 08:27  source
+
+	* Added support for trig
+
+2011-04-11 08:27  source
+
+	* Fixed check if file is present on local fs
+
+2011-04-07 21:19  source
+
+	* Added function to validate rdfxml
+
+2011-04-07 21:17  source
+
+	* Fixed do not flush immediately, as client may ask for gzip later
+
+2011-04-07 21:16  source
+
+	* FIxed if bitmap error on a cursor, kill the transaction instead of GPF
+
+2011-04-07 11:11  source
+
+	* Fixed if process is swapping do not try to signal self as lock reaper
+	  may decide to kill this transaction where it may wait for select
+	  thread to run its signal function
+
+2011-04-06 12:09  source
+
+	* Fixed issue with multiple transitive subqueries in sql optimizer
+
+2011-04-06 12:01  source
+
+	* Fixed when doing subseq, session will return session handle, which
+	  needs to be converted to string
+
+2011-04-05 14:38  source
+
+	* Fixed issues with RDFa 1.1 test
+
+2011-04-05 14:37  source
+
+	* Fixed possible mutex deadlock
+
+2011-04-04 12:32  source
+
+	* Added support for javascript-like hrefs in RDFa
+
+2011-04-04 12:31  source
+
+	* Fixed when not a string, use a cast to string
+
+2011-04-04 12:31  source
+
+	* Fixed use mtx in proper order
+
+2011-03-31 21:33  source
+
+	* Fixed issues with RDFa parsing
+
+2011-03-31 21:32  source
+
+	* Added check for MacDataSourceSize with default of 20MB
+
+2011-03-29 23:20  source
+
+	* Updated version to 6.1.3 for final release
+
+2011-03-29 22:55  source
+
+	* Fixed do not check immutable graph when dba is running
+
+2011-03-29 22:52  source
+
+	* FIxed minor issue
+
+2011-03-29 22:52  source
+
+	* FIxed ACL
+
+2011-03-29 22:49  source
+
+	* Fixed minor issue with prices
+
+2011-03-29 22:46  source
+
+	* Fixed swapped menu items
+
+2011-03-29 22:43  source
+
+	* Fixed use INFORMATION_SCHEMA.TABLES
+
+2011-03-29 21:08  source
+
+	* Fixed menu layout
+
+2011-03-29 20:14  source
+
+	* Fixed JS IE bug on profile page
+	* Small code cleanup
+
+2011-03-29 14:06  source
+
+	* Fixed typo in Makefile.am
+
+2011-03-29 12:45  source
+
+	* Fixed put absolute path for database in default virtuoso.ini
+
+2011-03-29 11:02  source
+
+	* Added alt to images in rdftab
+
+2011-03-29 10:58  source
+
+	* Fixed tuned handling of page params
+	* Fixed permalinks now encode information of which editor was used
+	  to produce the query
+
+2011-03-29 10:53  source
+
+	* Fixed must return error when cast fails
+
+2011-03-29 10:53  source
+
+	* Fixed issue with sparql filter with two optionals
+
+2011-03-29 00:31  source
+
+	* FIxed issue locating jvm runtime library location on linux x86_64
+
+2011-03-29 00:09  source
+
+	* Fixed build issue when prerequisite support .jar files not present
+
+2011-03-28 23:11  source
+
+	* Fixed check for demo data before continuing
+
+2011-03-28 17:29  source
+
+	* Added configure option for enabling mutex debugging
+
+2011-03-28 16:04  source
+
+	* Fixed dependency for VOS
+
+2011-03-28 15:56  source
+
+	* Rolled back previous patch
+
+2011-03-28 13:52  source
+
+	* Added missing files to distribution
+
+2011-03-28 12:57  source
+
+	* Fixed minor layout issue
+
+2011-03-28 12:53  source
+
+	* Added support for posh triples
+
+2011-03-28 12:52  source
+
+	* Fixed labels
+
+2011-03-28 12:22  source
+
+	* Fixed allow varbinary as input for obj
+
+2011-03-26 14:22  source
+
+	* Fixed user's pages to start with profile page
+
+2011-03-26 14:21  source
+
+	* Fixed skin handling
+
+2011-03-25 21:33  source
+
+	* Updated version
+
+2011-03-25 17:47  source
+
+	* Fixed possible copy overlap on some newer C libs
+
+2011-03-25 16:23  source
+
+	* Fixed vcard handling
+
+2011-03-25 16:19  source
+
+	* Fixed encoding
+
+2011-03-25 15:10  source
+
+	* Updated testsuite
+
+2011-03-25 12:20  source
+
+	* Fixed if there is no subclass/property but there is an equivalent,
+	  then use that as the statrt point, otherwise we would not get a
+	  result
+
+2011-03-24 16:15  source
+
+	* Added bulk-loader to virtuoso binary
+
+2011-03-24 16:04  source
+
+	* Updated documentation
+
+2011-03-24 15:50  source
+
+	* Fixed do now use daq because rdf_label has two keys and soft
+	  does not work
+	* Fixed use labels if not curie or uri
+	* Fixed issue with recent dbpedia onthology
+	* Fixed labels
+	* Fixed auto-complete failed when exact match & prefix found
+
+2011-03-24 15:47  source
+
+	* Fixed use labels for IRIs only
+	* Fixed use special describe mode to avoid empty results
+	* Fixed error handling
+	* Fixed keep sas & inf
+	* Fixed bad encoding
+	* Fixed proper escape for uris
+	* Fixed wrong labels
+
+2011-03-24 13:48  source
+
+	* Fixed additional xml document parser error handling for Opera
+
+2011-03-23 16:45  source
+
+	* Added function to format rdf object for printing in html
+
+2011-03-23 12:25  source
+
+	* Fixed typo
+
+2011-03-23 12:17  source
+
+	* Added LinkedIn import
+	* Fixed duplicate addressbook entries issue
+
+2011-03-23 12:13  source
+
+	* Added rdfs schema
+	* Fixed datetime format
+	* Fixed minor issues
+
+2011-03-23 12:13  source
+
+	* Added more properties
+
+2011-03-23 12:13  source
+
+	* Fixed minor issues
+
+2011-03-23 12:03  source
+
+	* Added more options for exporting a site
+	* Added more delimiters
+	* Fixed folder DET type presentation
+	* Fixed export as text
+
+2011-03-23 12:01  source
+
+	* Fixed wrong serialization of VirtuosoExplicitString when it is
+	  binding with DV_ANY parameter
+
+2011-03-23 11:05  source
+
+	* Rebuild drivers
+
+2011-03-23 11:04  source
+
+	* Fixed issue with using _JAVA_ on sparql select
+
+2011-03-23 10:49  source
+
+	* Fixed duplicate addressbook entries issue
+
+2011-03-23 10:48  source
+
+	* Fixed broken show filter
+
+2011-03-23 10:48  source
+
+	* Fixed feeds aggregator
+
+2011-03-23 10:47  source
+
+	* Updated folder type list with 'Dynamic Resource'
+
+2011-03-23 10:37  source
+
+	* Added support for DV_RDF in v:isql rendering
+
+2011-03-23 10:35  source
+
+	* Added custom UA
+	* Fixed gunzip the zipped rdfs
+	* Fixed large pages in results
+
+2011-03-23 10:33  source
+
+	* Improved session persistence
+	* Fixed handling of XML+RDF parsing errors
+	* Fixed bugs in query cache handling/paging
+	* Fixed Cosmetics in "Raw triples" view
+	* Fixed Default view set as "Advanced" in query permalinks
+	* Fixed URL params handling so they always take precedence from
+	  persisted session
+	* Fixed bug in menu item to Reset session
+
+2011-03-23 10:28  source
+
+	* Added code to facilitate better error recovery when parsing
+	  invalid RDF+XML
+	* Fixed small code cosmetics
+
+2011-03-22 23:50  source
+
+	* Fixed missing globals
+
+2011-03-21 13:30  source
+
+	* Fixed missing variable initialization
+
+2011-03-21 10:44  source
+
+	* Fixed check if subselect has a recursive ref
+
+2011-03-18 10:51  source
+
+	* Fixed use new pages & disk reads to trigger the startup values
+
+2011-03-17 16:30  source
+
+	* Added lax mode in csv import
+
+2011-03-17 13:55  source
+
+	* Fixed when removing a join from outer's branches, do that repeatedly
+	  to remove all not needed. The recursion is done via sqlo_scope in
+	  order to get new labels for columns in select list, so process does
+	  not get confused by moving left part into FROM
+
+2011-03-17 13:53  source
+
+	* Fixed when compiling a shared query, we must have a reset context
+	  as it may jump from compiler outside of shared cache and leave
+	  a mutex locked, thus eventually can get hang
+
+2011-03-16 10:34  source
+
+	* Fixed issue with partial index when no path is followed
+
+2011-03-14 15:52  source
+
+	* Fixed return byte[] data from column with datatype = DV_ANY
+
+2011-03-14 15:47  source
+
+	* Fixed disable debug messages
+
+2011-03-14 15:46  source
+
+	* Fixed use dv_bin where needed like for dav-res
+
+2011-03-12 00:17  source
+
+	* Fixed increase delay on sequential deadlock
+
+2011-03-12 00:17  source
+
+	* Fixed labels
+
+2011-03-11 18:26  source
+
+	* Fixed use exclusive locks when doing sparul ops
+
+2011-03-11 13:08  source
+
+	* Fixed comment about missing io sect
+
+2011-03-11 13:08  source
+
+	* Added retry deadlock if session is not flushed
+
+2011-03-11 13:07  source
+
+	* Fixed do not do read ahead with less than 10k buffers available
+
+2011-03-11 12:17  source
+
+	* Fixed if no free buffer available, signal an error
+
+2011-03-11 11:28  source
+
+	* Fixed do not do read-ahead on extent map
+
+2011-03-10 23:24  source
+
+	* Added index to search over label text
+
+2011-03-09 16:41  source
+
+	* FIxed _java_ should not have effect on select
+
+2011-03-08 15:46  source
+
+	* Fixed labels in value side
+	* Fixed pages to pass W3C validator (mostly)
+	* Fixed check for integers
+	* FIxed xml excape will happen on <?V use
+
+2011-03-08 15:44  source
+
+	* Fixed hide value ranges option for now
+
+2011-03-08 15:43  source
+
+	* Fixed copyright year
+
+2011-03-08 14:32  source
+
+	* Added missing files to distribution
+
+2011-03-08 13:56  source
+
+	* Added workaround to tell _JAVA_ driver the input is string as it is
+	  confused on DV_ANY and breaks utf-8 support
+
+2011-03-08 13:44  source
+
+	* Added quick rule to check version string
+
+2011-03-08 13:44  source
+
+	* Rebuild driver
+
+2011-03-08 13:44  source
+
+	* Fixed only allow URI or Blank nodes as subjects
+
+2011-03-08 13:38  source
+
+	* Added additional crawler params
+	* Fixed show status without errors
+	* Fixed label
+
+2011-03-08 13:36  source
+
+	* Added Described By
+	* Added ProductWiki cartridge
+	* Fixed do not use triple dicts on long files
+	* Fixed OWL
+	* Fixed labels
+	* Fixed minor issues
+
+2011-03-08 13:24  source
+
+	* Updated to CKeditor version 3.5.2
+
+2011-03-08 13:08  source
+
+	* Added map markers for various types of things
+	* Added a smaller throbber animated gif
+	* Fixed resizing issue for mobile browsers
+	* Fixed bug in processing item title HREFs in map popup
+	* Fixed bugs in marker selection code using rtb:useMarker
+
+2011-03-08 12:48  source
+
+	* Fixed mime types
+	* Fixed mail rendering
+
+2011-03-08 12:47  source
+
+	* Fixed attendees
+
+2011-03-08 12:47  source
+
+	* Fixed Twitter and LinkedIn registration/login
+	* Fixed RDF object properties
+	* Fixed UI
+	* Fixed escape params
+	* Fixed scroll bars
+
+2011-03-08 12:44  source
+
+	file en.js was added on branch V6_0_0-DEVEL on 2011-03-08 13:24:39 +0000
+
+2011-03-08 12:35  source
+
+	* Added support for AddThis
+	* Added manual mode for entering location when automatic location fails
+	* Added more geocoding support
+	* Fixed location timeout to 10 sec
+	* Fixed location popup
+	* Fixed text when Javascript is not enabled
+	* Fixed bug in management of user settings
+	* Fixed bugs in session persistance
+
+2011-03-08 12:30  source
+
+	file football.png was added on branch V6_0_0-DEVEL on 2011-03-08 13:08:16 +0000
+
+2011-03-08 12:30  source
+
+	file house.png was added on branch V6_0_0-DEVEL on 2011-03-08 13:08:16 +0000
+
+2011-03-08 12:30  source
+
+	file info.png was added on branch V6_0_0-DEVEL on 2011-03-08 13:08:16 +0000
+
+2011-03-08 12:30  source
+
+	file mail.png was added on branch V6_0_0-DEVEL on 2011-03-08 13:08:16 +0000
+
+2011-03-08 12:30  source
+
+	file shield.png was added on branch V6_0_0-DEVEL on 2011-03-08 13:08:17 +0000
+
+2011-03-08 12:30  source
+
+	file shoppingcart.png was added on branch V6_0_0-DEVEL on 2011-03-08 13:08:17 +0000
+
+2011-03-08 12:30  source
+
+	file star.png was added on branch V6_0_0-DEVEL on 2011-03-08 13:08:17 +0000
+
+2011-03-08 12:30  source
+
+	file book.png was added on branch V6_0_0-DEVEL on 2011-03-08 13:08:16 +0000
+
+2011-03-08 12:30  source
+
+	file camera.png was added on branch V6_0_0-DEVEL on 2011-03-08 13:08:16 +0000
+
+2011-03-08 12:30  source
+
+	file car.png was added on branch V6_0_0-DEVEL on 2011-03-08 13:08:16 +0000
+
+2011-03-08 12:30  source
+
+	file coffee.png was added on branch V6_0_0-DEVEL on 2011-03-08 13:08:16 +0000
+
+2011-03-08 12:30  source
+
+	file creditcards.png was added on branch V6_0_0-DEVEL on 2011-03-08 13:08:16 +0000
+
+2011-03-08 12:30  source
+
+	file dollar.png was added on branch V6_0_0-DEVEL on 2011-03-08 13:08:16 +0000
+
+2011-03-08 12:30  source
+
+	file drink.png was added on branch V6_0_0-DEVEL on 2011-03-08 13:08:16 +0000
+
+2011-03-08 12:30  source
+
+	file throbber_small.gif was added on branch V6_0_0-DEVEL on 2011-03-08 13:08:15 +0000
+
+2011-03-08 12:24  source
+
+	* Fixed debug defines
+
+2011-03-08 12:19  source
+
+	* Added support for robots.txt
+
+2011-03-08 12:18  source
+
+	* Fixed update crawler entries using id and avoid table scans
+
+2011-03-08 11:52  source
+
+	* Fixed size of input buffer of an XML parser is now adaptive
+
+2011-03-08 10:38  source
+
+	* Updated version to 6.1.3-rc7
+
+2011-03-07 21:49  source
+
+	* Fixed when there is a gb node, test the sort node for dep part in
+	  the sort spec
+
+2011-03-07 12:48  source
+
+	file powder-s.owl was added on branch V6_0_0-DEVEL on 2011-03-08 13:36:27 +0000
+
+2011-03-05 00:03  source
+
+	* Updated documentation
+
+2011-03-04 14:46  source
+
+	* Fixed moved mutex lock/unlock calls to avoid deadlock
+
+2011-03-03 22:34  source
+
+	file productwiki2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-03-08 13:36:28 +0000
+
+2011-03-03 17:12  source
+
+	* Added read-ahead on extent
+
+2011-03-03 17:10  source
+
+	* Fixed immutable graph setting can be a pattern, so we can disable
+	  sponging on all graphs
+
+2011-03-03 11:56  source
+
+	* Fixed DATETIME to DATE conversions
+
+2011-03-02 12:24  source
+
+	* Fixed issue with special sparql variables
+
+2011-03-02 12:24  source
+
+	* Fixed issue with qualifier in SQLForeignKeys
+
+2011-03-01 19:35  source
+
+	* Fixed initialization of defaults
+
+2011-03-01 19:32  source
+
+	* Fixed set HTTP status to 503 when showing maintenance page and
+	  added a Retry-After: 1800 (seconds) header as a hint to the remote
+
+2011-02-28 17:02  source
+
+	* Fixed issue if data did not generate prefix2iri hash
+
+2011-02-28 13:47  source
+
+	* Fixed check for 5xx or 4xx status codes
+
+2011-02-26 08:35  source
+
+	* Added http maintenance functions
+
+2011-02-25 17:31  source
+
+	* Fixed only start from the beginning when there is a thread else we
+	  could get into a busy loop
+
+2011-02-23 21:35  source
+
+	* Fixed bad regexp
+
+2011-02-23 17:31  source
+
+	* Fixed size of input buffer of an XML parser is made adaptive
+
+2011-02-21 13:36  source
+
+	* Added support for named parameters
+
+2011-02-20 16:14  source
+
+	* Fixed increase the size of the input buffer of the TURTLE lexer
+	  for file resources, in order to improve disk access pattern if many
+	  resources are loaded in parallel
+
+2011-02-18 15:49  source
+
+	* Updated version to 6.1.3-rc6
+
+2011-02-18 15:49  source
+
+	* Fixed issue with scalar subq with SSG_VALMODE_NUM output as in TPCD
+
+2011-02-18 15:37  source
+
+	* Updated version
+
+2011-02-18 15:36  source
+
+	* Added language and type options for offers
+
+2011-02-18 15:32  source
+
+	* Fixed issues with map sizing
+
+2011-02-18 15:30  source
+
+	* Fixed rdftab height for maps
+
+2011-02-18 11:19  source
+
+	* Added initial codegen for ASK subquery
+	* Fixed issue with sponging options and DESCRIBE on /sparql endpoint
+
+2011-02-18 11:16  source
+
+	* Fixed "serialize" debugging output of many threads and label
+	  messages of different threads
+
+2011-02-18 11:14  source
+
+	* Added better support of "seealso" predicate in case of recursive
+	  sponging
+
+2011-02-18 10:37  source
+
+	* Fixed use mem pool to release all objects if an error occurs
+
+2011-02-18 10:24  source
+
+	* Regenerated drivers
+
+2011-02-18 10:24  source
+
+	* Fixed issue with closing XAConnection and connectionpool
+
+2011-02-17 15:23  source
+
+	* Fixed more log info
+
+2011-02-16 21:08  source
+
+	* Updated documentation
+
+2011-02-16 20:55  source
+
+	* Fixed iSPARQL icons placed on Home screen on iPhone/iPod now have the
+	  WebApp appearance (i.e. no URL bar, etc. controls.)
+	* Fixed a regression causing reappearance of Ubiq gem on non-firefox browsers
+	* Fixed missing message candlers for geocoding module
+	* Disabled buggy location UI absorbing into statusui
+	* Improved formatting of errors in response tab somewhat
+
+2011-02-16 20:53  source
+
+	* FIxed avoid long URLs to generate wacky error
+
+2011-02-16 20:51  source
+
+	* Fixed missing line
+
+2011-02-16 17:33  source
+
+	* Fixed offers SIOC data
+
+2011-02-16 17:33  source
+
+	file login_keys.vspx was added on branch V6_0_0-DEVEL on 2011-02-16 20:58:16 +0000
+
+2011-02-16 17:32  source
+
+	* Fixed if no svc and FF then show generator page
+
+2011-02-16 17:32  source
+
+	* Fixed typo
+
+2011-02-16 17:31  source
+
+	* Fixed missing case
+
+2011-02-16 17:25  source
+
+	* Fixed status controls
+
+2011-02-16 17:25  source
+
+	* Fixed proper position
+
+2011-02-16 17:20  source
+
+	* Added support for map marker URLs in OAT.RDFTabs.map
+	* Fixed OAT.RDFTab.map control height on iPhone
+	* Fixed bug causing OAT.RDFTABs.navigator layout flowing into footer
+	* Fixed navigator layout
+
+2011-02-16 17:16  source
+
+	* Fixed separate virtrdf:label into own file
+
+2011-02-16 17:16  source
+
+	file virt_rdf_label.sql was added on branch V6_0_0-DEVEL on 2011-02-16 20:53:22 +0000
+
+2011-02-16 17:08  source
+
+	* Fixed ADO.NET datatype handling
+	* Fixed null pointer exception
+
+2011-02-15 14:45  source
+
+	* Fixed memory leaks
+
+2011-02-15 14:11  source
+
+	* Fixed signal errors other than deadlock
+
+2011-02-15 14:05  source
+
+	* Fixed issues with --with-debug and setting CFLAGS
+
+2011-02-15 10:11  source
+
+	* Fixed missing prototype
+	* Fixed after free data_col make sure it is nil
+
+2011-02-14 13:05  source
+
+	* Updated version to 6.1.3-rc5
+
+2011-02-14 13:04  source
+
+	* Fixed certificates
+
+2011-02-14 13:03  source
+
+	* Fixed page load bug
+
+2011-02-14 13:03  source
+
+	* Added RSS and Atom imports
+
+2011-02-14 13:03  source
+
+	* Fixed issue with dashboard
+
+2011-02-14 13:03  source
+
+	* Fixed mail selection from private instances
+	* Fixed encrypted emails
+
+2011-02-14 12:51  source
+
+	* Added rudimentary geocoder support module
+	* Fixed endpoints options tolle menu
+	* Fixed title to "Sponger"
+	* Fixed header margins
+	* Fixed ordering of Sponger and Query Metadata
+	* Fixed location error handler failure to change aquire state
+	* Fixed statement help popup window
+
+2011-02-14 12:49  source
+
+	* Fixed try to resize map in a more mobile friendly way
+
+2011-02-14 12:48  source
+
+	* Added more properties to virtlabel ontology
+	* Fixed issues reported by W3C Validator
+
+2011-02-14 12:33  source
+
+	* Fixed compiler warnings on SOlaris with openssl 1.0
+
+2011-02-14 11:48  source
+
+	* Fixed when P is known get stats on it to make better decision on
+	  execution plan
+
+2011-02-14 11:48  source
+
+	* Fixed infinite loop when dealing with string like abc&def and no token
+
+2011-02-14 01:25  source
+
+	* Fixed dump all mem references before dying
+
+2011-02-14 01:14  source
+
+	* Fixed issue when client disconnects inside compile where no reset ctx
+
+2011-02-11 13:19  source
+
+	* Added ssl const decoration in explain
+
+2011-02-10 20:58  source
+
+	* Added new bif getenv
+
+2011-02-07 15:07  source
+
+	* Fixed attribution
+
+2011-02-04 15:36  source
+
+	* Added check for max number of elements
+
+2011-02-03 13:30  source
+
+	* Fixed check if there is dpipes to be placed before trans node
+
+2011-02-03 11:27  source
+
+	* Fixed when compiling statement with sparqre_qi == CALLER_LOCAL, do
+	  not pass this value to box_cast
+
+2011-02-03 10:32  source
+
+	* Fixed issue with namespace pollution in FireFox
+
+2011-02-03 10:30  source
+
+	* Added separate sponge and ack for rdf flags
+	* Fixed copyright year
+
+2011-02-03 10:29  source
+
+	* Added pure RDFa cartridge
+	* Fixed copyright year
+
+2011-02-03 10:28  source
+
+	* Fixed geolocation to automatically use a location if a minimum
+	  accuracy is reached. Default=500m
+	* Fixed creation of options in anchor which did not work with FireFox
+	* Fixed copyright year
+
+2011-02-03 09:26  source
+
+	* Fixed box_cast when qst is CALLER_LOCAL
+
+2011-02-03 09:25  source
+
+	* Fixed copyright year
+
+2011-02-02 15:36  source
+
+	* Fixed make sure boxlen is within limits
+
+2011-02-02 12:06  source
+
+	* Added separate sponge and ack for rdf flags
+
+2011-02-02 11:28  source
+
+	* Added new location properties and datatypes
+
+2011-02-01 00:07  source
+
+	* Fixed use origin as base
+
+2011-02-01 00:07  source
+
+	* Added support for virtrdf:image
+
+2011-01-31 20:47  source
+
+	* Fixed declaration after statement
+
+2011-01-31 15:23  source
+
+	* Fixed to follow http redirects
+
+2011-01-31 15:23  source
+
+	* Fixed memory leak if QUIETCAST query operates with ill formed
+	  data such as invalid date/time
+
+2011-01-31 11:17  source
+
+	* Fixed problem with upstreaming of updated and deleted posts
+	* Fixed problem with triggers
+
+2011-01-31 11:16  source
+
+	* Added virtrdf-label for iCalendar
+
+2011-01-31 11:15  source
+
+	* Fixed CSS of execution grid
+
+2011-01-31 10:48  source
+
+	* Fixed RDFa cartridge
+
+2011-01-31 10:45  source
+
+	* Added UI for Login Authentication Keys
+
+2011-01-30 15:23  source
+
+	* Fixed box_cast so QUIETCAST mode returns NULL instead of error
+	  even if the problem is detected in some nested function
+
+2011-01-28 17:34  source
+
+	* Fixed when on a queue, i.e. waiting for compile to finish, we freeze
+	  the thread so cpt can proceed
+
+2011-01-28 13:35  source
+
+	* Added namespace prefix 'fn' for 'http://www.w3.org/2005/xpath-functions/#'
+	  for XPATH 2.0 and XQuery 1.0 Core Functions library
+
+2011-01-28 13:34  source
+
+	* Fixed detection of bad blank nodes
+
+2011-01-28 13:32  source
+
+	* Fixed compiler warnings
+
+2011-01-28 13:31  source
+
+	* Added numeric_from_string_is_ok to do quick syntax check on string
+	  without actual parsing
+
+2011-01-28 13:29  source
+
+	* Added support for "xpath:function_IRI" syntax, which is usally an
+	  internal syntax for functions automatically recognized as XPATH
+
+2011-01-28 13:28  source
+
+	* Fixed compiler warning
+
+2011-01-28 13:28  source
+
+	* Added xqr_stub_for_funcall
+	* Fixed memory leak
+
+2011-01-28 13:26  source
+
+	* Fixed cast to xsd:float
+
+2011-01-28 13:26  source
+
+	* Fixed moved free inside of semaphore
+
+2011-01-27 14:19  source
+
+	* Fixed use default smime
+
+2011-01-27 13:30  source
+
+	* Fixed wrong condition check
+
+2011-01-27 12:43  source
+
+	* Added support for S/MIME encrypt and decrypt
+
+2011-01-26 17:52  source
+
+	* Fixed missing namespace in </results>
+
+2011-01-25 19:15  source
+
+	* Fixed cost model to count inx cond and scale card at end
+
+2011-01-25 18:54  source
+
+	* Fixed in log replay we can drop the old objects to free memory
+
+2011-01-25 14:51  source
+
+	* Updated version to 6.1.3-rc4
+
+2011-01-25 14:39  source
+
+	* Fixed allocate space for \0 terminator
+
+2011-01-25 14:38  source
+
+	* Fixed memory leak
+
+2011-01-25 14:36  source
+
+	* Fixed compiler warning
+
+2011-01-25 14:35  source
+
+	* Added configurable normalization of accented characters
+
+2011-01-25 14:33  source
+
+	* Fixed compiler warnings
+
+2011-01-25 14:32  source
+
+	* Fixed wrong buffer
+
+2011-01-25 14:30  source
+
+	* Fixed crawling aside of the target
+	* Fixed no more need of dummy targets
+	* Fixed decrease use of lock on site table
+
+2011-01-25 14:29  source
+
+	* Fixed python initialization
+
+2011-01-25 14:11  source
+
+	* Aded linkedIn login/register
+	* Fixed bad profile UI
+	* FIxed hyperlink session expire issue
+
+2011-01-25 14:09  source
+
+	* Fixed use base as origin on zillow
+
+2011-01-25 14:09  source
+
+	* Fixed do not try to put headers when an error is detected
+
+2011-01-25 14:07  source
+
+	* Fixed connection check page
+	* Fixed error message generation in execute
+	* Fixed Preferences dialog
+
+2011-01-25 14:00  source
+
+	* Fixed cosmetics and layout
+
+2011-01-25 13:53  source
+
+	* Added RDF graph property for links
+
+2011-01-25 13:52  source
+
+	* Added IMAP support
+
+2011-01-25 13:51  source
+
+	* Fixed install issue with new DB
+	* Fixed parent
+
+2011-01-25 13:50  source
+
+	* Fixed UI
+
+2011-01-25 13:17  source
+
+	* Updated documentation
+
+2011-01-22 14:12  source
+
+	* Fixed check for blank node in wrong places
+
+2011-01-21 13:43  source
+
+	* Fixed no need to access .cfg file for plain ?query= call
+
+2011-01-19 13:17  source
+
+	* Fixed codegen for xsd:decimal() and similar cast operations
+
+2011-01-18 14:36  source
+
+	* Added configurable normalization of accented characters
+
+2011-01-18 14:32  source
+
+	file unicode3_basechars.h was added on branch V6_0_0-DEVEL on 2011-01-18 14:36:37 +0000
+
+2011-01-18 10:41  source
+
+	* Added normalization of accented characters
+
+2011-01-18 10:32  source
+
+	* Fixed debug code
+
+2011-01-18 10:31  source
+
+	* Fixed more debug output for xte_word_range
+
+2011-01-11 22:41  source
+
+	* Fixed compiler warnings
+
+2011-01-11 22:38  source
+
+	* Fixed whitespace
+
+2011-01-11 13:18  source
+
+	* Added mime_header function to parse rfc header of mail message
+
+2011-01-11 13:14  source
+
+	* Fixed commented out bogus help button
+
+2011-01-11 13:13  source
+
+	* Added more prefixes
+
+2011-01-11 13:12  source
+
+	* Added new entries to virtrdf-label
+
+2011-01-11 10:33  source
+
+	* Added new SPARQL-to-SQL codegen for type cast functions
+
+2011-01-11 10:32  source
+
+	* Fixed set box flags to BF_IRI in this special case as graphs are IRIs
+
+2011-01-10 20:49  source
+
+	* Added transitivity cache
+
+2011-01-10 16:56  source
+
+	* Fixed bifs returning int or date should use same cast as auto
+
+2011-01-10 13:23  source
+
+	* Fixed width of users, capabilities listings
+
+2011-01-10 13:22  source
+
+	* Fixed use sitemaps for default crawling, option for depth
+	* Fixed links conversion should be off by default
+	* Fixed issue with listing
+
+2011-01-10 11:51  source
+
+	* FIxed missing initialization
+
+2011-01-07 17:18  source
+
+	* Fixed set timeout only when non empty
+
+2011-01-07 15:42  source
+
+	* Fixed when explicit output format is give, make it part of the
+	  query text so don't cache eventual internal guess to turtle output
+
+2011-01-07 15:08  source
+
+	* Added cxml and csv links
+	* Fixed link layout
+
+2011-01-07 14:12  source
+
+	* Fixed allow bigger header values to be returned
+
+2011-01-05 20:58  source
+
+	* Added optional QRcode
+	* Added CXML link typing dropdowns to fct UI
+	* Added search query limit of 100 words
+	* Added CXML and CSV links on describe page
+
+2011-01-05 20:14  source
+
+	* Fixed declaration after statement warning
+
+2011-01-05 13:58  source
+
+	* Fixed search and page load behaviour
+	* Fixed RefByAll result page
+
+2011-01-05 12:45  source
+
+	* Fixed align at 8 when double align defined
+	* Fixed always return NULL when allocation failed
+
+2011-01-05 12:44  source
+
+	* Fixed compiler warnings
+
+2011-01-05 12:36  source
+
+	* Added OWL mime type
+
+2011-01-05 01:58  source
+
+	* Fixed stats on inference
+
+2011-01-03 23:37  source
+
+	* Added client-based HTTP auth support in OAT.Ajax
+	* Fixed bug in RDFStore handling of hasNamespacePrefix that caused
+	  corruption
+	* Fixed error in dialog button handler
+	* Fixed typo in insertIRIArr
+	* Fixed several issues in RDFTabs related to RDFStore changes
+
+2011-01-03 21:23  source
+
+	* Fixed json tcn
+
+2011-01-03 21:22  source
+
+	* Added optional vCal QRCode
+	* Fixed date change in events/tasks
+
+2011-01-03 21:21  source
+
+	* Added optional vCard QRCode
+
+2011-01-03 21:21  source
+
+	* Fixed UI of maintenance page
+	* Fixed ref-by command output
+
+2011-01-03 21:14  source
+
+	* Fixed detect iSPARQL Server Connection using PROPFIND
+	* Fixed link behaviour in SPARQL result set view is now
+	  controlled by dropdown
+	* Fixed Save/serialize in .ldr/.isparql file types
+
+2011-01-03 21:11  source
+
+	* Added option for crawl depth
+	* Added check for gzip magic header
+	* Fixed use sitemaps for default crawling
+	* Fixed no clean opt
+	* Fixed optmimize queue recovery
+	* Fixed when */xml reported butthe content is gziped, the client
+	  will decode on the fly
+
+2011-01-03 21:09  source
+
+	* Added properties to enable HTTP DIGEST auth on some browsers
+
+2011-01-03 21:02  source
+
+	file eol2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-01-03 23:40:02 +0000
+
+2011-01-03 21:02  source
+
+	file groupon2rdf.xsl was added on branch V6_0_0-DEVEL on 2011-01-03 23:40:02 +0000
+
+2011-01-03 21:02  source
+
+	* Added Groupon cartridge
+	* Added RDFohloh cartridge
+	* Added EOL cartridge
+	* Fixed use common API to delete target
+	* Fixed minor issues
+
+2011-01-03 10:21  source
+
+	* Added support for FILTER EXISTST and FILTER NOT EXISTS
+	* Added partial support for MINUS
+
+2011-01-03 10:18  source
+
+	* FIxed minor issues
+
+2011-01-03 10:17  source
+
+	* Fixed issue with large number of namespace declarations
+
+2010-12-23 16:33  source
+
+	* Fixed JSON tcn for host-meta
+
+2010-12-22 20:58  source
+
+	* Fixed default options
+
+2010-12-22 10:31  source
+
+	* Fixed issue with aggregates and ORDER BY
+
+2010-12-22 10:27  source
+
+	* Fixed issue with DATATYPE
+
+2010-12-22 10:25  source
+
+	* Fixed string is aligned to 8
+	* Fixed wide data must be presented as UTF8 before hash chksum
+
+2010-12-21 12:27  source
+
+	* Fixed whitespace
+
+2010-12-21 10:42  source
+
+	* Added retry on deadlock when sponging on multiple threads
+
+2010-12-20 21:43  source
+
+	* Updated version to 6.1.3-rc2
+
+2010-12-20 19:12  source
+
+	* Fixed minor issue
+
+2010-12-20 18:20  source
+
+	* Fixed layout to make optional qrcode fit without wasting space
+	* Fixed tabs CSS and overall margins etc
+
+2010-12-20 18:09  source
+
+	* Fixed sqltype and display size of DV_IRI_ID column
+
+2010-12-20 13:26  source
+
+	* Fixed merge error
+
+2010-12-20 12:31  source
+
+	* Fixed missing column error in SPARQL-to-SQL preprocessor
+
+2010-12-20 12:27  source
+
+	* Added support for Twitter
+	* Added JSON format for webfinger
+	* Added optional qrcode
+
+2010-12-20 12:26  source
+
+	* Fixed missing files from vad
+
+2010-12-20 12:26  source
+
+	* Added progress bar, ping and ACL
+
+2010-12-20 12:22  source
+
+	* Added option to use tidy before loading rdfa
+
+2010-12-20 11:34  source
+
+	* Fixed minor issues
+
+2010-12-17 17:40  source
+
+	* Added support for connection string parameters with or without
+	  spaces in name
+	* Fixed removed workaround for rollback msg
+
+2010-12-17 11:27  source
+
+	* Fixed must not return error during rollback on killed txn
+
+2010-12-16 19:47  source
+
+	* Fixed sparql select (1) { { ?:sss ?p ?o } optional { ?s1 ?p1 ?o1 }}
+	  (t1.S=sss condition was lost before)
+
+2010-12-15 15:25  source
+
+	* Fixed index_only on partial can return has data even if main row
+	  does not
+
+2010-12-15 12:47  source
+
+	* Added small optimizations
+
+2010-12-15 12:19  source
+
+	* Added optimization to look at GS index only
+
+2010-12-15 10:42  source
+
+	* Added support for define input:inference in SAPRQL DESCRIBE
+
+2010-12-14 19:18  source
+
+	* Added JSON format for /.well-known/host-meta
+
+2010-12-14 13:22  source
+
+	* Fixed cxml generation options
+
+2010-12-14 13:22  source
+
+	* Fixed compiler warning
+
+2010-12-14 12:10  source
+
+	* Fixed use CURI to make smaller footprint
+
+2010-12-14 12:07  source
+
+	* Fixed hreview aggreates
+	* Fixed use CURI to make smaller qrcode
+	* Fixed CRLF
+
+2010-12-14 11:50  source
+
+	file hreview_aggregate2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-12-14 12:07:57 +0000
+
+2010-12-13 21:32  source
+
+	* Fixed 'none' is a special case with value 1
+
+2010-12-13 15:08  source
+
+	* Fixed crash when only option inference is given without define
+
+2010-12-13 15:08  source
+
+	* Fixed cxml
+
+2010-12-13 11:17  source
+
+	* Fixed utf8_exec server issue
+
+2010-12-13 10:24  source
+
+	* Fixed comparison of VARCHAR and UNAME box whith identical content
+
+2010-12-13 10:23  source
+
+	* Added three new aggregates mostly for use with SPARQL-BI
+
+2010-12-13 10:22  source
+
+	* Added support for passing NVARCHAR arguments to thread-safe dicts
+
+2010-12-13 10:20  source
+
+	* Fixed check for mobile devices
+
+2010-12-12 18:09  source
+
+	* Added RDFa W3c validation button
+	* Added missing default XSL setting classes as view
+	* Added optional qrcode in page
+	* Added scrolling to use stop skip/N
+	* Added link to /sparql endpoint
+	* Fixed sid
+	* Fixed shortened uri if too long
+	* Fixed bookmarable urls
+
+2010-12-10 16:12  source
+
+	* Updated documentation
+
+2010-12-10 16:02  source
+
+	* Removed extra debugging
+	* Fixed comments
+
+2010-12-10 15:43  source
+
+	* Fixed minor issues
+
+2010-12-10 15:28  source
+
+	* Added new settings to execute.html
+	* Added hrefs to breadcrumbs in rdftab
+	* Added a pager for queries.
+	* Added URI shortener detection and user preference (persisted in
+	  HTML5 localStorage on compatible browsers)
+	* Changed the way results are cached.
+	  Each query owns its results store, which is passed to the RDFMini
+	  for display.
+
+2010-12-10 15:27  source
+
+	* Altered the order of preference for subject labels.
+	* Fixed rdfs:label and skos:prefLabel now take preference over
+	  foaf:name.
+	* Changed OAT.Dialog to accept a bitmap for buttons to include
+	  Should be (sort-of) backwards compatible (default value and setting
+	  to zero causes same behavior as before)
+
+2010-12-10 15:19  source
+
+	* Merged from V5
+
+2010-12-10 15:18  source
+
+	* Fixed do not do row autocommit when uploading with DAV api
+	  as this will break trigger logic
+
+2010-12-10 12:24  source
+
+	* Added new testcases
+
+2010-12-10 12:00  source
+
+	* Fixed deref of uninitialized memory
+
+2010-12-10 11:59  source
+
+	* FIxed uninitialized variable
+
+2010-12-10 11:58  source
+
+	* Fixed deref of uninited memory
+
+2010-12-09 14:00  source
+
+	* Fixed FOAF import
+
+2010-12-09 13:57  source
+
+	* Fixed convert link option
+
+2010-12-09 12:16  source
+
+	file hrecipe2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-12-09 12:36:06 +0000
+
+2010-12-09 12:16  source
+
+	* Added hRecipe cartridge
+
+2010-12-09 09:53  source
+
+	* Fixed NULL case in patch_restricted_xml_chars()
+
+2010-12-08 16:08  source
+
+	* Fixed sparql aggregate
+
+2010-12-08 16:04  source
+
+	* Added RDFa W3c validation button
+	* Added expiration header
+	* Fixed DOI and RDFa
+	* Fixed use doi proxy if no hslookup plugin
+	* Fixed datatype for twitter
+	* Fixed tidy for overstock cartridge
+	* Fixed enable xlat iris
+	* Fixed small bugs
+
+2010-12-07 11:30  source
+
+	* Updated version of adapter
+
+2010-12-07 11:11  source
+
+	* Added 'Owns', 'Knows' and 'Social Network'
+	* Added profile security for offers, likes etc
+	* Enhanced import procedure
+	* Fixed small issues
+
+2010-12-07 10:38  source
+
+	file index.vspx was added on branch V6_0_0-DEVEL on 2010-12-07 10:59:24 +0000
+
+2010-12-07 10:38  source
+
+	* Added microblog template
+
+2010-12-07 10:38  source
+
+	file default.css was added on branch V6_0_0-DEVEL on 2010-12-07 10:59:24 +0000
+
+2010-12-07 10:35  source
+
+	file uiedit_knows.vspx was added on branch V6_0_0-DEVEL on 2010-12-07 11:11:31 +0000
+
+2010-12-07 10:35  source
+
+	file uiedit_others.vspx was added on branch V6_0_0-DEVEL on 2010-12-07 11:11:31 +0000
+
+2010-12-07 10:35  source
+
+	file uiedit_owns.vspx was added on branch V6_0_0-DEVEL on 2010-12-07 11:11:31 +0000
+
+2010-12-07 10:32  source
+
+	* Added 'Knows' to the import
+	* Enhanced import procedure
+
+2010-12-06 17:10  source
+
+	* Added MinExpiration param for sponger
+
+2010-12-06 17:09  source
+
+	* Fixed minor issues
+
+2010-12-06 17:08  source
+
+	* FIxed show better message instead of error on url parse
+
+2010-12-06 10:34  source
+
+	* Fixed max dns name is 250 chars
+
+2010-12-06 10:34  source
+
+	* Added copy_list_to_array and revlist_to_array for plugins
+
+2010-12-06 10:33  source
+
+	* Fixed if we have bad fd in saved sessions, check which one and
+	  remove, to avoid busy loop on unix
+
+2010-11-30 12:34  source
+
+	* Fixed use char flags instead of bitfield
+
+2010-11-30 12:33  source
+
+	* Added optimization for case when there is no locality
+
+2010-11-30 12:33  source
+
+	* Fixed must lock mtx before reading cache
+
+2010-11-29 14:37  source
+
+	* FIxed minor issues
+
+2010-11-29 14:36  source
+
+	* Added statistics on how many remaps are free
+
+2010-11-26 21:23  source
+
+	* Fixed busy loop when no free remaps
+
+2010-11-26 10:47  source
+
+	* Added extra debugging on shared cache
+
+2010-11-26 10:46  source
+
+	* Fixed issue compiling extensions in debug mode
+
+2010-11-25 19:53  source
+
+	* Fixed must cut before print else will return wrong error
+
+2010-11-24 11:41  source
+
+	* Fixed use external bif_tidy in the crawler
+
+2010-11-24 11:36  source
+
+	* Fixed mark transaction as ended in provider if virtuoso server kills
+	  the transaction
+
+2010-11-23 19:30  source
+
+	* FIxed issue with DISTINCT and ORDER BY
+
+2010-11-23 19:28  source
+
+	* FIxed "delayed" crash in case of passing wrong argument
+
+2010-11-23 19:27  source
+
+	* Added check for tidy in crawler
+
+2010-11-23 19:26  source
+
+	* Fixed minor issue
+
+2010-11-23 10:20  source
+
+	* Fixed bad test
+
+2010-11-22 20:40  source
+
+	* Fixed issue with sparql-fed
+
+2010-11-22 20:39  source
+
+	* Fixed prevent assert on large box
+
+2010-11-22 14:26  source
+
+	* Fixed issue with bnode
+
+2010-11-22 11:28  source
+
+	* Added VirtuosoQueryEngine auto registration was added to VirtGraph
+	  static initilization
+
+2010-11-22 11:06  source
+
+	* Rebuild driver
+
+2010-11-22 11:00  source
+
+	* Rebuild drivers
+
+2010-11-22 10:59  source
+
+	* Fixed JDBC driver lost prepared data after execution query, so next
+	  execute of prepared query throws exception
+
+2010-11-20 10:57  source
+
+	* Added bif patch_restrictec_xml_chars()
+
+2010-11-19 16:50  source
+
+	* Added Likes and DisLikes
+
+2010-11-19 16:49  source
+
+	* Added group sharing
+	* Fixed extended user's select
+
+2010-11-19 16:47  source
+
+	* Updated to ckeditor version 3.4.2
+
+2010-11-19 16:45  source
+
+	* Added optimizations
+	* Added checking for rdfa dtd
+
+2010-11-19 16:43  source
+
+	* Fixed use integer for https_verity and https_cv_depth
+	* Fixed use uppercase for SSL auth
+
+2010-11-19 16:41  source
+
+	* Added setup for DET on collections
+
+2010-11-19 14:25  source
+
+	* Fixed wrong number of params
+
+2010-11-19 14:25  source
+
+	* Fixed busy loop
+
+2010-11-18 12:09  source
+
+	file uiedit_likes.vspx was added on branch V6_0_0-DEVEL on 2010-11-19 16:50:49 +0000
+
+2010-11-18 12:07  source
+
+	file icons_rtl.png was added on branch V6_0_0-DEVEL on 2010-11-19 16:47:48 +0000
+
+2010-11-17 21:30  source
+
+	* Added function to get DTD identifiers
+
+2010-11-17 21:29  source
+
+	* Fixed dimension is not in triples
+
+2010-11-17 21:29  source
+
+	* Fixed page debug
+
+2010-11-17 21:28  source
+
+	* Fixed name in footer
+
+2010-11-17 21:27  source
+
+	* Added initialize query text option for /sparql
+
+2010-11-16 20:17  source
+
+	* Fixed do not try to close bad filedescriptor as windows does not
+	  like this
+
+2010-11-16 14:30  source
+
+	* Added imap client support
+
+2010-11-15 20:12  source
+
+	* Fixed if we have a qr with no params at all, exec should signal error
+
+2010-11-15 16:51  source
+
+	* Fixed issue with combination of UNION in the argument of IN causing
+	  General internal Optimized compiler error
+
+2010-11-15 16:47  source
+
+	* Fixed record the thread which entered/left the buffer in debug mode
+
+2010-11-15 10:13  source
+
+	* Fixed do not attempt to parse empty content
+
+2010-11-12 21:01  source
+
+	* Fixed only check pages in online backup
+
+2010-11-12 21:00  source
+
+	* Fixed recovery mode
+
+2010-11-12 21:00  source
+
+	* Fixed send body of 509 bandwidth error
+
+2010-11-11 16:06  source
+
+	* Updated version to 6.1.3-rc1
+
+2010-11-11 15:53  source
+
+	* Fixed check for sql disabled flag
+
+2010-11-11 12:38  source
+
+	* Fixed group editing
+	* Fixed WebID for Briefcase instances
+
+2010-11-11 12:34  source
+
+	* Added group sharing
+
+2010-11-11 11:23  source
+
+	* Added special immutable setting for inf rules
+
+2010-11-10 15:59  source
+
+	* Fixed use dsn from content-location when it exists
+
+2010-11-10 15:45  source
+
+	* Fixed pass headers as options so every cartridge can read
+
+2010-11-10 12:00  source
+
+	* Added magic key export
+
+2010-11-10 11:59  source
+
+	* Fixed stack corruption on 64bit
+
+2010-11-09 21:47  source
+
+	* Fixed memleak when error is signalled
+
+2010-11-09 21:44  source
+
+	* Fixed avoid re-define
+
+2010-11-09 21:42  source
+
+	* Fixed remove call to SP before it is defined
+
+2010-11-09 20:19  source
+
+	* Fixed https access
+	* Fixed ACL UI
+
+2010-11-09 20:18  source
+
+	* Added support for SWD
+	* Added support for Salmon
+	* Added RDFa info
+	* Fixed key removal not working
+	* Fixed bad permissions for user's home directory creation
+	* Fixed no validator at this point
+	* Fixed sync user's pages
+	* Fixed salmon api
+	* Fixed move groups from briefcase into framework
+
+2010-11-09 20:15  source
+
+	* Added initial support for Salmon protocol
+	* Fixed check for email
+	* Fixed uninstall problem
+
+2010-11-09 20:12  source
+
+	* Added signed mails
+	* Fixed https access
+
+2010-11-09 20:12  source
+
+	* Fixed move groups from briefcase into ODS framework
+	* Fixed https access
+
+2010-11-09 20:11  source
+
+	* Fixed https access
+	* Fixed labels
+
+2010-11-09 20:11  source
+
+	* Fixed https access
+
+2010-11-09 20:01  source
+
+	* Fixed properly encode the query before passing it to PivotViewer
+
+2010-11-09 19:59  source
+
+	* Fixed more labels
+
+2010-11-09 10:59  source
+
+	* Fixed split part of MTX_DEBUG into PAGE_DEBUG
+
+2010-11-08 15:42  source
+
+	* Fixed prevent bad data to crash system during deserialization
+
+2010-11-08 12:37  source
+
+	* Added http://loc.openlinksw.com/sparql as registered endpoint
+	* Fixed URIs in resultview anchors
+
+2010-11-08 12:35  source
+
+	* Fixed return string session, rather than allocate string so it will
+	  handle large resources
+	* Fixed possible double free of temp filename
+	* Fixed issue with MALLOC_DEBUG
+
+2010-11-08 12:21  source
+
+	* Fixed ACL update
+
+2010-11-08 11:46  source
+
+	* Fixed minor issue
+
+2010-11-08 11:45  source
+
+	* Added ACL settings
+	* Added new type
+	* Added CORS options
+	* Fixed layout of cert generation form
+	* Fixed label of cartridges
+
+2010-11-08 11:26  source
+
+	file construct_body.xsl was added on branch V6_0_0-DEVEL on 2010-11-09 20:12:59 +0000
+
+2010-11-08 11:25  source
+
+	file SWD.sql was added on branch V6_0_0-DEVEL on 2010-11-09 20:18:21 +0000
+
+2010-11-08 11:08  source
+
+	* Added check by entity type
+
+2010-11-05 20:23  source
+
+	* Fixed check dp before processing
+
+2010-11-05 10:57  source
+
+	* Fixed explanation of rdf inf failures
+
+2010-11-05 10:56  source
+
+	* Fixed bad condition of extension, do not push local imports
+
+2010-11-05 10:54  source
+
+	* Fixed  /sparql/ endpoint to show/hide controls
+	* Fixed show supported formats depending on configuration
+
+2010-11-05 10:53  source
+
+	* Fixed CXML desc support
+
+2010-11-04 18:18  source
+
+	* Fixed typo
+
+2010-11-02 19:14  source
+
+	* Added cxml det
+
+2010-11-02 19:12  source
+
+	* Fixed top/skip should only work for  non-multistate
+	* Fixed recover when itc is unregistered
+
+2010-11-01 14:15  source
+
+	* FIxed only skip when initialized
+
+2010-10-29 14:12  source
+
+	* Fixed when pl stats collection is enabled, the hash must be
+	  protected in order to avoid crash
+
+2010-10-29 14:11  source
+
+	* Fixed when count/sum/avg and other aggregates make columns to be the
+	  respective type e.g. int or double, except when performing min/max
+	  on string, we turn off mem_cache_only, so they can goto disk
+
+2010-10-29 14:09  source
+
+	* Fixed unbalanced } outside ifdef
+
+2010-10-29 14:08  source
+
+	* Added function alias
+
+2010-10-29 14:08  source
+
+	* Fixed when selection list contains expressions with constants do
+	  not inline OJ
+
+2010-10-27 12:59  source
+
+	* Fixed issues with sparql fed
+
+2010-10-27 12:56  source
+
+	* Added new bif functions dict_iter_hash and dict_key_eq
+
+2010-10-27 12:55  source
+
+	* Added page enter debugging
+
+2010-10-27 12:53  source
+
+	* Added support for CORS
+
+2010-10-27 12:52  source
+
+	* Fixed check all the cos in gby to be numeric types
+
+2010-10-27 12:51  source
+
+	* Added debug line pragmas
+
+2010-10-27 12:50  source
+
+	* Fixed debug assert for itc_is_registered
+
+2010-10-25 13:23  source
+
+	* Fixed compiler warnings
+
+2010-10-25 13:19  source
+
+	* Fixed rdf boxes cmp
+	* Fixed rdf inf loading
+
+2010-10-25 13:15  source
+
+	* Fixed allow all users to have user_t so they can have their own
+	  encryption keys
+
+2010-10-25 12:38  source
+
+	file salmon.sql was added on branch V6_0_0-DEVEL on 2010-11-09 20:18:22 +0000
+
+2010-10-25 12:38  source
+
+	file uiedit_acl.vspx was added on branch V6_0_0-DEVEL on 2010-11-09 20:18:22 +0000
+
+2010-10-25 12:38  source
+
+	file uiedit_acls.vspx was added on branch V6_0_0-DEVEL on 2010-11-09 20:18:23 +0000
+
+2010-10-22 21:12  source
+
+	* Added contols to add text filters
+	* Added support for creating new ses with class iri filter
+	* Added choose type and start/continue facets browsing session to rdfdesc
+	* Fixed drop text constraint
+	* Fixed view types
+
+2010-10-22 16:34  source
+
+	* Fixed link warning
+
+2010-10-22 16:31  source
+
+	* Fixed issue with shadowing local variable in java hosting
+
+2010-10-22 14:58  source
+
+	* Fixed temporary disabled code
+
+2010-10-22 12:31  source
+
+	* Fixed single does not have a dpipe
+
+2010-10-22 10:28  source
+
+	* FIxed if dpipe before outer section, put the dpipe before the set
+	  ctr of the outer section and not after, else it may mess with the
+	  output of the dpipe
+
+2010-10-22 09:52  source
+
+	* Fixed missing symbol
+
+2010-10-22 09:50  source
+
+	* Fixed rb can be twice as it is a ref
+
+2010-10-20 16:04  source
+
+	* Fixed problem with extremely large XML doc
+
+2010-10-19 12:38  source
+
+	* Added dynamic resizing of result block
+
+2010-10-18 18:50  source
+
+	* Fixed issue with SPARQL CONSTRUCT/INSERT/DELETE/MODIFY queries
+
+2010-10-18 12:18  source
+
+	* Fixed when a page with free remap is found, indicate the trx should be killed
+	  rather than getting infinite loop
+	* Fixed extra debugging for page access
+
+2010-10-18 12:14  source
+
+	* Fixed when operation is count etc, aggregate returning a number
+	  does not do memcache only in order to avoid running out of memory
+
+2010-10-18 12:01  source
+
+	* Added new functions to ImageMagick plugin
+
+2010-10-15 11:37  source
+
+	* Fixed fct_label on v6 single
+
+2010-10-13 13:59  source
+
+	* Fixed the xe_make_copy is valid only for XMLTYPE, not for every UDT
+
+2010-10-13 13:59  source
+
+	* Fixed gpf
+
+2010-10-13 12:12  source
+
+	* Added rsh-sha256
+	* Added xenc_dsig_verify, xenc_dsig_sign and xenc_key_RDA_construct
+
+2010-10-13 12:11  source
+
+	* Removed old upgrade code
+
+2010-10-13 12:09  source
+
+	* Fixed BestBuy cartridge
+
+2010-10-13 12:07  source
+
+	* Added checks for value ranges
+	* Added paging through 'Related Collections' links
+
+2010-10-13 12:02  source
+
+	* Fixed minor issues
+
+2010-10-13 12:00  source
+
+	* Added ACL semantic ping
+	* Fixed encoding problems
+	* Fixed JS error
+
+2010-10-13 11:59  source
+
+	* Added ACL semantic ping
+	* Fixed encoding problems
+	* Optimized page load
+
+2010-10-13 11:58  source
+
+	* Fixed encoding problems
+	* Fixed and optimized users and webIDs
+	* Fixed sharings
+	* Optimized page load
+
+2010-10-13 10:36  source
+
+	* Added ACL semantic ping
+	* Fixed and optimized users and webIDs
+	* Fixed empty lists
+	* Fixed encoding problems
+	* Optimized page load
+
+2010-10-13 10:35  source
+
+	* Added ACL semantic ping
+	* Fixed encoding problems
+
+2010-10-13 10:34  source
+
+	* Added ACL semantic ping
+	* Fixed and optimized users and webIDs
+	* Fixed encoding problems
+	* Fixed empty lists
+	* Optimized page load
+
+2010-10-13 10:33  source
+
+	* Added ACL semantic ping
+	* Fixed and optimized users and webIDs
+	* Fixed JS map error
+	* Fixed JS errors
+	* Fixed tabs
+	* Fixed encoding problems
+
+2010-10-12 17:35  source
+
+	* Fixed bug when filer (num <>= (subq))
+
+2010-10-12 12:23  source
+
+	* Added support for latest tidylib
+
+2010-10-07 23:31  source
+
+	* Fixed some issues with dsig_verify
+
+2010-10-07 13:29  source
+
+	* Fixed new debug macro DK_ALLOC_BOX_DEBUG for basic integrety checks
+	  without overhead of full MALLOC_DEBUG
+
+2010-10-07 13:24  source
+
+	* Added item ACL
+	* Added ACL Inheritance
+	* Fixed update
+	* Fixed tag bug
+
+2010-10-07 13:07  source
+
+	* Fixed minor issue
+
+2010-10-07 13:02  source
+
+	file disconnect_16.png was added on branch V6_0_0-DEVEL on 2010-10-07 13:22:39 +0000
+
+2010-10-07 13:02  source
+
+	file link_16.png was added on branch V6_0_0-DEVEL on 2010-10-07 13:22:39 +0000
+
+2010-10-07 13:02  source
+
+	file ods_upstream.sql was added on branch V6_0_0-DEVEL on 2010-10-07 13:22:38 +0000
+
+2010-10-07 13:00  source
+
+	* Added ACL Inheritance
+	* Fixed updated UI
+
+2010-10-07 13:00  source
+
+	* Added ACL Inheritance
+	* Fixed binding the twitter and linkedin with their API
+	* Fixed IE password field size bug
+	* Fixed must quote vars from sparql
+	* Fixed swat0
+
+2010-10-07 12:58  source
+
+	* Added ACL Inheritance
+	* Fixed optimized progress bar
+	* Fixed read/unread actions
+	* Fixed encoding problem
+	* Fixed updated UI
+	* Removed deprecated icons
+
+2010-10-07 12:56  source
+
+	* Added ACL Inheritance
+	* Fixed ACL recalc bug
+	* Fixed updated UI
+
+2010-10-07 12:55  source
+
+	* Added ACL Inheritance
+	* Fixed optimized update
+	* Fixed sharing problem
+	* Fixed updated UI
+
+2010-10-07 12:54  source
+
+	* Added ACL Inheritance
+	* Fixed ACL recalc bug
+	* Fixed optimize progress bar
+	* Removed deprecated images
+
+2010-10-07 12:53  source
+
+	* Fixed swat0
+
+2010-10-07 12:44  source
+
+	* Updated documentation
+
+2010-10-07 12:20  source
+
+	* Added option not to convert HTML pages
+
+2010-10-06 21:39  source
+
+	* Added initial attribute/property value ranges conditional
+	* Added new XML element <value-range hi="" lo="" /> for facet browser
+	* Fixed make pivot bridge link conditional
+
+2010-10-06 21:37  source
+
+	* Fixed prevent buggy IRI to hit compiler
+
+2010-10-06 09:40  source
+
+	* Fixed problem compiling certain SPARQL constructions
+
+2010-10-06 09:35  source
+
+	* Added some new functions to XPATH virtual table
+	* Added optimizations to boolean expression evaluation
+
+2010-10-06 09:27  source
+
+	* Fixed added qualifier to stored proc creation
+
+2010-10-06 09:26  source
+
+	* Fixed moved some checks to header file for macro expansion
+
+2010-10-06 09:15  source
+
+	* Added support for CSV output mode
+
+2010-10-06 09:15  source
+
+	* Fixed compatibility with openssl 0.9.7
+
+2010-10-05 09:39  source
+
+	* Fixed when enlist starts we should have new xid or not listed
+
+2010-10-04 18:39  source
+
+	* Fixed if resource is not free e.q. count = 2 we most restore as other
+	  thread can kill it in the middle
+
+2010-10-04 14:40  source
+
+	* Fixed save should happen after checks, as jump would leave members
+	  NULL
+
+2010-09-27 22:37  source
+
+	* Fixed missing text from cache
+
+2010-09-27 19:41  source
+
+	* FIxed label
+
+2010-09-27 14:45  source
+
+	* Added linkblog pages
+	* Fixed smaller tweet me button on bottom
+	* Fixed template list
+
+2010-09-27 14:44  source
+
+	* Added ACL inheritance
+
+2010-09-27 14:44  source
+
+	* Fixed date update change in events/tasks
+
+2010-09-27 14:37  source
+
+	* Rebuild drivers
+
+2010-09-27 14:29  source
+
+	* Fixed issue with connection timeout
+
+2010-09-27 14:24  source
+
+	file linkblog.vspx was added on branch V6_0_0-DEVEL on 2010-09-27 14:45:09 +0000
+
+2010-09-27 14:23  source
+
+	file uiedit_sec.vspx was added on branch V6_0_0-DEVEL on 2010-09-27 14:45:40 +0000
+
+2010-09-27 14:23  source
+
+	file uiedit_val.vspx was added on branch V6_0_0-DEVEL on 2010-09-27 14:45:41 +0000
+
+2010-09-27 14:23  source
+
+	file uiedit_ws.vspx was added on branch V6_0_0-DEVEL on 2010-09-27 14:45:41 +0000
+
+2010-09-27 14:23  source
+
+	file uiedit_ann.vspx was added on branch V6_0_0-DEVEL on 2010-09-27 14:45:39 +0000
+
+2010-09-27 14:23  source
+
+	file uiedit_bz.vspx was added on branch V6_0_0-DEVEL on 2010-09-27 14:45:40 +0000
+
+2010-09-27 14:23  source
+
+	file uiedit_grp.vspx was added on branch V6_0_0-DEVEL on 2010-09-27 14:45:40 +0000
+
+2010-09-27 14:23  source
+
+	file uiedit_ldap_include.vspx was added on branch V6_0_0-DEVEL on 2010-09-27 14:45:40 +0000
+
+2010-09-27 14:23  source
+
+	file uiedit_nav.vspx was added on branch V6_0_0-DEVEL on 2010-09-27 14:45:40 +0000
+
+2010-09-27 14:23  source
+
+	* Fixed split uiedit into separate pages to get better response time
+	  when compiling
+	* Fixed 'Generate Certificate'
+
+2010-09-27 14:13  source
+
+	* Fixed minor issues
+
+2010-09-27 14:11  source
+
+	* Fixed ACL implementation
+
+2010-09-27 14:11  source
+
+	* Fixed take DynamicLocal into account
+
+2010-09-27 13:51  source
+
+	* FIxed client must not redefine mutex_enter as this will crash single
+
+2010-09-27 08:58  source
+
+	* Fixed use x-forwarded-for and remember it is forwarded
+
+2010-09-27 08:57  source
+
+	* Fixed use the redirect link for base when supplied
+
+2010-09-27 08:56  source
+
+	* Fixed check if m2 is a box
+
+2010-09-22 15:11  source
+
+	* Reverted patch
+
+2010-09-22 14:01  source
+
+	* Added xml_sign() for making pure XML signatures
+	* Added signature in host-meta xrd
+	* FIxed memleaks when doing xml signatures
+
+2010-09-22 13:56  source
+
+	* Fixed bad procedure name
+
+2010-09-22 13:06  source
+
+	* Fixed unified login pages
+	* Fixed upgraded ACL implementation
+	* Fixed Linkedin link
+
+2010-09-22 13:03  source
+
+	* Fixed upgraded ACL implementation
+
+2010-09-22 13:02  source
+
+	file summary.vspx was added on branch V6_0_0-DEVEL on 2010-09-22 13:56:50 +0000
+
+2010-09-22 13:02  source
+
+	* Added archive and summary pages
+	* Added new templates to vad
+
+2010-09-22 13:02  source
+
+	file archive.vspx was added on branch V6_0_0-DEVEL on 2010-09-22 13:56:49 +0000
+
+2010-09-22 13:02  source
+
+	file summary.vspx was added on branch V6_0_0-DEVEL on 2010-09-22 13:56:49 +0000
+
+2010-09-22 12:50  source
+
+	* Fixed minor issues
+
+2010-09-22 12:48  source
+
+	* Fixed vcard and vcal file import
+
+2010-09-22 12:48  source
+
+	* Fixed group ACL access
+
+2010-09-21 13:12  source
+
+	* Fixed load demo vad after tutorial
+
+2010-09-21 13:11  source
+
+	* Added missing file
+
+2010-09-21 11:34  source
+
+	* Fixed focus issue
+	* Fixed typo
+	* Fixed XRDS
+
+2010-09-21 11:33  source
+
+	file bg.png was added on branch V6_0_0-DEVEL on 2010-09-21 11:38:52 +0000
+
+2010-09-21 11:33  source
+
+	file bg_page_title.png was added on branch V6_0_0-DEVEL on 2010-09-21 11:38:51 +0000
+
+2010-09-21 11:33  source
+
+	file bg_page_title_inner.jpg was added on branch V6_0_0-DEVEL on 2010-09-21 11:38:51 +0000
+
+2010-09-21 11:33  source
+
+	file default.css was added on branch V6_0_0-DEVEL on 2010-09-21 11:38:52 +0000
+
+2010-09-21 11:33  source
+
+	file index.vspx was added on branch V6_0_0-DEVEL on 2010-09-21 11:38:52 +0000
+
+2010-09-21 11:33  source
+
+	* Added new templates
+
+2010-09-21 11:33  source
+
+	file bg_content.png was added on branch V6_0_0-DEVEL on 2010-09-21 11:38:51 +0000
+
+2010-09-21 11:33  source
+
+	file bg_header.png was added on branch V6_0_0-DEVEL on 2010-09-21 11:38:51 +0000
+
+2010-09-21 11:33  source
+
+	file default.css was added on branch V6_0_0-DEVEL on 2010-09-21 11:38:51 +0000
+
+2010-09-21 11:33  source
+
+	file index.vspx was added on branch V6_0_0-DEVEL on 2010-09-21 11:38:51 +0000
+
+2010-09-21 11:20  source
+
+	* Fixed serialize access to connection struct
+
+2010-09-20 10:14  source
+
+	* Fixed Id
+
+2010-09-20 09:51  source
+
+	* Added RDFa doctype
+	* Added new feature of fct to show certain graph
+
+2010-09-20 09:50  source
+
+	* Fixed http://dbpedia.org/property/name is not the name of the subject
+
+2010-09-20 09:23  source
+
+	* Added new feature of fct to show certain graph when fct is installed
+
+2010-09-20 09:20  source
+
+	file linkedin-large.png was added on branch V6_0_0-DEVEL on 2010-09-20 09:25:56 +0000
+
+2010-09-20 09:20  source
+
+	file sign-in-with-twitter-d.png was added on branch V6_0_0-DEVEL on 2010-09-20 09:25:56 +0000
+
+2010-09-20 09:20  source
+
+	file register.js was added on branch V6_0_0-DEVEL on 2010-09-20 09:25:54 +0000
+
+2010-09-20 09:20  source
+
+	file twitter_login.vsp was added on branch V6_0_0-DEVEL on 2010-09-20 09:25:55 +0000
+
+2010-09-20 09:20  source
+
+	file linkedin_login.vsp was added on branch V6_0_0-DEVEL on 2010-09-20 09:25:53 +0000
+
+2010-09-20 09:20  source
+
+	file login.js was added on branch V6_0_0-DEVEL on 2010-09-20 09:25:53 +0000
+
+2010-09-20 09:20  source
+
+	* Added new login and register library
+	* Added WebID to 'My Profile'
+	* Added linkedin login
+	* Added new inde on OL accounts
+	* Added twitter login page
+	* Added login with Google account
+	* Fixed WebFinder to look at sameas
+	* Fixed X.509 certificates in user pages
+	* Fixed password problem
+	* Fixed group ACL access
+	* Fixed validation ACLs
+	* Fixed openID server parameters extraction
+	* Fixed create instance defaults
+	* Fixed use of timezone
+	* Fixed Safari and Chrome bug
+	* Fixed biographical date input
+
+2010-09-20 09:14  source
+
+	* Fixed filter problem with WebID
+
+2010-09-20 09:13  source
+
+	* Added ACL support for tasks
+	* Fixed group ACL access
+	* Fixed ACL table UI
+	* Fixed private access
+	* Fixed  validation ACLs
+
+2010-09-20 09:12  source
+
+	* Fixed group ACL access
+	* Fixed ACL group select
+	* Fixed ACL UI
+	* Fixed validation ACLs
+
+2010-09-20 09:11  source
+
+	* Added ACLs
+	* Fixed group ACL access
+	* Fixed private access
+
+2010-09-20 09:09  source
+
+	* Fixed group ACL access
+	* Fixed ACL table UI
+	* Fixed private access
+	* Fixed validation ACLs
+
+2010-09-20 08:55  source
+
+	* Added refresh=clean mode, to drop cache even if it is in the middle
+	  of sponging on another threads
+	* Added scheduler task to keep volume under some limit
+
+2010-09-20 08:27  source
+
+	* Fixed ACL testing now http returns 509
+
+2010-09-17 23:11  source
+
+	* Fixed when fct is installed, use the new feature of fct to show
+	  certain graphs
+
+2010-09-17 23:10  source
+
+	* Fixed hang in prefix check if there is single dot in prefix
+
+2010-09-17 23:10  source
+
+	* Fixed check log text should always be DV_STRING
+
+2010-09-17 23:08  source
+
+	* Added support for CXML
+
+2010-09-17 23:03  source
+
+	* Added strong optimization of SPARQL arithmatic and numerical
+	  comparisons
+
+2010-09-17 22:49  source
+
+	* Added initial support for RDB2RDF
+
+2010-09-17 22:05  source
+
+	* Added improvements for SPARQL-FED esp. to let XSLT access data
+	  from remote SPARQL endpoint
+
+2010-09-17 20:49  source
+
+	* Fixed rendezvous thread should never handle any signals
+
+2010-09-17 16:50  source
+
+	* Fixed moved include file to more appropriate place
+
+2010-09-17 16:48  source
+
+	* Fixed do not try when in V6 single mode
+
+2010-09-17 16:45  source
+
+	* Added new bifs that print start element, end elemend and empty
+	  element with some number of attributes. Attribute values are
+	  checked for NULL and print only non-NULLs to eliminate numerous
+	  IF statements in Virtuoso/PL
+
+2010-09-17 16:42  source
+
+	* Added bif that checks if some value is stored in given dictionary
+	  for a given key, without returning it. This is usefull if value is
+	  potentially big as it does not copy anything.
+
+2010-09-17 16:40  source
+
+	* Fixed let some string BIFs accept UNAME arguments
+
+2010-09-17 16:35  source
+
+	* Removed deprecated repl code
+
+2010-09-17 11:18  source
+
+	* Fixed isalnum needs unsigned char as negative values might trip asserts
+	  on some systems like Windows
+
+2010-09-15 23:54  source
+
+	* Fixed handling format like 2010-09-15T14:24:28Z without fraction part
+	* Fixed set local timezone
+
+2010-09-15 08:10  source
+
+	* Fixed redirects for tcn
+	* Fixed set default to html
+	* Fixed in order of browser preference
+
+2010-09-13 16:03  source
+
+	* Fixed issue with xs_q_4/foaf.vsp demo
+
+2010-09-09 19:19  source
+
+	* Added check
+
+2010-09-09 19:18  source
+
+	* FIxed print dict in dbg_* functions
+
+2010-09-09 16:02  source
+
+	* Fixed minor issue
+
+2010-09-09 15:32  source
+
+	* Added MIME types for .NET click-once, MS Office and MS WPF applications
+	* Added additional MIME types based on apache mime.types.txt
+
+2010-09-07 21:56  source
+
+	* Added geo for dbpedia
+	* Fixed wrong var names
+	* Fixed issue with IE
+	* Fixed deprecated call to OAT.Dom.applyStyle into OAT.Style.set
+	* Removed unused background
+
+2010-09-07 21:37  source
+
+	* Added fingerpoint hook
+
+2010-09-07 21:28  source
+
+	* Added oauth+openid hybrid
+	* Added JS validation routines
+	* Added fingerpoint hooks
+	* Fixed x509 order
+	* Fixed use ssl login if accessed via https
+	* Fixed https on endpoint
+	* Fixed openid for fingerpoint
+	* Fixed seeAlso lookups via WF/FP
+	* Fixed Facebook issues
+	* Fixed validation ACLs
+	* Fixed Gallery pane
+
+2010-09-07 21:28  source
+
+	file openid_oauth_test.vsp was added on branch V6_0_0-DEVEL on 2010-09-07 22:00:53 +0000
+
+2010-09-07 21:28  source
+
+	file validate.js was added on branch V6_0_0-DEVEL on 2010-09-07 22:00:54 +0000
+
+2010-09-07 21:24  source
+
+	* Fixed ACL
+
+2010-09-07 21:24  source
+
+	* Added ACL
+
+2010-09-07 21:23  source
+
+	* Fixed private access error
+
+2010-09-07 21:23  source
+
+	* Fixed private access error
+	* Fixed typo
+
+2010-09-07 19:55  source
+
+	* Minor fixes
+
+2010-09-07 19:55  source
+
+	* Added XRD meta
+
+2010-09-07 19:54  source
+
+	* Added attribution ontology
+
+2010-09-07 19:54  source
+
+	file attribution.owl was added on branch V6_0_0-DEVEL on 2010-09-07 21:58:11 +0000
+
+2010-09-01 12:57  source
+
+	file uiedit_groups.vspx was added on branch V6_0_0-DEVEL on 2010-09-07 22:00:53 +0000
+
+2010-09-01 12:57  source
+
+	file webid_select.vspx was added on branch V6_0_0-DEVEL on 2010-09-07 22:00:54 +0000
+
+2010-09-01 10:15  source
+
+	* Added support headers from url rewrite for static resources such
+	  as files
+
+2010-09-01 10:11  source
+
+	* Fixed link headers
+
+2010-08-31 12:12  source
+
+	* Added missing function
+
+2010-08-31 12:12  source
+
+	* Added support for IUD ops to XMLA endpoint
+
+2010-08-31 12:09  source
+
+	* Fixed return appropriate message based on the type of ACL result
+
+2010-08-31 11:45  source
+
+	* Added support for host-meta
+
+2010-08-30 13:46  source
+
+	* Updated documentation
+
+2010-08-30 13:37  source
+
+	* Fixed use short representations to make sorted by
+
+2010-08-30 13:35  source
+
+	* Fixed missing prototype
+
+2010-08-30 12:34  source
+
+	* Fixed use webfinger to do ssl authentication
+
+2010-08-30 12:21  source
+
+	* Fixed error message generation in execute
+	* Fixed encoding issue in directory listings generated from
+	  filesystem-hosted virtual directories
+
+2010-08-26 22:49  source
+
+	* FIxed i18n support for subject and address list
+
+2010-08-26 22:41  source
+
+	* Fixed typo
+
+2010-08-26 22:40  source
+
+	* Added Evri cartridge and ontology
+	* Added hNews cartridge
+
+2010-08-26 22:40  source
+
+	file evri2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-08-26 22:46:12 +0000
+
+2010-08-26 22:40  source
+
+	file hnews2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-08-26 22:46:12 +0000
+
+2010-08-26 22:40  source
+
+	file oplevri.owl was added on branch V6_0_0-DEVEL on 2010-08-26 22:46:12 +0000
+
+2010-08-26 22:34  source
+
+	* Added support for acct: scheme
+
+2010-08-26 22:33  source
+
+	* Added support for webfinger + OpenID
+	* Fixed login with webfinger
+	* Fixed login popup page
+	* Fixed sameAs validation values
+	* Fixed Facebook link
+	* Fixed iframe number
+	* Fixed certificate generator
+
+2010-08-26 22:30  source
+
+	* Fixed application settings page url
+
+2010-08-26 18:04  source
+
+	* Added support for host-meta
+
+2010-08-26 18:03  source
+
+	* Fixed if position is not valid, skip the iob and go to next
+
+2010-08-24 22:34  source
+
+	* Fixed set to NULL after free
+
+2010-08-22 16:04  source
+
+	* Added option for to validate in hours
+
+2010-08-22 13:06  source
+
+	* Added new SQL optimization trick to convert
+	  sprintf ('format', col0, col1, ..., colN) = exnp
+	  into more index friendly:
+	  ( col0 = sprintf_inverse ('format', expn, 2)[0] and
+	    col1 = sprintf_inverse ('format', expn, 2)[1] and ...
+	    colN = sprintf_inverse ('format', expn, 2)[N] )
+
+2010-08-20 10:12  source
+
+	* Fixed typo in BIF name
+	* Fixed SPARQL resultset output if some objects of an RDF storage are
+	  corrupted
+
+2010-08-20 10:10  source
+
+	* Fixed error on INSERT DATA with literals of non-default types
+
+2010-08-20 10:09  source
+
+	* Fixed issue with ill formed SPARQL requests send by SPARQL SERVICE
+	  clause with dynamic parameters
+
+2010-08-20 10:07  source
+
+	* Fixed issue parsing sparql function calls with zero arguments
+
+2010-08-18 08:41  source
+
+	* Fixed check dirsallowed before loading file
+
+2010-08-17 21:40  source
+
+	* Fixed use webfinger to do SSL authentication
+
+2010-08-17 18:29  source
+
+	* Added support to use webfinger for SSL authentication
+	* Disabled rel=me tweak
+
+2010-08-17 18:05  source
+
+	* Added Google Book cartridge
+
+2010-08-17 18:05  source
+
+	file google_book2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-08-17 18:32:24 +0000
+
+2010-08-17 18:05  source
+
+	* Fixed use foaf ssl procedure
+
+2010-08-17 18:01  source
+
+	* Added get-certificate_info (10,cert,type, pass, 'subject field name
+	  e.g. emailAddress, OU etc.')
+
+2010-08-17 11:06  source
+
+	* FIxed sparql parse bug with NOT FROM NAMED queries like
+	  select distinct ?g ?p not from named virtrdf: where
+	  { graph ?g { ?s ?p ?o }}
+
+2010-08-17 10:23  source
+
+	* Fixed security issue in SPARQL
+	  A compiled and cached query may stay in its old state (not
+	  recompiled) after global security changes like
+	  DB.DBA.RDF_DEFAULT_USER_PERMS_SET ('nobody', 0) that should
+	  recompile most of queries cached for all users but it does not.
+
+2010-08-17 10:22  source
+
+	* Fixed build rules
+
+2010-08-17 09:25  source
+
+	* Fixed moved constant declarations of commonly used UNAMEs into
+	  separate file
+
+2010-08-16 10:10  source
+
+	* Added webfinger protocol
+	* Fixed cert gen on firefox with .net addon
+
+2010-08-16 10:09  source
+
+	* Fixed bug in re-install
+
+2010-08-16 10:07  source
+
+	* Fixed labels
+
+2010-08-16 10:07  source
+
+	* FIxed missing data for interval column
+
+2010-08-11 11:24  source
+
+	file webfinger.sql was added on branch V6_0_0-DEVEL on 2010-08-16 10:10:07 +0000
+
+2010-08-11 11:07  source
+
+	* Added support for define output:format "NT"
+
+2010-08-11 10:53  source
+
+	* Fixed issue with sparql subcode gen
+
+2010-08-10 18:47  source
+
+	* Fixed should not use escape here
+
+2010-08-10 18:45  source
+
+	* Added WebID share
+	* Fixed secure sponged VD setup
+
+2010-08-10 14:52  source
+
+	* Fixed wrong URL
+
+2010-08-10 07:04  source
+
+	file rdf_conf.vspx was added on branch V6_0_0-DEVEL on 2010-08-10 18:45:56 +0000
+
+2010-08-10 07:04  source
+
+	file tbl.js was added on branch V6_0_0-DEVEL on 2010-08-10 18:45:56 +0000
+
+2010-08-09 20:08  source
+
+	* Fixed some URL links
+
+2010-08-09 19:44  source
+
+	* Fixed support for source_uri attribute in sticker
+
+2010-08-08 11:55  source
+
+	* Fixed enhanced type recognition
+	* Fixed return errors when loading fails
+
+2010-08-08 11:55  source
+
+	* Fixed TOP has argument order of offset, limit
+
+2010-08-06 10:29  source
+
+	* Fixed issues with Rename
+	* Fixed issues with Upstreaming
+
+2010-08-06 10:04  source
+
+	file tbl.js was added on branch V6_0_0-DEVEL on 2010-08-06 10:30:03 +0000
+
+2010-08-06 10:03  source
+
+	* Added support for SSL and WebID
+
+2010-08-06 09:46  source
+
+	* Fixed skip constant ssl returned from temp table output
+
+2010-08-04 18:50  source
+
+	* Fixed clear conn vars after trx replay
+
+2010-08-04 09:34  source
+
+	* Updated documentation
+
+2010-08-04 07:37  source
+
+	* Added UI for rdb2rdf
+
+2010-08-04 07:37  source
+
+	* Fixed use subseq to handle blobs
+
+2010-08-04 07:35  source
+
+	* Fixed Activity log
+	* Fixed /about virtual dir
+	* Fixed rewrite http header in cert output
+
+2010-08-04 07:33  source
+
+	* Fixed Activity log
+	* Fixed file view
+	* Fixed filenames with .acl extension properties editing
+
+2010-08-04 07:32  source
+
+	* Fixed encoding problem
+
+2010-08-04 07:30  source
+
+	* Fixed Activity log
+
+2010-08-04 07:30  source
+
+	* Fixed Activity log
+	* Fixed uninstall DET folders
+	* Fixed 'ResFolder' type filters
+
+2010-08-04 07:10  source
+
+	* Added persistent xmlns UI
+
+2010-08-04 07:10  source
+
+	file persistent_xmlns.vspx was added on branch V6_0_0-DEVEL on 2010-08-04 07:38:10 +0000
+
+2010-08-04 07:03  source
+
+	* Added WebID based ACL support via https
+
+2010-08-04 07:02  source
+
+	* Fixed Tesco cartridge
+
+2010-08-04 07:02  source
+
+	file opltesco.owl was added on branch V6_0_0-DEVEL on 2010-08-04 07:39:47 +0000
+
+2010-08-04 06:58  source
+
+	* Fixed avoid errors later in process
+
+2010-08-04 06:53  source
+
+	* FIxed use X-Forwarded-Host when the instance is behind gateway
+
+2010-08-02 11:31  source
+
+	* Fixed when result from authentication is negative then return
+	  else WebID fals
+	* Fixed http auth checks
+
+2010-08-02 11:25  source
+
+	* Fixed keep mime hash in sync
+
+2010-08-02 11:23  source
+
+	* Fixed do not allow sponger to change log mode explicitly to no-lock and
+	  row-autocommit
+
+2010-08-02 11:20  source
+
+	* Added support for POP3 over SSL
+
+2010-08-02 07:40  source
+
+	* Added global X509 CA repository
+
+2010-07-29 16:25  source
+
+	* Updated documentation
+
+2010-07-29 16:17  source
+
+	* Fixed dynlocal format must be replaced by host as in host header
+
+2010-07-29 16:14  source
+
+	* Added common api FOAF_SSL_WEBID_GET
+	* Added setting for online certificate service
+	* Added https link in header
+	* Fixed online accounts
+	* Fixed WebID
+	* Fixed alt name can have multiple values
+
+2010-07-28 12:26  source
+
+	* Fixed size of res column to fit side menu on smaller screens like
+	 iPhone
+
+2010-07-28 12:10  source
+
+	* Fixed minor issues
+
+2010-07-26 21:01  source
+
+	* Fixed when http auth fails, must keep the http status as 401
+
+2010-07-26 12:59  source
+
+	* Fixed alt names can have multiple values
+	* Fixed paths creation
+	* Fixed users select
+	* Fixed renamed User Login to Identify Yourself
+
+2010-07-26 12:58  source
+
+	* Fixed path creation
+	* Fixed URLs
+	* Fixed users select
+
+2010-07-26 12:58  source
+
+	* Fixed path creation
+	* Fixed URLs
+
+2010-07-26 09:25  source
+
+	file select.gif was added on branch V6_0_0-DEVEL on 2010-07-26 12:59:16 +0000
+
+2010-07-23 19:44  source
+
+	* Fixed bug with WebDAVFS client
+
+2010-07-23 19:43  source
+
+	* Added continue handler to catch missing graph group signal
+
+2010-07-23 19:42  source
+
+	* Fixed URL after login
+	* FIxed view.vsp not found problem
+
+2010-07-23 19:39  source
+
+	* Adde additional endpoint
+	* Fixed splash screen
+	* Fixed error message when JavaScript is not available
+	* Fixed geo location
+
+2010-07-23 19:36  source
+
+	* Added new lock icon ref
+	* Fixed online services validation
+	* Fixed IE UI profile view
+	* Fixed multiple certificates in UI profile
+	* Fixed issue with "Creator of"
+	* Fixed image button for users pages
+	* Fixed browser related problems
+	* Fixed labels
+
+2010-07-23 19:31  source
+
+	* Removed deprecated files
+
+2010-07-23 15:56  source
+
+	* Fixed auth bug with WebDAVFS client
+
+2010-07-20 13:08  source
+
+	* Fixed minor issues
+
+2010-07-20 13:01  source
+
+	* Fixed WebKit problems with UI profile
+
+2010-07-20 13:01  source
+
+	* Fixed sync security profile
+
+2010-07-19 14:50  source
+
+	* Added discussion page rewrite rules
+	* Fixed change Member ID to User ID
+	* Fixed ODS to Digest in Login/Register form
+	* Fixed X.509 page for IE
+
+2010-07-19 14:48  source
+
+	* Fixed URLs
+
+2010-07-19 14:39  source
+
+	* Fixed missing dependency
+
+2010-07-19 14:39  source
+
+	* Fixed ordering to work with IE 7/8
+
+2010-07-19 07:12  source
+
+	* Fixed version
+
+2010-07-19 07:11  source
+
+	* Fixed some issues with sparql queries returning strings instead of IRIs
+
+2010-07-19 07:08  source
+
+	* Added explain if params are copied
+
+2010-07-19 07:08  source
+
+	* Fixed dir listing to use UTF-8 to show chars other than latin1
+
+2010-07-19 06:59  source
+
+	* Fixed issue with inferencing
+
+2010-07-19 06:59  source
+
+	* Fixed compiler warnings
+
+2010-07-14 21:18  source
+
+	* Fixed following checkpoint kill recovery remap extents may have
+	  allocated pages with no correspoinding logical page because recovery
+	  performs unremap. Therefor if em remap page is allocated in em but
+	  free in dbs freemap, disregards and reset em allocation, if no logical
+	  page. If logical page, concider the dbs freeset in errror and mark page
+	  as allocated.
+
+2010-07-09 15:57  source
+
+	* Updated version to 6.1.2 for final release
+
+2010-07-09 15:57  source
+
+	* Fixed version string ODBC driver
+
+2010-07-09 15:36  source
+
+	* Updated debian packaging files
+
+2010-07-09 15:29  source
+
+	* Fixed free data in wrong order
+
+2010-07-09 14:17  source
+
+	* Rebuild drivers
+
+2010-07-09 14:16  source
+
+	* Fixed performance issue loading LANG/TYPE info from empty db
+
+2010-07-09 13:32  source
+
+	* Fixed do not run tpc-h create on vad install
+
+2010-07-09 13:01  source
+
+	* Added UI support for SSL/TLS connection to LDAP server
+
+2010-07-09 12:59  source
+
+	* Added new tutorials
+
+2010-07-08 20:41  source
+
+	* Fixed application URLs
+
+2010-07-08 20:40  source
+
+	* Fixed application URL rewrite rules
+
+2010-07-08 13:40  source
+
+	* FIxed OpenID and SSL login
+
+2010-07-08 13:37  source
+
+	* Fixed VTIMEZONE component in export
+
+2010-07-08 13:27  source
+
+	* Fixed minor issue
+
+2010-07-08 13:23  source
+
+	* Added optimization for large descriptions
+
+2010-07-08 13:21  source
+
+	* Fixed add escape to CR/LF in JSON format
+
+2010-07-07 18:53  source
+
+	* Fixed openid to work with personal iri
+
+2010-07-07 18:42  source
+
+	* Updated documentation
+
+2010-07-07 12:43  source
+
+	* Fixed create list of unique graphs
+
+2010-07-06 23:07  source
+
+	* Added Tumblr cartridge
+
+2010-07-06 23:06  source
+
+	* Added description for property value in offers
+
+2010-07-06 23:04  source
+
+	* Added shared files using FOAF+SSL
+
+2010-07-06 22:58  source
+
+	* Fixed minor issue
+
+2010-07-06 14:30  source
+
+	* Updated version to 6.1.2-rc3
+
+2010-07-06 14:24  source
+
+	* Added new setting WideAsUTF16 to ODBC driver to return UTF-16LE
+	  when using SQLWCHAR
+	* Fixed setting for UTF-8 when db keeps UTF-8 in varchars
+
+2010-07-06 14:06  source
+
+	* Fixed declaration after statement
+
+2010-07-06 10:40  source
+
+	* Fixed yac_list_keys output is changed
+
+2010-07-06 10:39  source
+
+	* Fixed examine lastmod ts before updating
+
+2010-07-06 10:34  source
+
+	* Fixed as col_default is always a serialized value, zero can appear
+	  as default integer zero
+
+2010-07-06 09:56  source
+
+	* Fixed move alloc/free of descriptor handles into SQLAllocStmt
+
+2010-07-05 22:21  source
+
+	file tumblr2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-07-06 23:07:47 +0000
+
+2010-07-05 19:30  source
+
+	* Added information for building on Mac OS X 10.6
+
+2010-07-05 19:25  source
+
+	* Added missing test for memcpy
+
+2010-07-05 15:01  source
+
+	* Fixed wikiWord ("." is not yet part of the name)
+
+2010-07-05 14:59  source
+
+	* Fixed when importing keys, let user decide which on to use as his
+	  webid for ODBC/SQL login
+
+2010-07-05 14:48  source
+
+	* Added support for FOAF+SSL authentication
+
+2010-07-05 14:11  source
+
+	* Updated documentation
+
+2010-07-05 14:05  source
+
+	* Fixed upgrade procedure, more checks
+
+2010-07-05 14:04  source
+
+	* Moved to conductor
+
+2010-07-05 13:24  source
+
+	* Fixed handling multiple certs
+
+2010-07-05 13:23  source
+
+	* FIxed can have many certs in FOAF
+
+2010-07-05 13:17  source
+
+	* Mover ACL UI into conductor
+	* Fixed dependency on ODS Framework
+
+2010-07-05 13:11  source
+
+	file sparql_acl.vspx was added on branch V6_0_0-DEVEL on 2010-07-05 13:17:25 +0000
+
+2010-07-05 13:04  source
+
+	* Fixed use label ontology to extract geo coordinates
+
+2010-07-05 12:47  source
+
+	file manifest2.main was added on branch V6_0_0-DEVEL on 2010-07-05 12:56:21 +0000
+
+2010-07-05 12:47  source
+
+	file manifest3.main was added on branch V6_0_0-DEVEL on 2010-07-05 12:56:21 +0000
+
+2010-07-05 12:47  source
+
+	file manifest4.main was added on branch V6_0_0-DEVEL on 2010-07-05 12:56:21 +0000
+
+2010-07-05 12:42  source
+
+	* Added driver versioning
+	* Fixed issue with batch commit
+
+2010-07-05 12:41  source
+
+	* Added driver versioning
+	* FIxed issue with batch commit
+
+2010-07-05 12:40  source
+
+	* Rebuild driver
+
+2010-07-05 12:40  source
+
+	* Added driver versioning
+	* Fixed force jena's lazy initialization when Graph is created
+	* Fixed ignore warning on Binding.add NULL value
+
+2010-07-05 12:21  source
+
+	* Rebuild drivers
+
+2010-07-05 12:16  source
+
+	* Added driver versioning
+
+2010-07-05 12:16  source
+
+	file Version.java was added on branch V6_0_0-DEVEL on 2010-07-05 12:40:15 +0000
+
+2010-07-05 12:16  source
+
+	file Version.java was added on branch V6_0_0-DEVEL on 2010-07-05 12:41:21 +0000
+
+2010-07-05 12:16  source
+
+	file Version.java was added on branch V6_0_0-DEVEL on 2010-07-05 12:42:23 +0000
+
+2010-07-05 12:16  source
+
+	file manifest.main was added on branch V6_0_0-DEVEL on 2010-07-05 12:40:15 +0000
+
+2010-07-05 12:16  source
+
+	file manifest.main was added on branch V6_0_0-DEVEL on 2010-07-05 12:41:21 +0000
+
+2010-07-05 12:16  source
+
+	file manifest.main was added on branch V6_0_0-DEVEL on 2010-07-05 12:42:23 +0000
+
+2010-07-05 08:30  source
+
+	* Added more assertations to facets ontology
+
+2010-07-05 08:29  source
+
+	* Added label as IPF
+
+2010-07-05 08:29  source
+
+	* Remove tags from comment, label etc
+
+2010-07-05 08:26  source
+
+	* Added support for multiple certificates in user profile
+	* Added semantic pingback log
+	* Fixed GoodsRelation SIOC data
+	* Fixed Offers
+
+2010-07-05 08:25  source
+
+	* FIxed JS error showing unlogged users
+
+2010-07-05 08:22  source
+
+	file semping_log.vspx was added on branch V6_0_0-DEVEL on 2010-07-05 08:26:09 +0000
+
+2010-07-05 08:20  source
+
+	* Fixed RSS data
+
+2010-07-05 08:13  source
+
+	* Fixed minor issue
+
+2010-07-01 11:52  source
+
+	* Fixed namespace issues
+
+2010-07-01 11:49  source
+
+	* Fixed IE problem with negative size on box
+	* Fixed do not rewrite existing href on a++ links
+
+2010-06-30 14:32  source
+
+	* Fixed handing of items in alt name
+
+2010-06-30 14:31  source
+
+	* Fixed UI profile edit
+	* Fixed Favorites
+
+2010-06-30 14:29  source
+
+	* Fixed when distinct, should use one or the other ssl depending on which
+	  is non null
+
+2010-06-30 09:58  source
+
+	* Fixed minor issues
+
+2010-06-30 09:47  source
+
+	* Added UI semantic ping
+
+2010-06-30 09:47  source
+
+	file semping_app.vspx was added on branch V6_0_0-DEVEL on 2010-06-30 14:31:42 +0000
+
+2010-06-30 09:47  source
+
+	* Fixed handling of items in alt name
+
+2010-06-29 22:55  source
+
+	* Fixed handling of alt name
+
+2010-06-29 12:50  source
+
+	* Fixed semantic pingback
+
+2010-06-29 11:53  source
+
+	* Updated version to 6.1.2-rc2
+
+2010-06-28 11:14  source
+
+	* Fixed ontology label
+
+2010-06-28 10:34  source
+
+	* Fixed sparql union selections, added ANY decl on relevant section
+	  list bits
+
+2010-06-28 10:30  source
+
+	* Rebuild driver
+
+2010-06-28 10:19  source
+
+	* Added support for creating ruleset
+	* Fixed handling of quotes in literals
+
+2010-06-28 10:14  source
+
+	* Added support for using VirtuosoDataSource
+	* Fixed handling of quote chars in literals
+
+2010-06-28 09:49  source
+
+	* Updated documentation
+
+2010-06-28 09:48  source
+
+	* Added new images
+
+2010-06-28 09:35  source
+
+	* Added new RDF framework
+	* Added JS XPATH library
+	* Added browser checks
+	* Added logging/debugging helper functions
+	* FIxed rdftabs navigation and maps cosmetics
+	* Fixed DOM parser initialization issue with IE
+
+2010-06-28 09:23  source
+
+	* Added support for new RDF framework
+	* Fixed cosmetics
+	* Fixed extraneous comma in object def for IE7 compatibility
+	* Fixed small bugs
+
+2010-06-28 09:19  source
+
+	file xpath.js was added on branch V6_0_0-DEVEL on 2010-06-28 09:35:57 +0000
+
+2010-06-28 09:08  source
+
+	* Updated Favorites
+
+2010-06-28 09:07  source
+
+	* Added Semantic Pingback client/server
+
+2010-06-28 09:07  source
+
+	file semping.sql was added on branch V6_0_0-DEVEL on 2010-06-28 09:46:12 +0000
+
+2010-06-28 09:06  source
+
+	* Updated to CKEditor v3.3.1
+
+2010-06-25 16:41  source
+
+	* Added support for following http redirects automatically
+
+2010-06-25 16:39  source
+
+	* Fixed compiler warnings
+
+2010-06-25 11:22  source
+
+	* Added extra functions for graph diff, iteration over dictionary and
+	  obtaining biggest possible IRI_ID on given 32/64bit platform
+
+2010-06-25 11:19  source
+
+	* Added etsy cartridge
+	* Fixed minor issues
+
+2010-06-25 11:18  source
+
+	* Added new Link headers
+
+2010-06-25 11:16  source
+
+	* Fixed ACL file to have some permissions using foaf+ssl
+	* Fixed check it is not det
+
+2010-06-25 11:11  source
+
+	file users.xsl was added on branch V6_0_0-DEVEL on 2010-06-25 11:13:27 +0000
+
+2010-06-25 11:11  source
+
+	* Added OpenID 2.0 login and registration
+
+2010-06-25 11:10  source
+
+	* Added downstream using PSH subscription
+
+2010-06-25 10:46  source
+
+	* Fixed text
+
+2010-06-25 10:45  source
+
+	* Fixed problem with latest versions of libtool
+
+2010-06-24 23:08  source
+
+	* Updated documentation
+
+2010-06-24 15:34  source
+
+	* Fixed text labels
+
+2010-06-24 15:34  source
+
+	* Added more properties for inference
+
+2010-06-24 15:13  source
+
+	* Fixed check proxy and remove if host is an exception
+
+2010-06-24 08:20  source
+
+	* Fixed listener serialization
+	* Fixed hash
+
+2010-06-24 08:14  source
+
+	* Fixed reorganized rdf tab
+
+2010-06-24 08:14  source
+
+	file rdf_import.vspx was added on branch V6_0_0-DEVEL on 2010-06-24 15:32:12 +0000
+
+2010-06-24 08:14  source
+
+	file rdf_psh_subs.vspx was added on branch V6_0_0-DEVEL on 2010-06-24 15:32:12 +0000
+
+2010-06-22 23:07  source
+
+	file etsy2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-06-25 11:19:15 +0000
+
+2010-06-22 15:50  source
+
+	* Fixed rdfa failing to parse both rel/rev
+
+2010-06-22 15:50  source
+
+	* Fixed normalize_modulus
+
+2010-06-18 11:08  source
+
+	* Fixed url rewrite should happen before parsing parameters in order
+	  to check if we are dealing with php or proxy page when we use raw
+	  request body
+
+2010-06-16 10:50  source
+
+	* Added more properties for inferencing
+
+2010-06-16 10:50  source
+
+	* Fixed minor UI issue
+
+2010-06-15 20:06  source
+
+	* Fixed merged missing file
+
+2010-06-15 20:00  source
+
+	* Fixed calling wrong pl
+
+2010-06-15 19:59  source
+
+	file db_repl_rdf_pub_edit.vspx was added on branch V6_0_0-DEVEL on 2010-06-15 20:06:10 +0000
+
+2010-06-12 12:59  source
+
+	* Fixed do not free on SQL_SUCCESS, as this will be done at end of loop
+
+2010-06-12 12:57  source
+
+	* Fixed do not explicitly set header if it is already set; in proxy
+	  remove content-type as it will be set from sparql
+
+2010-06-11 12:48  source
+
+	* Fixed bad condition check
+
+2010-06-10 18:48  source
+
+	* FIxed ignore special properties such as virt:xx when printing
+
+2010-06-10 18:46  source
+
+	* Fixed fd can be 0 in background mode
+
+2010-06-10 12:41  source
+
+	* Fixed RDF trx replication UI
+
+2010-06-09 13:42  source
+
+	* Added ACL rules
+	* Added FOAF+SSL based authentication using ACL
+	* Added PubSubHub Feeds support
+
+2010-06-09 13:40  source
+
+	* Added PubSubHub Feeds support
+
+2010-06-09 13:29  source
+
+	* Added FOAF+SSL based authentication
+
+2010-06-09 13:28  source
+
+	* Fixed minor issues
+
+2010-06-09 12:31  source
+
+	* Added check for automatic repair
+
+2010-06-09 12:30  source
+
+	* Added check for automatic repair
+	* Fixed when taking a dp from extent map, must decrease the free
+	  pages accordingly
+
+2010-06-09 10:15  source
+
+	* Fixed VDB/DB2 stats procedure
+
+2010-06-08 21:58  source
+
+	* Added EAV and SPO labeling modes
+
+2010-06-07 13:29  source
+
+	* Fixed missing label
+	* Fixed label consistency
+	* Fixed check for iri type
+	* Fixed limit the result set
+
+2010-06-07 13:27  source
+
+	* Fixed use explicit format if supplied
+
+2010-06-07 13:26  source
+
+	* Fixed ODATA feed title locality
+
+2010-06-07 10:59  source
+
+	* Added wine cartridge
+	* Added youtube cartridge
+	* Fixed minor issues
+
+2010-06-07 10:59  source
+
+	file wine2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-06-07 13:25:38 +0000
+
+2010-06-07 10:59  source
+
+	file youtube2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-06-07 13:25:38 +0000
+
+2010-06-07 10:58  source
+
+	* Added support for ODATA formats
+	* Fixed webcal/feed in rewrite rules
+
+2010-06-01 15:26  source
+
+	* Added support for odata/json in describe and construct
+
+2010-06-01 14:06  source
+
+	* Fixed issues with variable binding
+	* Fixed examples
+
+2010-05-31 23:20  source
+
+	* Commented out old tutorial pages
+
+2010-05-31 23:18  source
+
+	* Added extra tutorials
+
+2010-05-31 22:04  source
+
+	* Updated version to 6.1.2-rc1
+
+2010-05-31 21:55  source
+
+	* Added common PubSubHub procedures
+	* Fixed use notify services for PubSubHub settings
+	* Fixed publish atom feed too
+	* Fixed PHP ssl
+
+2010-05-31 21:53  source
+
+	* Fixed link re=hub
+	* Fixed check individual settings
+
+2010-05-31 21:49  source
+
+	* Added support for PubSubHub
+
+2010-05-31 20:49  source
+
+	* Added setting for GatewayIpAddress
+
+2010-05-31 20:48  source
+
+	* Fixed missing external
+
+2010-05-31 20:47  source
+
+	* Fixed incomplete check condition as locks with pos at end do not
+	  count
+
+2010-05-31 20:45  source
+
+	* Fixed use request line for ID
+
+2010-05-31 14:27  source
+
+	* Merged enhancements from sesame2
+
+2010-05-31 14:26  source
+
+	* Rebuild driver
+
+2010-05-31 14:26  source
+
+	* Fixed isue with variable binding
+
+2010-05-31 14:07  source
+
+	file VirtuosoRepositoryConfig.java was added on branch V6_0_0-DEVEL on 2010-05-31 14:27:52 +0000
+
+2010-05-31 14:07  source
+
+	file VirtuosoRepositoryFactory.java was added on branch V6_0_0-DEVEL on 2010-05-31 14:27:52 +0000
+
+2010-05-31 14:07  source
+
+	file VirtuosoRepositorySchema.java was added on branch V6_0_0-DEVEL on 2010-05-31 14:27:52 +0000
+
+2010-05-31 14:07  source
+
+	file org.openrdf.repository.config.RepositoryFactory was added on branch V6_0_0-DEVEL on 2010-05-31 14:27:52 +0000
+
+2010-05-31 14:07  source
+
+	file org.openrdf.repository.templates was added on branch V6_0_0-DEVEL on 2010-05-31 14:27:52 +0000
+
+2010-05-31 14:07  source
+
+	file org.openrdf.store.schemas was added on branch V6_0_0-DEVEL on 2010-05-31 14:27:52 +0000
+
+2010-05-31 14:07  source
+
+	file virtuoso-schema.ttl was added on branch V6_0_0-DEVEL on 2010-05-31 14:27:52 +0000
+
+2010-05-31 14:07  source
+
+	file virtuoso.ttl was added on branch V6_0_0-DEVEL on 2010-05-31 14:27:52 +0000
+
+2010-05-31 11:08  source
+
+	* Added initial support for OData atom serialization
+	* Use CBG describe for OData format
+	* Use EMD types for generic types
+
+2010-05-31 11:00  source
+
+	* Added option DensePageAllocation which offers up some near page
+	  locality so resulting db uses less disk space
+
+2010-05-31 11:00  source
+
+	* Fixed issue with ?? with sparql compiler inside sql query
+
+2010-05-29 12:25  source
+
+	* Fixed when traverse foreigh sites, check if they add something
+	  more, such as redirects back to origin
+
+2010-05-29 12:09  source
+
+	* Rebuild driver
+
+2010-05-29 12:07  source
+
+	* Added check for inline string flag
+
+2010-05-29 12:00  source
+
+	* Fixed minor issues
+
+2010-05-28 16:56  source
+
+	* Fixed small issues
+
+2010-05-26 21:48  source
+
+	* Fixed use distinct as many graphs can be in same rule
+	* Minor UI tweaks
+
+2010-05-26 21:41  source
+
+	* Fixed report proper version
+	* Fixed compatibility with later JRE
+	* Fixed buffer length
+
+2010-05-26 21:37  source
+
+	* Fixed RM_XLAT_CONCAT
+
+2010-05-26 15:23  source
+
+	* Added Vimeo cartridge
+	* Fixed Tesco cartridge
+	* Fixed html2 cartridge
+
+2010-05-26 15:21  source
+
+	* Added support to export queues
+	* Fixed view in crawler UI
+
+2010-05-26 15:21  source
+
+	* Fixed incorrect check for VDB functionality
+
+2010-05-26 08:16  source
+
+	file vimeo2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-05-26 15:23:14 +0000
+
+2010-05-26 08:11  source
+
+	* Added automatic FOAF+SSL
+	* Added ping service to do PubSubHub
+	* Added PubSubHub settings in ODS
+	* Fixed collecting FOAF data
+	* Fixed casemode problem
+	* Fixed bad join
+	* Fixed typo
+
+2010-05-26 08:08  source
+
+	* Fixed group IRI
+
+2010-05-26 08:07  source
+
+	* Added PubSubHub setting in ODS
+
+2010-05-26 08:07  source
+
+	* Fixed upstreaming
+
+2010-05-26 07:57  source
+
+	file vfs_export.vspx was added on branch V6_0_0-DEVEL on 2010-05-26 15:21:53 +0000
+
+2010-05-24 22:36  source
+
+	* Fixed memleak
+
+2010-05-24 18:02  source
+
+	* Added improvements in inference handling
+	* FIxed support for subproperties of inverse functional properties
+	* Fixed support for loading aaa ruleset from multiple contology graphs
+
+2010-05-22 19:18  source
+
+	* Added support for gunzip session
+
+2010-05-21 12:40  source
+
+	* Fixed checking return code from fd_open call
+
+2010-05-21 12:27  source
+
+	* Added automatic error correction for some common typos in
+	  decode_b32_num
+
+2010-05-21 12:26  source
+
+	* Fixed when doing log replay, we should remove old roots to free
+	  memory as at this time the grim reaper is not available
+
+2010-05-21 12:24  source
+
+	* Fixed allow reset of xslt in PP hook
+
+2010-05-19 10:19  source
+
+	* Merged b32 encoding/decoding from HEAD
+
+2010-05-19 10:13  source
+
+	* Added support for editing update interval from site settings
+
+2010-05-19 10:04  source
+
+	* Fixed urchinTracker setting
+
+2010-05-18 22:29  source
+
+	* Added support for editline
+
+2010-05-18 19:33  source
+
+	* Added Google API
+
+2010-05-18 19:22  source
+
+	* Fixed minor issue
+
+2010-05-18 19:21  source
+
+	* Added support for additional types
+	* Fixed do not decode variants as we do not know if sender encoded
+	  special symbols or not
+
+2010-05-18 19:18  source
+
+	* Added more ctypes
+
+2010-05-18 13:01  source
+
+	* Fixed dependency list
+
+2010-05-18 10:52  source
+
+	* Fixed remove FACEBOOK_OPENGRAPH from tests as it is not related
+	  to RDFA
+
+2010-05-18 10:42  source
+
+	* Added FOAF+SSL registration for users pages (jsp, php, vsp etc)
+	* Fixed FOAF+SSL registration code
+	* Fixed modulus should be cleaned from garbage
+	* Fixed function to test w/o sparql acl table
+
+2010-05-18 10:41  source
+
+	* Updated SIOC service procedures
+
+2010-05-18 10:41  source
+
+	* Fixed get responce back so it can be traced if needed
+
+2010-05-18 10:40  source
+
+	* Updated SIOC services procedures
+
+2010-05-18 10:40  source
+
+	* Added FeedManager callback
+
+2010-05-18 10:39  source
+
+	* Fixed problem with atom feed
+
+2010-05-18 10:30  source
+
+	* Added Facebook Open Graph cartridge
+
+2010-05-18 10:30  source
+
+	file fb_og2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-05-18 10:44:45 +0000
+
+2010-05-18 10:30  source
+
+	file fb_ogs2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-05-18 10:44:45 +0000
+
+2010-05-18 10:30  source
+
+	* Fixed minor issues
+
+2010-05-18 09:08  source
+
+	* Fixed when statement has implicit group by, do not remove order by
+
+2010-05-17 08:21  source
+
+	* Fixed error messages
+
+2010-05-17 08:21  source
+
+	* Fixed wrong dv_compare on boxes with box flags
+
+2010-05-16 18:57  source
+
+	* Fixed page footer and labels
+
+2010-05-16 18:56  source
+
+	* Added missing grant
+
+2010-05-16 17:56  source
+
+	* Fixed index for better queue ordering
+
+2010-05-13 19:38  source
+
+	* Fixed do not decode anything. We just match what is in and print
+	  it out, if source is bad encoded, the result is bad encoded,
+	  otherwise can not figure-out what was it before and what should
+	  be after, so we keep it simple
+
+2010-05-12 22:46  source
+
+	* Fixed GPF when weird (but formally legal) head of composite XML contains
+	  two declarations of external entities with different entity names but
+	  same URI to resolve
+
+2010-05-12 12:24  source
+
+	* Fixed use special cl_non_logged_write_mode used to load extrememly
+	  large datasets needs to ensure no log will be made at all. If one
+	  node dies, the rest will do same. Use this flag only in safe
+	  environment
+
+2010-05-12 12:17  source
+
+	* Fixed GPF in SPARUL INSERT optimization that happens when an
+	  auxiliary retval with vector of variables is wrapped in alias
+
+2010-05-12 12:16  source
+
+	* Fixed when looking at free set from disk must stop at last, as
+	  the dbs pages can be out of sync. Do this only when reading from
+	  disk otherwise error
+
+2010-05-11 16:53  source
+
+	* Added option to skip sponger and do RDFa along with other rdf
+	  formats
+
+2010-05-11 12:46  source
+
+	* Fixed modulus should be cleaned from garbage
+
+2010-05-11 11:15  source
+
+	* Fixed check magic to make sure data is gzip compressed
+
+2010-05-10 10:02  source
+
+	* Optimized FOAF+SSL login
+	* Updated SIOC service procedures
+	* Fixed CR/LF to make proper N3 syntax
+	* Fixed bad email in WebID
+
+2010-05-10 09:55  source
+
+	* Added Idiomag cartridge
+	* Added HTML5 Microdata cartridge
+
+2010-05-10 09:55  source
+
+	file html5md2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-05-10 12:20:23 +0000
+
+2010-05-10 09:55  source
+
+	file idiomag2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-05-10 12:20:23 +0000
+
+2010-05-10 09:54  source
+
+	* Fixed minor issues
+
+2010-05-10 09:49  source
+
+	* Updated documentation
+
+2010-05-10 09:39  source
+
+	* Fixed keep dashes in words and use escape whenever it occurs;
+	  words starting with numbers should also be escaped
+
+2010-05-07 09:14  source
+
+	* Added new bifs for graph diff functionality, iteration over
+	 dictionary and obtaining biggest possible IRI_ID on 32/64bit
+	 platforms
+
+2010-05-03 23:54  source
+
+	* FIxed use X-Forwarded-Host to handle proxy
+
+2010-05-03 19:31  source
+
+	* Added support for logging x-forwarded-for when instance is using
+	  a proxy
+
+2010-05-03 08:54  source
+
+	* Added shortcut for debugging variables
+
+2010-04-29 10:54  source
+
+	* Fixed cleaning new schema properly
+
+2010-04-29 10:00  source
+
+	* Added type
+	* Fixed labels
+	* Minor fixes
+
+2010-04-29 09:59  source
+
+	* Fixed print string without waiting for error
+
+2010-04-29 08:29  source
+
+	* Added more properties
+
+2010-04-29 08:28  source
+
+	* Fixed About header
+
+2010-04-28 15:21  source
+
+	* Fixed if Host header is present use that, and do not add port as may be
+	  behind proxy
+
+2010-04-26 14:41  source
+
+	* Fixed when a signal error arrives, pop the bad instruction so the
+	  free is not confused by dk_set when IS_NULL
+
+2010-04-26 07:57  source
+
+	* Fixed crawling of RDFa
+
+2010-04-26 07:56  source
+
+	* Added FOAF+SSL client demo
+
+2010-04-26 07:53  source
+
+	* Fixed if no DefaultGraph, do not assume anything about /dataspace
+
+2010-04-26 07:51  source
+
+	* Fixed minor issue
+
+2010-04-24 14:01  source
+
+	* Added import/export support using Yahoo Contacts API
+
+2010-04-24 13:56  source
+
+	* Fixed obj2json function
+
+2010-04-23 20:03  source
+
+	* Fixed do not continue when missing part of key, as it is uninitialized
+	  and needs to be dropped before causing a gpf
+
+2010-04-23 20:02  source
+
+	* Fixed only serialize box flags for dependant part
+
+2010-04-22 14:12  source
+
+	* Added cset to render function to recode string results
+
+2010-04-22 12:41  source
+
+	* FIxed url must end in slash or hash
+
+2010-04-22 12:40  source
+
+	* Fixed unicode handling in isql and sparql UI
+
+2010-04-22 12:35  source
+
+	* Fixed minor issue
+
+2010-04-22 12:35  source
+
+	* Removed debugging
+
+2010-04-22 11:12  source
+
+	* Fixed http header ends with proper CRLF sequence
+
+2010-04-21 16:18  source
+
+	* Fixed when doing something that may reference the control_exp
+	  private elements set the so_df_private_elts, otherwise may get a
+	  new df which is in global so df hash
+
+2010-04-21 12:44  source
+
+	* Fixed treat sort read node like a ts in tracking ssl refs, else
+	  partitioned top oby goes wrong
+
+2010-04-20 19:27  source
+
+	* Fixed resize map width to width of result div
+
+2010-04-20 19:24  source
+
+	* Fixed when gby serialize box flag if any
+
+2010-04-17 23:23  source
+
+	* Fixed can have uninitialized null flag in hash temp; can be extra
+	  nulls in gby or hash join
+
+2010-04-16 12:35  source
+
+	* Added hook to execute secondary statement
+
+2010-04-16 12:33  source
+
+	* FIxed missing definition for bigint
+
+2010-04-16 11:40  source
+
+	* Fix for <![CDATA[ inside <script> in HTML and dirty HTML modes.
+
+2010-04-15 18:46  source
+
+	* Fixed export to Del.icio.us
+
+2010-04-15 18:42  source
+
+	* Fixed use global list of prefixes for advanced query helper as well
+	  as other parts
+
+2010-04-15 18:24  source
+
+	* Fixed minor issues
+
+2010-04-15 18:23  source
+
+	* Fixed support for foaf:maker
+
+2010-04-15 18:20  source
+
+	* Updated CSS for buttons
+
+2010-04-15 18:20  source
+
+	* Updated toolbar
+
+2010-04-15 14:05  source
+
+	* Fixed memleak when error in bif and no error var given
+
+2010-04-15 14:03  source
+
+	* Fixed memleak when client drops conneciton before prepare
+
+2010-04-14 13:47  source
+
+	* Added initial support for bif_python_exec
+
+2010-04-14 13:19  source
+
+	* Fixed export check to call in plugins
+
+2010-04-14 10:48  source
+
+	* Fixed support for bigint in parameter marshalling
+
+2010-04-14 10:47  source
+
+	* Fixed UI profile
+
+2010-04-13 12:19  source
+
+	* Fixed issue with ckeditor
+
+2010-04-13 12:18  source
+
+	* Fixed login with non WebDav accounts
+
+2010-04-13 12:17  source
+
+	* Updated CKEditor to version 3.2.1
+
+2010-04-13 12:17  source
+
+	file default.js was added on branch V6_0_0-DEVEL on 2010-04-14 10:47:31 +0000
+
+2010-04-12 19:42  source
+
+	* Added possibility to do URL encoding in TCN rules
+
+2010-04-12 19:41  source
+
+	* FIxed odata cartridge
+
+2010-04-12 19:39  source
+
+	* Fixed extra replacements
+
+2010-04-12 19:39  source
+
+	* Minor fix
+
+2010-04-12 12:37  source
+
+	* Fixed use UTF-8 as source and dest charsets when doing urls
+
+2010-04-12 07:28  source
+
+	* Fixed check for third argument
+
+2010-04-12 07:26  source
+
+	* Fixed query string for product description from BestBuy API
+	* Minor fixes
+
+2010-04-09 14:46  source
+
+	* Fixed use default MaxMemPoolSize of 200000000
+	* Fixed double MaxMemPoolSize on 64bit systems
+
+2010-04-09 14:43  source
+
+	* Fixed if we got a single ts as first and it is outer, put a dummy in
+	  front
+
+2010-04-09 14:36  source
+
+	* Fixed problem with Chrome browser and JS loading
+
+2010-04-09 14:34  source
+
+	* Fixed problem with Chrome browser and JS loading
+	* Fixed Relation ontology data
+
+2010-04-09 13:01  source
+
+	* Added Relation ontology
+	* Updated UI profile for vsp, php etc
+
+2010-04-09 13:01  source
+
+	* Fixed check for unique email address
+
+2010-04-08 14:40  source
+
+	* Added CSV parser mode option
+	* Fixed error reporting
+
+2010-04-08 14:30  source
+
+	* Added CSV parser lax mode
+	* FIxed log errors from loading
+
+2010-04-07 21:48  source
+
+	* Fixed issue with tab and space handling
+
+2010-04-07 19:27  source
+
+	* Fixed abnormal long RDFa parsing of document with i18n URIs
+
+2010-04-07 19:25  source
+
+	* Fixed memleak
+
+2010-04-07 19:25  source
+
+	* Fixed release it_maps as it is allocated dynamic
+
+2010-04-07 07:56  source
+
+	* Fixed wrong TTL output of CONSTRUCT of wierd IRIs
+
+2010-04-06 16:47  source
+
+	* Fixed shortcut comparing version numbers during package upgrade
+
+2010-04-06 16:41  source
+
+	* Updated documentation
+
+2010-04-06 16:33  source
+
+	* Added photo and audio upload for jtml, vsp, php and jsp pages
+
+2010-04-06 16:31  source
+
+	* Added CSV cartridge
+	* Fixed odata cartridge
+	* Fixed webcal support
+	* Fixed geo coords
+
+2010-04-06 16:29  source
+
+	* Added support for encodings
+	* Added support for gz and zip compressed CSV
+	* Fixed view to have col names
+	* Fixed catch db nulls
+	* Fixed crawling opts
+
+2010-04-06 15:51  source
+
+	file csvxml2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-04-06 16:31:40 +0000
+
+2010-04-06 15:51  source
+
+	file odata2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-04-06 16:31:40 +0000
+
+2010-04-06 14:43  source
+
+	* Fixed find const iri when nested call of i2id is used
+
+2010-04-06 13:47  source
+
+	* Rebuild driver
+
+2010-04-06 13:46  source
+
+	* Added additional support for inferencing
+	* Added new inferencing sample
+
+2010-04-06 13:46  source
+
+	file VirtuosoSPARQLExample13.java was added on branch V6_0_0-DEVEL on 2010-04-06 14:35:46 +0000
+
+2010-04-06 13:38  source
+
+	* Added rdftabs timeline support for ical properties
+	* Added ical:summary as one of recognized title properties
+	* Added support for ATOM feeds
+	* Fixed copy of defaults
+	* Fixed url encoding
+	* Fixed move OAT.Dom.decodeImage to OAT.Formobject
+	* Fixed use new OAT.Dom.create (..., {className:"XXX"}) method
+	* Fixed JSON serialize/deserialize
+	* Fixed rename find to indexOf
+
+2010-04-06 12:16  source
+
+	* Added support for listing content of zip file
+	* Fixed memleak in unzip_file
+
+2010-04-01 10:44  source
+
+	* Rebuild provider
+
+2010-04-01 10:43  source
+
+	file VirtuosoSPARQLExample12.java was added on branch V6_0_0-DEVEL on 2010-04-01 10:54:36 +0000
+
+2010-04-01 10:43  source
+
+	* Added support for inference graph
+	* Added support for inference and query execution
+	* Added support for QueryEngine interface, so now Jena provider support
+	  next query execution mode:
+	   a) parse and execute query via ARQ
+	   b) parse query via ARQ and execute query directly via Virtuoso(new mode)
+	   c) parse and execute query directly via Virtuoso
+	* Fixed small bugs
+
+2010-04-01 10:43  source
+
+	file VirtInfGraph.java was added on branch V6_0_0-DEVEL on 2010-04-01 10:54:36 +0000
+
+2010-04-01 10:43  source
+
+	file VirtuosoQueryEngine.java was added on branch V6_0_0-DEVEL on 2010-04-01 10:54:36 +0000
+
+2010-03-31 22:45  source
+
+	file foaf_ssl_client.vsp was added on branch V6_0_0-DEVEL on 2010-04-26 07:56:09 +0000
+
+2010-03-31 22:45  source
+
+	file fs_s_1.xml was added on branch V6_0_0-DEVEL on 2010-04-26 07:56:09 +0000
+
+2010-03-31 22:45  source
+
+	file register_cert.vsp was added on branch V6_0_0-DEVEL on 2010-04-26 07:56:09 +0000
+
+2010-03-31 22:07  source
+
+	* Fixed insecure https client connections
+	* Fixed memleaks on connection error
+
+2010-03-31 22:06  source
+
+	* Fixed no value is null
+
+2010-03-30 17:59  source
+
+	* Updated documentation
+
+2010-03-30 15:34  source
+
+	* Updated version to 6.1.1 for final release
+
+2010-03-30 15:33  source
+
+	* Fixed compiler warning
+
+2010-03-30 15:28  source
+
+	* Added import from URL
+	* Fixed use escape to handle hash based IRIs
+
+2010-03-30 13:08  source
+
+	* Fixed minor issue
+	* Removed deprecated file
+
+2010-03-30 13:07  source
+
+	* Added missing file to distribution
+
+2010-03-30 12:42  source
+
+	* Fixed extra define for linux on sparc
+
+2010-03-29 13:56  source
+
+	* Added support for oData
+
+2010-03-29 13:37  source
+
+	* Fixed skip identity columns
+
+2010-03-29 13:33  source
+
+	* Fixed changed default map to Google Maps API v3
+
+2010-03-29 13:32  source
+
+	* Added options page for parser options, preview etc
+	* Fixed IDN col
+
+2010-03-29 13:32  source
+
+	file import_csv_opts.vspx was added on branch V6_0_0-DEVEL on 2010-03-29 13:36:12 +0000
+
+2010-03-28 23:21  source
+
+	* Fixed object properties in favorites
+
+2010-03-28 23:21  source
+
+	* Fixed a++ links
+
+2010-03-26 23:08  source
+
+	* Updated documentation
+
+2010-03-26 23:02  source
+
+	* Added image
+
+2010-03-26 22:53  source
+
+	* Added user's ontologies in favorites
+	* FIxed ontology API
+
+2010-03-26 22:50  source
+
+	* Fixed image preview
+
+2010-03-26 19:46  source
+
+	* Rebuild drivers
+
+2010-03-26 19:43  source
+
+	* Fixed memory leak
+
+2010-03-26 19:43  source
+
+	* Fixed missing check for ROLLEDBACK
+
+2010-03-26 19:35  source
+
+	* Added options to CSV parser for delimiter and quote char
+
+2010-03-26 16:14  source
+
+	* Added support for CSV import
+
+2010-03-26 16:14  source
+
+	file import_csv_1.vspx was added on branch V6_0_0-DEVEL on 2010-03-26 19:31:51 +0000
+
+2010-03-26 16:14  source
+
+	file import_csv_2.vspx was added on branch V6_0_0-DEVEL on 2010-03-26 19:31:51 +0000
+
+2010-03-26 16:14  source
+
+	file import_csv_3.vspx was added on branch V6_0_0-DEVEL on 2010-03-26 19:31:51 +0000
+
+2010-03-25 19:31  source
+
+	* Added csv_parse function
+
+2010-03-24 22:31  source
+
+	* Fixed preserve content-type field
+
+2010-03-24 22:21  source
+
+	* Added support for reading CSV files into tables
+
+2010-03-24 22:18  source
+
+	* Added support for setMaxRows
+	* Fixed check argument values
+
+2010-03-24 21:47  source
+
+	* Regenerated drivers
+
+2010-03-24 16:43  source
+
+	* Fixed typo
+
+2010-03-24 10:23  source
+
+	* Added options for /sparql
+	* Added function http_header_array_get to retrieve headers as an
+	  array of strings
+
+2010-03-24 01:03  source
+
+	* Added optimization of sprintf_inverse(const)
+
+2010-03-24 01:02  source
+
+	* Fixed save the jt before doing ts; this is needed because ic_after_pos
+	  expects in jt but because of in_list it can be modified
+
+2010-03-24 01:00  source
+
+	* Fixed compiler warning
+
+2010-03-23 10:07  source
+
+	* Fixed use globally known dfe for a select even in cond exp, else it
+	  ruins the dt by repeatedly adding the same items when making a second
+	  dfe for the same select
+
+2010-03-23 10:01  source
+
+	* Fixed incorrect codegen of formatter in ssg_select_known_graphs_codegen
+
+2010-03-22 22:29  source
+
+	* Updated documentation
+
+2010-03-22 22:01  source
+
+	* Added a++ otion in user's pages
+	* Fixed ontology APIs
+	* Fixed 'Creator of'
+	* Fixed nickName
+	* Fixed php POST request
+
+2010-03-22 21:48  source
+
+	* Fixed also check for ctype
+
+2010-03-22 21:46  source
+
+	* Fixed Back button
+
+2010-03-22 21:46  source
+
+	* Added support for WebID
+
+2010-03-22 21:43  source
+
+	* Fixed fetching img id
+	* Fixed issue with multiple URL params
+
+2010-03-22 13:40  source
+
+	* Fixed use sk_X509_ALGOR_* macros
+
+2010-03-22 12:36  source
+
+	* Fixed X509ClientVerify flag of 0/1/2/3 to accept self signed or
+	  optional certificates
+
+2010-03-22 12:35  source
+
+	* Added support for FOAF+SSL login for SQL connections
+
+2010-03-22 11:54  source
+
+	* Fixed do not encode default graph
+
+2010-03-22 11:54  source
+
+	* Fixed SPARQL 1.1 compatibility in result set syntax
+
+2010-03-19 14:59  source
+
+	* Fixed use newer OAT functions
+
+2010-03-19 10:08  source
+
+	* Added improved version of xsl:for-each-row for both SPARQL and SQL
+
+2010-03-19 10:05  source
+
+	* FIxed issue with backup
+
+2010-03-18 15:45  source
+
+	* Fixed when transaction is prepared but not committed before commit
+	  we must check if cpt is pending. If so we must wait as xa trx has
+	  special processing in cpt_rollback and log_cpt
+	* Fixed compiler warning
+
+2010-03-18 15:43  source
+
+	* Fixed better serialization on lt_lock_mtx
+
+2010-03-18 10:59  source
+
+	* Fixed enter mtx before truncating log
+	* Fixed when a 2pc transaction as finished, invalidate its commit
+	  flag offset since the log is rewritten already. The trx must already
+	  be in cpt state.
+
+2010-03-18 10:50  source
+
+	* Fixed use new OAT toolkit
+
+2010-03-18 10:48  source
+
+	* Fixed check if datadump is gz too
+	* Fixed the next site needs to copy all props from initial
+	* Fixed use log mode 3 as dump can be large
+
+2010-03-18 10:47  source
+
+	* Fixed deadlock retry
+
+2010-03-18 10:46  source
+
+	* Fixed missing date conversion
+
+2010-03-18 10:45  source
+
+	* Fixed alert text
+	* Fixed typo in styles path
+	* Fixed use new API functions
+	* Fixed support for Google map v3
+
+2010-03-18 10:20  source
+
+	* Fixed rebuild driver
+
+2010-03-18 09:58  source
+
+	* Fixed user's login
+	* Fixed UI buttons
+	* Fixed unique name message
+	* Fixed wishlist UI pages
+	* Fixed rename FOAF+SSL to WebID
+
+2010-03-18 09:56  source
+
+	* Fixed rename FOAF+SSL to WebID
+
+2010-03-17 14:54  source
+
+	* Fixed check proper prefetch value
+
+2010-03-16 23:53  source
+
+	* Fixed check lt
+
+2010-03-16 18:21  source
+
+	* Fixed when txn error remove trx from global pool. It cannot be
+	  committed anyway
+
+2010-03-16 18:20  source
+
+	* Fixed properly set lt_threads
+
+2010-03-16 11:39  source
+
+	* Fixed when writing log entries always check the mtx
+
+2010-03-16 11:39  source
+
+	* Fixed when setting up a XA trx wait for any checkpoint in progress
+	  to finish before proceeding
+
+2010-03-16 10:54  source
+
+	* Fixed if not box or dfe false, skip rest
+
+2010-03-16 10:51  source
+
+	* Added virtuoso.ttl to sesame jar
+	* Added csl pages for Sesame HTTP repository configuration
+	* Rebuild driver
+
+2010-03-16 10:44  source
+
+	file create-virtuoso.xsl was added on branch V6_0_0-DEVEL on 2010-03-16 10:51:14 +0000
+
+2010-03-16 10:44  source
+
+	file create.xsl was added on branch V6_0_0-DEVEL on 2010-03-16 10:51:14 +0000
+
+2010-03-16 10:26  source
+
+	* Added support for vad_version
+	* FIxed use new OAT toolkit
+	* Removed debug code
+
+2010-03-16 10:24  source
+
+	* FIxed encoding of URL params
+
+2010-03-16 10:16  source
+
+	file vad_version was added on branch V6_0_0-DEVEL on 2010-03-16 10:26:11 +0000
+
+2010-03-15 16:46  source
+
+	* Fixed resume waiting
+
+2010-03-15 15:51  source
+
+	* Fixed check array index not out of bound
+
+2010-03-15 15:50  source
+
+	* Fixdd FOAF+SSL user pages
+
+2010-03-15 15:49  source
+
+	* FIxed removed debugging code
+
+2010-03-15 15:27  source
+
+	* Fixed use new OAT toolkit
+	* Fixed version check for ODS Framework
+
+2010-03-15 13:16  source
+
+	* Fixed missing case for LT_PREPARE_PENDING
+
+2010-03-12 14:04  source
+
+	* Fixed invitation problem with multiple users
+
+2010-03-12 13:34  source
+
+	* Merged new version of OAT toolkit
+	* Fixed Google Maps v3 support
+
+2010-03-12 13:34  source
+
+	* FIxed IRIs
+
+2010-03-12 09:13  source
+
+	* Merged newer version of OAT toolkit
+	* Fixed dependency to later version of ODS Framework
+	* Fixed SIOC subscriptions
+
+2010-03-12 09:13  source
+
+	* Merged newer version of OAT toolkit
+	* Fixed dependency to later version of ODS Framework
+
+2010-03-12 09:12  source
+
+	* Merged new version of OAT toolkit
+	* Fixed icons - delete and add
+	* Fixed dependency to later version of ODS framework
+
+2010-03-12 09:10  source
+
+	* Added Register to vsp, php etc users pages
+	* Added X.509 create certificate to users pages
+	* Merged new version of OAT toolkit
+	* Fixed UI profile
+	* Fixed delete action
+	* Fixed new foaf+ssl schema support
+
+2010-03-12 09:04  source
+
+	* Added uStream cartridge
+	* Fixed PPTX cartridge to work with latest description.vsp
+
+2010-03-12 09:01  source
+
+	* Merged new version of OAT toolkit
+	* Added location macro support
+	* Fixed numerous issues
+
+2010-03-11 17:20  source
+
+	file error.js was added on branch V6_0_0-DEVEL on 2010-03-12 09:01:02 +0000
+
+2010-03-11 17:20  source
+
+	file location.js was added on branch V6_0_0-DEVEL on 2010-03-12 09:01:02 +0000
+
+2010-03-11 17:20  source
+
+	file mob_home_icon.png was added on branch V6_0_0-DEVEL on 2010-03-12 09:01:02 +0000
+
+2010-03-11 17:20  source
+
+	file mobile.css was added on branch V6_0_0-DEVEL on 2010-03-12 09:01:02 +0000
+
+2010-03-11 17:20  source
+
+	file statusui.js was added on branch V6_0_0-DEVEL on 2010-03-12 09:01:02 +0000
+
+2010-03-11 17:02  source
+
+	* Merged new version of OAT toolkit
+
+2010-03-10 20:28  source
+
+	* Fixed JSON support
+
+2010-03-10 15:09  source
+
+	* Fixed wide character when getting procedure columns information
+
+2010-03-10 15:08  source
+
+	* Added OPTIONS for http server
+	* Added trace method
+
+2010-03-10 14:43  source
+
+	* Fixed support of old and new schema for FOAF+SSL
+
+2010-03-10 10:34  source
+
+	* Fixed allow nulls, DV_C_STRING and memleak
+
+2010-03-09 20:14  source
+
+	* Added support for nvarchar to __like_min and __like_max
+
+2010-03-09 20:12  source
+
+	* Fixed possible dfe_false in context
+
+2010-03-08 20:39  source
+
+	* Fixed setting pooling params
+
+2010-03-08 20:37  source
+
+	* Rebuild driver
+
+2010-03-08 14:20  source
+
+	* Fixed allow chunked content to be read as strses
+
+2010-03-08 12:04  source
+
+	* Fixed typos
+
+2010-03-08 12:02  source
+
+	* Fixed typo in tag MusicianCreditsList
+
+2010-03-08 11:54  source
+
+	* Added wide char support to set_qualifier
+
+2010-03-08 11:53  source
+
+	* Fixed issue when no content len is give but content is sent as
+	  http/1.0 protocol e.g. with connection-close
+
+2010-03-08 09:21  source
+
+	* Fixed typo in scovo:dimension
+
+2010-03-07 08:20  source
+
+	* Fixed typo
+
+2010-03-07 08:18  source
+
+	* Fixed SERVICE parameter passing
+	* Fixed (!ask(...)) in filters
+
+2010-03-05 10:17  source
+
+	file ustream2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-03-12 09:04:54 +0000
+
+2010-03-04 23:49  source
+
+	* Added tests
+
+2010-03-04 23:44  source
+
+	* Fixed improved codegen for FILTER (?local = IRI(?:global)) .
+
+2010-03-04 23:43  source
+
+	* Added support for fractions of second in bif_dateadd
+
+2010-03-04 23:38  source
+
+	* Fixed tests
+
+2010-03-04 20:45  source
+
+	* Updated docs
+
+2010-03-04 16:39  source
+
+	* Fixed memory leaks
+	* Fixed read memory after free
+	* Fixed when one connection does prepare and then uses another
+	  connection to commit/rollback, must reset 1st cli's trx
+	* Fixed when writing to log enter mutex to avoid concurrent writing
+
+2010-03-04 14:15  source
+
+	* Fixed typo
+
+2010-03-04 14:14  source
+
+	file virt_dialect.jar was added on branch V6_0_0-DEVEL on 2010-03-04 14:14:39 +0000
+
+2010-03-04 13:39  source
+
+	* Added initial support for JDBC hibernate
+
+2010-03-04 13:39  source
+
+	file .cvsignore was added on branch V6_0_0-DEVEL on 2010-03-04 14:12:58 +0000
+
+2010-03-04 13:39  source
+
+	file Makefile.am was added on branch V6_0_0-DEVEL on 2010-03-04 14:12:58 +0000
+
+2010-03-04 13:39  source
+
+	file README.hibernate was added on branch V6_0_0-DEVEL on 2010-03-04 14:12:57 +0000
+
+2010-03-04 13:39  source
+
+	file VirtuosoDialect.java was added on branch V6_0_0-DEVEL on 2010-03-04 14:12:58 +0000
+
+2010-03-04 12:18  source
+
+	* Rebuild driver
+
+2010-03-04 12:18  source
+
+	* Fixed driver version
+
+2010-03-04 12:12  source
+
+	* Fixed connection pooling
+
+2010-03-04 12:11  source
+
+	* Fixed remove xa transaction
+
+2010-03-03 22:55  source
+
+	* Fixed do not setup unknown for special methods
+
+2010-03-03 09:21  source
+
+	* Rebuild driver
+
+2010-03-03 09:20  source
+
+	* Fixed problem with jar packaging
+
+2010-03-02 10:01  source
+
+	* Added OPTIONS support for http server
+
+2010-03-01 21:05  source
+
+	* Added initial support for basic SPARQL federation
+
+2010-03-01 20:46  source
+
+	* Added DefaultServiceMap and DefaultServiceStorage
+
+2010-03-01 20:42  source
+
+	* Fixed support for positional and named parameters from exec() or
+	  similar in SPARQL, as if they where global variables of other
+	  sorts
+
+2010-03-01 10:26  source
+
+	* Fixed use unzip_file function
+
+2010-03-01 10:18  source
+
+	* Fixed Import
+
+2010-03-01 10:16  source
+
+	* Fixed CSS
+
+2010-03-01 10:15  source
+
+	* Fixed minor issues
+
+2010-03-01 10:12  source
+
+	* Fixed compatiblity with jdk1.5
+
+2010-03-01 10:07  source
+
+	* Upgraded to Jena 2.6.2
+	* Fixed backward compatiblity with jdk 1.5
+
+2010-03-01 10:06  source
+
+	* Fixed make sesame2 backward compatible with jdk1.5
+
+2010-03-01 09:31  source
+
+	* Regenerated driver
+
+2010-03-01 09:17  source
+
+	* Rebuild driver
+
+2010-03-01 01:03  source
+
+	* Added immortal IRI for uname_virtrdf_ns_uri_DefaultServiceStorage
+
+2010-03-01 01:01  source
+
+	* Added support for unzip_file ()
+
+2010-03-01 00:50  source
+
+	* Updated documentation
+
+2010-03-01 00:39  source
+
+	* Upgraded to Sesame 2.3.1
+
+2010-03-01 00:38  source
+
+	* Fixed typo
+
+2010-03-01 00:35  source
+
+	* Added swapguard option
+
+2010-03-01 00:28  source
+
+	* Added columns for api type and id
+
+2010-03-01 00:03  source
+
+	* Added support for saving history to disk
+
+2010-02-28 23:58  source
+
+	* Fixed geo:point matching
+	* Fixed regex to remove default ns from XML - single quotes are valid
+	  for enclosed attribute values
+
+2010-02-28 23:57  source
+
+	* Fixed positioned update problem on cluster
+
+2010-02-28 23:55  source
+
+	* Added refresh parameter
+
+2010-02-28 23:52  source
+
+	* Added setting for RoundRobin scheduling
+
+2010-02-27 22:21  source
+
+	* Fixed diagnosics of async_queue specific errors like aq invocation
+	  on log replay or security issues
+
+2010-02-26 17:31  source
+
+	* Fixed missing label
+
+2010-02-26 17:28  source
+
+	* Fixed use union for local automatic variables to avoid alignment
+	  problems
+
+2010-02-26 10:24  source
+
+	* Regenerated driver
+
+2010-02-26 10:05  source
+
+	* Upgraded to Sesame 2.3.1
+	* Removed deprecated file
+	* Fixed inference support
+
+2010-02-25 20:24  source
+
+	* Updated to Sesame 2.2.4
+
+2010-02-25 20:23  source
+
+	* Added support for Sesame 2 HTTP respository
+	* Updated toSesame 2.2.4
+
+2010-02-25 20:21  source
+
+	* Rebuild driver
+
+2010-02-25 20:20  source
+
+	file VirtuosoRepositoryConfig.java was added on branch V6_0_0-DEVEL on 2010-02-25 20:23:04 +0000
+
+2010-02-25 20:20  source
+
+	file VirtuosoRepositoryFactory.java was added on branch V6_0_0-DEVEL on 2010-02-25 20:23:05 +0000
+
+2010-02-25 20:20  source
+
+	file VirtuosoRepositorySchema.java was added on branch V6_0_0-DEVEL on 2010-02-25 20:23:05 +0000
+
+2010-02-25 20:20  source
+
+	file org.openrdf.repository.config.RepositoryFactory was added on branch V6_0_0-DEVEL on 2010-02-25 20:23:02 +0000
+
+2010-02-25 20:20  source
+
+	file virtuoso.ttl was added on branch V6_0_0-DEVEL on 2010-02-25 20:23:02 +0000
+
+2010-02-25 16:09  source
+
+	* FIxed url param for metadata selection
+
+2010-02-25 16:09  source
+
+	* Added 'Import' to user pages (vsp, php etc)
+	* Fixed pass interface too
+
+2010-02-25 16:08  source
+
+	* Added tweet gizmo
+
+2010-02-25 16:07  source
+
+	* Fixed groups
+
+2010-02-24 20:55  source
+
+	* Added proper ASK support in web service endpoing
+	* Fixed faster loading of inference sets
+	* Fixed loading of inference sets from graph groups, not only from
+	  single graphs
+	* Fixed creation of graph groups on cluster
+
+2010-02-24 20:53  source
+
+	* Added swap guard to kill trx and log ws when swapping is over 300 pages
+
+2010-02-24 13:02  source
+
+	* Fixed use unsigned for lower parts else we risk sign extent on large
+	  numbers
+
+2010-02-23 22:35  source
+
+	* Fixed metadata
+
+2010-02-23 14:50  source
+
+	* Fixed when looking at col_preds and seeking for column, make sure cp
+	  dfe is a column
+
+2010-02-23 14:49  source
+
+	* Added prototype
+
+2010-02-23 14:49  source
+
+	* Fixed when unbox iri make sure value is of type DV_IRI_ID
+
+2010-02-23 14:48  source
+
+	* FIxed 2pc file name does not change with log file if log trail on
+
+2010-02-23 10:44  source
+
+	* Fixed rewriting of group patterns with filters replaced with restrictions on
+	  equivs
+
+2010-02-23 10:21  source
+
+	* Fixed stop compilation where comp time over run time
+
+2010-02-19 00:22  source
+
+	* Fixed when doing a log replay, mark prepared XA trx as such
+
+2010-02-19 00:22  source
+
+	* Fixed more macros for 64bit fs
+
+2010-02-18 21:37  source
+
+	* Use macros for file calls for 64bit fs
+
+2010-02-18 21:36  source
+
+	* Merged XA fixes from HEAD
+
+2010-02-18 20:46  source
+
+	* FIxed mem leak
+
+2010-02-18 14:22  source
+
+	* Fixed minor issue
+
+2010-02-18 14:13  source
+
+	* Fixed if avail always use ro_id for hash
+
+2010-02-18 14:12  source
+
+	* Fixed text for NOT pred
+
+2010-02-18 10:57  source
+
+	* Fixed use separate macro for COL_DOTTED
+
+2010-02-18 10:01  source
+
+	* Fixed SIOC subscriptions
+	* Fixed bad item descriptions
+
+2010-02-18 10:00  source
+
+	* Fixed groups
+	* Fixed bookmarklet
+	* Fixed typo
+
+2010-02-17 22:06  source
+
+	* Fixed order must be greater than 0
+
+2010-02-17 16:58  source
+
+	* Fixed remove null in gby as it is not needed
+	* Fixed jts to check for call
+
+2010-02-17 16:56  source
+
+	* Fixed do not print default port for http and https in urls
+
+2010-02-17 10:21  source
+
+	* Fixed labels and added new columns
+
+2010-02-16 15:03  source
+
+	* Fixed IN pred as iterator before index path
+
+2010-02-16 13:49  source
+
+	* Added slidesix cartridge
+	* Fixed run microformats independent of rdfa
+
+2010-02-16 13:48  source
+
+	* Fixed owl:sameAS is not a:id
+
+2010-02-16 13:48  source
+
+	* Fixed minor issues
+
+2010-02-16 13:48  source
+
+	* Rolled back fix for GR data
+
+2010-02-16 13:46  source
+
+	file slidesix2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-02-16 13:49:30 +0000
+
+2010-02-16 12:47  source
+
+	* Fixed leave semaphore before jump
+
+2010-02-16 11:58  source
+
+	* Fixed detection of n3 and nt formats
+
+2010-02-15 21:23  source
+
+	* Fixed use macro
+
+2010-02-15 19:46  source
+
+	* FIxed GPF when 2nd argument is not a string
+
+2010-02-15 19:46  source
+
+	* Fixed inx int not applicable to keys with no pk ref
+
+2010-02-15 10:05  source
+
+	* Fixed problem with shared files
+
+2010-02-12 22:14  source
+
+	* Fixed bad array index check
+
+2010-02-12 22:13  source
+
+	* Added option for user WebID
+
+2010-02-12 22:12  source
+
+	* Fixed table editing fields
+
+2010-02-12 20:05  source
+
+	* Fixed NT serializations (_:_ is not a valid bnode in NT so it is
+	  replaced with _:ResultSet2053 )
+
+2010-02-12 13:00  source
+
+	* Updated version to 3127
+
+2010-02-12 12:56  source
+
+	* Rebuild driver
+
+2010-02-12 12:56  source
+
+	* Fixed use bitmask check
+
+2010-02-12 11:53  source
+
+	* Fixed combination of RDF_OBJ_OF_LONG(RDF_LONG_OF_SQLVAL(string))
+	  that screwed up RDF_DELETE_TRIPLES_AGG()
+
+2010-02-12 11:20  source
+
+	* Added "Create New Resource" option
+
+2010-02-12 11:20  source
+
+	* Fixed always refresh robot status
+
+2010-02-12 10:34  source
+
+	* Regenerated drivers
+
+2010-02-12 10:26  source
+
+	* Fixed issues with Literal data
+	* Small bugfixes
+
+2010-02-11 23:23  source
+
+	* Updated documentation
+
+2010-02-11 23:17  source
+
+	* Fixed serialize ha_hits hash lookups
+
+2010-02-11 16:25  source
+
+	* Fixed bug with ITF-8 encoded strings in box
+
+2010-02-11 14:00  source
+
+	* Fixed codegen in LIMIT ?:global-variable and OFFSET ?:global-variable
+
+2010-02-11 13:19  source
+
+	* Added new demo queries
+
+2010-02-11 13:16  source
+
+	* Added 'create file' action
+
+2010-02-11 13:16  source
+
+	file filenew_32.png was added on branch V6_0_0-DEVEL on 2010-02-11 13:17:24 +0000
+
+2010-02-11 13:16  source
+
+	file gray_filenew_32.png was added on branch V6_0_0-DEVEL on 2010-02-11 13:17:24 +0000
+
+2010-02-11 13:15  source
+
+	* Fixed removed status bar
+
+2010-02-10 22:18  source
+
+	* Fixed DAV path normalize
+	* Fixed Feeds rights
+	* Fixed UI Profile JS
+	* Fixed UI Profile pages
+
+2010-02-10 22:17  source
+
+	* Fixed WebID selection
+	* Fixed calling proc from packages other than Framework
+
+2010-02-10 22:11  source
+
+	file tbl.js was added on branch V6_0_0-DEVEL on 2010-02-10 22:17:52 +0000
+
+2010-02-10 22:11  source
+
+	file webid_select.vspx was added on branch V6_0_0-DEVEL on 2010-02-10 22:17:52 +0000
+
+2010-02-10 22:09  source
+
+	* Fixed Anotea, CSS
+	* Fixed Annotation SIOC Data
+
+2010-02-10 22:06  source
+
+	file tbl.js was added on branch V6_0_0-DEVEL on 2010-02-10 22:18:53 +0000
+
+2010-02-10 16:10  source
+
+	* Fixed move assignment of oplval_len before jump since we know
+	  oplval_strval is a string box already
+
+2010-02-10 16:09  source
+
+	* Fixed whitespace
+
+2010-02-10 16:08  source
+
+	* Fixed compiler warning about possible uninitialized vars
+
+2010-02-10 16:05  source
+
+	* Fixed typo in if expression
+
+2010-02-10 16:05  source
+
+	* Fixed use err_ret
+
+2010-02-10 16:04  source
+
+	* Fixed should use int64 type
+
+2010-02-10 14:05  source
+
+	* Fixed SPARQL_SELECT_KNOWN_GRAPHS
+
+2010-02-10 14:04  source
+
+	* Fixed define dpipe before anything else is called
+
+2010-02-10 12:58  source
+
+	* Fixed check for array boundary
+
+2010-02-10 12:57  source
+
+	* Fixed compiler warnings
+
+2010-02-10 11:03  source
+
+	* Added DKS box serialization flag DKS_TO_HA_DISK_ROW to preserve
+	  box flags in procedure views temp tables
+
+2010-02-10 11:03  source
+
+	* Fixed missing initialization in calculation of cost and cardinality
+
+2010-02-09 17:38  source
+
+	* Fixed workaround for non-iri g1
+
+2010-02-09 17:37  source
+
+	* Fixed check to include iri_to_id
+
+2010-02-09 16:11  source
+
+	* Fixed bug with UTF-8 encoded strings
+
+2010-02-09 15:13  source
+
+	* Added new SPARQL endpoints
+	* Added missing file
+	* FIxed missing execute permalink
+	* Fixed css to make tab effect more consistent
+
+2010-02-09 15:11  source
+
+	* Fixed do not make an artm op 0-n for neg literal -n
+
+2010-02-09 14:47  source
+
+	* Fixed check against abnormally big number of distinct datatypes
+	  or languages
+
+2010-02-09 14:46  source
+
+	file defaults.vsp was added on branch V6_0_0-DEVEL on 2010-02-09 15:13:31 +0000
+
+2010-02-09 14:34  source
+
+	* Fixed version number in http headers
+
+2010-02-09 14:33  source
+
+	* Fixed check trans node max mem when reading rows
+
+2010-02-09 14:23  source
+
+	* Fixed mem leaks in client
+
+2010-02-09 11:39  source
+
+	* Fixed memory leak in trans node compilation
+
+2010-02-08 21:24  source
+
+	* Added protection against abnormally bif number of distinct datatypes
+	  or languages
+
+2010-02-08 21:22  source
+
+	* Fixed SQL codegen for NOT() retval expression
+
+2010-02-08 21:22  source
+
+	* Fixed memory leak
+
+2010-02-08 12:38  source
+
+	* FIxed gpf in serializer when using default constand
+	* Fixed gpf when type is bad or zero
+
+2010-02-08 12:34  source
+
+	* Fixed log replay for rdfs_load_schema on cluster
+
+2010-02-08 12:33  source
+
+	* Fixed loading literals of type xsd:Token
+
+2010-02-03 20:49  source
+
+	* Updated version to 6.1.0 for final release
+
+2010-02-03 20:37  source
+
+	* Removed deprecated directory
+
+2010-02-03 19:39  source
+
+	* Updated version to 06.01
+
+2010-02-03 19:38  source
+
+	* Updated version number
+
+2010-02-03 19:37  source
+
+	* Updated version to 6.1.0-rc1
+
+2010-02-03 19:17  source
+
+	* Fixed missing include files
+
+2010-02-03 19:06  source
 
 	* Regenerated drivers
 
-2011-02-18 10:24  source
+2010-02-03 18:37  source
+
+	* Fixed comment
+
+2010-02-03 18:34  source
+
+	* Added missing file to distribution
+
+2010-02-03 18:03  source
+
+	* Fixed building with external zlib
+
+2010-02-03 17:09  source
+
+	* Fixed no need to build this dir when using external zlib
+
+2010-02-03 17:06  source
+
+	* Fixed generated by comment
+
+2010-02-03 16:58  source
+
+	* Fixed CRLF
+
+2010-02-03 16:53  source
+
+	* Fixed make clean
+
+2010-02-03 15:46  source
+
+	* Fixed changelog
+
+2010-02-03 15:44  source
+
+	* Fixed dependency
+
+2010-02-03 15:40  source
+
+	* Added correct handling of standard SPARQL (non-RDF) result sets.
+	* Server defaults are now loaded through a web service - /isparq/defaults/
+	* Resulting HTML is more valid
+	  - no <script> outside <html>, etc.
+	  - FireFox now in standards-compliance mode.
+	* Numerous layout tweaks.
+	* Fixed badly rendered toggler indicators in FireFox.
+	* Added more endpoint detection code
+
+	NOTE: sites which have multiple virtual directories hosting iSPARQL will
+	      all need the new /d efaults VHOST added manually.
+
+2010-02-03 15:40  source
+
+	file ctl_toggler_bkg.png was added on branch V6_0_0-DEVEL on 2010-02-03 15:42:58 +0000
+
+2010-02-03 15:40  source
+
+	file toolbar_bkg.png was added on branch V6_0_0-DEVEL on 2010-02-03 15:42:58 +0000
+
+2010-02-03 15:28  source
+
+	* Updated version
+
+2010-02-03 15:21  source
+
+	* Fixed changelog rule
+
+2010-02-03 15:05  source
+
+	* Added support for CKEditor
+
+2010-02-03 15:05  source
+
+	* Added new examples
+
+2010-02-03 15:04  source
+
+	* Added new SKOS-trans inference rule
+
+2010-02-03 14:54  source
+
+	* Fixed do not put sort node as ks_stp if the sort node has precode that
+	  hs a dpipe part
+
+2010-02-03 13:54  source
+
+	* Fixed setting
+
+2010-02-03 10:29  source
+
+	* Added DB.DBA.BEST_LANGMATCH() and bif_langmatches_pct_http()
+
+2010-02-03 10:29  source
+
+	* Fixed bad init in trans node if multiple inputs or step output values
+
+2010-02-03 00:41  source
+
+	* Fixed CREDITS
+
+2010-02-02 23:57  source
+
+	* Fixed install LICENSE, CREDITS, AUTHORS, READMEs etc in doc dir
+
+2010-02-02 23:24  source
+
+	* Fixed redundant trailing '>' in results of TTL load when IRIs contain
+	  special chars
+
+2010-02-02 23:04  source
+
+	* Added support for Virtuoso JDBC Driver documentation
+
+2010-02-02 22:52  source
+
+	* Fixed comments
+
+2010-02-02 20:24  source
+
+	* Removed support for deprecated JDK1.0, JDK1.1 and JDK1.2
+	* Removed Virtuoso JDBC 2.0 SSL driver and JSSE runtime and
+	  added instructions how to build it if someone still needs
+	  it using JDK 1.3
+
+2010-02-02 20:20  source
+
+	file README.jsse was added on branch V6_0_0-DEVEL on 2010-02-02 20:24:38 +0000
+
+2010-02-02 19:38  source
+
+	* Fixed windows math.h needs this define for M_PI etc
+
+2010-02-02 17:59  source
+
+	* Fixed php, jsp and vsp users update pages
+
+2010-02-02 14:32  source
+
+	* Fixed bug in Doc and Main wiki clusters
+
+2010-02-02 14:20  source
+
+	* Fixed "option (score ...)" in a gp with multiple OPTIONAL (...)
+
+2010-02-02 14:18  source
+
+	* Fixed align buffer to sizeof pointer to avoid crash on strict
+	  checking platforms like sparc
+
+2010-02-02 14:17  source
+
+	* FIxed memleak when cache is used
+
+2010-02-02 14:16  source
+
+	* Fixed compiler warnings
+
+2010-02-02 14:15  source
+
+	* Fixed problem with rfc1808_expand_uri not using proper macros
+	  and allocate byte extra for strings
+
+2010-02-01 23:16  source
+
+	* Updated windows project file
+
+2010-02-01 23:14  source
+
+	* Fixed compiler warning
+
+2010-02-01 23:13  source
+
+	* Fixed bad cast
+
+2010-02-01 23:10  source
+
+	* Fixed typo
+
+2010-02-01 15:15  source
+
+	* Added conversion code to migrate DB to 2+3 index
+
+2010-02-01 15:10  source
+
+	* Added check for XA ROLLBACKONLY
+
+2010-02-01 14:59  source
+
+	* Rebuild drivers
+
+2010-02-01 14:58  source
+
+	* Fixed when different TZ is used, must find offset and transform via GMT
+
+2010-02-01 13:08  source
+
+	* Fixed missing prototype
+
+2010-02-01 13:02  source
+
+	* Added missing file
+
+2010-02-01 12:54  source
+
+	* Updated version to 6.0.1-pre2
+
+2010-02-01 12:53  source
+
+	* Merged 2+3 index into VOS
+	* Merged new inlined string code into VOS
+	* Added support for owl:inverseOf, owl:SymmetricProperty and
+	  owl:TransitiveProperty.
+	* Fixed graph-level security in cluster
+	* Fixed loading XMLs into single via RDF/XML
+	* Fixed SPARQL select distinct ?g where { graph ?g { ...}}
+
+2010-02-01 12:44  source
+
+	* Merged 2+3 index into VOS
+	* Added new sample queries
+	* Fixed text recoding to UTF8
+
+2010-02-01 12:40  source
+
+	* Merged 2+3 index code into VOS
+	* Fixed DB.DBA.RDF_DATATYPE_OF_OBJ and DB.DBA.RDF_LANGUAGE_OF_OBJ
+	  are now used with __ro2sq of the argument, due to new format of
+	  incomplete rdf boxes.
+	* Fixed redundant equalities in case of multiple OPTIONALs with
+	  same variable
+	* Fixed BOOLEAN_OF_OBJ in case of incomplete boxes
+
+2010-02-01 12:36  source
+
+	* Added stubs
+
+2010-02-01 12:35  source
+
+	* Fixed check db size and exit if not correct
+	* Fixed text of version mismatch messages
+
+2010-02-01 09:26  source
+
+	* Removed unused variables
+
+2010-02-01 02:45  source
+
+	* Fixed function prototypes
+
+2010-02-01 02:43  source
+
+	* Fixed xper not supported in cluster
+
+2010-02-01 02:39  source
+
+	* Improved SPARQL parsing and SQL codegen for negative numbers
+
+2010-02-01 02:36  source
+
+	* Fixed explicit rb not allowed in cl tx branch
+	* Fixed when rdf box then must take dtp1 and sizeof char one more time
+	* Fixed support of literals with languages in SPARQL INSERT DATA
+	  with data in state slot
+
+2010-02-01 02:32  source
+
+	* Added new rdf box function
+
+2010-02-01 02:18  source
+
+	* Fixed inside cpt do not notice anytimes and disconnects
+
+2010-02-01 02:16  source
+
+	* Fixed security in cluster
+
+2010-02-01 02:10  source
+
+	* Partial rollback of patch
+
+2010-02-01 02:08  source
+
+	* Fixed look up rdf lit ids in cost model to get the card
+
+2010-02-01 02:00  source
+
+	* Added initial support for owl:inverseOf, owl:SymmetricProperty
+	  and owl:TransitiveProperty
+
+2010-02-01 01:45  source
+
+	* Fixed index path outer join
+
+2010-02-01 01:45  source
+
+	* Fixed if cls rollback during cpt, it would not wait and would rb
+	  a tx while it had uncommitted state that was restored by the cpt
+	  at the end. This would make trxs in trx rc have locks which is
+	  impossible. So check for thread continues during cpt if simultaneous
+	  cpt freeze and rb. Check txns in trx rc don't get locks.
+
+2010-02-01 01:08  source
+
+	* Fixed gpf during rfwd containing XA transaction
+
+2010-02-01 01:00  source
+
+	* Fixed atomic must proceed even if uncommitted 2pc prepared
+
+2010-02-01 00:53  source
+
+	* Added function __uname
+
+2010-01-31 23:07  source
+
+	* Added new function __rdf_rng_min
+
+2010-01-31 23:06  source
+
+	* Added new implementation of log_text and log_text_array
+
+2010-01-31 23:04  source
+
+	* Fixed compiler warnings
+
+2010-01-31 20:48  source
+
+	* Fixed reading of last chunk
+
+2010-01-31 20:46  source
+
+	* Added debug flag for sponger
+
+2010-01-31 20:44  source
+
+	* Fixed declare iri to ir et all as no cluster
+
+2010-01-31 20:43  source
+
+	* Fixed missing externals
+
+2010-01-31 20:41  source
+
+	* Fixed checkpoint messages in log
+
+2010-01-31 20:37  source
+
+	* Fixed do not run dav init on cluster before cluster is up
+
+2010-01-31 20:36  source
+
+	* Fixed rdf init on dav does not need to be done on empty db, thus run
+	  only in single when update is needed
+
+2010-01-31 20:32  source
+
+	* Fixed fault tolerance
+
+2010-01-31 20:18  source
+
+	* Updated testsuite
+
+2010-01-31 16:47  source
+
+	* Updated documentation
+
+2010-01-31 12:43  source
+
+	* Fixed if negative numeric literal, do not make it 0 - litt
+
+2010-01-30 01:12  source
+
+	* Added debug flag for sponger
+	* Fixed use http_host connection var in aq mode
+
+2010-01-29 23:59  source
+
+	* Fixed whitespace
+
+2010-01-29 21:29  source
+
+	* Removed deprecated file
+
+2010-01-29 20:54  source
+
+	* Fixed for building without SSL
+
+2010-01-29 20:21  source
+
+	* Added support for ckeditor
+	* Removed deprecated rte and kupu editors
+
+2010-01-29 19:47  source
+
+	file vad_version was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file angel_smile.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file angry_smile.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file broken_heart.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file ciframe.html was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file confused_smile.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file cry_smile.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file default.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file devil_smile.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file dialog.css was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file dialog_sides.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file dialog_sides.png was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file dialog_sides_rtl.png was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file editor.css was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file embaressed_smile.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file envelope.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file heart.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file icons.png was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file kiss.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file lightbulb.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file mini.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file noimage.png was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file omg_smile.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file regular_smile.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file sad_smile.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file shades_smile.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file skin.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file specialchar.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file sprites.png was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file sprites_ie6.png was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file table.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file tableCell.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file teeth_smile.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file template1.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file template2.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file template3.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file templates.css was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file templates.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file theme.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file thumbs_down.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file thumbs_up.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file tmpFrameset.html was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file toolbar_start.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file tounge_smile.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file whatchutalkingabout_smile.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file wink_smile.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file wsc.css was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file wsc.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file LICENSE.html was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:29 +0000
+
+2010-01-29 19:44  source
+
+	file anchor.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file anchor.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file block_address.png was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file block_blockquote.png was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file block_div.png was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file block_h1.png was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file block_h2.png was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file block_h3.png was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file block_h4.png was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file block_h5.png was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file block_h6.png was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file block_p.png was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file block_pre.png was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file ckeditor.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:29 +0000
+
+2010-01-29 19:44  source
+
+	file colordialog.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:29 +0000
+
+2010-01-29 19:44  source
+
+	file config.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:29 +0000
+
+2010-01-29 19:44  source
+
+	file dialogDefinition.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file en.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:29 +0000
+
+2010-01-29 19:44  source
+
+	file find.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file flash.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file image.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file link.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file options.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file paste.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:29 +0000
+
+2010-01-29 19:44  source
+
+	file pastetext.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file placeholder.png was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file smiley.js was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 19:44  source
+
+	file spacer.gif was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:29 +0000
+
+2010-01-29 19:44  source
+
+	file toolbar.css was added on branch V6_0_0-DEVEL on 2010-01-29 20:21:30 +0000
+
+2010-01-29 16:18  source
+
+	* Fixed library version
+
+2010-01-29 16:16  source
+
+	* Removed unused include file
+
+2010-01-29 15:21  source
+
+	* Fixed minor issues
+
+2010-01-29 15:09  source
+
+	* Fixed use sparql load instead of soft
+
+2010-01-29 15:07  source
+
+	* Removed support for IE 5 and 6 compatibility
+
+2010-01-29 15:00  source
+
+	* Fixed crawler pages
+
+2010-01-29 14:52  source
+
+	* Fixed use newer version of wsa
+
+2010-01-29 13:23  source
+
+	* Fixed removed deprecated samples
+
+2010-01-29 13:20  source
+
+	* Fixed build issue with md5
+
+2010-01-29 11:34  source
+
+	* Removed deprecated samples/demos
+
+2010-01-29 02:41  source
+
+	* Fixed uploading large files
+
+2010-01-29 01:56  source
+
+	* Fixed use MD5 from OpenSSL when possible
+
+2010-01-29 00:15  source
+
+	* Fixed build to use generate script
+	* Removed deprecated file
+
+2010-01-28 17:08  source
+
+	* Fixed make sure version is intact as changes to .ttl file must
+	  reflect in sparql.sql
+
+2010-01-28 14:33  source
+
+	* Fixed non-portable sleep argument
+
+2010-01-28 14:19  source
+
+	* Fixed API rename
+
+2010-01-28 14:19  source
+
+	* Fixed typo
+
+2010-01-28 13:36  source
+
+	* Fixed missing qualification of aggregate
+
+2010-01-28 01:14  source
+
+	* Fixed make new aqt in io sect
+	* Fixed return error when no cli
+	* Fixed if aq called and no aq thread available, signal error
+
+2010-01-28 01:11  source
+
+	* Fixed automatically allocate bufs
+
+2010-01-28 00:36  source
+
+	* Added option BuffersAllocation
+	* Added option AsyncQueueMaxThreads
+
+2010-01-28 00:31  source
+
+	* Fixed default sitemap crawling functions
+	* Fixed wrong variable
+	* Fixed wait before update
+
+2010-01-28 00:30  source
+
+	* Updated php, jsp and vsp user pages
+
+2010-01-27 20:43  source
+
+	* Added FOAF+SSL groups
+
+2010-01-27 20:31  source
+
+	* Added support for Google Base items types 'wanted ads', 'business
+	  location' and 'product catalogs'
+
+2010-01-27 20:31  source
+
+	* Fixed virtrdf_label
+
+2010-01-27 12:55  source
+
+	* Fixed use DV_SHORT_STRING_SERIAL tag when serializing short strings
+
+2010-01-27 12:54  source
+
+	* Fixed varlgrind warning about using uninitialized memory read
+
+2010-01-27 12:52  source
+
+	* Fixed in getting page_row reset rd leaf if not a leaf.
+
+2010-01-27 12:51  source
+
+	* Fixed do not POST when no post parameters
+
+2010-01-27 01:29  source
+
+	* Fixed read after allocated memory
+
+2010-01-25 23:46  source
+
+	* Removed deprecated files
+
+2010-01-25 22:42  source
+
+	* Fixed copyright and license clarification
+
+2010-01-25 20:45  source
+
+	* Fixed must commit before aq_wait
+
+2010-01-25 16:20  source
+
+	* Updated documentation
+
+2010-01-25 16:10  source
+
+	* Added php, jsp and vsp users update
+	* Fixed problem with activity pages
+
+2010-01-25 16:09  source
+
+	* FIxed copyright
+
+2010-01-25 16:09  source
+
+	* Fixed SSL check
+
+2010-01-25 16:05  source
+
+	* Fixed bug in permissions
+
+2010-01-25 15:42  source
 
-	* Fixed issue with closing XAConnection and connectionpool
+	* Fixed problem with MaxMempoolSize
+	* Fixed problem with driver properties
 
-2011-02-17 15:23  source
+2010-01-25 15:41  source
 
-	* Fixed more log info
+	* Fixed shortened long URLs in the crawlers view to avoid UI breakage
 
-2011-02-16 21:08  source
+2010-01-25 15:12  source
 
-	* Updated documentation
+	file googlebase2rdf.xsl was added on branch V6_0_0-DEVEL on 2010-01-25 15:36:26 +0000
 
-2011-02-16 20:55  source
+2010-01-25 15:12  source
 
-	* Fixed iSPARQL icons placed on Home screen on iPhone/iPod now have the
-	  WebApp appearance (i.e. no URL bar, etc. controls.)
-	* Fixed a regression causing reappearance of Ubiq gem on non-firefox browsers
-	* Fixed missing message candlers for geocoding module
-	* Disabled buggy location UI absorbing into statusui
-	* Improved formatting of errors in response tab somewhat
+	file oplgooglebase.owl was added on branch V6_0_0-DEVEL on 2010-01-25 15:36:26 +0000
 
-2011-02-16 20:53  source
+2010-01-25 15:12  source
 
-	* FIxed avoid long URLs to generate wacky error
+	* Fixed support for Google Base 'products' item type
+	* Fixed headers
 
-2011-02-16 20:51  source
+2010-01-25 14:57  source
 
-	* Fixed missing line
+	* Fixed use pipeline client in crawler
 
-2011-02-16 17:33  source
+2010-01-25 10:39  source
 
-	* Fixed offers SIOC data
+	* Fixed accept different headers in pipeline request; add header only if
+	  it contains something
 
-2011-02-16 17:32  source
+2010-01-15 13:47  source
 
-	* Fixed if no svc and FF then show generator page
+	* Fixed crash when timeout was sent using dv_array_of_long
 
-2011-02-16 17:32  source
+2010-01-15 13:02  source
 
-	* Fixed typo
+	* Fixed small lang conversion issue
 
-2011-02-16 17:31  source
+2010-01-15 12:16  source
 
-	* Fixed missing case
+	* Rebuild driver
 
-2011-02-16 17:25  source
+2010-01-15 12:15  source
 
-	* Fixed status controls
+	* Fixed issue with disconnect
+	* Fixed issue with XA exception
 
-2011-02-16 17:25  source
+2010-01-14 16:21  source
 
-	* Fixed proper position
+	* Fixed bug calculating todays date
 
-2011-02-16 17:20  source
+2010-01-14 16:06  source
 
-	* Added support for map marker URLs in OAT.RDFTabs.map
-	* Fixed OAT.RDFTab.map control height on iPhone
-	* Fixed bug causing OAT.RDFTABs.navigator layout flowing into footer
-	* Fixed navigator layout
+	* Fixed use current OAT API function names
+	* Fixed bug in query execute permalink encoding
+	* Removed explicit reference to ymaps
+	* Temp fix for DESCRIBE popup query
 
-2011-02-16 17:16  source
+2010-01-14 16:04  source
 
-	* Fixed separate virtrdf:label into own file
+	* Added new popup calendar based on OAT
+	* Fixed use current OAT API function names
+	* FIxed explicit references to ymaps, gmaps
 
-2011-02-16 17:08  source
+2010-01-14 15:57  source
 
-	* Fixed ADO.NET datatype handling
-	* Fixed null pointer exception
+	* Added LICENSE and COPYING from OAT project
+	* Removed custom map loaders
+	* Fixed use current OAT API function names instead of backward compat
 
-2011-02-15 14:45  source
+2010-01-14 01:49  source
 
-	* Fixed memory leaks
+	file COPYING was added on branch V6_0_0-DEVEL on 2010-01-14 15:57:39 +0000
 
-2011-02-15 14:11  source
+2010-01-14 01:49  source
 
-	* Fixed signal errors other than deadlock
+	file LICENSE was added on branch V6_0_0-DEVEL on 2010-01-14 15:57:39 +0000
 
-2011-02-15 14:05  source
+2010-01-13 15:05  source
 
-	* Fixed issues with --with-debug and setting CFLAGS
+	* Fixed non-rfc method to make URL
 
-2011-02-15 10:11  source
+2010-01-13 15:02  source
 
-	* Fixed missing prototype
-	* Fixed after free data_col make sure it is nil
+	* Fixed missing type cast
 
-2011-02-14 13:05  source
+2010-01-13 08:51  source
 
-	* Updated version to 6.1.3-rc5
+	* Fixed user UI login pages
+	* Fixed user UI pages
+	* Fixed user home page field size
 
-2011-02-14 13:04  source
+2010-01-12 23:21  source
 
-	* Fixed certificates
+	* Fixed decoding unicode escape sequences in post request
 
-2011-02-14 13:03  source
+2010-01-12 12:19  source
 
-	* Fixed page load bug
+	* Fixed automated labels extraction
 
-2011-02-14 13:03  source
+2010-01-12 12:15  source
 
-	* Added RSS and Atom imports
+	* Fixed memory leak
 
-2011-02-14 13:03  source
+2010-01-12 11:06  source
 
-	* Fixed issue with dashboard
+	* Added doap:name for labeling
 
-2011-02-14 13:03  source
+2010-01-11 16:02  source
 
-	* Fixed mail selection from private instances
-	* Fixed encrypted emails
+	* Fixed primary topic from Offering to Product
 
-2011-02-14 12:51  source
+2010-01-11 14:19  source
 
-	* Added rudimentary geocoder support module
-	* Fixed endpoints options tolle menu
-	* Fixed title to "Sponger"
-	* Fixed header margins
-	* Fixed ordering of Sponger and Query Metadata
-	* Fixed location error handler failure to change aquire state
-	* Fixed statement help popup window
+	* Fixed missing dcterms:publisher
 
-2011-02-14 12:49  source
+2010-01-07 17:09  source
 
-	* Fixed try to resize map in a more mobile friendly way
+	* Imported docbook-xsl-1.75.2
 
-2011-02-14 12:48  source
+2010-01-07 16:56  source
 
-	* Added more properties to virtlabel ontology
-	* Fixed issues reported by W3C Validator
+	* Fixed copyright year to 2010
 
-2011-02-14 12:33  source
+2010-01-07 16:55  source
 
-	* Fixed compiler warnings on SOlaris with openssl 1.0
+	* Fixed sync Contact UI with Profile UI
+	* Fixed copyright year to 2010
 
-2011-02-14 11:48  source
+2010-01-07 16:55  source
 
-	* Fixed when P is known get stats on it to make better decision on
-	  execution plan
+	* Added VSP and REST implementation for user API
+	* Added new API functions
+	* Fixed users paths to physical location
+	* Fixed API bug with tag rules
+	* Updated copyright year to 2010
+	* Fixed issue mising quoted and unquoted identifiers
 
-2011-02-14 11:48  source
+2010-01-06 21:33  source
 
-	* Fixed infinite loop when dealing with string like abc&def and no token
+	* Updated documentation
 
-2011-02-14 01:25  source
+2010-01-06 17:33  source
 
-	* Fixed dump all mem references before dying
+	* Fixed bad transformation in feed when author has no name
+	* Fixed process media:contain properly re images
 
-2011-02-14 01:14  source
+2010-01-06 16:49  source
 
-	* Fixed issue when client disconnects inside compile where no reset ctx
+	* Added flag (DuplicateCheckpointRemaps) which should ONLY be used
+	  in recovery mode when a bad db can have cpt remap page which links
+	  back to itself. In this situation as last chance to recover we can
+	  look if remap already is registered and at that point stop looking.
+	  Further DBA must check for inconsistencies.
 
-2011-02-11 13:19  source
+2010-01-06 16:47  source
 
-	* Added ssl const decoration in explain
+	* Fixed default log mode in SPARUL MDW operations to distinquish
+	  between NULL and 0 log mode
 
-2011-02-10 20:58  source
+2010-01-06 16:45  source
 
-	* Added new bif getenv
+	* Fixed check if qi is actually available in this context
 
-2011-02-07 15:07  source
+2010-01-06 12:12  source
 
-	* Fixed attribution
+	* Fixed handling of default graph URI param
 
-2011-02-04 15:36  source
+2010-01-05 19:12  source
 
-	* Added check for max number of elements
+	* Added extra tests
 
-2011-02-03 13:30  source
+2010-01-05 18:24  source
 
-	* Fixed check if there is dpipes to be placed before trans node
+	* Fixed moved commit work else async exec might generate new rdf_obj
 
-2011-02-03 11:27  source
+2010-01-04 11:54  source
 
-	* Fixed when compiling statement with sparqre_qi == CALLER_LOCAL, do
-	  not pass this value to box_cast
+	* Fixed if null box then use 0 to prevent core dump
 
-2011-02-03 10:32  source
+2010-01-04 11:47  source
 
-	* Fixed issue with namespace pollution in FireFox
+	* Fixed dependency
 
-2011-02-03 10:30  source
+2010-01-04 11:42  source
 
-	* Added separate sponge and ack for rdf flags
-	* Fixed copyright year
+	* Removed deprecated file
+
+2010-01-04 11:25  source
+
+	* Fixed typo
+
+2010-01-04 11:01  source
+
+	file autoidx-kosek.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file autoidx-ng.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file autoidx.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file autotoc.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file biblio-iso690.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file biblio.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file block.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file callout.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file changebars.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file chunk-changebars.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file chunk-code.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file chunk-common.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file chunk.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file chunker.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file chunkfast.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file chunktoc.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file component.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file division.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file docbook.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file ebnf.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file footnote.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file formal.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
+
+	file glossary.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
+
+2010-01-04 11:01  source
 
-2011-02-03 10:29  source
+	file graphics.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Added pure RDFa cartridge
-	* Fixed copyright year
+2010-01-04 11:01  source
 
-2011-02-03 10:28  source
+	file highlight.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed geolocation to automatically use a location if a minimum
-	  accuracy is reached. Default=500m
-	* Fixed creation of options in anchor which did not work with FireFox
-	* Fixed copyright year
+2010-01-04 11:01  source
 
-2011-02-03 09:26  source
+	file html-rtf.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed box_cast when qst is CALLER_LOCAL
+2010-01-04 11:01  source
 
-2011-02-03 09:25  source
+	file html.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed copyright year
+2010-01-04 11:01  source
 
-2011-02-02 15:36  source
+	file htmltbl.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed make sure boxlen is within limits
+2010-01-04 11:01  source
 
-2011-02-02 12:06  source
+	file index.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Added separate sponge and ack for rdf flags
+2010-01-04 11:01  source
 
-2011-02-02 11:28  source
+	file info.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Added new location properties and datatypes
+2010-01-04 11:01  source
 
-2011-02-01 00:07  source
+	file inline.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed use origin as base
+2010-01-04 11:01  source
 
-2011-02-01 00:07  source
+	file keywords.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Added support for virtrdf:image
+2010-01-04 11:01  source
 
-2011-01-31 20:47  source
+	file lists.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed declaration after statement
+2010-01-04 11:01  source
 
-2011-01-31 15:23  source
+	file maketoc.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed to follow http redirects
+2010-01-04 11:01  source
 
-2011-01-31 15:23  source
+	file manifest.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed memory leak if QUIETCAST query operates with ill formed
-	  data such as invalid date/time
+2010-01-04 11:01  source
 
-2011-01-31 11:17  source
+	file math.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed problem with upstreaming of updated and deleted posts
-	* Fixed problem with triggers
+2010-01-04 11:01  source
 
-2011-01-31 11:16  source
+	file oldchunker.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Added virtrdf-label for iCalendar
+2010-01-04 11:01  source
 
-2011-01-31 11:15  source
+	file onechunk.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed CSS of execution grid
+2010-01-04 11:01  source
 
-2011-01-31 10:48  source
+	file param.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed RDFa cartridge
+2010-01-04 11:01  source
 
-2011-01-31 10:45  source
+	file pi.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Added UI for Login Authentication Keys
+2010-01-04 11:01  source
 
-2011-01-30 15:23  source
+	file profile-chunk-code.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed box_cast so QUIETCAST mode returns NULL instead of error
-	  even if the problem is detected in some nested function
+2010-01-04 11:01  source
 
-2011-01-28 17:34  source
+	file profile-chunk.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed when on a queue, i.e. waiting for compile to finish, we freeze
-	  the thread so cpt can proceed
+2010-01-04 11:01  source
 
-2011-01-28 13:35  source
+	file profile-chunk.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Added namespace prefix 'fn' for 'http://www.w3.org/2005/xpath-functions/#'
-	  for XPATH 2.0 and XQuery 1.0 Core Functions library
+2010-01-04 11:01  source
 
-2011-01-28 13:34  source
+	file profile-docbook.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed detection of bad blank nodes
+2010-01-04 11:01  source
 
-2011-01-28 13:32  source
+	file profile-docbook.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed compiler warnings
+2010-01-04 11:01  source
 
-2011-01-28 13:31  source
+	file profile-onechunk.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added numeric_from_string_is_ok to do quick syntax check on string
-	  without actual parsing
+2010-01-04 11:01  source
 
-2011-01-28 13:29  source
+	file profile-onechunk.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Added support for "xpath:function_IRI" syntax, which is usally an
-	  internal syntax for functions automatically recognized as XPATH
+2010-01-04 11:01  source
 
-2011-01-28 13:28  source
+	file qandaset.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed compiler warning
+2010-01-04 11:01  source
 
-2011-01-28 13:28  source
+	file qandaset.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Added xqr_stub_for_funcall
-	* Fixed memory leak
+2010-01-04 11:01  source
 
-2011-01-28 13:26  source
+	file refentry.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed cast to xsd:float
+2010-01-04 11:01  source
 
-2011-01-28 13:26  source
+	file refentry.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed moved free inside of semaphore
+2010-01-04 11:01  source
 
-2011-01-27 14:19  source
+	file sections.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed use default smime
+2010-01-04 11:01  source
 
-2011-01-27 13:30  source
+	file sections.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed wrong condition check
+2010-01-04 11:01  source
 
-2011-01-27 12:43  source
+	file synop.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added support for S/MIME encrypt and decrypt
+2010-01-04 11:01  source
 
-2011-01-26 17:52  source
+	file synop.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed missing namespace in </results>
+2010-01-04 11:01  source
 
-2011-01-25 19:15  source
+	file table.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed cost model to count inx cond and scale card at end
+2010-01-04 11:01  source
 
-2011-01-25 18:54  source
+	file table.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed in log replay we can drop the old objects to free memory
+2010-01-04 11:01  source
 
-2011-01-25 14:51  source
+	file task.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Updated version to 6.1.3-rc4
+2010-01-04 11:01  source
 
-2011-01-25 14:39  source
+	file task.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed allocate space for \0 terminator
+2010-01-04 11:01  source
 
-2011-01-25 14:38  source
+	file titlepage.templates.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed memory leak
+2010-01-04 11:01  source
 
-2011-01-25 14:36  source
+	file titlepage.templates.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed compiler warning
+2010-01-04 11:01  source
 
-2011-01-25 14:35  source
+	file titlepage.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added configurable normalization of accented characters
+2010-01-04 11:01  source
 
-2011-01-25 14:33  source
+	file titlepage.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed compiler warnings
+2010-01-04 11:01  source
 
-2011-01-25 14:32  source
+	file toc.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed wrong buffer
+2010-01-04 11:01  source
 
-2011-01-25 14:30  source
+	file toc.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed crawling aside of the target
-	* Fixed no more need of dummy targets
-	* Fixed decrease use of lock on site table
+2010-01-04 11:01  source
 
-2011-01-25 14:29  source
+	file verbatim.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed python initialization
+2010-01-04 11:01  source
 
-2011-01-25 14:11  source
+	file verbatim.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Aded linkedIn login/register
-	* Fixed bad profile UI
-	* FIxed hyperlink session expire issue
+2010-01-04 11:01  source
 
-2011-01-25 14:09  source
+	file xref.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed use base as origin on zillow
+2010-01-04 11:01  source
 
-2011-01-25 14:09  source
+	file xref.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:57 +0000
 
-	* Fixed do not try to put headers when an error is detected
+2010-01-04 11:01  source
 
-2011-01-25 14:07  source
+	file Makefile.DocBook was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed connection check page
-	* Fixed error message generation in execute
-	* Fixed Preferences dialog
+2010-01-04 11:01  source
 
-2011-01-25 14:00  source
+	file Makefile.combine was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed cosmetics and layout
+2010-01-04 11:01  source
 
-2011-01-25 13:53  source
+	file Makefile.docParam was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Added RDF graph property for links
+2010-01-04 11:01  source
 
-2011-01-25 13:52  source
+	file admon.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added IMAP support
+2010-01-04 11:01  source
 
-2011-01-25 13:51  source
+	file annotations.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed install issue with new DB
-	* Fixed parent
+2010-01-04 11:01  source
 
-2011-01-25 13:50  source
+	file autoidx-kimber.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed UI
+2010-01-04 11:01  source
 
-2011-01-25 13:17  source
+	file autoidx-kosek.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Updated documentation
+2010-01-04 11:01  source
 
-2011-01-22 14:12  source
+	file autoidx-ng.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed check for blank node in wrong places
+2010-01-04 11:01  source
 
-2011-01-21 13:43  source
+	file autoidx.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed no need to access .cfg file for plain ?query= call
+2010-01-04 11:01  source
 
-2011-01-19 13:17  source
+	file autolayout.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed codegen for xsd:decimal() and similar cast operations
+2010-01-04 11:01  source
 
-2011-01-18 14:36  source
+	file autotoc.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added configurable normalization of accented characters
+2010-01-04 11:01  source
 
-2011-01-18 10:41  source
+	file biblio-iso690.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added normalization of accented characters
+2010-01-04 11:01  source
 
-2011-01-18 10:32  source
+	file biblio.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed debug code
+2010-01-04 11:01  source
 
-2011-01-18 10:31  source
+	file block.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed more debug output for xte_word_range
+2010-01-04 11:01  source
 
-2011-01-11 22:41  source
+	file callout.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed compiler warnings
+2010-01-04 11:01  source
 
-2011-01-11 22:38  source
+	file changebars.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed whitespace
+2010-01-04 11:01  source
 
-2011-01-11 13:18  source
+	file chunk-changebars.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added mime_header function to parse rfc header of mail message
+2010-01-04 11:01  source
 
-2011-01-11 13:14  source
+	file chunk-code.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed commented out bogus help button
+2010-01-04 11:01  source
 
-2011-01-11 13:13  source
+	file chunk-common.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Added more prefixes
+2010-01-04 11:01  source
 
-2011-01-11 13:12  source
+	file chunk-common.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added new entries to virtrdf-label
+2010-01-04 11:01  source
 
-2011-01-11 10:33  source
+	file chunk-tabular.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Added new SPARQL-to-SQL codegen for type cast functions
+2010-01-04 11:01  source
 
-2011-01-11 10:32  source
+	file chunk-website.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed set box flags to BF_IRI in this special case as graphs are IRIs
+2010-01-04 11:01  source
 
-2011-01-10 20:49  source
+	file chunk.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added transitivity cache
+2010-01-04 11:01  source
 
-2011-01-10 16:56  source
+	file chunker.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed bifs returning int or date should use same cast as auto
+2010-01-04 11:01  source
 
-2011-01-10 13:23  source
+	file chunkfast.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed width of users, capabilities listings
+2010-01-04 11:01  source
 
-2011-01-10 13:22  source
+	file chunktoc.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed use sitemaps for default crawling, option for depth
-	* Fixed links conversion should be off by default
-	* Fixed issue with listing
+2010-01-04 11:01  source
 
-2011-01-10 11:51  source
+	file component.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* FIxed missing initialization
+2010-01-04 11:01  source
 
-2011-01-07 17:18  source
+	file division.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed set timeout only when non empty
+2010-01-04 11:01  source
 
-2011-01-07 15:42  source
+	file docbook-xsl-update was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed when explicit output format is give, make it part of the
-	  query text so don't cache eventual internal guess to turtle output
+2010-01-04 11:01  source
 
-2011-01-07 15:08  source
+	file ebnf.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added cxml and csv links
-	* Fixed link layout
+2010-01-04 11:01  source
 
-2011-01-07 14:12  source
+	file footnote.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed allow bigger header values to be returned
+2010-01-04 11:01  source
 
-2011-01-05 20:58  source
+	file formal.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added optional QRcode
-	* Added CXML link typing dropdowns to fct UI
-	* Added search query limit of 100 words
-	* Added CXML and CSV links on describe page
+2010-01-04 11:01  source
 
-2011-01-05 20:14  source
+	file glossary.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed declaration after statement warning
+2010-01-04 11:01  source
 
-2011-01-05 13:58  source
+	file graphics.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed search and page load behaviour
-	* Fixed RefByAll result page
+2010-01-04 11:01  source
 
-2011-01-05 12:45  source
+	file head.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed align at 8 when double align defined
-	* Fixed always return NULL when allocation failed
+2010-01-04 11:01  source
 
-2011-01-05 12:44  source
+	file highlight.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed compiler warnings
+2010-01-04 11:01  source
 
-2011-01-05 12:36  source
+	file html-rtf.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added OWL mime type
+2010-01-04 11:01  source
 
-2011-01-05 01:58  source
+	file html.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed stats on inference
+2010-01-04 11:01  source
 
-2011-01-03 23:37  source
+	file htmltbl.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added client-based HTTP auth support in OAT.Ajax
-	* Fixed bug in RDFStore handling of hasNamespacePrefix that caused
-	  corruption
-	* Fixed error in dialog button handler
-	* Fixed typo in insertIRIArr
-	* Fixed several issues in RDFTabs related to RDFStore changes
+2010-01-04 11:01  source
 
-2011-01-03 21:23  source
+	file index.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed json tcn
+2010-01-04 11:01  source
 
-2011-01-03 21:22  source
+	file info.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added optional vCal QRCode
-	* Fixed date change in events/tasks
+2010-01-04 11:01  source
 
-2011-01-03 21:21  source
+	file inline.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added optional vCard QRCode
+2010-01-04 11:01  source
 
-2011-01-03 21:21  source
+	file keywords.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed UI of maintenance page
-	* Fixed ref-by command output
+2010-01-04 11:01  source
 
-2011-01-03 21:14  source
+	file lists.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed detect iSPARQL Server Connection using PROPFIND
-	* Fixed link behaviour in SPARQL result set view is now
-	  controlled by dropdown
-	* Fixed Save/serialize in .ldr/.isparql file types
+2010-01-04 11:01  source
 
-2011-01-03 21:11  source
+	file makefile-dep.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Added option for crawl depth
-	* Added check for gzip magic header
-	* Fixed use sitemaps for default crawling
-	* Fixed no clean opt
-	* Fixed optmimize queue recovery
-	* Fixed when */xml reported butthe content is gziped, the client
-	  will decode on the fly
+2010-01-04 11:01  source
 
-2011-01-03 21:09  source
+	file maketoc.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added properties to enable HTTP DIGEST auth on some browsers
+2010-01-04 11:01  source
 
-2011-01-03 21:02  source
+	file manifest.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added Groupon cartridge
-	* Added RDFohloh cartridge
-	* Added EOL cartridge
-	* Fixed use common API to delete target
-	* Fixed minor issues
+2010-01-04 11:01  source
 
-2011-01-03 10:21  source
+	file math.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added support for FILTER EXISTST and FILTER NOT EXISTS
-	* Added partial support for MINUS
+2010-01-04 11:01  source
 
-2011-01-03 10:18  source
+	file oldchunker.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* FIxed minor issues
+2010-01-04 11:01  source
 
-2011-01-03 10:17  source
+	file olink.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed issue with large number of namespace declarations
+2010-01-04 11:01  source
 
-2010-12-23 16:33  source
+	file onechunk.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed JSON tcn for host-meta
+2010-01-04 11:01  source
 
-2010-12-22 20:58  source
+	file param.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed default options
+2010-01-04 11:01  source
 
-2010-12-22 10:31  source
+	file pi.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed issue with aggregates and ORDER BY
+2010-01-04 11:01  source
 
-2010-12-22 10:27  source
+	file profile-chunk-code.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed issue with DATATYPE
+2010-01-04 11:01  source
 
-2010-12-22 10:25  source
+	file refentry.007.ns.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed string is aligned to 8
-	* Fixed wide data must be presented as UTF8 before hash chksum
+2010-01-04 11:01  source
 
-2010-12-21 12:27  source
+	file refentry.007.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed whitespace
+2010-01-04 11:01  source
 
-2010-12-21 10:42  source
+	file rss.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Added retry on deadlock when sponging on multiple threads
+2010-01-04 11:01  source
 
-2010-12-20 21:43  source
+	file tabular.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Updated version to 6.1.3-rc2
+2010-01-04 11:01  source
 
-2010-12-20 19:12  source
+	file titlepage.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed minor issue
+2010-01-04 11:01  source
 
-2010-12-20 18:20  source
+	file titlepage.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed layout to make optional qrcode fit without wasting space
-	* Fixed tabs CSS and overall margins etc
+2010-01-04 11:01  source
 
-2010-12-20 18:09  source
+	file toc-tabular.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed sqltype and display size of DV_IRI_ID column
+2010-01-04 11:01  source
 
-2010-12-20 13:26  source
+	file toc.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed merge error
+2010-01-04 11:01  source
 
-2010-12-20 12:31  source
+	file website-common.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed missing column error in SPARQL-to-SQL preprocessor
+2010-01-04 11:01  source
 
-2010-12-20 12:27  source
+	file website-targets.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added support for Twitter
-	* Added JSON format for webfinger
-	* Added optional qrcode
+2010-01-04 11:01  source
 
-2010-12-20 12:26  source
+	file website.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Fixed missing files from vad
+2010-01-04 11:01  source
 
-2010-12-20 12:26  source
+	file xbel.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:56 +0000
 
-	* Added progress bar, ping and ACL
+2010-01-04 11:01  source
 
-2010-12-20 12:22  source
+	file CTOCWidget.js was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added option to use tidy before loading rdfa
+2010-01-04 11:01  source
 
-2010-12-20 11:34  source
+	file arr-next.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed minor issues
+2010-01-04 11:01  source
 
-2010-12-17 17:40  source
+	file arr-prev.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added support for connection string parameters with or without
-	  spaces in name
-	* Fixed removed workaround for rollback msg
+2010-01-04 11:01  source
 
-2010-12-17 11:27  source
+	file arrow.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed must not return error during rollback on killed txn
+2010-01-04 11:01  source
 
-2010-12-16 19:47  source
+	file blank.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed sparql select (1) { { ?:sss ?p ?o } optional { ?s1 ?p1 ?o1 }}
-	  (t1.S=sss condition was lost before)
+2010-01-04 11:01  source
 
-2010-12-15 15:25  source
+	file blank.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed index_only on partial can return has data even if main row
-	  does not
+2010-01-04 11:01  source
 
-2010-12-15 12:47  source
+	file blocks-spec.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added small optimizations
+2010-01-04 11:01  source
 
-2010-12-15 12:19  source
+	file blocks2dbk.dtd was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added optimization to look at GS index only
+2010-01-04 11:01  source
 
-2010-12-15 10:42  source
+	file blocks2dbk.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added support for define input:inference in SAPRQL DESCRIBE
+2010-01-04 11:01  source
 
-2010-12-14 19:18  source
+	file bullet.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Added JSON format for /.well-known/host-meta
+2010-01-04 11:01  source
 
-2010-12-14 13:22  source
+	file but-fforward.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed cxml generation options
+2010-01-04 11:01  source
 
-2010-12-14 13:22  source
+	file but-info.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed compiler warning
+2010-01-04 11:01  source
 
-2010-12-14 12:10  source
+	file but-next.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed use CURI to make smaller footprint
+2010-01-04 11:01  source
 
-2010-12-14 12:07  source
+	file but-prev.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed hreview aggreates
-	* Fixed use CURI to make smaller qrcode
-	* Fixed CRLF
+2010-01-04 11:01  source
 
-2010-12-13 21:32  source
+	file but-rewind.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed 'none' is a special case with value 1
+2010-01-04 11:01  source
 
-2010-12-13 15:08  source
+	file closed.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed crash when only option inference is given without define
+2010-01-04 11:01  source
 
-2010-12-13 15:08  source
+	file cmp.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed cxml
+2010-01-04 11:01  source
 
-2010-12-13 11:17  source
+	file css.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed utf8_exec server issue
+2010-01-04 11:01  source
 
-2010-12-13 10:24  source
+	file date-time.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed comparison of VARCHAR and UNAME box whith identical content
+2010-01-04 11:01  source
 
-2010-12-13 10:23  source
+	file dbk2ooo.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added three new aggregates mostly for use with SPARQL-BI
+2010-01-04 11:01  source
 
-2010-12-13 10:22  source
+	file dbk2pages.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added support for passing NVARCHAR arguments to thread-safe dicts
+2010-01-04 11:01  source
 
-2010-12-13 10:20  source
+	file dbk2wordml.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed check for mobile devices
+2010-01-04 11:01  source
 
-2010-12-12 18:09  source
+	file dbk2wp.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added RDFa W3c validation button
-	* Added missing default XSL setting classes as view
-	* Added optional qrcode in page
-	* Added scrolling to use stop skip/N
-	* Added link to /sparql endpoint
-	* Fixed sid
-	* Fixed shortened uri if too long
-	* Fixed bookmarable urls
+2010-01-04 11:01  source
 
-2010-12-10 16:12  source
+	file default.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Updated documentation
+2010-01-04 11:01  source
 
-2010-12-10 16:02  source
+	file example.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Removed extra debugging
-	* Fixed comments
+2010-01-04 11:01  source
 
-2010-12-10 15:43  source
+	file flat.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed minor issues
+2010-01-04 11:01  source
 
-2010-12-10 15:28  source
+	file frames.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Added new settings to execute.html
-	* Added hrefs to breadcrumbs in rdftab
-	* Added a pager for queries.
-	* Added URI shortener detection and user preference (persisted in
-	  HTML5 localStorage on compatible browsers)
-	* Changed the way results are cached.
-	  Each query owns its results store, which is passed to the RDFMini
-	  for display.
+2010-01-04 11:01  source
 
-2010-12-10 15:27  source
+	file graphics.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Altered the order of preference for subject labels.
-	* Fixed rdfs:label and skos:prefLabel now take preference over
-	  foaf:name.
-	* Changed OAT.Dialog to accept a bitmap for buttons to include
-	  Should be (sort-of) backwards compatible (default value and setting
-	  to zero causes same behavior as before)
+2010-01-04 11:01  source
 
-2010-12-10 15:19  source
+	file hidetoc.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Merged from V5
+2010-01-04 11:01  source
 
-2010-12-10 15:18  source
+	file htmlhelp.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed do not do row autocommit when uploading with DAV api
-	  as this will break trigger logic
+2010-01-04 11:01  source
 
-2010-12-10 12:24  source
+	file jscript.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Added new testcases
+2010-01-04 11:01  source
 
-2010-12-10 12:00  source
+	file markup.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed deref of uninitialized memory
+2010-01-04 11:01  source
 
-2010-12-10 11:59  source
+	file math.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* FIxed uninitialized variable
+2010-01-04 11:01  source
 
-2010-12-10 11:58  source
+	file nav-home.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed deref of uninited memory
+2010-01-04 11:01  source
 
-2010-12-09 14:00  source
+	file nav-next.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed FOAF import
+2010-01-04 11:01  source
 
-2010-12-09 13:57  source
+	file nav-prev.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed convert link option
+2010-01-04 11:01  source
 
-2010-12-09 12:16  source
+	file nav-toc.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added hRecipe cartridge
+2010-01-04 11:01  source
 
-2010-12-09 09:53  source
+	file nav-toc.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed NULL case in patch_restricted_xml_chars()
+2010-01-04 11:01  source
 
-2010-12-08 16:08  source
+	file nav-up.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed sparql aggregate
+2010-01-04 11:01  source
 
-2010-12-08 16:04  source
+	file nav-up.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Added RDFa W3c validation button
-	* Added expiration header
-	* Fixed DOI and RDFa
-	* Fixed use doi proxy if no hslookup plugin
-	* Fixed datatype for twitter
-	* Fixed tidy for overstock cartridge
-	* Fixed enable xlat iris
-	* Fixed small bugs
+2010-01-04 11:01  source
 
-2010-12-07 11:30  source
+	file node.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Updated version of adapter
+2010-01-04 11:01  source
 
-2010-12-07 11:11  source
+	file normalise-common.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added 'Owns', 'Knows' and 'Social Network'
-	* Added profile security for offers, likes etc
-	* Enhanced import procedure
-	* Fixed small issues
+2010-01-04 11:01  source
 
-2010-12-07 10:38  source
+	file normalise2sections.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added microblog template
+2010-01-04 11:01  source
 
-2010-12-07 10:32  source
+	file open.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Added 'Knows' to the import
-	* Enhanced import procedure
+2010-01-04 11:01  source
 
-2010-12-06 17:10  source
+	file overlay.js was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added MinExpiration param for sponger
+2010-01-04 11:01  source
 
-2010-12-06 17:09  source
+	file pages2normalise.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed minor issues
+2010-01-04 11:01  source
 
-2010-12-06 17:08  source
+	file param.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* FIxed show better message instead of error on url parse
+2010-01-04 11:01  source
 
-2010-12-06 10:34  source
+	file param.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed max dns name is 250 chars
+2010-01-04 11:01  source
 
-2010-12-06 10:34  source
+	file param.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added copy_list_to_array and revlist_to_array for plugins
+2010-01-04 11:01  source
 
-2010-12-06 10:33  source
+	file param.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed if we have bad fd in saved sessions, check which one and
-	  remove, to avoid busy loop on unix
+2010-01-04 11:01  source
 
-2010-11-30 12:34  source
+	file plain-titlepage.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed use char flags instead of bitfield
+2010-01-04 11:01  source
 
-2010-11-30 12:33  source
+	file plain-titlepage.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added optimization for case when there is no locality
+2010-01-04 11:01  source
 
-2010-11-30 12:33  source
+	file plain.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed must lock mtx before reading cache
+2010-01-04 11:01  source
 
-2010-11-29 14:37  source
+	file plain.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* FIxed minor issues
+2010-01-04 11:01  source
 
-2010-11-29 14:36  source
+	file plus.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added statistics on how many remaps are free
+2010-01-04 11:01  source
 
-2010-11-26 21:23  source
+	file pointer.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed busy loop when no free remaps
+2010-01-04 11:01  source
 
-2010-11-26 10:47  source
+	file profile-mode.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added extra debugging on shared cache
+2010-01-04 11:01  source
 
-2010-11-26 10:46  source
+	file profile.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed issue compiling extensions in debug mode
+2010-01-04 11:01  source
 
-2010-11-25 19:53  source
+	file sections-spec.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed must cut before print else will return wrong error
+2010-01-04 11:01  source
 
-2010-11-24 11:41  source
+	file sections2blocks.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed use external bif_tidy in the crawler
+2010-01-04 11:01  source
 
-2010-11-24 11:36  source
+	file showtoc.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed mark transaction as ended in provider if virtuoso server kills
-	  the transaction
+2010-01-04 11:01  source
 
-2010-11-23 19:30  source
+	file slides-common.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* FIxed issue with DISTINCT and ORDER BY
+2010-01-04 11:01  source
 
-2010-11-23 19:28  source
+	file slides-default.css was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* FIxed "delayed" crash in case of passing wrong argument
+2010-01-04 11:01  source
 
-2010-11-23 19:27  source
+	file slides-frames.css was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added check for tidy in crawler
+2010-01-04 11:01  source
 
-2010-11-23 19:26  source
+	file slides-plain.css was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed minor issue
+2010-01-04 11:01  source
 
-2010-11-23 10:20  source
+	file slides-table.css was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed bad test
+2010-01-04 11:01  source
 
-2010-11-22 20:40  source
+	file slides-w3c.css was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed issue with sparql-fed
+2010-01-04 11:01  source
 
-2010-11-22 20:39  source
+	file slides.css was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed prevent assert on large box
+2010-01-04 11:01  source
 
-2010-11-22 14:26  source
+	file slides.js was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed issue with bnode
+2010-01-04 11:01  source
 
-2010-11-22 11:28  source
+	file specifications.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added VirtuosoQueryEngine auto registration was added to VirtGraph
-	  static initilization
+2010-01-04 11:01  source
 
-2010-11-22 11:06  source
+	file stdlib.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Rebuild driver
+2010-01-04 11:01  source
 
-2010-11-22 11:00  source
+	file string.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Rebuild drivers
+2010-01-04 11:01  source
 
-2010-11-22 10:59  source
+	file strip-attributes.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed JDBC driver lost prepared data after execution query, so next
-	  execute of prepared query throws exception
+2010-01-04 11:01  source
 
-2010-11-20 10:57  source
+	file svg.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Added bif patch_restrictec_xml_chars()
+2010-01-04 11:01  source
 
-2010-11-19 16:50  source
+	file tables.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Added Likes and DisLikes
+2010-01-04 11:01  source
 
-2010-11-19 16:49  source
+	file template-pages.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added group sharing
-	* Fixed extended user's select
+2010-01-04 11:01  source
 
-2010-11-19 16:47  source
+	file template.dot was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Updated to ckeditor version 3.4.2
+2010-01-04 11:01  source
 
-2010-11-19 16:45  source
+	file template.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added optimizations
-	* Added checking for rdfa dtd
+2010-01-04 11:01  source
 
-2010-11-19 16:43  source
+	file ua.js was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed use integer for https_verity and https_cv_depth
-	* Fixed use uppercase for SSL auth
+2010-01-04 11:01  source
 
-2010-11-19 16:41  source
+	file uri.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Added setup for DET on collections
+2010-01-04 11:01  source
 
-2010-11-19 14:25  source
+	file use.local.olink.style.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed wrong number of params
+2010-01-04 11:01  source
 
-2010-11-19 14:25  source
+	file use.role.as.xrefstyle.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed busy loop
+2010-01-04 11:01  source
 
-2010-11-17 21:30  source
+	file use.role.for.mediaobject.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added function to get DTD identifiers
+2010-01-04 11:01  source
 
-2010-11-17 21:29  source
+	file use.svg.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed dimension is not in triples
+2010-01-04 11:01  source
 
-2010-11-17 21:29  source
+	file variablelist.as.blocks.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed page debug
+2010-01-04 11:01  source
 
-2010-11-17 21:28  source
+	file variablelist.as.table.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed name in footer
+2010-01-04 11:01  source
 
-2010-11-17 21:27  source
+	file variablelist.max.termlength.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added initialize query text option for /sparql
+2010-01-04 11:01  source
 
-2010-11-16 20:17  source
+	file variablelist.term.break.after.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed do not try to close bad filedescriptor as windows does not
-	  like this
+2010-01-04 11:01  source
 
-2010-11-16 14:30  source
+	file variablelist.term.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added imap client support
+2010-01-04 11:01  source
 
-2010-11-15 20:12  source
+	file variablelist.term.separator.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed if we have a qr with no params at all, exec should signal error
+2010-01-04 11:01  source
 
-2010-11-15 16:51  source
+	file verbatim.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed issue with combination of UNION in the argument of IN causing
-	  General internal Optimized compiler error
+2010-01-04 11:01  source
 
-2010-11-15 16:47  source
+	file vslides.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed record the thread which entered/left the buffer in debug mode
+2010-01-04 11:01  source
 
-2010-11-15 10:13  source
+	file w3c-next.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed do not attempt to parse empty content
+2010-01-04 11:01  source
 
-2010-11-12 21:01  source
+	file w3c-next.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed only check pages in online backup
+2010-01-04 11:01  source
 
-2010-11-12 21:00  source
+	file w3c-prev.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed recovery mode
+2010-01-04 11:01  source
 
-2010-11-12 21:00  source
+	file w3c-prev.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed send body of 509 bandwidth error
+2010-01-04 11:01  source
 
-2010-11-11 16:06  source
+	file w3c-toc.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Updated version to 6.1.3-rc1
+2010-01-04 11:01  source
 
-2010-11-11 15:53  source
+	file w3c-toc.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed check for sql disabled flag
+2010-01-04 11:01  source
 
-2010-11-11 12:38  source
+	file w3c.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:55 +0000
 
-	* Fixed group editing
-	* Fixed WebID for Briefcase instances
+2010-01-04 11:01  source
 
-2010-11-11 12:34  source
+	file wordml.template.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added group sharing
+2010-01-04 11:01  source
 
-2010-11-11 11:23  source
+	file wordml2normalise.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added special immutable setting for inf rules
+2010-01-04 11:01  source
 
-2010-11-10 15:59  source
+	file writing.mode.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed use dsn from content-location when it exists
+2010-01-04 11:01  source
 
-2010-11-10 15:45  source
+	file xbCollapsibleLists.js was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed pass headers as options so every cartridge can read
+2010-01-04 11:01  source
 
-2010-11-10 12:00  source
+	file xbCollapsibleLists.js.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added magic key export
+2010-01-04 11:01  source
 
-2010-11-10 11:59  source
+	file xbDOM.js was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed stack corruption on 64bit
+2010-01-04 11:01  source
 
-2010-11-09 21:47  source
+	file xbDOM.js.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed memleak when error is signalled
+2010-01-04 11:01  source
 
-2010-11-09 21:44  source
+	file xbDebug.js was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed avoid re-define
+2010-01-04 11:01  source
 
-2010-11-09 21:42  source
+	file xbLibrary.js was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed remove call to SP before it is defined
+2010-01-04 11:01  source
 
-2010-11-09 20:19  source
+	file xbLibrary.js.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed https access
-	* Fixed ACL UI
+2010-01-04 11:01  source
 
-2010-11-09 20:18  source
+	file xbStyle-css.js was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added support for SWD
-	* Added support for Salmon
-	* Added RDFa info
-	* Fixed key removal not working
-	* Fixed bad permissions for user's home directory creation
-	* Fixed no validator at this point
-	* Fixed sync user's pages
-	* Fixed salmon api
-	* Fixed move groups from briefcase into framework
+2010-01-04 11:01  source
 
-2010-11-09 20:15  source
+	file xbStyle-nn4.js was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added initial support for Salmon protocol
-	* Fixed check for email
-	* Fixed uninstall problem
+2010-01-04 11:01  source
 
-2010-11-09 20:12  source
+	file xbStyle-not-supported.js was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added signed mails
-	* Fixed https access
+2010-01-04 11:01  source
 
-2010-11-09 20:12  source
+	file xbStyle.js was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed move groups from briefcase into ODS framework
-	* Fixed https access
+2010-01-04 11:01  source
 
-2010-11-09 20:11  source
+	file xbStyle.js.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed https access
-	* Fixed labels
+2010-01-04 11:01  source
 
-2010-11-09 20:11  source
+	file xep.extensions.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed https access
+2010-01-04 11:01  source
 
-2010-11-09 20:01  source
+	file xep.index.item.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed properly encode the query before passing it to PivotViewer
+2010-01-04 11:01  source
 
-2010-11-09 19:59  source
+	file xref.label-page.separator.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed more labels
+2010-01-04 11:01  source
 
-2010-11-09 10:59  source
+	file xref.label-title.separator.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed split part of MTX_DEBUG into PAGE_DEBUG
+2010-01-04 11:01  source
 
-2010-11-08 15:42  source
+	file xref.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed prevent bad data to crash system during deserialization
+2010-01-04 11:01  source
 
-2010-11-08 12:37  source
+	file xref.title-page.separator.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Added http://loc.openlinksw.com/sparql as registered endpoint
-	* Fixed URIs in resultview anchors
+2010-01-04 11:01  source
 
-2010-11-08 12:35  source
+	file xref.with.number.and.title.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed return string session, rather than allocate string so it will
-	  handle large resources
-	* Fixed possible double free of temp filename
-	* Fixed issue with MALLOC_DEBUG
+2010-01-04 11:01  source
 
-2010-11-08 12:21  source
+	file xsl2profile.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:54 +0000
 
-	* Fixed ACL update
+2010-01-04 11:01  source
 
-2010-11-08 11:46  source
+	file qanda.title.level5.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed minor issue
+2010-01-04 11:01  source
 
-2010-11-08 11:45  source
+	file qanda.title.level6.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added ACL settings
-	* Added new type
-	* Added CORS options
-	* Fixed layout of cert generation form
-	* Fixed label of cartridges
+2010-01-04 11:01  source
 
-2010-11-08 11:08  source
+	file qanda.title.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added check by entity type
+2010-01-04 11:01  source
 
-2010-11-05 20:23  source
+	file qandadiv.autolabel.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed check dp before processing
+2010-01-04 11:01  source
 
-2010-11-05 10:57  source
+	file rebuild-all.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed explanation of rdf inf failures
+2010-01-04 11:01  source
 
-2010-11-05 10:56  source
+	file refclass.suppress.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed bad condition of extension, do not push local imports
+2010-01-04 11:01  source
 
-2010-11-05 10:54  source
+	file refentry.date.profile.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed  /sparql/ endpoint to show/hide controls
-	* Fixed show supported formats depending on configuration
+2010-01-04 11:01  source
 
-2010-11-05 10:53  source
+	file refentry.date.profile.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed CXML desc support
+2010-01-04 11:01  source
 
-2010-11-04 18:18  source
+	file refentry.generate.name.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed typo
+2010-01-04 11:01  source
 
-2010-11-02 19:14  source
+	file refentry.generate.title.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added cxml det
+2010-01-04 11:01  source
 
-2010-11-02 19:12  source
+	file refentry.manual.fallback.profile.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed top/skip should only work for  non-multistate
-	* Fixed recover when itc is unregistered
+2010-01-04 11:01  source
 
-2010-11-01 14:15  source
+	file refentry.manual.profile.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* FIxed only skip when initialized
+2010-01-04 11:01  source
 
-2010-10-29 14:12  source
+	file refentry.manual.profile.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed when pl stats collection is enabled, the hash must be
-	  protected in order to avoid crash
+2010-01-04 11:01  source
 
-2010-10-29 14:11  source
+	file refentry.meta.get.quietly.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed when count/sum/avg and other aggregates make columns to be the
-	  respective type e.g. int or double, except when performing min/max
-	  on string, we turn off mem_cache_only, so they can goto disk
+2010-01-04 11:01  source
 
-2010-10-29 14:09  source
+	file refentry.pagebreak.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed unbalanced } outside ifdef
+2010-01-04 11:01  source
 
-2010-10-29 14:08  source
+	file refentry.separator.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added function alias
+2010-01-04 11:01  source
 
-2010-10-29 14:08  source
+	file refentry.source.fallback.profile.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed when selection list contains expressions with constants do
-	  not inline OJ
+2010-01-04 11:01  source
 
-2010-10-27 12:59  source
+	file refentry.source.name.profile.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed issues with sparql fed
+2010-01-04 11:01  source
 
-2010-10-27 12:56  source
+	file refentry.source.name.profile.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added new bif functions dict_iter_hash and dict_key_eq
+2010-01-04 11:01  source
 
-2010-10-27 12:55  source
+	file refentry.source.name.suppress.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added page enter debugging
+2010-01-04 11:01  source
 
-2010-10-27 12:53  source
+	file refentry.title.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added support for CORS
+2010-01-04 11:01  source
 
-2010-10-27 12:52  source
+	file refentry.version.profile.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed check all the cos in gby to be numeric types
+2010-01-04 11:01  source
 
-2010-10-27 12:51  source
+	file refentry.version.profile.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added debug line pragmas
+2010-01-04 11:01  source
 
-2010-10-27 12:50  source
+	file refentry.version.suppress.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed debug assert for itc_is_registered
+2010-01-04 11:01  source
 
-2010-10-25 13:23  source
+	file refentry.xref.manvolnum.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed compiler warnings
+2010-01-04 11:01  source
 
-2010-10-25 13:19  source
+	file reference.autolabel.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed rdf boxes cmp
-	* Fixed rdf inf loading
+2010-01-04 11:01  source
 
-2010-10-25 13:15  source
+	file region.after.extent.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed allow all users to have user_t so they can have their own
-	  encryption keys
+2010-01-04 11:01  source
 
-2010-10-22 21:12  source
+	file region.before.extent.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added contols to add text filters
-	* Added support for creating new ses with class iri filter
-	* Added choose type and start/continue facets browsing session to rdfdesc
-	* Fixed drop text constraint
-	* Fixed view types
+2010-01-04 11:01  source
 
-2010-10-22 16:34  source
+	file revhistory.table.cell.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed link warning
+2010-01-04 11:01  source
 
-2010-10-22 16:31  source
+	file revhistory.table.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed issue with shadowing local variable in java hosting
+2010-01-04 11:01  source
 
-2010-10-22 14:58  source
+	file revhistory.title.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed temporary disabled code
+2010-01-04 11:01  source
 
-2010-10-22 12:31  source
+	file root.filename.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed single does not have a dpipe
+2010-01-04 11:01  source
 
-2010-10-22 10:28  source
+	file root.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* FIxed if dpipe before outer section, put the dpipe before the set
-	  ctr of the outer section and not after, else it may mess with the
-	  output of the dpipe
+2010-01-04 11:01  source
 
-2010-10-22 09:52  source
+	file rootid.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed missing symbol
+2010-01-04 11:01  source
 
-2010-10-22 09:50  source
+	file runinhead.default.title.end.punct.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed rb can be twice as it is a ref
+2010-01-04 11:01  source
 
-2010-10-20 16:04  source
+	file runinhead.title.end.punct.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed problem with extremely large XML doc
+2010-01-04 11:01  source
 
-2010-10-19 12:38  source
+	file running.foot.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added dynamic resizing of result block
+2010-01-04 11:01  source
 
-2010-10-18 18:50  source
+	file sans.font.family.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed issue with SPARQL CONSTRUCT/INSERT/DELETE/MODIFY queries
+2010-01-04 11:01  source
 
-2010-10-18 12:18  source
+	file saxon.callouts.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed when a page with free remap is found, indicate the trx should be killed
-	  rather than getting infinite loop
-	* Fixed extra debugging for page access
+2010-01-04 11:01  source
 
-2010-10-18 12:14  source
+	file saxon.character.representation.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed when operation is count etc, aggregate returning a number
-	  does not do memcache only in order to avoid running out of memory
+2010-01-04 11:01  source
 
-2010-10-18 12:01  source
+	file saxon.linenumbering.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added new functions to ImageMagick plugin
+2010-01-04 11:01  source
 
-2010-10-15 11:37  source
+	file saxon.tablecolumns.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed fct_label on v6 single
+2010-01-04 11:01  source
 
-2010-10-13 13:59  source
+	file script.dir.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed the xe_make_copy is valid only for XMLTYPE, not for every UDT
+2010-01-04 11:01  source
 
-2010-10-13 13:59  source
+	file section.autolabel.max.depth.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed gpf
+2010-01-04 11:01  source
 
-2010-10-13 12:12  source
+	file section.autolabel.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added rsh-sha256
-	* Added xenc_dsig_verify, xenc_dsig_sign and xenc_key_RDA_construct
+2010-01-04 11:01  source
 
-2010-10-13 12:11  source
+	file section.container.element.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Removed old upgrade code
+2010-01-04 11:01  source
 
-2010-10-13 12:09  source
+	file section.label.includes.component.label.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed BestBuy cartridge
+2010-01-04 11:01  source
 
-2010-10-13 12:07  source
+	file section.level1.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added checks for value ranges
-	* Added paging through 'Related Collections' links
+2010-01-04 11:01  source
 
-2010-10-13 12:02  source
+	file section.level2.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed minor issues
+2010-01-04 11:01  source
 
-2010-10-13 12:00  source
+	file section.level3.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added ACL semantic ping
-	* Fixed encoding problems
-	* Fixed JS error
+2010-01-04 11:01  source
 
-2010-10-13 11:59  source
+	file section.level4.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added ACL semantic ping
-	* Fixed encoding problems
-	* Optimized page load
+2010-01-04 11:01  source
 
-2010-10-13 11:58  source
+	file section.level5.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed encoding problems
-	* Fixed and optimized users and webIDs
-	* Fixed sharings
-	* Optimized page load
+2010-01-04 11:01  source
 
-2010-10-13 10:36  source
+	file section.level6.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added ACL semantic ping
-	* Fixed and optimized users and webIDs
-	* Fixed empty lists
-	* Fixed encoding problems
-	* Optimized page load
+2010-01-04 11:01  source
 
-2010-10-13 10:35  source
+	file section.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added ACL semantic ping
-	* Fixed encoding problems
+2010-01-04 11:01  source
 
-2010-10-13 10:34  source
+	file section.title.level1.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added ACL semantic ping
-	* Fixed and optimized users and webIDs
-	* Fixed encoding problems
-	* Fixed empty lists
-	* Optimized page load
+2010-01-04 11:01  source
 
-2010-10-13 10:33  source
+	file section.title.level2.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added ACL semantic ping
-	* Fixed and optimized users and webIDs
-	* Fixed JS map error
-	* Fixed JS errors
-	* Fixed tabs
-	* Fixed encoding problems
+2010-01-04 11:01  source
 
-2010-10-12 17:35  source
+	file section.title.level3.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed bug when filer (num <>= (subq))
+2010-01-04 11:01  source
 
-2010-10-12 12:23  source
+	file section.title.level4.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added support for latest tidylib
+2010-01-04 11:01  source
 
-2010-10-07 23:31  source
+	file section.title.level5.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed some issues with dsig_verify
+2010-01-04 11:01  source
 
-2010-10-07 13:29  source
+	file section.title.level6.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed new debug macro DK_ALLOC_BOX_DEBUG for basic integrety checks
-	  without overhead of full MALLOC_DEBUG
+2010-01-04 11:01  source
 
-2010-10-07 13:24  source
+	file section.title.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added item ACL
-	* Added ACL Inheritance
-	* Fixed update
-	* Fixed tag bug
+2010-01-04 11:01  source
 
-2010-10-07 13:07  source
+	file segmentedlist.as.table.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed minor issue
+2010-01-04 11:01  source
 
-2010-10-07 13:00  source
+	file sequential.links.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added ACL Inheritance
-	* Fixed updated UI
+2010-01-04 11:01  source
 
-2010-10-07 13:00  source
+	file shade.verbatim.style.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added ACL Inheritance
-	* Fixed binding the twitter and linkedin with their API
-	* Fixed IE password field size bug
-	* Fixed must quote vars from sparql
-	* Fixed swat0
+2010-01-04 11:01  source
 
-2010-10-07 12:58  source
+	file shade.verbatim.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added ACL Inheritance
-	* Fixed optimized progress bar
-	* Fixed read/unread actions
-	* Fixed encoding problem
-	* Fixed updated UI
-	* Removed deprecated icons
+2010-01-04 11:01  source
 
-2010-10-07 12:56  source
+	file show.comments.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added ACL Inheritance
-	* Fixed ACL recalc bug
-	* Fixed updated UI
+2010-01-04 11:01  source
 
-2010-10-07 12:55  source
+	file show.foil.number.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added ACL Inheritance
-	* Fixed optimized update
-	* Fixed sharing problem
-	* Fixed updated UI
+2010-01-04 11:01  source
 
-2010-10-07 12:54  source
+	file show.revisionflag.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added ACL Inheritance
-	* Fixed ACL recalc bug
-	* Fixed optimize progress bar
-	* Removed deprecated images
+2010-01-04 11:01  source
 
-2010-10-07 12:53  source
+	file showtoc.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed swat0
+2010-01-04 11:01  source
 
-2010-10-07 12:44  source
+	file side.float.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Updated documentation
+2010-01-04 11:01  source
 
-2010-10-07 12:20  source
+	file sidebar.float.type.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added option not to convert HTML pages
+2010-01-04 11:01  source
 
-2010-10-06 21:39  source
+	file sidebar.float.width.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added initial attribute/property value ranges conditional
-	* Added new XML element <value-range hi="" lo="" /> for facet browser
-	* Fixed make pivot bridge link conditional
+2010-01-04 11:01  source
 
-2010-10-06 21:37  source
+	file sidebar.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed prevent buggy IRI to hit compiler
+2010-01-04 11:01  source
 
-2010-10-06 09:40  source
+	file sidebar.title.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed problem compiling certain SPARQL constructions
+2010-01-04 11:01  source
 
-2010-10-06 09:35  source
+	file simplesect.in.toc.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added some new functions to XPATH virtual table
-	* Added optimizations to boolean expression evaluation
+2010-01-04 11:01  source
 
-2010-10-06 09:27  source
+	file slide.font.family.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed added qualifier to stored proc creation
+2010-01-04 11:01  source
 
-2010-10-06 09:26  source
+	file slide.title.font.family.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed moved some checks to header file for macro expansion
+2010-01-04 11:01  source
 
-2010-10-06 09:15  source
+	file slides.js.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added support for CSV output mode
+2010-01-04 11:01  source
 
-2010-10-06 09:15  source
+	file slides.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed compatibility with openssl 0.9.7
+2010-01-04 11:01  source
 
-2010-10-05 09:39  source
+	file spacing.paras.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed when enlist starts we should have new xid or not listed
+2010-01-04 11:01  source
 
-2010-10-04 18:39  source
+	file speakernote.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed if resource is not free e.q. count = 2 we most restore as other
-	  thread can kill it in the middle
+2010-01-04 11:01  source
 
-2010-10-04 14:40  source
+	file subscript.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed save should happen after checks, as jump would leave members
-	  NULL
+2010-01-04 11:01  source
 
-2010-09-27 22:37  source
+	file superscript.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed missing text from cache
+2010-01-04 11:01  source
 
-2010-09-27 19:41  source
+	file suppress.footer.navigation.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* FIxed label
+2010-01-04 11:01  source
 
-2010-09-27 14:45  source
+	file suppress.header.navigation.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added linkblog pages
-	* Fixed smaller tweet me button on bottom
-	* Fixed template list
+2010-01-04 11:01  source
 
-2010-09-27 14:44  source
+	file suppress.homepage.title.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added ACL inheritance
+2010-01-04 11:01  source
 
-2010-09-27 14:44  source
+	file suppress.navigation.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed date update change in events/tasks
+2010-01-04 11:01  source
 
-2010-09-27 14:37  source
+	file symbol.font.family.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Rebuild drivers
+2010-01-04 11:01  source
 
-2010-09-27 14:29  source
+	file table.borders.with.css.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed issue with connection timeout
+2010-01-04 11:01  source
 
-2010-09-27 14:23  source
+	file table.cell.border.color.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed split uiedit into separate pages to get better response time
-	  when compiling
-	* Fixed 'Generate Certificate'
+2010-01-04 11:01  source
 
-2010-09-27 14:13  source
+	file table.cell.border.style.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed minor issues
+2010-01-04 11:01  source
 
-2010-09-27 14:11  source
+	file table.cell.border.thickness.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed ACL implementation
+2010-01-04 11:01  source
 
-2010-09-27 14:11  source
+	file table.cell.padding.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed take DynamicLocal into account
+2010-01-04 11:01  source
 
-2010-09-27 13:51  source
+	file table.entry.padding.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* FIxed client must not redefine mutex_enter as this will crash single
+2010-01-04 11:01  source
 
-2010-09-27 08:58  source
+	file table.footnote.number.format.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed use x-forwarded-for and remember it is forwarded
+2010-01-04 11:01  source
 
-2010-09-27 08:57  source
+	file table.footnote.number.symbols.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed use the redirect link for base when supplied
+2010-01-04 11:01  source
 
-2010-09-27 08:56  source
+	file table.footnote.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed check if m2 is a box
+2010-01-04 11:01  source
 
-2010-09-22 15:11  source
+	file table.frame.border.color.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Reverted patch
+2010-01-04 11:01  source
 
-2010-09-22 14:01  source
+	file table.frame.border.style.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added xml_sign() for making pure XML signatures
-	* Added signature in host-meta xrd
-	* FIxed memleaks when doing xml signatures
+2010-01-04 11:01  source
 
-2010-09-22 13:56  source
+	file table.frame.border.thickness.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed bad procedure name
+2010-01-04 11:01  source
 
-2010-09-22 13:06  source
+	file table.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed unified login pages
-	* Fixed upgraded ACL implementation
-	* Fixed Linkedin link
+2010-01-04 11:01  source
 
-2010-09-22 13:03  source
+	file table.spacer.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed upgraded ACL implementation
+2010-01-04 11:01  source
 
-2010-09-22 13:02  source
+	file table.table.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added archive and summary pages
-	* Added new templates to vad
+2010-01-04 11:01  source
 
-2010-09-22 12:50  source
+	file tablecolumns.extension.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed minor issues
+2010-01-04 11:01  source
 
-2010-09-22 12:48  source
+	file target.database.document.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed vcard and vcal file import
+2010-01-04 11:01  source
 
-2010-09-22 12:48  source
+	file targets.filename.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed group ACL access
+2010-01-04 11:01  source
 
-2010-09-21 13:12  source
+	file template.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed load demo vad after tutorial
+2010-01-04 11:01  source
 
-2010-09-21 13:11  source
+	file tex.math.delims.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added missing file
+2010-01-04 11:01  source
 
-2010-09-21 11:34  source
+	file tex.math.file.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed focus issue
-	* Fixed typo
-	* Fixed XRDS
+2010-01-04 11:01  source
 
-2010-09-21 11:33  source
+	file tex.math.in.alt.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added new templates
+2010-01-04 11:01  source
 
-2010-09-21 11:20  source
+	file text.home.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed serialize access to connection struct
+2010-01-04 11:01  source
 
-2010-09-20 10:14  source
+	file text.next.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed Id
+2010-01-04 11:01  source
 
-2010-09-20 09:51  source
+	file text.prev.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added RDFa doctype
-	* Added new feature of fct to show certain graph
+2010-01-04 11:01  source
 
-2010-09-20 09:50  source
+	file text.toc.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed http://dbpedia.org/property/name is not the name of the subject
+2010-01-04 11:01  source
 
-2010-09-20 09:23  source
+	file text.up.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added new feature of fct to show certain graph when fct is installed
+2010-01-04 11:01  source
 
-2010-09-20 09:20  source
+	file textbgcolor.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added new login and register library
-	* Added WebID to 'My Profile'
-	* Added linkedin login
-	* Added new inde on OL accounts
-	* Added twitter login page
-	* Added login with Google account
-	* Fixed WebFinder to look at sameas
-	* Fixed X.509 certificates in user pages
-	* Fixed password problem
-	* Fixed group ACL access
-	* Fixed validation ACLs
-	* Fixed openID server parameters extraction
-	* Fixed create instance defaults
-	* Fixed use of timezone
-	* Fixed Safari and Chrome bug
-	* Fixed biographical date input
+2010-01-04 11:01  source
 
-2010-09-20 09:14  source
+	file textdata.default.encoding.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed filter problem with WebID
+2010-01-04 11:01  source
 
-2010-09-20 09:13  source
+	file textinsert.extension.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added ACL support for tasks
-	* Fixed group ACL access
-	* Fixed ACL table UI
-	* Fixed private access
-	* Fixed  validation ACLs
+2010-01-04 11:01  source
 
-2010-09-20 09:12  source
+	file title.font.family.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed group ACL access
-	* Fixed ACL group select
-	* Fixed ACL UI
-	* Fixed validation ACLs
+2010-01-04 11:01  source
 
-2010-09-20 09:11  source
+	file title.margin.left.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added ACLs
-	* Fixed group ACL access
-	* Fixed private access
+2010-01-04 11:01  source
 
-2010-09-20 09:09  source
+	file titlefoil.html.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed group ACL access
-	* Fixed ACL table UI
-	* Fixed private access
-	* Fixed validation ACLs
+2010-01-04 11:01  source
 
-2010-09-20 08:55  source
+	file toc.bg.color.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added refresh=clean mode, to drop cache even if it is in the middle
-	  of sponging on another threads
-	* Added scheduler task to keep volume under some limit
+2010-01-04 11:01  source
 
-2010-09-20 08:27  source
+	file toc.blank.graphic.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed ACL testing now http returns 509
+2010-01-04 11:01  source
 
-2010-09-17 23:11  source
+	file toc.blank.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed when fct is installed, use the new feature of fct to show
-	  certain graphs
+2010-01-04 11:01  source
 
-2010-09-17 23:10  source
+	file toc.blank.text.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed hang in prefix check if there is single dot in prefix
+2010-01-04 11:01  source
 
-2010-09-17 23:10  source
+	file toc.hide.show.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed check log text should always be DV_STRING
+2010-01-04 11:01  source
 
-2010-09-17 23:08  source
+	file toc.html.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added support for CXML
+2010-01-04 11:01  source
 
-2010-09-17 23:03  source
+	file toc.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added strong optimization of SPARQL arithmatic and numerical
-	  comparisons
+2010-01-04 11:01  source
 
-2010-09-17 22:49  source
+	file toc.indent.width.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added initial support for RDB2RDF
+2010-01-04 11:01  source
 
-2010-09-17 22:05  source
+	file toc.line.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added improvements for SPARQL-FED esp. to let XSLT access data
-	  from remote SPARQL endpoint
+2010-01-04 11:01  source
 
-2010-09-17 20:49  source
+	file toc.list.type.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed rendezvous thread should never handle any signals
+2010-01-04 11:01  source
 
-2010-09-17 16:50  source
+	file toc.margin.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed moved include file to more appropriate place
+2010-01-04 11:01  source
 
-2010-09-17 16:48  source
+	file toc.max.depth.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed do not try when in V6 single mode
+2010-01-04 11:01  source
 
-2010-09-17 16:45  source
+	file toc.pointer.graphic.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added new bifs that print start element, end elemend and empty
-	  element with some number of attributes. Attribute values are
-	  checked for NULL and print only non-NULLs to eliminate numerous
-	  IF statements in Virtuoso/PL
+2010-01-04 11:01  source
 
-2010-09-17 16:42  source
+	file toc.pointer.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added bif that checks if some value is stored in given dictionary
-	  for a given key, without returning it. This is usefull if value is
-	  potentially big as it does not copy anything.
+2010-01-04 11:01  source
 
-2010-09-17 16:40  source
+	file toc.pointer.text.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed let some string BIFs accept UNAME arguments
+2010-01-04 11:01  source
 
-2010-09-17 16:35  source
+	file toc.row.height.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Removed deprecated repl code
+2010-01-04 11:01  source
 
-2010-09-17 11:18  source
+	file toc.section.depth.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed isalnum needs unsigned char as negative values might trip asserts
-	  on some systems like Windows
+2010-01-04 11:01  source
 
-2010-09-15 23:54  source
+	file toc.spacer.graphic.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed handling format like 2010-09-15T14:24:28Z without fraction part
-	* Fixed set local timezone
+2010-01-04 11:01  source
 
-2010-09-15 08:10  source
+	file toc.spacer.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed redirects for tcn
-	* Fixed set default to html
-	* Fixed in order of browser preference
+2010-01-04 11:01  source
 
-2010-09-13 16:03  source
+	file toc.spacer.text.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed issue with xs_q_4/foaf.vsp demo
+2010-01-04 11:01  source
 
-2010-09-09 19:19  source
+	file toc.width.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added check
+2010-01-04 11:01  source
 
-2010-09-09 19:18  source
+	file ua.js.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* FIxed print dict in dbg_* functions
+2010-01-04 11:01  source
 
-2010-09-09 16:02  source
+	file ulink.footnotes.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed minor issue
+2010-01-04 11:01  source
 
-2010-09-09 15:32  source
+	file ulink.hyphenate.chars.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added MIME types for .NET click-once, MS Office and MS WPF applications
-	* Added additional MIME types based on apache mime.types.txt
+2010-01-04 11:01  source
 
-2010-09-07 21:56  source
+	file ulink.hyphenate.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added geo for dbpedia
-	* Fixed wrong var names
-	* Fixed issue with IE
-	* Fixed deprecated call to OAT.Dom.applyStyle into OAT.Style.set
-	* Removed unused background
+2010-01-04 11:01  source
 
-2010-09-07 21:37  source
+	file ulink.show.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added fingerpoint hook
+2010-01-04 11:01  source
 
-2010-09-07 21:28  source
+	file ulink.target.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added oauth+openid hybrid
-	* Added JS validation routines
-	* Added fingerpoint hooks
-	* Fixed x509 order
-	* Fixed use ssl login if accessed via https
-	* Fixed https on endpoint
-	* Fixed openid for fingerpoint
-	* Fixed seeAlso lookups via WF/FP
-	* Fixed Facebook issues
-	* Fixed validation ACLs
-	* Fixed Gallery pane
+2010-01-04 11:01  source
+
+	file up.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
+
+2010-01-04 11:01  source
 
-2010-09-07 21:24  source
+	file use.embed.for.svg.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed ACL
+2010-01-04 11:01  source
 
-2010-09-07 21:24  source
+	file use.extensions.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Added ACL
+2010-01-04 11:01  source
 
-2010-09-07 21:23  source
+	file use.id.as.filename.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed private access error
+2010-01-04 11:01  source
 
-2010-09-07 21:23  source
+	file use.id.function.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:53 +0000
 
-	* Fixed private access error
-	* Fixed typo
+2010-01-04 11:01  source
 
-2010-09-07 19:55  source
+	file man.string.subst.map.local.pre.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Minor fixes
+2010-01-04 11:01  source
 
-2010-09-07 19:55  source
+	file man.string.subst.map.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added XRD meta
+2010-01-04 11:01  source
 
-2010-09-07 19:54  source
+	file man.subheading.divider.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added attribution ontology
+2010-01-04 11:01  source
 
-2010-09-01 10:15  source
+	file man.subheading.divider.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added support headers from url rewrite for static resources such
-	  as files
+2010-01-04 11:01  source
 
-2010-09-01 10:11  source
+	file man.table.footnotes.divider.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed link headers
+2010-01-04 11:01  source
 
-2010-08-31 12:12  source
+	file man.th.extra1.suppress.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added missing function
+2010-01-04 11:01  source
 
-2010-08-31 12:12  source
+	file man.th.extra2.max.length.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added support for IUD ops to XMLA endpoint
+2010-01-04 11:01  source
 
-2010-08-31 12:09  source
+	file man.th.extra2.suppress.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed return appropriate message based on the type of ACL result
+2010-01-04 11:01  source
 
-2010-08-31 11:45  source
+	file man.th.extra3.max.length.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added support for host-meta
+2010-01-04 11:01  source
 
-2010-08-30 13:46  source
+	file man.th.extra3.suppress.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Updated documentation
+2010-01-04 11:01  source
 
-2010-08-30 13:37  source
+	file man.th.title.max.length.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed use short representations to make sorted by
+2010-01-04 11:01  source
 
-2010-08-30 13:35  source
+	file manifest.in.base.dir.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed missing prototype
+2010-01-04 11:01  source
 
-2010-08-30 12:34  source
+	file manifest.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed use webfinger to do ssl authentication
+2010-01-04 11:01  source
 
-2010-08-30 12:21  source
+	file manual.toc.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed error message generation in execute
-	* Fixed encoding issue in directory listings generated from
-	  filesystem-hosted virtual directories
+2010-01-04 11:01  source
 
-2010-08-26 22:49  source
+	file margin.note.float.type.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* FIxed i18n support for subject and address list
+2010-01-04 11:01  source
 
-2010-08-26 22:41  source
+	file margin.note.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed typo
+2010-01-04 11:01  source
 
-2010-08-26 22:40  source
+	file margin.note.title.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added Evri cartridge and ontology
-	* Added hNews cartridge
+2010-01-04 11:01  source
 
-2010-08-26 22:34  source
+	file margin.note.width.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added support for acct: scheme
+2010-01-04 11:01  source
 
-2010-08-26 22:33  source
+	file marker.section.level.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added support for webfinger + OpenID
-	* Fixed login with webfinger
-	* Fixed login popup page
-	* Fixed sameAs validation values
-	* Fixed Facebook link
-	* Fixed iframe number
-	* Fixed certificate generator
+2010-01-04 11:01  source
 
-2010-08-26 22:30  source
+	file menuchoice.menu.separator.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed application settings page url
+2010-01-04 11:01  source
 
-2010-08-26 18:04  source
+	file menuchoice.separator.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added support for host-meta
+2010-01-04 11:01  source
 
-2010-08-26 18:03  source
+	file minus.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed if position is not valid, skip the iob and go to next
+2010-01-04 11:01  source
 
-2010-08-24 22:34  source
+	file monospace.font.family.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed set to NULL after free
+2010-01-04 11:01  source
 
-2010-08-22 16:04  source
+	file monospace.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added option for to validate in hours
+2010-01-04 11:01  source
 
-2010-08-22 13:06  source
+	file monospace.verbatim.font.width.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added new SQL optimization trick to convert
-	  sprintf ('format', col0, col1, ..., colN) = exnp
-	  into more index friendly:
-	  ( col0 = sprintf_inverse ('format', expn, 2)[0] and
-	    col1 = sprintf_inverse ('format', expn, 2)[1] and ...
-	    colN = sprintf_inverse ('format', expn, 2)[N] )
+2010-01-04 11:01  source
 
-2010-08-20 10:12  source
+	file monospace.verbatim.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed typo in BIF name
-	* Fixed SPARQL resultset output if some objects of an RDF storage are
-	  corrupted
+2010-01-04 11:01  source
 
-2010-08-20 10:10  source
+	file multiframe.bottom.bgcolor.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed error on INSERT DATA with literals of non-default types
+2010-01-04 11:01  source
 
-2010-08-20 10:09  source
+	file multiframe.navigation.height.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed issue with ill formed SPARQL requests send by SPARQL SERVICE
-	  clause with dynamic parameters
+2010-01-04 11:01  source
 
-2010-08-20 10:07  source
+	file multiframe.top.bgcolor.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed issue parsing sparql function calls with zero arguments
+2010-01-04 11:01  source
 
-2010-08-18 08:41  source
+	file multiframe.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed check dirsallowed before loading file
+2010-01-04 11:01  source
 
-2010-08-17 21:40  source
+	file nav.separator.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed use webfinger to do SSL authentication
+2010-01-04 11:01  source
 
-2010-08-17 18:29  source
+	file nav.table.summary.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added support to use webfinger for SSL authentication
-	* Disabled rel=me tweak
+2010-01-04 11:01  source
 
-2010-08-17 18:05  source
+	file navbgcolor.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added Google Book cartridge
+2010-01-04 11:01  source
 
-2010-08-17 18:05  source
+	file navbodywidth.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed use foaf ssl procedure
+2010-01-04 11:01  source
 
-2010-08-17 18:01  source
+	file navig.graphics.extension.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added get-certificate_info (10,cert,type, pass, 'subject field name
-	  e.g. emailAddress, OU etc.')
+2010-01-04 11:01  source
 
-2010-08-17 11:06  source
+	file navig.graphics.path.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* FIxed sparql parse bug with NOT FROM NAMED queries like
-	  select distinct ?g ?p not from named virtrdf: where
-	  { graph ?g { ?s ?p ?o }}
+2010-01-04 11:01  source
 
-2010-08-17 10:23  source
+	file navig.graphics.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed security issue in SPARQL
-	  A compiled and cached query may stay in its old state (not
-	  recompiled) after global security changes like
-	  DB.DBA.RDF_DEFAULT_USER_PERMS_SET ('nobody', 0) that should
-	  recompile most of queries cached for all users but it does not.
+2010-01-04 11:01  source
 
-2010-08-17 10:22  source
+	file navig.showtitles.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed build rules
+2010-01-04 11:01  source
 
-2010-08-17 09:25  source
+	file navtocwidth.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed moved constant declarations of commonly used UNAMEs into
-	  separate file
+2010-01-04 11:01  source
 
-2010-08-16 10:10  source
+	file next.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added webfinger protocol
-	* Fixed cert gen on firefox with .net addon
+2010-01-04 11:01  source
 
-2010-08-16 10:09  source
+	file no.home.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed bug in re-install
+2010-01-04 11:01  source
 
-2010-08-16 10:07  source
+	file no.next.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed labels
+2010-01-04 11:01  source
 
-2010-08-16 10:07  source
+	file no.prev.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* FIxed missing data for interval column
+2010-01-04 11:01  source
 
-2010-08-11 11:07  source
+	file no.toc.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added support for define output:format "NT"
+2010-01-04 11:01  source
 
-2010-08-11 10:53  source
+	file no.up.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed issue with sparql subcode gen
+2010-01-04 11:01  source
 
-2010-08-10 18:47  source
+	file nominal.image.depth.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed should not use escape here
+2010-01-04 11:01  source
 
-2010-08-10 18:45  source
+	file nominal.image.width.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added WebID share
-	* Fixed secure sponged VD setup
+2010-01-04 11:01  source
 
-2010-08-10 14:52  source
+	file nominal.table.width.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed wrong URL
+2010-01-04 11:01  source
 
-2010-08-09 20:08  source
+	file nongraphical.admonition.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed some URL links
+2010-01-04 11:01  source
 
-2010-08-09 19:44  source
+	file normal.para.spacing.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed support for source_uri attribute in sticker
+2010-01-04 11:01  source
 
-2010-08-08 11:55  source
+	file olink.base.uri.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed enhanced type recognition
-	* Fixed return errors when loading fails
+2010-01-04 11:01  source
 
-2010-08-08 11:55  source
+	file olink.debug.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed TOP has argument order of offset, limit
+2010-01-04 11:01  source
 
-2010-08-06 10:29  source
+	file olink.doctitle.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed issues with Rename
-	* Fixed issues with Upstreaming
+2010-01-04 11:01  source
 
-2010-08-06 10:03  source
+	file olink.fragid.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added support for SSL and WebID
+2010-01-04 11:01  source
 
-2010-08-06 09:46  source
+	file olink.lang.fallback.sequence.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed skip constant ssl returned from temp table output
+2010-01-04 11:01  source
 
-2010-08-04 18:50  source
+	file olink.outline.ext.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed clear conn vars after trx replay
+2010-01-04 11:01  source
 
-2010-08-04 09:34  source
+	file olink.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Updated documentation
+2010-01-04 11:01  source
 
-2010-08-04 07:37  source
+	file olink.pubid.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added UI for rdb2rdf
+2010-01-04 11:01  source
 
-2010-08-04 07:37  source
+	file olink.resolver.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed use subseq to handle blobs
+2010-01-04 11:01  source
 
-2010-08-04 07:35  source
+	file olink.sysid.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed Activity log
-	* Fixed /about virtual dir
-	* Fixed rewrite http header in cert output
+2010-01-04 11:01  source
 
-2010-08-04 07:33  source
+	file orderedlist.label.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed Activity log
-	* Fixed file view
-	* Fixed filenames with .acl extension properties editing
+2010-01-04 11:01  source
 
-2010-08-04 07:32  source
+	file orderedlist.label.width.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed encoding problem
+2010-01-04 11:01  source
 
-2010-08-04 07:30  source
+	file orderedlist.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed Activity log
+2010-01-04 11:01  source
 
-2010-08-04 07:30  source
+	file othercredit.like.author.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed Activity log
-	* Fixed uninstall DET folders
-	* Fixed 'ResFolder' type filters
+2010-01-04 11:01  source
 
-2010-08-04 07:10  source
+	file output-root.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added persistent xmlns UI
+2010-01-04 11:01  source
 
-2010-08-04 07:03  source
+	file output.indent.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added WebID based ACL support via https
+2010-01-04 11:01  source
 
-2010-08-04 07:02  source
+	file overlay.js.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed Tesco cartridge
+2010-01-04 11:01  source
 
-2010-08-04 06:58  source
+	file overlay.logo.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed avoid errors later in process
+2010-01-04 11:01  source
 
-2010-08-04 06:53  source
+	file overlay.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* FIxed use X-Forwarded-Host when the instance is behind gateway
+2010-01-04 11:01  source
 
-2010-08-02 11:31  source
+	file page.height.portrait.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed when result from authentication is negative then return
-	  else WebID fals
-	* Fixed http auth checks
+2010-01-04 11:01  source
 
-2010-08-02 11:25  source
+	file page.height.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed keep mime hash in sync
+2010-01-04 11:01  source
 
-2010-08-02 11:23  source
+	file page.margin.bottom.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed do not allow sponger to change log mode explicitly to no-lock and
-	  row-autocommit
+2010-01-04 11:01  source
 
-2010-08-02 11:20  source
+	file page.margin.inner.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added support for POP3 over SSL
+2010-01-04 11:01  source
 
-2010-08-02 07:40  source
+	file page.margin.outer.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added global X509 CA repository
+2010-01-04 11:01  source
 
-2010-07-29 16:25  source
+	file page.margin.top.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Updated documentation
+2010-01-04 11:01  source
 
-2010-07-29 16:17  source
+	file page.orientation.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed dynlocal format must be replaced by host as in host header
+2010-01-04 11:01  source
 
-2010-07-29 16:14  source
+	file page.width.portrait.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added common api FOAF_SSL_WEBID_GET
-	* Added setting for online certificate service
-	* Added https link in header
-	* Fixed online accounts
-	* Fixed WebID
-	* Fixed alt name can have multiple values
+2010-01-04 11:01  source
 
-2010-07-28 12:26  source
+	file page.width.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed size of res column to fit side menu on smaller screens like
-	 iPhone
+2010-01-04 11:01  source
 
-2010-07-28 12:10  source
+	file pages.template.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed minor issues
+2010-01-04 11:01  source
 
-2010-07-26 21:01  source
+	file paper.type.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed when http auth fails, must keep the http status as 401
+2010-01-04 11:01  source
 
-2010-07-26 12:59  source
+	file para.propagates.style.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed alt names can have multiple values
-	* Fixed paths creation
-	* Fixed users select
-	* Fixed renamed User Login to Identify Yourself
+2010-01-04 11:01  source
 
-2010-07-26 12:58  source
+	file part.autolabel.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed path creation
-	* Fixed URLs
-	* Fixed users select
+2010-01-04 11:01  source
 
-2010-07-26 12:58  source
+	file passivetex.extensions.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed path creation
-	* Fixed URLs
+2010-01-04 11:01  source
 
-2010-07-23 19:44  source
+	file pgwide.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed bug with WebDAVFS client
+2010-01-04 11:01  source
 
-2010-07-23 19:43  source
+	file phrase.propagates.style.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added continue handler to catch missing graph group signal
+2010-01-04 11:01  source
 
-2010-07-23 19:42  source
+	file pixels.per.inch.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed URL after login
-	* FIxed view.vsp not found problem
+2010-01-04 11:01  source
 
-2010-07-23 19:39  source
+	file plus.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Adde additional endpoint
-	* Fixed splash screen
-	* Fixed error message when JavaScript is not available
-	* Fixed geo location
+2010-01-04 11:01  source
 
-2010-07-23 19:36  source
+	file points.per.em.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Added new lock icon ref
-	* Fixed online services validation
-	* Fixed IE UI profile view
-	* Fixed multiple certificates in UI profile
-	* Fixed issue with "Creator of"
-	* Fixed image button for users pages
-	* Fixed browser related problems
-	* Fixed labels
+2010-01-04 11:01  source
 
-2010-07-23 19:31  source
+	file preface.autolabel.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Removed deprecated files
+2010-01-04 11:01  source
 
-2010-07-23 15:56  source
+	file prefer.internal.olink.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed auth bug with WebDAVFS client
+2010-01-04 11:01  source
 
-2010-07-20 13:08  source
+	file preferred.mediaobject.role.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-	* Fixed minor issues
+2010-01-04 11:01  source
 
-2010-07-20 13:01  source
+	file prev.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
+
+2010-01-04 11:01  source
 
-	* Fixed WebKit problems with UI profile
+	file procedure.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-20 13:01  source
+2010-01-04 11:01  source
 
-	* Fixed sync security profile
+	file process.empty.source.toc.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-19 14:50  source
+2010-01-04 11:01  source
 
-	* Added discussion page rewrite rules
-	* Fixed change Member ID to User ID
-	* Fixed ODS to Digest in Login/Register form
-	* Fixed X.509 page for IE
+	file process.source.toc.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-19 14:48  source
+2010-01-04 11:01  source
 
-	* Fixed URLs
+	file profile.arch.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-19 14:39  source
+2010-01-04 11:01  source
 
-	* Fixed missing dependency
+	file profile.attribute.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-19 14:39  source
+2010-01-04 11:01  source
 
-	* Fixed ordering to work with IE 7/8
+	file profile.audience.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-19 07:12  source
+2010-01-04 11:01  source
 
-	* Fixed version
+	file profile.condition.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-19 07:11  source
+2010-01-04 11:01  source
 
-	* Fixed some issues with sparql queries returning strings instead of IRIs
+	file profile.conformance.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-19 07:08  source
+2010-01-04 11:01  source
 
-	* Added explain if params are copied
+	file profile.lang.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-19 07:08  source
+2010-01-04 11:01  source
 
-	* Fixed dir listing to use UTF-8 to show chars other than latin1
+	file profile.os.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-19 06:59  source
+2010-01-04 11:01  source
 
-	* Fixed issue with inferencing
+	file profile.revision.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-19 06:59  source
+2010-01-04 11:01  source
 
-	* Fixed compiler warnings
+	file profile.revisionflag.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-14 21:18  source
+2010-01-04 11:01  source
 
-	* Fixed following checkpoint kill recovery remap extents may have
-	  allocated pages with no correspoinding logical page because recovery
-	  performs unremap. Therefor if em remap page is allocated in em but
-	  free in dbs freemap, disregards and reset em allocation, if no logical
-	  page. If logical page, concider the dbs freeset in errror and mark page
-	  as allocated.
+	file profile.role.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-09 15:57  source
+2010-01-04 11:01  source
 
-	* Updated version to 6.1.2 for final release
+	file profile.security.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-09 15:57  source
+2010-01-04 11:01  source
 
-	* Fixed version string ODBC driver
+	file profile.separator.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-09 15:36  source
+2010-01-04 11:01  source
 
-	* Updated debian packaging files
+	file profile.status.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-09 15:29  source
+2010-01-04 11:01  source
 
-	* Fixed free data in wrong order
+	file profile.userlevel.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-09 14:17  source
+2010-01-04 11:01  source
 
-	* Rebuild drivers
+	file profile.value.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-09 14:16  source
+2010-01-04 11:01  source
 
-	* Fixed performance issue loading LANG/TYPE info from empty db
+	file profile.vendor.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-09 13:32  source
+2010-01-04 11:01  source
 
-	* Fixed do not run tpc-h create on vad install
+	file profile.wordsize.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-09 13:01  source
+2010-01-04 11:01  source
 
-	* Added UI support for SSL/TLS connection to LDAP server
+	file punct.honorific.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-09 12:59  source
+2010-01-04 11:01  source
 
-	* Added new tutorials
+	file qanda.defaultlabel.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-08 20:41  source
+2010-01-04 11:01  source
 
-	* Fixed application URLs
+	file qanda.in.toc.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-08 20:40  source
+2010-01-04 11:01  source
 
-	* Fixed application URL rewrite rules
+	file qanda.inherit.numeration.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-08 13:40  source
+2010-01-04 11:01  source
 
-	* FIxed OpenID and SSL login
+	file qanda.nested.in.toc.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-08 13:37  source
+2010-01-04 11:01  source
 
-	* Fixed VTIMEZONE component in export
+	file qanda.title.level1.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-08 13:27  source
+2010-01-04 11:01  source
 
-	* Fixed minor issue
+	file qanda.title.level2.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-08 13:23  source
+2010-01-04 11:01  source
 
-	* Added optimization for large descriptions
+	file qanda.title.level3.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-08 13:21  source
+2010-01-04 11:01  source
 
-	* Fixed add escape to CR/LF in JSON format
+	file qanda.title.level4.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-07-07 18:53  source
+2010-01-04 11:01  source
 
-	* Fixed openid to work with personal iri
+	file htmlhelp.hhc.binary.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-07 18:42  source
+2010-01-04 11:01  source
 
-	* Updated documentation
+	file htmlhelp.hhc.folders.instead.books.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-07 12:43  source
+2010-01-04 11:01  source
 
-	* Fixed create list of unique graphs
+	file htmlhelp.hhc.section.depth.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-06 23:07  source
+2010-01-04 11:01  source
 
-	* Added Tumblr cartridge
+	file htmlhelp.hhc.show.root.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-06 23:06  source
+2010-01-04 11:01  source
 
-	* Added description for property value in offers
+	file htmlhelp.hhc.width.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-06 23:04  source
+2010-01-04 11:01  source
 
-	* Added shared files using FOAF+SSL
+	file htmlhelp.hhc.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-06 22:58  source
+2010-01-04 11:01  source
 
-	* Fixed minor issue
+	file htmlhelp.hhk.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-06 14:30  source
+2010-01-04 11:01  source
 
-	* Updated version to 6.1.2-rc3
+	file htmlhelp.hhp.tail.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-06 14:24  source
+2010-01-04 11:01  source
 
-	* Added new setting WideAsUTF16 to ODBC driver to return UTF-16LE
-	  when using SQLWCHAR
-	* Fixed setting for UTF-8 when db keeps UTF-8 in varchars
+	file htmlhelp.hhp.window.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-06 14:06  source
+2010-01-04 11:01  source
 
-	* Fixed declaration after statement
+	file htmlhelp.hhp.windows.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-06 10:40  source
+2010-01-04 11:01  source
 
-	* Fixed yac_list_keys output is changed
+	file htmlhelp.hhp.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-06 10:39  source
+2010-01-04 11:01  source
 
-	* Fixed examine lastmod ts before updating
+	file htmlhelp.map.file.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-06 10:34  source
+2010-01-04 11:01  source
 
-	* Fixed as col_default is always a serialized value, zero can appear
-	  as default integer zero
+	file htmlhelp.only.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-06 09:56  source
+2010-01-04 11:01  source
 
-	* Fixed move alloc/free of descriptor handles into SQLAllocStmt
+	file htmlhelp.remember.window.position.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 19:30  source
+2010-01-04 11:01  source
 
-	* Added information for building on Mac OS X 10.6
+	file htmlhelp.show.advanced.search.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 19:25  source
+2010-01-04 11:01  source
 
-	* Added missing test for memcpy
+	file htmlhelp.show.favorities.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 15:01  source
+2010-01-04 11:01  source
 
-	* Fixed wikiWord ("." is not yet part of the name)
+	file htmlhelp.show.menu.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 14:59  source
+2010-01-04 11:01  source
 
-	* Fixed when importing keys, let user decide which on to use as his
-	  webid for ODBC/SQL login
+	file htmlhelp.show.toolbar.text.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 14:48  source
+2010-01-04 11:01  source
 
-	* Added support for FOAF+SSL authentication
+	file htmlhelp.title.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 14:11  source
+2010-01-04 11:01  source
 
-	* Updated documentation
+	file htmlhelp.use.hhk.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 14:05  source
+2010-01-04 11:01  source
 
-	* Fixed upgrade procedure, more checks
+	file htmlhelp.window.geometry.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 14:04  source
+2010-01-04 11:01  source
 
-	* Moved to conductor
+	file hyphenate.verbatim.characters.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 13:24  source
+2010-01-04 11:01  source
 
-	* Fixed handling multiple certs
+	file hyphenate.verbatim.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 13:23  source
+2010-01-04 11:01  source
 
-	* FIxed can have many certs in FOAF
+	file hyphenate.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 13:17  source
+2010-01-04 11:01  source
 
-	* Mover ACL UI into conductor
-	* Fixed dependency on ODS Framework
+	file id.warnings.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 13:04  source
+2010-01-04 11:01  source
 
-	* Fixed use label ontology to extract geo coordinates
+	file ignore.image.scaling.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 12:42  source
+2010-01-04 11:01  source
 
-	* Added driver versioning
-	* Fixed issue with batch commit
+	file img.src.path.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 12:41  source
+2010-01-04 11:01  source
 
-	* Added driver versioning
-	* FIxed issue with batch commit
+	file index.div.title.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 12:40  source
+2010-01-04 11:01  source
 
-	* Rebuild driver
+	file index.entry.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 12:40  source
+2010-01-04 11:01  source
 
-	* Added driver versioning
-	* Fixed force jena's lazy initialization when Graph is created
-	* Fixed ignore warning on Binding.add NULL value
+	file index.links.to.section.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 12:21  source
+2010-01-04 11:01  source
 
-	* Rebuild drivers
+	file index.method.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 12:16  source
+2010-01-04 11:01  source
 
-	* Added driver versioning
+	file index.number.separator.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 08:30  source
+2010-01-04 11:01  source
 
-	* Added more assertations to facets ontology
+	file index.on.role.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 08:29  source
+2010-01-04 11:01  source
 
-	* Added label as IPF
+	file index.on.type.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 08:29  source
+2010-01-04 11:01  source
 
-	* Remove tags from comment, label etc
+	file index.page.number.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 08:26  source
+2010-01-04 11:01  source
 
-	* Added support for multiple certificates in user profile
-	* Added semantic pingback log
-	* Fixed GoodsRelation SIOC data
-	* Fixed Offers
+	file index.prefer.titleabbrev.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 08:25  source
+2010-01-04 11:01  source
 
-	* FIxed JS error showing unlogged users
+	file index.preferred.page.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 08:20  source
+2010-01-04 11:01  source
 
-	* Fixed RSS data
+	file index.range.separator.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-05 08:13  source
+2010-01-04 11:01  source
 
-	* Fixed minor issue
+	file index.term.separator.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-01 11:52  source
+2010-01-04 11:01  source
 
-	* Fixed namespace issues
+	file informal.object.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-07-01 11:49  source
+2010-01-04 11:01  source
 
-	* Fixed IE problem with negative size on box
-	* Fixed do not rewrite existing href on a++ links
+	file informalequation.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-30 14:32  source
+2010-01-04 11:01  source
 
-	* Fixed handing of items in alt name
+	file informalexample.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-30 14:31  source
+2010-01-04 11:01  source
 
-	* Fixed UI profile edit
-	* Fixed Favorites
+	file informalfigure.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-30 14:29  source
+2010-01-04 11:01  source
 
-	* Fixed when distinct, should use one or the other ssl depending on which
-	  is non null
+	file informaltable.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-30 09:58  source
+2010-01-04 11:01  source
 
-	* Fixed minor issues
+	file inherit.keywords.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-30 09:47  source
+2010-01-04 11:01  source
 
-	* Added UI semantic ping
+	file insert.link.page.number.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-30 09:47  source
+2010-01-04 11:01  source
 
-	* Fixed handling of items in alt name
+	file insert.olink.page.number.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-29 22:55  source
+2010-01-04 11:01  source
 
-	* Fixed handling of alt name
+	file insert.olink.pdf.frag.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-29 12:50  source
+2010-01-04 11:01  source
 
-	* Fixed semantic pingback
+	file insert.xref.page.number.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-29 11:53  source
+2010-01-04 11:01  source
 
-	* Updated version to 6.1.2-rc2
+	file itemizedlist.label.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-28 11:14  source
+2010-01-04 11:01  source
 
-	* Fixed ontology label
+	file itemizedlist.label.width.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-28 10:34  source
+2010-01-04 11:01  source
 
-	* Fixed sparql union selections, added ANY decl on relevant section
-	  list bits
+	file itemizedlist.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-28 10:30  source
+2010-01-04 11:01  source
 
-	* Rebuild driver
+	file javahelp.encoding.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-28 10:19  source
+2010-01-04 11:01  source
 
-	* Added support for creating ruleset
-	* Fixed handling of quotes in literals
+	file keep.relative.image.uris.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-28 10:14  source
+2010-01-04 11:01  source
 
-	* Added support for using VirtuosoDataSource
-	* Fixed handling of quote chars in literals
+	file keyboard.nav.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-28 09:49  source
+2010-01-04 11:01  source
 
-	* Updated documentation
+	file l10n.gentext.default.language.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-28 09:48  source
+2010-01-04 11:01  source
 
-	* Added new images
+	file l10n.gentext.language.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-28 09:35  source
+2010-01-04 11:01  source
 
-	* Added new RDF framework
-	* Added JS XPATH library
-	* Added browser checks
-	* Added logging/debugging helper functions
-	* FIxed rdftabs navigation and maps cosmetics
-	* Fixed DOM parser initialization issue with IE
+	file l10n.gentext.use.xref.language.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-28 09:23  source
+2010-01-04 11:01  source
 
-	* Added support for new RDF framework
-	* Fixed cosmetics
-	* Fixed extraneous comma in object def for IE7 compatibility
-	* Fixed small bugs
+	file l10n.lang.value.rfc.compliant.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-28 09:08  source
+2010-01-04 11:01  source
 
-	* Updated Favorites
+	file label.from.part.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-28 09:07  source
+2010-01-04 11:01  source
 
-	* Added Semantic Pingback client/server
+	file line-height.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-28 09:06  source
+2010-01-04 11:01  source
 
-	* Updated to CKEditor v3.3.1
+	file linenumbering.everyNth.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-25 16:41  source
+2010-01-04 11:01  source
 
-	* Added support for following http redirects automatically
+	file linenumbering.extension.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-25 16:39  source
+2010-01-04 11:01  source
 
-	* Fixed compiler warnings
+	file linenumbering.separator.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-25 11:22  source
+2010-01-04 11:01  source
 
-	* Added extra functions for graph diff, iteration over dictionary and
-	  obtaining biggest possible IRI_ID on given 32/64bit platform
+	file linenumbering.width.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-25 11:19  source
+2010-01-04 11:01  source
 
-	* Added etsy cartridge
-	* Fixed minor issues
+	file link.mailto.url.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-25 11:18  source
+2010-01-04 11:01  source
 
-	* Added new Link headers
+	file list.block.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-25 11:16  source
+2010-01-04 11:01  source
 
-	* Fixed ACL file to have some permissions using foaf+ssl
-	* Fixed check it is not det
+	file list.block.spacing.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-25 11:11  source
+2010-01-04 11:01  source
 
-	* Added OpenID 2.0 login and registration
+	file list.item.spacing.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-25 11:10  source
+2010-01-04 11:01  source
 
-	* Added downstream using PSH subscription
+	file make.graphic.viewport.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-25 10:46  source
+2010-01-04 11:01  source
 
-	* Fixed text
+	file make.index.markup.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-25 10:45  source
+2010-01-04 11:01  source
 
-	* Fixed problem with latest versions of libtool
+	file make.single.year.ranges.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-24 23:08  source
+2010-01-04 11:01  source
 
-	* Updated documentation
+	file make.valid.html.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-24 15:34  source
+2010-01-04 11:01  source
 
-	* Fixed text labels
+	file make.year.ranges.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-24 15:34  source
+2010-01-04 11:01  source
 
-	* Added more properties for inference
+	file man.authors.section.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-24 15:13  source
+2010-01-04 11:01  source
 
-	* Fixed check proxy and remove if host is an exception
+	file man.base.url.for.relative.links.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-24 08:20  source
+2010-01-04 11:01  source
 
-	* Fixed listener serialization
-	* Fixed hash
+	file man.break.after.slash.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-24 08:14  source
+2010-01-04 11:01  source
 
-	* Fixed reorganized rdf tab
+	file man.charmap.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-22 15:50  source
+2010-01-04 11:01  source
 
-	* Fixed rdfa failing to parse both rel/rev
+	file man.charmap.subset.profile.english.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-22 15:50  source
+2010-01-04 11:01  source
 
-	* Fixed normalize_modulus
+	file man.charmap.subset.profile.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-18 11:08  source
+2010-01-04 11:01  source
 
-	* Fixed url rewrite should happen before parsing parameters in order
-	  to check if we are dealing with php or proxy page when we use raw
-	  request body
+	file man.charmap.uri.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-16 10:50  source
+2010-01-04 11:01  source
 
-	* Added more properties for inferencing
+	file man.charmap.use.subset.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-16 10:50  source
+2010-01-04 11:01  source
 
-	* Fixed minor UI issue
+	file man.copyright.section.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-15 20:06  source
+2010-01-04 11:01  source
 
-	* Fixed merged missing file
+	file man.endnotes.are.numbered.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-15 20:00  source
+2010-01-04 11:01  source
 
-	* Fixed calling wrong pl
+	file man.endnotes.list.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-12 12:59  source
+2010-01-04 11:01  source
 
-	* Fixed do not free on SQL_SUCCESS, as this will be done at end of loop
+	file man.endnotes.list.heading.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-12 12:57  source
+2010-01-04 11:01  source
 
-	* Fixed do not explicitly set header if it is already set; in proxy
-	  remove content-type as it will be set from sparql
+	file man.font.funcprototype.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-11 12:48  source
+2010-01-04 11:01  source
 
-	* Fixed bad condition check
+	file man.font.funcsynopsisinfo.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-10 18:48  source
+2010-01-04 11:01  source
 
-	* FIxed ignore special properties such as virt:xx when printing
+	file man.font.links.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-10 18:46  source
+2010-01-04 11:01  source
 
-	* Fixed fd can be 0 in background mode
+	file man.font.table.headings.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-10 12:41  source
+2010-01-04 11:01  source
 
-	* Fixed RDF trx replication UI
+	file man.font.table.title.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-09 13:42  source
+2010-01-04 11:01  source
 
-	* Added ACL rules
-	* Added FOAF+SSL based authentication using ACL
-	* Added PubSubHub Feeds support
+	file man.funcsynopsis.style.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-09 13:40  source
+2010-01-04 11:01  source
 
-	* Added PubSubHub Feeds support
+	file man.hyphenate.computer.inlines.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-09 13:29  source
+2010-01-04 11:01  source
 
-	* Added FOAF+SSL based authentication
+	file man.hyphenate.filenames.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-09 13:28  source
+2010-01-04 11:01  source
 
-	* Fixed minor issues
+	file man.hyphenate.urls.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-09 12:31  source
+2010-01-04 11:01  source
 
-	* Added check for automatic repair
+	file man.hyphenate.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-09 12:30  source
+2010-01-04 11:01  source
 
-	* Added check for automatic repair
-	* Fixed when taking a dp from extent map, must decrease the free
-	  pages accordingly
+	file man.indent.blurbs.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-09 10:15  source
+2010-01-04 11:01  source
 
-	* Fixed VDB/DB2 stats procedure
+	file man.indent.lists.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-08 21:58  source
+2010-01-04 11:01  source
 
-	* Added EAV and SPO labeling modes
+	file man.indent.refsect.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-07 13:29  source
+2010-01-04 11:01  source
 
-	* Fixed missing label
-	* Fixed label consistency
-	* Fixed check for iri type
-	* Fixed limit the result set
+	file man.indent.verbatims.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-07 13:27  source
+2010-01-04 11:01  source
 
-	* Fixed use explicit format if supplied
+	file man.indent.width.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-07 13:26  source
+2010-01-04 11:01  source
 
-	* Fixed ODATA feed title locality
+	file man.justify.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-07 10:59  source
+2010-01-04 11:01  source
 
-	* Added wine cartridge
-	* Added youtube cartridge
-	* Fixed minor issues
+	file man.output.base.dir.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-07 10:58  source
+2010-01-04 11:01  source
 
-	* Added support for ODATA formats
-	* Fixed webcal/feed in rewrite rules
+	file man.output.better.ps.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-01 15:26  source
+2010-01-04 11:01  source
 
-	* Added support for odata/json in describe and construct
+	file man.output.encoding.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-06-01 14:06  source
+2010-01-04 11:01  source
 
-	* Fixed issues with variable binding
-	* Fixed examples
+	file man.output.in.separate.dir.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-05-31 23:20  source
+2010-01-04 11:01  source
 
-	* Commented out old tutorial pages
+	file man.output.lang.in.name.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-05-31 23:18  source
+2010-01-04 11:01  source
 
-	* Added extra tutorials
+	file man.output.manifest.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-05-31 22:04  source
+2010-01-04 11:01  source
 
-	* Updated version to 6.1.2-rc1
+	file man.output.manifest.filename.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-05-31 21:55  source
+2010-01-04 11:01  source
 
-	* Added common PubSubHub procedures
-	* Fixed use notify services for PubSubHub settings
-	* Fixed publish atom feed too
-	* Fixed PHP ssl
+	file man.output.quietly.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-05-31 21:53  source
+2010-01-04 11:01  source
 
-	* Fixed link re=hub
-	* Fixed check individual settings
+	file man.output.subdirs.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-05-31 21:49  source
+2010-01-04 11:01  source
 
-	* Added support for PubSubHub
+	file man.segtitle.suppress.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-05-31 20:49  source
+2010-01-04 11:01  source
 
-	* Added setting for GatewayIpAddress
+	file man.string.subst.map.local.post.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:52 +0000
 
-2010-05-31 20:48  source
+2010-01-04 11:01  source
 
-	* Fixed missing external
+	file chunker.output.omit-xml-declaration.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-31 20:47  source
+2010-01-04 11:01  source
 
-	* Fixed incomplete check condition as locks with pos at end do not
-	  count
+	file chunker.output.standalone.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-31 20:45  source
+2010-01-04 11:01  source
 
-	* Fixed use request line for ID
+	file citerefentry.link.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-31 14:27  source
+2010-01-04 11:01  source
 
-	* Merged enhancements from sesame2
+	file collect.xref.targets.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-31 14:26  source
+2010-01-04 11:01  source
 
-	* Rebuild driver
+	file column.count.back.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-31 14:26  source
+2010-01-04 11:01  source
 
-	* Fixed isue with variable binding
+	file column.count.body.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-31 11:08  source
+2010-01-04 11:01  source
 
-	* Added initial support for OData atom serialization
-	* Use CBG describe for OData format
-	* Use EMD types for generic types
+	file column.count.front.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-31 11:00  source
+2010-01-04 11:01  source
 
-	* Added option DensePageAllocation which offers up some near page
-	  locality so resulting db uses less disk space
+	file column.count.index.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-31 11:00  source
+2010-01-04 11:01  source
 
-	* Fixed issue with ?? with sparql compiler inside sql query
+	file column.count.lot.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-29 12:25  source
+2010-01-04 11:01  source
 
-	* Fixed when traverse foreigh sites, check if they add something
-	  more, such as redirects back to origin
+	file column.count.titlepage.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-29 12:09  source
+2010-01-04 11:01  source
 
-	* Rebuild driver
+	file column.gap.back.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-29 12:07  source
+2010-01-04 11:01  source
 
-	* Added check for inline string flag
+	file column.gap.body.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-29 12:00  source
+2010-01-04 11:01  source
 
-	* Fixed minor issues
+	file column.gap.front.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-28 16:56  source
+2010-01-04 11:01  source
 
-	* Fixed small issues
+	file column.gap.index.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-26 21:48  source
+2010-01-04 11:01  source
 
-	* Fixed use distinct as many graphs can be in same rule
-	* Minor UI tweaks
+	file column.gap.lot.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-26 21:41  source
+2010-01-04 11:01  source
 
-	* Fixed report proper version
-	* Fixed compatibility with later JRE
-	* Fixed buffer length
+	file column.gap.titlepage.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-26 21:37  source
+2010-01-04 11:01  source
 
-	* Fixed RM_XLAT_CONCAT
+	file compact.list.item.spacing.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-26 15:23  source
+2010-01-04 11:01  source
 
-	* Added Vimeo cartridge
-	* Fixed Tesco cartridge
-	* Fixed html2 cartridge
+	file component.label.includes.part.label.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-26 15:21  source
+2010-01-04 11:01  source
 
-	* Added support to export queues
-	* Fixed view in crawler UI
+	file component.title.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-26 15:21  source
+2010-01-04 11:01  source
 
-	* Fixed incorrect check for VDB functionality
+	file component.titlepage.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-26 08:11  source
+2010-01-04 11:01  source
 
-	* Added automatic FOAF+SSL
-	* Added ping service to do PubSubHub
-	* Added PubSubHub settings in ODS
-	* Fixed collecting FOAF data
-	* Fixed casemode problem
-	* Fixed bad join
-	* Fixed typo
+	file contrib.inline.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-26 08:08  source
+2010-01-04 11:01  source
 
-	* Fixed group IRI
+	file crop.mark.bleed.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-26 08:07  source
+2010-01-04 11:01  source
 
-	* Added PubSubHub setting in ODS
+	file crop.mark.offset.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-26 08:07  source
+2010-01-04 11:01  source
 
-	* Fixed upstreaming
+	file crop.mark.width.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-24 22:36  source
+2010-01-04 11:01  source
 
-	* Fixed memleak
+	file crop.marks.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-24 18:02  source
+2010-01-04 11:01  source
 
-	* Added improvements in inference handling
-	* FIxed support for subproperties of inverse functional properties
-	* Fixed support for loading aaa ruleset from multiple contology graphs
+	file css.decoration.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-22 19:18  source
+2010-01-04 11:01  source
 
-	* Added support for gunzip session
+	file css.stylesheet.dir.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-21 12:40  source
+2010-01-04 11:01  source
 
-	* Fixed checking return code from fd_open call
+	file css.stylesheet.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-21 12:27  source
+2010-01-04 11:01  source
 
-	* Added automatic error correction for some common typos in
-	  decode_b32_num
+	file current.docid.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-21 12:26  source
+2010-01-04 11:01  source
 
-	* Fixed when doing log replay, we should remove old roots to free
-	  memory as at this time the grim reaper is not available
+	file currentpage.marker.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-21 12:24  source
+2010-01-04 11:01  source
 
-	* Fixed allow reset of xslt in PP hook
+	file default.float.class.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-19 10:19  source
+2010-01-04 11:01  source
 
-	* Merged b32 encoding/decoding from HEAD
+	file default.image.width.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-19 10:13  source
+2010-01-04 11:01  source
 
-	* Added support for editing update interval from site settings
+	file default.table.frame.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-19 10:04  source
+2010-01-04 11:01  source
 
-	* Fixed urchinTracker setting
+	file default.table.rules.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-18 22:29  source
+2010-01-04 11:01  source
 
-	* Added support for editline
+	file default.table.width.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-18 19:33  source
+2010-01-04 11:01  source
 
-	* Added Google API
+	file default.units.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-18 19:22  source
+2010-01-04 11:01  source
 
-	* Fixed minor issue
+	file dingbat.font.family.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-18 19:21  source
+2010-01-04 11:01  source
 
-	* Added support for additional types
-	* Fixed do not decode variants as we do not know if sender encoded
-	  special symbols or not
+	file double.sided.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-18 19:18  source
+2010-01-04 11:01  source
 
-	* Added more ctypes
+	file draft.mode.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-18 13:01  source
+2010-01-04 11:01  source
 
-	* Fixed dependency list
+	file draft.watermark.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-18 10:52  source
+2010-01-04 11:01  source
 
-	* Fixed remove FACEBOOK_OPENGRAPH from tests as it is not related
-	  to RDFA
+	file dry-run.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-2010-05-18 10:42  source
+2010-01-04 11:01  source
 
-	* Added FOAF+SSL registration for users pages (jsp, php, vsp etc)
-	* Fixed FOAF+SSL registration code
-	* Fixed modulus should be cleaned from garbage
-	* Fixed function to test w/o sparql acl table
+	file dynamic.toc.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-18 10:41  source
+2010-01-04 11:01  source
 
-	* Updated SIOC service procedures
+	file ebnf.assignment.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-18 10:41  source
+2010-01-04 11:01  source
 
-	* Fixed get responce back so it can be traced if needed
+	file ebnf.statement.terminator.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-18 10:40  source
+2010-01-04 11:01  source
 
-	* Updated SIOC services procedures
+	file ebnf.table.bgcolor.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-18 10:40  source
+2010-01-04 11:01  source
 
-	* Added FeedManager callback
+	file ebnf.table.border.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-18 10:39  source
+2010-01-04 11:01  source
 
-	* Fixed problem with atom feed
+	file eclipse.autolabel.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-18 10:30  source
+2010-01-04 11:01  source
 
-	* Added Facebook Open Graph cartridge
+	file eclipse.plugin.id.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-18 10:30  source
+2010-01-04 11:01  source
 
-	* Fixed minor issues
+	file eclipse.plugin.name.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-18 09:08  source
+2010-01-04 11:01  source
 
-	* Fixed when statement has implicit group by, do not remove order by
+	file eclipse.plugin.provider.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-17 08:21  source
+2010-01-04 11:01  source
 
-	* Fixed error messages
+	file editedby.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-17 08:21  source
+2010-01-04 11:01  source
 
-	* Fixed wrong dv_compare on boxes with box flags
+	file email.delimiters.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-16 18:57  source
+2010-01-04 11:01  source
 
-	* Fixed page footer and labels
+	file email.mailto.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-16 18:56  source
+2010-01-04 11:01  source
 
-	* Added missing grant
+	file emphasis.propagates.style.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-16 17:56  source
+2010-01-04 11:01  source
 
-	* Fixed index for better queue ordering
+	file entry.propagates.style.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-13 19:38  source
+2010-01-04 11:01  source
 
-	* Fixed do not decode anything. We just match what is in and print
-	  it out, if source is bad encoded, the result is bad encoded,
-	  otherwise can not figure-out what was it before and what should
-	  be after, so we keep it simple
+	file epub.autolabel.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-12 22:46  source
+2010-01-04 11:01  source
 
-	* Fixed GPF when weird (but formally legal) head of composite XML contains
-	  two declarations of external entities with different entity names but
-	  same URI to resolve
+	file equation.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-12 12:24  source
+2010-01-04 11:01  source
 
-	* Fixed use special cl_non_logged_write_mode used to load extrememly
-	  large datasets needs to ensure no log will be made at all. If one
-	  node dies, the rest will do same. Use this flag only in safe
-	  environment
+	file example.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-12 12:17  source
+2010-01-04 11:01  source
 
-	* Fixed GPF in SPARUL INSERT optimization that happens when an
-	  auxiliary retval with vector of variables is wrapped in alias
+	file exsl.node.set.available.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-12 12:16  source
+2010-01-04 11:01  source
 
-	* Fixed when looking at free set from disk must stop at last, as
-	  the dbs pages can be out of sync. Do this only when reading from
-	  disk otherwise error
+	file feedback.href.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-11 16:53  source
+2010-01-04 11:01  source
 
-	* Added option to skip sponger and do RDFa along with other rdf
-	  formats
+	file feedback.link.text.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-11 12:46  source
+2010-01-04 11:01  source
 
-	* Fixed modulus should be cleaned from garbage
+	file feedback.with.ids.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-11 11:15  source
+2010-01-04 11:01  source
 
-	* Fixed check magic to make sure data is gzip compressed
+	file figure.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-10 10:02  source
+2010-01-04 11:01  source
 
-	* Optimized FOAF+SSL login
-	* Updated SIOC service procedures
-	* Fixed CR/LF to make proper N3 syntax
-	* Fixed bad email in WebID
+	file filename-prefix.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-10 09:55  source
+2010-01-04 11:01  source
 
-	* Added Idiomag cartridge
-	* Added HTML5 Microdata cartridge
+	file firstterm.only.link.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-10 09:54  source
+2010-01-04 11:01  source
 
-	* Fixed minor issues
+	file foil.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-10 09:49  source
+2010-01-04 11:01  source
 
-	* Updated documentation
+	file foil.subtitle.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-10 09:39  source
+2010-01-04 11:01  source
 
-	* Fixed keep dashes in words and use escape whenever it occurs;
-	  words starting with numbers should also be escaped
+	file foil.title.master.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-07 09:14  source
+2010-01-04 11:01  source
 
-	* Added new bifs for graph diff functionality, iteration over
-	 dictionary and obtaining biggest possible IRI_ID on 32/64bit
-	 platforms
+	file foil.title.size.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-03 23:54  source
+2010-01-04 11:01  source
 
-	* FIxed use X-Forwarded-Host to handle proxy
+	file foilgroup.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-03 19:31  source
+2010-01-04 11:01  source
 
-	* Added support for logging x-forwarded-for when instance is using
-	  a proxy
+	file foilgroup.toc.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-05-03 08:54  source
+2010-01-04 11:01  source
 
-	* Added shortcut for debugging variables
+	file footer.column.widths.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-29 10:54  source
+2010-01-04 11:01  source
 
-	* Fixed cleaning new schema properly
+	file footer.content.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-29 10:00  source
+2010-01-04 11:01  source
 
-	* Added type
-	* Fixed labels
-	* Minor fixes
+	file footer.hr.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-29 09:59  source
+2010-01-04 11:01  source
 
-	* Fixed print string without waiting for error
+	file footer.rule.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-29 08:29  source
+2010-01-04 11:01  source
 
-	* Added more properties
+	file footer.table.height.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-29 08:28  source
+2010-01-04 11:01  source
 
-	* Fixed About header
+	file footer.table.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-28 15:21  source
+2010-01-04 11:01  source
 
-	* Fixed if Host header is present use that, and do not add port as may be
-	  behind proxy
+	file footers.on.blank.pages.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-26 14:41  source
+2010-01-04 11:01  source
 
-	* Fixed when a signal error arrives, pop the bad instruction so the
-	  free is not confused by dk_set when IS_NULL
+	file footnote.font.size.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-26 07:57  source
+2010-01-04 11:01  source
 
-	* Fixed crawling of RDFa
+	file footnote.mark.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-26 07:56  source
+2010-01-04 11:01  source
 
-	* Added FOAF+SSL client demo
+	file footnote.number.format.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-26 07:53  source
+2010-01-04 11:01  source
 
-	* Fixed if no DefaultGraph, do not assume anything about /dataspace
+	file footnote.number.symbols.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-26 07:51  source
+2010-01-04 11:01  source
 
-	* Fixed minor issue
+	file footnote.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-24 14:01  source
+2010-01-04 11:01  source
 
-	* Added import/export support using Yahoo Contacts API
+	file footnote.sep.leader.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-24 13:56  source
+2010-01-04 11:01  source
 
-	* Fixed obj2json function
+	file fop.extensions.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-23 20:03  source
+2010-01-04 11:01  source
 
-	* Fixed do not continue when missing part of key, as it is uninitialized
-	  and needs to be dropped before causing a gpf
+	file fop1.extensions.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-23 20:02  source
+2010-01-04 11:01  source
 
-	* Fixed only serialize box flags for dependant part
+	file formal.object.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-22 14:12  source
+2010-01-04 11:01  source
 
-	* Added cset to render function to recode string results
+	file formal.procedures.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-22 12:41  source
+2010-01-04 11:01  source
 
-	* FIxed url must end in slash or hash
+	file formal.title.placement.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-22 12:40  source
+2010-01-04 11:01  source
 
-	* Fixed unicode handling in isql and sparql UI
+	file formal.title.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-22 12:35  source
+2010-01-04 11:01  source
 
-	* Fixed minor issue
+	file funcsynopsis.decoration.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-22 12:35  source
+2010-01-04 11:01  source
 
-	* Removed debugging
+	file funcsynopsis.style.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-22 11:12  source
+2010-01-04 11:01  source
 
-	* Fixed http header ends with proper CRLF sequence
+	file function.parens.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-21 16:18  source
+2010-01-04 11:01  source
 
-	* Fixed when doing something that may reference the control_exp
-	  private elements set the so_df_private_elts, otherwise may get a
-	  new df which is in global so df hash
+	file generate.id.attributes.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-21 12:44  source
+2010-01-04 11:01  source
 
-	* Fixed treat sort read node like a ts in tracking ssl refs, else
-	  partitioned top oby goes wrong
+	file generate.index.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-20 19:27  source
+2010-01-04 11:01  source
 
-	* Fixed resize map width to width of result div
+	file generate.legalnotice.link.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-20 19:24  source
+2010-01-04 11:01  source
 
-	* Fixed when gby serialize box flag if any
+	file generate.manifest.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-17 23:23  source
+2010-01-04 11:01  source
 
-	* Fixed can have uninitialized null flag in hash temp; can be extra
-	  nulls in gby or hash join
+	file generate.meta.abstract.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-16 12:35  source
+2010-01-04 11:01  source
 
-	* Added hook to execute secondary statement
+	file generate.revhistory.link.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-16 12:33  source
+2010-01-04 11:01  source
 
-	* FIxed missing definition for bigint
+	file generate.section.toc.level.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-16 11:40  source
+2010-01-04 11:01  source
 
-	* Fix for <![CDATA[ inside <script> in HTML and dirty HTML modes.
+	file generate.toc.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-15 18:46  source
+2010-01-04 11:01  source
 
-	* Fixed export to Del.icio.us
+	file glossary.as.blocks.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-15 18:42  source
+2010-01-04 11:01  source
 
-	* Fixed use global list of prefixes for advanced query helper as well
-	  as other parts
+	file glossary.collection.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-15 18:24  source
+2010-01-04 11:01  source
 
-	* Fixed minor issues
+	file glossary.sort.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-15 18:23  source
+2010-01-04 11:01  source
 
-	* Fixed support for foaf:maker
+	file glossdef.block.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-15 18:20  source
+2010-01-04 11:01  source
 
-	* Updated CSS for buttons
+	file glossdef.list.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-15 18:20  source
+2010-01-04 11:01  source
 
-	* Updated toolbar
+	file glossentry.list.item.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-15 14:05  source
+2010-01-04 11:01  source
 
-	* Fixed memleak when error in bif and no error var given
+	file glossentry.show.acronym.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-15 14:03  source
+2010-01-04 11:01  source
 
-	* Fixed memleak when client drops conneciton before prepare
+	file glosslist.as.blocks.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-14 13:47  source
+2010-01-04 11:01  source
 
-	* Added initial support for bif_python_exec
+	file glossterm.auto.link.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-14 13:19  source
+2010-01-04 11:01  source
 
-	* Fixed export check to call in plugins
+	file glossterm.block.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-14 10:48  source
+2010-01-04 11:01  source
 
-	* Fixed support for bigint in parameter marshalling
+	file glossterm.list.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-14 10:47  source
+2010-01-04 11:01  source
 
-	* Fixed UI profile
+	file glossterm.separation.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-13 12:19  source
+2010-01-04 11:01  source
 
-	* Fixed issue with ckeditor
+	file glossterm.width.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-13 12:18  source
+2010-01-04 11:01  source
 
-	* Fixed login with non WebDav accounts
+	file graphic.default.extension.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-13 12:17  source
+2010-01-04 11:01  source
 
-	* Updated CKEditor to version 3.2.1
+	file graphical.admonition.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-12 19:42  source
+2010-01-04 11:01  source
 
-	* Added possibility to do URL encoding in TCN rules
+	file graphics.dir.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-12 19:41  source
+2010-01-04 11:01  source
 
-	* FIxed odata cartridge
+	file graphicsize.extension.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-12 19:39  source
+2010-01-04 11:01  source
 
-	* Fixed extra replacements
+	file graphicsize.use.img.src.path.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-12 19:39  source
+2010-01-04 11:01  source
 
-	* Minor fix
+	file header.column.widths.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-12 12:37  source
+2010-01-04 11:01  source
 
-	* Fixed use UTF-8 as source and dest charsets when doing urls
+	file header.content.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-12 07:28  source
+2010-01-04 11:01  source
 
-	* Fixed check for third argument
+	file header.hr.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-12 07:26  source
+2010-01-04 11:01  source
 
-	* Fixed query string for product description from BestBuy API
-	* Minor fixes
+	file header.rule.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-09 14:46  source
+2010-01-04 11:01  source
 
-	* Fixed use default MaxMemPoolSize of 200000000
-	* Fixed double MaxMemPoolSize on 64bit systems
+	file header.table.height.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-09 14:43  source
+2010-01-04 11:01  source
 
-	* Fixed if we got a single ts as first and it is outer, put a dummy in
-	  front
+	file header.table.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-09 14:36  source
+2010-01-04 11:01  source
 
-	* Fixed problem with Chrome browser and JS loading
+	file headers.on.blank.pages.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-09 14:34  source
+2010-01-04 11:01  source
 
-	* Fixed problem with Chrome browser and JS loading
-	* Fixed Relation ontology data
+	file hidetoc.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-09 13:01  source
+2010-01-04 11:01  source
 
-	* Added Relation ontology
-	* Updated UI profile for vsp, php etc
+	file highlight.default.language.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-09 13:01  source
+2010-01-04 11:01  source
 
-	* Fixed check for unique email address
+	file highlight.source.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-08 14:40  source
+2010-01-04 11:01  source
 
-	* Added CSV parser mode option
-	* Fixed error reporting
+	file highlight.xslthl.config.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-08 14:30  source
+2010-01-04 11:01  source
 
-	* Added CSV parser lax mode
-	* FIxed log errors from loading
+	file home.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-07 21:48  source
+2010-01-04 11:01  source
 
-	* Fixed issue with tab and space handling
+	file html.append.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-07 19:27  source
+2010-01-04 11:01  source
 
-	* Fixed abnormal long RDFa parsing of document with i18n URIs
+	file html.base.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-07 19:25  source
+2010-01-04 11:01  source
 
-	* Fixed memleak
+	file html.cellpadding.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-07 19:25  source
+2010-01-04 11:01  source
 
-	* Fixed release it_maps as it is allocated dynamic
+	file html.cellspacing.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-07 07:56  source
+2010-01-04 11:01  source
 
-	* Fixed wrong TTL output of CONSTRUCT of wierd IRIs
+	file html.cleanup.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-06 16:47  source
+2010-01-04 11:01  source
 
-	* Fixed shortcut comparing version numbers during package upgrade
+	file html.ext.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-06 16:41  source
+2010-01-04 11:01  source
 
-	* Updated documentation
+	file html.extra.head.links.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-06 16:33  source
+2010-01-04 11:01  source
 
-	* Added photo and audio upload for jtml, vsp, php and jsp pages
+	file html.head.legalnotice.link.multiple.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-06 16:31  source
+2010-01-04 11:01  source
 
-	* Added CSV cartridge
-	* Fixed odata cartridge
-	* Fixed webcal support
-	* Fixed geo coords
+	file html.head.legalnotice.link.types.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:50 +0000
 
-2010-04-06 16:29  source
+2010-01-04 11:01  source
 
-	* Added support for encodings
-	* Added support for gz and zip compressed CSV
-	* Fixed view to have col names
-	* Fixed catch db nulls
-	* Fixed crawling opts
+	file html.longdesc.link.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-04-06 14:43  source
+2010-01-04 11:01  source
 
-	* Fixed find const iri when nested call of i2id is used
+	file html.longdesc.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-04-06 13:47  source
+2010-01-04 11:01  source
 
-	* Rebuild driver
+	file html.stylesheet.type.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-04-06 13:46  source
+2010-01-04 11:01  source
 
-	* Added additional support for inferencing
-	* Added new inferencing sample
+	file html.stylesheet.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-04-06 13:38  source
+2010-01-04 11:01  source
 
-	* Added rdftabs timeline support for ical properties
-	* Added ical:summary as one of recognized title properties
-	* Added support for ATOM feeds
-	* Fixed copy of defaults
-	* Fixed url encoding
-	* Fixed move OAT.Dom.decodeImage to OAT.Formobject
-	* Fixed use new OAT.Dom.create (..., {className:"XXX"}) method
-	* Fixed JSON serialize/deserialize
-	* Fixed rename find to indexOf
+	file htmlhelp.alias.file.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-04-06 12:16  source
+2010-01-04 11:01  source
 
-	* Added support for listing content of zip file
-	* Fixed memleak in unzip_file
+	file htmlhelp.autolabel.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-04-01 10:44  source
+2010-01-04 11:01  source
 
-	* Rebuild provider
+	file htmlhelp.button.back.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-04-01 10:43  source
+2010-01-04 11:01  source
 
-	* Added support for inference graph
-	* Added support for inference and query execution
-	* Added support for QueryEngine interface, so now Jena provider support
-	  next query execution mode:
-	   a) parse and execute query via ARQ
-	   b) parse query via ARQ and execute query directly via Virtuoso(new mode)
-	   c) parse and execute query directly via Virtuoso
-	* Fixed small bugs
+	file htmlhelp.button.forward.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-31 22:07  source
+2010-01-04 11:01  source
 
-	* Fixed insecure https client connections
-	* Fixed memleaks on connection error
+	file htmlhelp.button.hideshow.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-31 22:06  source
+2010-01-04 11:01  source
 
-	* Fixed no value is null
+	file htmlhelp.button.home.url.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-30 20:52  source
+2010-01-04 11:01  source
 
-	* Fixed PACKAGE_VERSION
+	file htmlhelp.button.home.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-30 17:59  source
+2010-01-04 11:01  source
 
-	* Updated documentation
+	file htmlhelp.button.jump1.title.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-30 15:34  source
+2010-01-04 11:01  source
 
-	* Updated version to 6.1.1 for final release
+	file htmlhelp.button.jump1.url.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-30 15:33  source
+2010-01-04 11:01  source
 
-	* Fixed compiler warning
+	file htmlhelp.button.jump1.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-30 15:28  source
+2010-01-04 11:01  source
 
-	* Added import from URL
-	* Fixed use escape to handle hash based IRIs
+	file htmlhelp.button.jump2.title.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-30 13:08  source
+2010-01-04 11:01  source
 
-	* Fixed minor issue
-	* Removed deprecated file
+	file htmlhelp.button.jump2.url.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-30 13:07  source
+2010-01-04 11:01  source
 
-	* Added missing file to distribution
+	file htmlhelp.button.jump2.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-30 12:42  source
+2010-01-04 11:01  source
 
-	* Fixed extra define for linux on sparc
+	file htmlhelp.button.locate.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-29 13:56  source
+2010-01-04 11:01  source
 
-	* Added support for oData
+	file htmlhelp.button.next.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-29 13:37  source
+2010-01-04 11:01  source
 
-	* Fixed skip identity columns
+	file htmlhelp.button.options.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-29 13:33  source
+2010-01-04 11:01  source
 
-	* Fixed changed default map to Google Maps API v3
+	file htmlhelp.button.prev.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-29 13:32  source
+2010-01-04 11:01  source
 
-	* Added options page for parser options, preview etc
-	* Fixed IDN col
+	file htmlhelp.button.print.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-28 23:21  source
+2010-01-04 11:01  source
 
-	* Fixed object properties in favorites
+	file htmlhelp.button.refresh.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-28 23:21  source
+2010-01-04 11:01  source
 
-	* Fixed a++ links
+	file htmlhelp.button.stop.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-26 23:08  source
+2010-01-04 11:01  source
 
-	* Updated documentation
+	file htmlhelp.button.zoom.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-26 23:02  source
+2010-01-04 11:01  source
 
-	* Added image
+	file htmlhelp.chm.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-26 22:53  source
+2010-01-04 11:01  source
 
-	* Added user's ontologies in favorites
-	* FIxed ontology API
+	file htmlhelp.default.topic.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-26 22:50  source
+2010-01-04 11:01  source
 
-	* Fixed image preview
+	file htmlhelp.display.progress.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-2010-03-26 19:46  source
+2010-01-04 11:01  source
+
+	file htmlhelp.encoding.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-	* Rebuild drivers
+2010-01-04 11:01  source
 
-2010-03-26 19:43  source
+	file htmlhelp.enhanced.decompilation.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-	* Fixed memory leak
+2010-01-04 11:01  source
 
-2010-03-26 19:43  source
+	file htmlhelp.enumerate.images.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-	* Fixed missing check for ROLLEDBACK
+2010-01-04 11:01  source
 
-2010-03-26 19:35  source
+	file htmlhelp.force.map.and.alias.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:51 +0000
 
-	* Added options to CSV parser for delimiter and quote char
+2010-01-04 11:01  source
 
-2010-03-26 16:14  source
+	file 20.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added support for CSV import
+2010-01-04 11:01  source
 
-2010-03-25 19:31  source
+	file 21.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added csv_parse function
+2010-01-04 11:01  source
 
-2010-03-24 22:31  source
+	file 22.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed preserve content-type field
+2010-01-04 11:01  source
 
-2010-03-24 22:21  source
+	file 23.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added support for reading CSV files into tables
+2010-01-04 11:01  source
 
-2010-03-24 22:18  source
+	file 24.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added support for setMaxRows
-	* Fixed check argument values
+2010-01-04 11:01  source
 
-2010-03-24 21:47  source
+	file 25.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Regenerated drivers
+2010-01-04 11:01  source
 
-2010-03-24 16:43  source
+	file 26.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed typo
+2010-01-04 11:01  source
 
-2010-03-24 10:23  source
+	file 27.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added options for /sparql
-	* Added function http_header_array_get to retrieve headers as an
-	  array of strings
+2010-01-04 11:01  source
 
-2010-03-24 01:03  source
+	file 28.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added optimization of sprintf_inverse(const)
+2010-01-04 11:01  source
 
-2010-03-24 01:02  source
+	file 29.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed save the jt before doing ts; this is needed because ic_after_pos
-	  expects in jt but because of in_list it can be modified
+2010-01-04 11:01  source
 
-2010-03-24 01:00  source
+	file 3.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed compiler warning
+2010-01-04 11:01  source
 
-2010-03-23 10:07  source
+	file 3.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed use globally known dfe for a select even in cond exp, else it
-	  ruins the dt by repeatedly adding the same items when making a second
-	  dfe for the same select
+2010-01-04 11:01  source
 
-2010-03-23 10:01  source
+	file 3.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed incorrect codegen of formatter in ssg_select_known_graphs_codegen
+2010-01-04 11:01  source
 
-2010-03-22 22:29  source
+	file 30.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Updated documentation
+2010-01-04 11:01  source
 
-2010-03-22 22:01  source
+	file 4.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added a++ otion in user's pages
-	* Fixed ontology APIs
-	* Fixed 'Creator of'
-	* Fixed nickName
-	* Fixed php POST request
+2010-01-04 11:01  source
 
-2010-03-22 21:48  source
+	file 4.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed also check for ctype
+2010-01-04 11:01  source
 
-2010-03-22 21:46  source
+	file 4.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed Back button
+2010-01-04 11:01  source
 
-2010-03-22 21:46  source
+	file 5.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added support for WebID
+2010-01-04 11:01  source
 
-2010-03-22 21:43  source
+	file 5.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed fetching img id
-	* Fixed issue with multiple URL params
+2010-01-04 11:01  source
 
-2010-03-22 13:40  source
+	file 5.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed use sk_X509_ALGOR_* macros
+2010-01-04 11:01  source
 
-2010-03-22 12:36  source
+	file 6.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed X509ClientVerify flag of 0/1/2/3 to accept self signed or
-	  optional certificates
+2010-01-04 11:01  source
 
-2010-03-22 12:35  source
+	file 6.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added support for FOAF+SSL login for SQL connections
+2010-01-04 11:01  source
 
-2010-03-22 11:54  source
+	file 6.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed do not encode default graph
+2010-01-04 11:01  source
 
-2010-03-22 11:54  source
+	file 7.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed SPARQL 1.1 compatibility in result set syntax
+2010-01-04 11:01  source
 
-2010-03-19 14:59  source
+	file 7.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed use newer OAT functions
+2010-01-04 11:01  source
 
-2010-03-19 10:08  source
+	file 7.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added improved version of xsl:for-each-row for both SPARQL and SQL
+2010-01-04 11:01  source
 
-2010-03-19 10:05  source
+	file 8.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* FIxed issue with backup
+2010-01-04 11:01  source
 
-2010-03-18 15:45  source
+	file 8.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed when transaction is prepared but not committed before commit
-	  we must check if cpt is pending. If so we must wait as xa trx has
-	  special processing in cpt_rollback and log_cpt
-	* Fixed compiler warning
+2010-01-04 11:01  source
 
-2010-03-18 15:43  source
+	file 8.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed better serialization on lt_lock_mtx
+2010-01-04 11:01  source
 
-2010-03-18 10:59  source
+	file 9.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed enter mtx before truncating log
-	* Fixed when a 2pc transaction as finished, invalidate its commit
-	  flag offset since the log is rewritten already. The trx must already
-	  be in cpt state.
+2010-01-04 11:01  source
 
-2010-03-18 10:50  source
+	file 9.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed use new OAT toolkit
+2010-01-04 11:01  source
 
-2010-03-18 10:48  source
+	file 9.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed check if datadump is gz too
-	* Fixed the next site needs to copy all props from initial
-	* Fixed use log mode 3 as dump can be large
+2010-01-04 11:01  source
 
-2010-03-18 10:47  source
+	file ChangeLog.20020917 was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed deadlock retry
+2010-01-04 11:01  source
 
-2010-03-18 10:46  source
+	file abstract.notitle.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed missing date conversion
+2010-01-04 11:01  source
 
-2010-03-18 10:45  source
+	file abstract.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed alert text
-	* Fixed typo in styles path
-	* Fixed use new API functions
-	* Fixed support for Google map v3
+2010-01-04 11:01  source
 
-2010-03-18 10:20  source
+	file abstract.title.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed rebuild driver
+2010-01-04 11:01  source
 
-2010-03-18 09:58  source
+	file active.toc.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed user's login
-	* Fixed UI buttons
-	* Fixed unique name message
-	* Fixed wishlist UI pages
-	* Fixed rename FOAF+SSL to WebID
+2010-01-04 11:01  source
 
-2010-03-18 09:56  source
+	file ade.extensions.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed rename FOAF+SSL to WebID
+2010-01-04 11:01  source
 
-2010-03-17 14:54  source
+	file admon.graphics.extension.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed check proper prefetch value
+2010-01-04 11:01  source
 
-2010-03-16 23:53  source
+	file admon.graphics.path.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed check lt
+2010-01-04 11:01  source
 
-2010-03-16 18:21  source
+	file admon.graphics.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed when txn error remove trx from global pool. It cannot be
-	  committed anyway
+2010-01-04 11:01  source
 
-2010-03-16 18:20  source
+	file admon.style.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed properly set lt_threads
+2010-01-04 11:01  source
 
-2010-03-16 11:39  source
+	file admon.textlabel.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed when writing log entries always check the mtx
+2010-01-04 11:01  source
 
-2010-03-16 11:39  source
+	file admonition.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed when setting up a XA trx wait for any checkpoint in progress
-	  to finish before proceeding
+2010-01-04 11:01  source
 
-2010-03-16 10:54  source
+	file admonition.title.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed if not box or dfe false, skip rest
+2010-01-04 11:01  source
 
-2010-03-16 10:51  source
+	file alignment.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added virtuoso.ttl to sesame jar
-	* Added csl pages for Sesame HTTP repository configuration
-	* Rebuild driver
+2010-01-04 11:01  source
 
-2010-03-16 10:26  source
+	file annotate.toc.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added support for vad_version
-	* FIxed use new OAT toolkit
-	* Removed debug code
+2010-01-04 11:01  source
 
-2010-03-16 10:24  source
+	file annotation.css.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* FIxed encoding of URL params
+2010-01-04 11:01  source
 
-2010-03-15 16:46  source
+	file annotation.graphic.close.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed resume waiting
+2010-01-04 11:01  source
 
-2010-03-15 15:51  source
+	file annotation.graphic.open.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed check array index not out of bound
+2010-01-04 11:01  source
 
-2010-03-15 15:50  source
+	file annotation.js.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixdd FOAF+SSL user pages
+2010-01-04 11:01  source
 
-2010-03-15 15:49  source
+	file annotation.support.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* FIxed removed debugging code
+2010-01-04 11:01  source
 
-2010-03-15 15:27  source
+	file appendix.autolabel.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed use new OAT toolkit
-	* Fixed version check for ODS Framework
+2010-01-04 11:01  source
 
-2010-03-15 13:16  source
+	file arbortext.extensions.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed missing case for LT_PREPARE_PENDING
+2010-01-04 11:01  source
 
-2010-03-12 14:04  source
+	file article.appendix.title.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed invitation problem with multiple users
+2010-01-04 11:01  source
 
-2010-03-12 13:34  source
+	file author.othername.in.middle.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Merged new version of OAT toolkit
-	* Fixed Google Maps v3 support
+2010-01-04 11:01  source
 
-2010-03-12 13:34  source
+	file autolayout-file.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* FIxed IRIs
+2010-01-04 11:01  source
 
-2010-03-12 09:13  source
+	file autotoc.label.in.hyperlink.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Merged newer version of OAT toolkit
-	* Fixed dependency to later version of ODS Framework
-	* Fixed SIOC subscriptions
+2010-01-04 11:01  source
 
-2010-03-12 09:13  source
+	file autotoc.label.separator.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Merged newer version of OAT toolkit
-	* Fixed dependency to later version of ODS Framework
+2010-01-04 11:01  source
 
-2010-03-12 09:12  source
+	file axf.extensions.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Merged new version of OAT toolkit
-	* Fixed icons - delete and add
-	* Fixed dependency to later version of ODS framework
+2010-01-04 11:01  source
 
-2010-03-12 09:10  source
+	file banner.before.navigation.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Added Register to vsp, php etc users pages
-	* Added X.509 create certificate to users pages
-	* Merged new version of OAT toolkit
-	* Fixed UI profile
-	* Fixed delete action
-	* Fixed new foaf+ssl schema support
+2010-01-04 11:01  source
 
-2010-03-12 09:04  source
+	file base.dir.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Added uStream cartridge
-	* Fixed PPTX cartridge to work with latest description.vsp
+2010-01-04 11:01  source
 
-2010-03-12 09:01  source
+	file biblioentry.item.separator.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Merged new version of OAT toolkit
-	* Added location macro support
-	* Fixed numerous issues
+2010-01-04 11:01  source
 
-2010-03-11 17:02  source
+	file biblioentry.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Merged new version of OAT toolkit
+2010-01-04 11:01  source
 
-2010-03-10 20:28  source
+	file bibliography.collection.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed JSON support
+2010-01-04 11:01  source
 
-2010-03-10 15:09  source
+	file bibliography.numbered.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed wide character when getting procedure columns information
+2010-01-04 11:01  source
 
-2010-03-10 15:08  source
+	file bibliography.style.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Added OPTIONS for http server
-	* Added trace method
+2010-01-04 11:01  source
 
-2010-03-10 14:43  source
+	file block.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed support of old and new schema for FOAF+SSL
+2010-01-04 11:01  source
 
-2010-03-10 10:34  source
+	file blockquote.properties.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed allow nulls, DV_C_STRING and memleak
+2010-01-04 11:01  source
 
-2010-03-09 20:14  source
+	file blurb.on.titlepage.enabled.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Added support for nvarchar to __like_min and __like_max
+2010-01-04 11:01  source
 
-2010-03-09 20:12  source
+	file body.attributes.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed possible dfe_false in context
+2010-01-04 11:01  source
 
-2010-03-08 20:39  source
+	file body.bg.color.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed setting pooling params
+2010-01-04 11:01  source
 
-2010-03-08 20:37  source
+	file body.end.indent.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Rebuild driver
+2010-01-04 11:01  source
 
-2010-03-08 14:20  source
+	file body.font.family.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed allow chunked content to be read as strses
+2010-01-04 11:01  source
 
-2010-03-08 12:04  source
+	file body.font.master.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed typos
+2010-01-04 11:01  source
 
-2010-03-08 12:02  source
+	file body.font.size.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed typo in tag MusicianCreditsList
+2010-01-04 11:01  source
 
-2010-03-08 11:54  source
+	file body.margin.bottom.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Added wide char support to set_qualifier
+2010-01-04 11:01  source
 
-2010-03-08 11:53  source
+	file body.margin.top.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed issue when no content len is give but content is sent as
-	  http/1.0 protocol e.g. with connection-close
+2010-01-04 11:01  source
 
-2010-03-08 09:21  source
+	file body.start.indent.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed typo in scovo:dimension
+2010-01-04 11:01  source
 
-2010-03-07 08:20  source
+	file bookmarks.collapse.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed typo
+2010-01-04 11:01  source
 
-2010-03-07 08:18  source
+	file bridgehead.in.toc.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed SERVICE parameter passing
-	* Fixed (!ask(...)) in filters
+2010-01-04 11:01  source
 
-2010-03-04 23:49  source
+	file bullet.image.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Added tests
+2010-01-04 11:01  source
 
-2010-03-04 23:44  source
+	file callout.defaultcolumn.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed improved codegen for FILTER (?local = IRI(?:global)) .
+2010-01-04 11:01  source
 
-2010-03-04 23:43  source
+	file callout.graphics.extension.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Added support for fractions of second in bif_dateadd
+2010-01-04 11:01  source
 
-2010-03-04 23:38  source
+	file callout.graphics.number.limit.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed tests
+2010-01-04 11:01  source
 
-2010-03-04 20:45  source
+	file callout.graphics.path.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Updated docs
+2010-01-04 11:01  source
 
-2010-03-04 16:39  source
+	file callout.graphics.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed memory leaks
-	* Fixed read memory after free
-	* Fixed when one connection does prepare and then uses another
-	  connection to commit/rollback, must reset 1st cli's trx
-	* Fixed when writing to log enter mutex to avoid concurrent writing
+2010-01-04 11:01  source
 
-2010-03-04 14:15  source
+	file callout.icon.size.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed typo
+2010-01-04 11:01  source
 
-2010-03-04 13:39  source
+	file callout.list.table.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Added initial support for JDBC hibernate
+2010-01-04 11:01  source
 
-2010-03-04 12:18  source
+	file callout.unicode.font.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Rebuild driver
+2010-01-04 11:01  source
 
-2010-03-04 12:18  source
+	file callout.unicode.number.limit.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed driver version
+2010-01-04 11:01  source
 
-2010-03-04 12:12  source
+	file callout.unicode.start.character.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed connection pooling
+2010-01-04 11:01  source
 
-2010-03-04 12:11  source
+	file callout.unicode.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed remove xa transaction
+2010-01-04 11:01  source
 
-2010-03-03 22:55  source
+	file callouts.extension.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed do not setup unknown for special methods
+2010-01-04 11:01  source
 
-2010-03-03 09:21  source
+	file caution.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Rebuild driver
+2010-01-04 11:01  source
 
-2010-03-03 09:20  source
+	file chapter.autolabel.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed problem with jar packaging
+2010-01-04 11:01  source
 
-2010-03-02 10:01  source
+	file charmap.groff.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added OPTIONS support for http server
+2010-01-04 11:01  source
 
-2010-03-01 21:05  source
+	file chunk.append.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Added initial support for basic SPARQL federation
+2010-01-04 11:01  source
 
-2010-03-01 20:46  source
+	file chunk.first.sections.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Added DefaultServiceMap and DefaultServiceStorage
+2010-01-04 11:01  source
 
-2010-03-01 20:42  source
+	file chunk.quietly.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed support for positional and named parameters from exec() or
-	  similar in SPARQL, as if they where global variables of other
-	  sorts
+2010-01-04 11:01  source
 
-2010-03-01 10:26  source
+	file chunk.section.depth.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed use unzip_file function
+2010-01-04 11:01  source
 
-2010-03-01 10:18  source
+	file chunk.sections.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed Import
+2010-01-04 11:01  source
 
-2010-03-01 10:16  source
+	file chunk.separate.lots.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed CSS
+2010-01-04 11:01  source
 
-2010-03-01 10:15  source
+	file chunk.toc.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed minor issues
+2010-01-04 11:01  source
 
-2010-03-01 10:12  source
+	file chunk.tocs.and.lots.has.title.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed compatiblity with jdk1.5
+2010-01-04 11:01  source
 
-2010-03-01 10:07  source
+	file chunk.tocs.and.lots.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Upgraded to Jena 2.6.2
-	* Fixed backward compatiblity with jdk 1.5
+2010-01-04 11:01  source
 
-2010-03-01 10:06  source
+	file chunker.output.cdata-section-elements.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Fixed make sesame2 backward compatible with jdk1.5
+2010-01-04 11:01  source
 
-2010-03-01 09:31  source
+	file chunker.output.doctype-public.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Regenerated driver
+2010-01-04 11:01  source
 
-2010-03-01 09:17  source
+	file chunker.output.doctype-system.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Rebuild driver
+2010-01-04 11:01  source
 
-2010-03-01 01:03  source
+	file chunker.output.encoding.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Added immortal IRI for uname_virtrdf_ns_uri_DefaultServiceStorage
+2010-01-04 11:01  source
 
-2010-03-01 01:01  source
+	file chunker.output.indent.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Added support for unzip_file ()
+2010-01-04 11:01  source
 
-2010-03-01 00:50  source
+	file chunker.output.media-type.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Updated documentation
+2010-01-04 11:01  source
 
-2010-03-01 00:39  source
+	file chunker.output.method.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:49 +0000
 
-	* Upgraded to Sesame 2.3.1
+2010-01-04 11:01  source
 
-2010-03-01 00:38  source
+	file docbook.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed typo
+2010-01-04 11:01  source
 
-2010-03-01 00:35  source
+	file endnotes.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added swapguard option
+2010-01-04 11:01  source
 
-2010-03-01 00:28  source
+	file home.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added columns for api type and id
+2010-01-04 11:01  source
 
-2010-03-01 00:03  source
+	file html-synop.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added support for saving history to disk
+2010-01-04 11:01  source
 
-2010-02-28 23:58  source
+	file important.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed geo:point matching
-	* Fixed regex to remove default ns from XML - single quotes are valid
-	  for enclosed attribute values
+2010-01-04 11:01  source
 
-2010-02-28 23:57  source
+	file info.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed positioned update problem on cluster
+2010-01-04 11:01  source
 
-2010-02-28 23:55  source
+	file inline.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added refresh parameter
+2010-01-04 11:01  source
 
-2010-02-28 23:52  source
+	file javahelp.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added setting for RoundRobin scheduling
+2010-01-04 11:01  source
 
-2010-02-27 22:21  source
+	file lists.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed diagnosics of async_queue specific errors like aq invocation
-	  on log replay or security issues
+2010-01-04 11:01  source
 
-2010-02-26 17:31  source
+	file next.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed missing label
+2010-01-04 11:01  source
 
-2010-02-26 17:28  source
+	file note.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed use union for local automatic variables to avoid alignment
-	  problems
+2010-01-04 11:01  source
 
-2010-02-26 10:24  source
+	file other.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Regenerated driver
+2010-01-04 11:01  source
 
-2010-02-26 10:05  source
+	file param.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Upgraded to Sesame 2.3.1
-	* Removed deprecated file
-	* Fixed inference support
+2010-01-04 11:01  source
 
-2010-02-25 20:24  source
+	file param.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Updated to Sesame 2.2.4
+2010-01-04 11:01  source
 
-2010-02-25 20:23  source
+	file pi.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added support for Sesame 2 HTTP respository
-	* Updated toSesame 2.2.4
+2010-01-04 11:01  source
 
-2010-02-25 20:21  source
+	file pi.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Rebuild driver
+2010-01-04 11:01  source
 
-2010-02-25 16:09  source
+	file prev.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* FIxed url param for metadata selection
+2010-01-04 11:01  source
 
-2010-02-25 16:09  source
+	file profile-docbook.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added 'Import' to user pages (vsp, php etc)
-	* Fixed pass interface too
+2010-01-04 11:01  source
 
-2010-02-25 16:08  source
+	file profile-javahelp.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added tweet gizmo
+2010-01-04 11:01  source
 
-2010-02-25 16:07  source
+	file refentry.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed groups
+2010-01-04 11:01  source
 
-2010-02-24 20:55  source
+	file synop.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added proper ASK support in web service endpoing
-	* Fixed faster loading of inference sets
-	* Fixed loading of inference sets from graph groups, not only from
-	  single graphs
-	* Fixed creation of graph groups on cluster
+2010-01-04 11:01  source
 
-2010-02-24 20:53  source
+	file table.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added swap guard to kill trx and log ws when swapping is over 300 pages
+2010-01-04 11:01  source
 
-2010-02-24 13:02  source
+	file tip.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed use unsigned for lower parts else we risk sign extent on large
-	  numbers
+2010-01-04 11:01  source
 
-2010-02-23 22:35  source
+	file up.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed metadata
+2010-01-04 11:01  source
 
-2010-02-23 14:50  source
+	file utility.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed when looking at col_preds and seeking for column, make sure cp
-	  dfe is a column
+2010-01-04 11:01  source
 
-2010-02-23 14:49  source
+	file warning.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added prototype
+2010-01-04 11:01  source
 
-2010-02-23 14:49  source
+	file 1.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed when unbox iri make sure value is of type DV_IRI_ID
+2010-01-04 11:01  source
 
-2010-02-23 14:48  source
+	file 1.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* FIxed 2pc file name does not change with log file if log trail on
+2010-01-04 11:01  source
 
-2010-02-23 10:44  source
+	file 1.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed rewriting of group patterns with filters replaced with restrictions on
-	  equivs
+2010-01-04 11:01  source
 
-2010-02-23 10:21  source
+	file 10.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed stop compilation where comp time over run time
+2010-01-04 11:01  source
 
-2010-02-19 00:22  source
+	file 10.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed when doing a log replay, mark prepared XA trx as such
+2010-01-04 11:01  source
 
-2010-02-19 00:22  source
+	file 10.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed more macros for 64bit fs
+2010-01-04 11:01  source
 
-2010-02-18 21:37  source
+	file 11.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Use macros for file calls for 64bit fs
+2010-01-04 11:01  source
 
-2010-02-18 21:36  source
+	file 11.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Merged XA fixes from HEAD
+2010-01-04 11:01  source
 
-2010-02-18 20:46  source
+	file 11.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* FIxed mem leak
+2010-01-04 11:01  source
 
-2010-02-18 14:22  source
+	file 12.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed minor issue
+2010-01-04 11:01  source
 
-2010-02-18 14:13  source
+	file 12.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed if avail always use ro_id for hash
+2010-01-04 11:01  source
 
-2010-02-18 14:12  source
+	file 12.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed text for NOT pred
+2010-01-04 11:01  source
 
-2010-02-18 10:57  source
+	file 13.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed use separate macro for COL_DOTTED
+2010-01-04 11:01  source
 
-2010-02-18 10:01  source
+	file 13.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed SIOC subscriptions
-	* Fixed bad item descriptions
+2010-01-04 11:01  source
 
-2010-02-18 10:00  source
+	file 13.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed groups
-	* Fixed bookmarklet
-	* Fixed typo
+2010-01-04 11:01  source
 
-2010-02-17 22:06  source
+	file 14.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed order must be greater than 0
+2010-01-04 11:01  source
 
-2010-02-17 16:58  source
+	file 14.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed remove null in gby as it is not needed
-	* Fixed jts to check for call
+2010-01-04 11:01  source
 
-2010-02-17 16:56  source
+	file 14.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed do not print default port for http and https in urls
+2010-01-04 11:01  source
 
-2010-02-17 10:21  source
+	file 15.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed labels and added new columns
+2010-01-04 11:01  source
 
-2010-02-16 15:03  source
+	file 15.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed IN pred as iterator before index path
+2010-01-04 11:01  source
 
-2010-02-16 13:49  source
+	file 15.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Added slidesix cartridge
-	* Fixed run microformats independent of rdfa
+2010-01-04 11:01  source
 
-2010-02-16 13:48  source
+	file 16.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed owl:sameAS is not a:id
+2010-01-04 11:01  source
 
-2010-02-16 13:48  source
+	file 17.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed minor issues
+2010-01-04 11:01  source
 
-2010-02-16 13:48  source
+	file 18.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Rolled back fix for GR data
+2010-01-04 11:01  source
 
-2010-02-16 12:47  source
+	file 19.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed leave semaphore before jump
+2010-01-04 11:01  source
 
-2010-02-16 11:58  source
+	file 2.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed detection of n3 and nt formats
+2010-01-04 11:01  source
 
-2010-02-15 21:23  source
+	file 2.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* Fixed use macro
+2010-01-04 11:01  source
 
-2010-02-15 19:46  source
+	file 2.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:48 +0000
 
-	* FIxed GPF when 2nd argument is not a string
+2010-01-04 11:01  source
 
-2010-02-15 19:46  source
+	file annot-close.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed inx int not applicable to keys with no pk ref
+2010-01-04 11:01  source
 
-2010-02-15 10:05  source
+	file annot-open.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed problem with shared files
+2010-01-04 11:01  source
 
-2010-02-12 22:14  source
+	file biblio-iso690.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-	* Fixed bad array index check
+2010-01-04 11:01  source
 
-2010-02-12 22:13  source
+	file blank.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Added option for user WebID
+2010-01-04 11:01  source
 
-2010-02-12 22:12  source
+	file caution.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed table editing fields
+2010-01-04 11:01  source
 
-2010-02-12 20:05  source
+	file caution.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed NT serializations (_:_ is not a valid bnode in NT so it is
-	  replaced with _:ResultSet2053 )
+2010-01-04 11:01  source
 
-2010-02-12 13:00  source
+	file caution.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Updated version to 3127
+2010-01-04 11:01  source
 
-2010-02-12 12:56  source
+	file caution.tif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Rebuild driver
+2010-01-04 11:01  source
 
-2010-02-12 12:56  source
+	file changebars.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-	* Fixed use bitmask check
+2010-01-04 11:01  source
 
-2010-02-12 11:53  source
+	file chunk-changebars.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-	* Fixed combination of RDF_OBJ_OF_LONG(RDF_LONG_OF_SQLVAL(string))
-	  that screwed up RDF_DELETE_TRIPLES_AGG()
+2010-01-04 11:01  source
 
-2010-02-12 11:20  source
+	file chunk-code.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-	* Added "Create New Resource" option
+2010-01-04 11:01  source
 
-2010-02-12 11:20  source
+	file chunk-common.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-	* Fixed always refresh robot status
+2010-01-04 11:01  source
 
-2010-02-12 10:34  source
+	file chunk.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-	* Regenerated drivers
+2010-01-04 11:01  source
 
-2010-02-12 10:26  source
+	file chunker.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-	* Fixed issues with Literal data
-	* Small bugfixes
+2010-01-04 11:01  source
 
-2010-02-11 23:23  source
+	file chunkfast.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-	* Updated documentation
+2010-01-04 11:01  source
 
-2010-02-11 23:17  source
+	file chunktoc.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-	* Fixed serialize ha_hits hash lookups
+2010-01-04 11:01  source
 
-2010-02-11 16:25  source
+	file draft.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed bug with ITF-8 encoded strings in box
+2010-01-04 11:01  source
 
-2010-02-11 14:00  source
+	file highlight.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-	* Fixed codegen in LIMIT ?:global-variable and OFFSET ?:global-variable
+2010-01-04 11:01  source
 
-2010-02-11 13:19  source
+	file home.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Added new demo queries
+2010-01-04 11:01  source
 
-2010-02-11 13:16  source
+	file home.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Added 'create file' action
+2010-01-04 11:01  source
 
-2010-02-11 13:15  source
+	file home.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed removed status bar
+2010-01-04 11:01  source
 
-2010-02-10 22:18  source
+	file html-rtf.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-	* Fixed DAV path normalize
-	* Fixed Feeds rights
-	* Fixed UI Profile JS
-	* Fixed UI Profile pages
+2010-01-04 11:01  source
 
-2010-02-10 22:17  source
+	file htmlhelp-common.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed WebID selection
-	* Fixed calling proc from packages other than Framework
+2010-01-04 11:01  source
 
-2010-02-10 22:09  source
+	file htmlhelp.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed Anotea, CSS
-	* Fixed Annotation SIOC Data
+2010-01-04 11:01  source
 
-2010-02-10 16:10  source
+	file htmltbl.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-	* Fixed move assignment of oplval_len before jump since we know
-	  oplval_strval is a string box already
+2010-01-04 11:01  source
 
-2010-02-10 16:09  source
+	file important.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed whitespace
+2010-01-04 11:01  source
 
-2010-02-10 16:08  source
+	file important.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed compiler warning about possible uninitialized vars
+2010-01-04 11:01  source
 
-2010-02-10 16:05  source
+	file important.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed typo in if expression
+2010-01-04 11:01  source
 
-2010-02-10 16:05  source
+	file important.tif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed use err_ret
+2010-01-04 11:01  source
 
-2010-02-10 16:04  source
+	file maketoc.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed should use int64 type
+2010-01-04 11:01  source
 
-2010-02-10 14:05  source
+	file manifest.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed SPARQL_SELECT_KNOWN_GRAPHS
+2010-01-04 11:01  source
 
-2010-02-10 14:04  source
+	file next.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed define dpipe before anything else is called
+2010-01-04 11:01  source
 
-2010-02-10 12:58  source
+	file next.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed check for array boundary
+2010-01-04 11:01  source
 
-2010-02-10 12:57  source
+	file next.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed compiler warnings
+2010-01-04 11:01  source
 
-2010-02-10 11:03  source
+	file note.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Added DKS box serialization flag DKS_TO_HA_DISK_ROW to preserve
-	  box flags in procedure views temp tables
+2010-01-04 11:01  source
 
-2010-02-10 11:03  source
+	file note.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed missing initialization in calculation of cost and cardinality
+2010-01-04 11:01  source
 
-2010-02-09 17:38  source
+	file note.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed workaround for non-iri g1
+2010-01-04 11:01  source
 
-2010-02-09 17:37  source
+	file note.tif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed check to include iri_to_id
+2010-01-04 11:01  source
 
-2010-02-09 16:11  source
+	file oldchunker.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed bug with UTF-8 encoded strings
+2010-01-04 11:01  source
 
-2010-02-09 15:13  source
+	file onechunk.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Added new SPARQL endpoints
-	* Added missing file
-	* FIxed missing execute permalink
-	* Fixed css to make tab effect more consistent
+2010-01-04 11:01  source
 
-2010-02-09 15:11  source
+	file param.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed do not make an artm op 0-n for neg literal -n
+2010-01-04 11:01  source
 
-2010-02-09 14:47  source
+	file pi.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed check against abnormally big number of distinct datatypes
-	  or languages
+2010-01-04 11:01  source
 
-2010-02-09 14:34  source
+	file prev.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed version number in http headers
+2010-01-04 11:01  source
 
-2010-02-09 14:33  source
+	file prev.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed check trans node max mem when reading rows
+2010-01-04 11:01  source
 
-2010-02-09 14:23  source
+	file prev.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed mem leaks in client
+2010-01-04 11:01  source
 
-2010-02-09 11:39  source
+	file profile-chunk-code.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed memory leak in trans node compilation
+2010-01-04 11:01  source
 
-2010-02-08 21:24  source
+	file profile-chunk.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Added protection against abnormally bif number of distinct datatypes
-	  or languages
+2010-01-04 11:01  source
 
-2010-02-08 21:22  source
+	file profile-docbook.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed SQL codegen for NOT() retval expression
+2010-01-04 11:01  source
 
-2010-02-08 21:22  source
+	file profile-htmlhelp-common.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed memory leak
+2010-01-04 11:01  source
 
-2010-02-08 12:38  source
+	file profile-htmlhelp.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* FIxed gpf in serializer when using default constand
-	* Fixed gpf when type is bad or zero
+2010-01-04 11:01  source
 
-2010-02-08 12:34  source
+	file profile-onechunk.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed log replay for rdfs_load_schema on cluster
+2010-01-04 11:01  source
 
-2010-02-08 12:33  source
+	file task.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed loading literals of type xsd:Token
+2010-01-04 11:01  source
 
-2010-02-03 20:49  source
+	file tip.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Updated version to 6.1.0 for final release
+2010-01-04 11:01  source
 
-2010-02-03 20:37  source
+	file tip.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Removed deprecated directory
+2010-01-04 11:01  source
 
-2010-02-03 19:39  source
+	file tip.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Updated version to 06.01
+2010-01-04 11:01  source
 
-2010-02-03 19:38  source
+	file tip.tif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Updated version number
+2010-01-04 11:01  source
 
-2010-02-03 19:37  source
+	file toc-blank.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Updated version to 6.1.0-rc1
+2010-01-04 11:01  source
 
-2010-02-03 19:17  source
+	file toc-minus.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed missing include files
+2010-01-04 11:01  source
 
-2010-02-03 19:06  source
+	file toc-plus.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Regenerated drivers
+2010-01-04 11:01  source
 
-2010-02-03 18:37  source
+	file up.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed comment
+2010-01-04 11:01  source
 
-2010-02-03 18:34  source
+	file up.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Added missing file to distribution
+2010-01-04 11:01  source
 
-2010-02-03 18:03  source
+	file up.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed building with external zlib
+2010-01-04 11:01  source
 
-2010-02-03 17:09  source
+	file warning.gif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed no need to build this dir when using external zlib
+2010-01-04 11:01  source
 
-2010-02-03 17:06  source
+	file warning.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed generated by comment
+2010-01-04 11:01  source
 
-2010-02-03 16:58  source
+	file warning.svg was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed CRLF
+2010-01-04 11:01  source
 
-2010-02-03 16:53  source
+	file warning.tif was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:47 +0000
 
-	* Fixed make clean
+2010-01-04 11:01  source
 
-2010-02-03 15:46  source
+	file README was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-	* Fixed changelog
+2010-01-04 11:01  source
 
-2010-02-03 15:44  source
+	file annotations.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-	* Fixed dependency
+2010-01-04 11:01  source
 
-2010-02-03 15:40  source
+	file autoidx-kimber.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-	* Added correct handling of standard SPARQL (non-RDF) result sets.
-	* Server defaults are now loaded through a web service - /isparq/defaults/
-	* Resulting HTML is more valid
-	  - no <script> outside <html>, etc.
-	  - FireFox now in standards-compliance mode.
-	* Numerous layout tweaks.
-	* Fixed badly rendered toggler indicators in FireFox.
-	* Added more endpoint detection code
+2010-01-04 11:01  source
 
-	NOTE: sites which have multiple virtual directories hosting iSPARQL will
-	      all need the new /d efaults VHOST added manually.
+	file autoidx-kosek.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-03 15:28  source
+2010-01-04 11:01  source
 
-	* Updated version
+	file autoidx-ng.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-03 15:21  source
+2010-01-04 11:01  source
 
-	* Fixed changelog rule
+	file autoidx.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-03 15:05  source
+2010-01-04 11:01  source
 
-	* Added support for CKEditor
+	file c-hl.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-03 15:05  source
+2010-01-04 11:01  source
 
-	* Added new examples
+	file common.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-03 15:04  source
+2010-01-04 11:01  source
 
-	* Added new SKOS-trans inference rule
+	file cpp-hl.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-03 14:54  source
+2010-01-04 11:01  source
 
-	* Fixed do not put sort node as ks_stp if the sort node has precode that
-	  hs a dpipe part
+	file csharp-hl.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-03 13:54  source
+2010-01-04 11:01  source
 
-	* Fixed setting
+	file delphi-hl.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-03 10:29  source
+2010-01-04 11:01  source
 
-	* Added DB.DBA.BEST_LANGMATCH() and bif_langmatches_pct_http()
+	file fop.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-03 10:29  source
+2010-01-04 11:01  source
 
-	* Fixed bad init in trans node if multiple inputs or step output values
+	file fop1.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-03 00:41  source
+2010-01-04 11:01  source
 
-	* Fixed CREDITS
+	file highlight.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-02 23:57  source
+2010-01-04 11:01  source
 
-	* Fixed install LICENSE, CREDITS, AUTHORS, READMEs etc in doc dir
+	file htmltbl.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-02 23:24  source
+2010-01-04 11:01  source
 
-	* Fixed redundant trailing '>' in results of TTL load when IRIs contain
-	  special chars
+	file ini-hl.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-02 23:04  source
+2010-01-04 11:01  source
 
-	* Added support for Virtuoso JDBC Driver documentation
+	file java-hl.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-02 22:52  source
+2010-01-04 11:01  source
 
-	* Fixed comments
+	file javascript-hl.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-02 20:24  source
+2010-01-04 11:01  source
 
-	* Removed support for deprecated JDK1.0, JDK1.1 and JDK1.2
-	* Removed Virtuoso JDBC 2.0 SSL driver and JSSE runtime and
-	  added instructions how to build it if someone still needs
-	  it using JDK 1.3
+	file m2-hl.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-02 19:38  source
+2010-01-04 11:01  source
 
-	* Fixed windows math.h needs this define for M_PI etc
+	file myxml-hl.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-02 17:59  source
+2010-01-04 11:01  source
 
-	* Fixed php, jsp and vsp users update pages
+	file pagesetup.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-02 14:32  source
+2010-01-04 11:01  source
 
-	* Fixed bug in Doc and Main wiki clusters
+	file param.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-02 14:20  source
+2010-01-04 11:01  source
 
-	* Fixed "option (score ...)" in a gp with multiple OPTIONAL (...)
+	file passivetex.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-02 14:18  source
+2010-01-04 11:01  source
 
-	* Fixed align buffer to sizeof pointer to avoid crash on strict
-	  checking platforms like sparc
+	file pdf2index was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-02 14:17  source
+2010-01-04 11:01  source
 
-	* FIxed memleak when cache is used
+	file perl-hl.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-02 14:16  source
+2010-01-04 11:01  source
 
-	* Fixed compiler warnings
+	file php-hl.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-02 14:15  source
+2010-01-04 11:01  source
 
-	* Fixed problem with rfc1808_expand_uri not using proper macros
-	  and allocate byte extra for strings
+	file pi.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-01 23:16  source
+2010-01-04 11:01  source
 
-	* Updated windows project file
+	file pi.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-01 23:15  source
+2010-01-04 11:01  source
 
-	* Updated win32 and win64 build scripts
+	file profile-docbook.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-01 23:14  source
+2010-01-04 11:01  source
 
-	* Fixed compiler warning
+	file ptc.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-01 23:13  source
+2010-01-04 11:01  source
 
-	* Fixed bad cast
+	file python-hl.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-01 23:10  source
+2010-01-04 11:01  source
 
-	* Fixed typo
+	file qandaset.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-01 15:15  source
+2010-01-04 11:01  source
 
-	* Added conversion code to migrate DB to 2+3 index
+	file ruby-hl.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-01 15:10  source
+2010-01-04 11:01  source
 
-	* Added check for XA ROLLBACKONLY
+	file spaces.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-01 14:59  source
+2010-01-04 11:01  source
 
-	* Rebuild drivers
+	file table.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-01 14:58  source
+2010-01-04 11:01  source
 
-	* Fixed when different TZ is used, must find offset and transform via GMT
+	file task.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-01 13:08  source
+2010-01-04 11:01  source
 
-	* Fixed missing prototype
+	file tcl-hl.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-01 13:02  source
+2010-01-04 11:01  source
 
-	* Added missing file
+	file titlepage.templates.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-01 12:54  source
+2010-01-04 11:01  source
 
-	* Updated version to 6.0.1-pre2
+	file titlepage.templates.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-01 12:53  source
+2010-01-04 11:01  source
 
-	* Merged 2+3 index into VOS
-	* Merged new inlined string code into VOS
-	* Added support for owl:inverseOf, owl:SymmetricProperty and
-	  owl:TransitiveProperty.
-	* Fixed graph-level security in cluster
-	* Fixed loading XMLs into single via RDF/XML
-	* Fixed SPARQL select distinct ?g where { graph ?g { ...}}
+	file xep.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-01 12:44  source
+2010-01-04 11:01  source
 
-	* Merged 2+3 index into VOS
-	* Added new sample queries
-	* Fixed text recoding to UTF8
+	file xslthl-config.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:46 +0000
 
-2010-02-01 12:40  source
+2010-01-04 11:01  source
 
-	* Merged 2+3 index code into VOS
-	* Fixed DB.DBA.RDF_DATATYPE_OF_OBJ and DB.DBA.RDF_LANGUAGE_OF_OBJ
-	  are now used with __ro2sq of the argument, due to new format of
-	  incomplete rdf boxes.
-	* Fixed redundant equalities in case of multiple OPTIONALs with
-	  same variable
-	* Fixed BOOLEAN_OF_OBJ in case of incomplete boxes
+	file README was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-01 12:36  source
+2010-01-04 11:01  source
 
-	* Added stubs
+	file README.LIBXSLT was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-01 12:35  source
+2010-01-04 11:01  source
 
-	* Fixed check db size and exit if not correct
-	* Fixed text of version mismatch messages
+	file annotations.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-01 09:26  source
+2010-01-04 11:01  source
 
-	* Removed unused variables
+	file authors.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-02-01 02:45  source
+2010-01-04 11:01  source
 
-	* Fixed function prototypes
+	file autoidx-kimber.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-01 02:43  source
+2010-01-04 11:01  source
 
-	* Fixed xper not supported in cluster
+	file autoidx-kosek.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-01 02:39  source
+2010-01-04 11:01  source
 
-	* Improved SPARQL parsing and SQL codegen for negative numbers
+	file autoidx-ng.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-01 02:36  source
+2010-01-04 11:01  source
 
-	* Fixed explicit rb not allowed in cl tx branch
-	* Fixed when rdf box then must take dtp1 and sizeof char one more time
-	* Fixed support of literals with languages in SPARQL INSERT DATA
-	  with data in state slot
+	file autoidx.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-01 02:32  source
+2010-01-04 11:01  source
 
-	* Added new rdf box function
+	file axf.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-01 02:18  source
+2010-01-04 11:01  source
 
-	* Fixed inside cpt do not notice anytimes and disconnects
+	file biblio-iso690.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-01 02:16  source
+2010-01-04 11:01  source
 
-	* Fixed security in cluster
+	file copyright.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-02-01 02:10  source
+2010-01-04 11:01  source
 
-	* Partial rollback of patch
+	file dbtoepub was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-01 02:08  source
+2010-01-04 11:01  source
 
-	* Fixed look up rdf lit ids in cost model to get the card
+	file docbook.py was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-01 02:00  source
+2010-01-04 11:01  source
 
-	* Added initial support for owl:inverseOf, owl:SymmetricProperty
-	  and owl:TransitiveProperty
+	file docbook.rb was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-01 01:45  source
+2010-01-04 11:01  source
 
-	* Fixed index path outer join
+	file docbook.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-01 01:45  source
+2010-01-04 11:01  source
 
-	* Fixed if cls rollback during cpt, it would not wait and would rb
-	  a tx while it had uncommitted state that was restored by the cpt
-	  at the end. This would make trxs in trx rc have locks which is
-	  impossible. So check for thread continues during cpt if simultaneous
-	  cpt freeze and rb. Check txns in trx rc don't get locks.
+	file ebnf.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-01 01:08  source
+2010-01-04 11:01  source
 
-	* Fixed gpf during rfwd containing XA transaction
+	file eclipse.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-01 01:00  source
+2010-01-04 11:01  source
 
-	* Fixed atomic must proceed even if uncommitted 2pc prepared
+	file fo-rtf.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-02-01 00:53  source
+2010-01-04 11:01  source
 
-	* Added function __uname
+	file license.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-31 23:07  source
+2010-01-04 11:01  source
 
-	* Added new function __rdf_rng_min
+	file page.png was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-31 23:06  source
+2010-01-04 11:01  source
 
-	* Added new implementation of log_text and log_text_array
+	file profile-eclipse.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-01-31 23:04  source
+2010-01-04 11:01  source
 
-	* Fixed compiler warnings
+	file reference.css was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-31 20:48  source
+2010-01-04 11:01  source
 
-	* Fixed reading of last chunk
+	file reference.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-31 20:46  source
+2010-01-04 11:01  source
 
-	* Added debug flag for sponger
+	file reference.xml.included was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-31 20:44  source
+2010-01-04 11:01  source
 
-	* Fixed declare iri to ir et all as no cluster
+	file saxon65.jar was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-01-31 20:43  source
+2010-01-04 11:01  source
 
-	* Fixed missing externals
+	file ta.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-31 20:41  source
+2010-01-04 11:01  source
 
-	* Fixed checkpoint messages in log
+	file table.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-31 20:37  source
+2010-01-04 11:01  source
 
-	* Fixed do not run dav init on cluster before cluster is up
+	file targetdatabase.dtd was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-31 20:36  source
+2010-01-04 11:01  source
 
-	* Fixed rdf init on dav does not need to be done on empty db, thus run
-	  only in single when update is needed
+	file targets.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-31 20:32  source
+2010-01-04 11:01  source
 
-	* Fixed fault tolerance
+	file th.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-31 20:18  source
+2010-01-04 11:01  source
 
-	* Updated testsuite
+	file titles.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-31 16:47  source
+2010-01-04 11:01  source
 
-	* Updated documentation
+	file tl.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-31 12:43  source
+2010-01-04 11:01  source
 
-	* Fixed if negative numeric literal, do not make it 0 - litt
+	file tr.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-30 01:12  source
+2010-01-04 11:01  source
 
-	* Added debug flag for sponger
-	* Fixed use http_host connection var in aq mode
+	file uk.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-29 23:59  source
+2010-01-04 11:01  source
 
-	* Fixed whitespace
+	file utility.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-29 21:29  source
+2010-01-04 11:01  source
 
-	* Removed deprecated file
+	file utility.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-29 20:54  source
+2010-01-04 11:01  source
 
-	* Fixed for building without SSL
+	file vi.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-29 20:21  source
+2010-01-04 11:01  source
 
-	* Added support for ckeditor
-	* Removed deprecated rte and kupu editors
+	file warranty.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-01-29 16:18  source
+2010-01-04 11:01  source
 
-	* Fixed library version
+	file xalan27.jar was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-01-29 16:16  source
+2010-01-04 11:01  source
+
+	file xh.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
+
+2010-01-04 11:01  source
 
-	* Removed unused include file
+	file xslt.py was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:45 +0000
 
-2010-01-29 15:21  source
+2010-01-04 11:01  source
 
-	* Fixed minor issues
+	file zh.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-29 15:09  source
+2010-01-04 11:01  source
 
-	* Fixed use sparql load instead of soft
+	file zh_cn.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-29 15:07  source
+2010-01-04 11:01  source
 
-	* Removed support for IE 5 and 6 compatibility
+	file zh_tw.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-29 15:00  source
+2010-01-04 11:01  source
 
-	* Fixed crawler pages
+	file eu.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-29 14:52  source
+2010-01-04 11:01  source
 
-	* Fixed use newer version of wsa
+	file fa.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-29 13:23  source
+2010-01-04 11:01  source
 
-	* Fixed removed deprecated samples
+	file ga.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-29 13:20  source
+2010-01-04 11:01  source
 
-	* Fixed build issue with md5
+	file gentext.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-29 11:34  source
+2010-01-04 11:01  source
 
-	* Removed deprecated samples/demos
+	file gl.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-29 02:41  source
+2010-01-04 11:01  source
 
-	* Fixed uploading large files
+	file gu.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-29 01:56  source
+2010-01-04 11:01  source
 
-	* Fixed use MD5 from OpenSSL when possible
+	file he.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-29 00:15  source
+2010-01-04 11:01  source
 
-	* Fixed build to use generate script
-	* Removed deprecated file
+	file hi.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-28 17:08  source
+2010-01-04 11:01  source
 
-	* Fixed make sure version is intact as changes to .ttl file must
-	  reflect in sparql.sql
+	file hr.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-28 14:33  source
+2010-01-04 11:01  source
 
-	* Fixed non-portable sleep argument
+	file hu.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-28 14:19  source
+2010-01-04 11:01  source
 
-	* Fixed API rename
+	file id.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-28 14:19  source
+2010-01-04 11:01  source
 
-	* Fixed typo
+	file insertfile.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-28 13:36  source
+2010-01-04 11:01  source
 
-	* Fixed missing qualification of aggregate
+	file is.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-28 01:14  source
+2010-01-04 11:01  source
 
-	* Fixed make new aqt in io sect
-	* Fixed return error when no cli
-	* Fixed if aq called and no aq thread available, signal error
+	file kn.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-28 01:11  source
+2010-01-04 11:01  source
 
-	* Fixed automatically allocate bufs
+	file ko.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-28 00:36  source
+2010-01-04 11:01  source
 
-	* Added option BuffersAllocation
-	* Added option AsyncQueueMaxThreads
+	file ky.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-28 00:31  source
+2010-01-04 11:01  source
 
-	* Fixed default sitemap crawling functions
-	* Fixed wrong variable
-	* Fixed wait before update
+	file l10n.dtd was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-28 00:30  source
+2010-01-04 11:01  source
 
-	* Updated php, jsp and vsp user pages
+	file la.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-27 20:43  source
+2010-01-04 11:01  source
 
-	* Added FOAF+SSL groups
+	file labels.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-27 20:31  source
+2010-01-04 11:01  source
 
-	* Added support for Google Base items types 'wanted ads', 'business
-	  location' and 'product catalogs'
+	file lt.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-27 20:31  source
+2010-01-04 11:01  source
 
-	* Fixed virtrdf_label
+	file lv.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-27 12:55  source
+2010-01-04 11:01  source
 
-	* Fixed use DV_SHORT_STRING_SERIAL tag when serializing short strings
+	file mn.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-27 12:54  source
+2010-01-04 11:01  source
 
-	* Fixed varlgrind warning about using uninitialized memory read
+	file nb.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-27 12:52  source
+2010-01-04 11:01  source
 
-	* Fixed in getting page_row reset rd leaf if not a leaf.
+	file nn.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-27 12:51  source
+2010-01-04 11:01  source
 
-	* Fixed do not POST when no post parameters
+	file olink.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-27 01:29  source
+2010-01-04 11:01  source
 
-	* Fixed read after allocated memory
+	file or.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-25 23:46  source
+2010-01-04 11:01  source
 
-	* Removed deprecated files
+	file pa.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-25 22:42  source
+2010-01-04 11:01  source
 
-	* Fixed copyright and license clarification
+	file pi.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:43 +0000
 
-2010-01-25 20:45  source
+2010-01-04 11:01  source
 
-	* Fixed must commit before aq_wait
+	file pi.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-25 16:20  source
+2010-01-04 11:01  source
 
-	* Updated documentation
+	file refentry.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-25 16:10  source
+2010-01-04 11:01  source
 
-	* Added php, jsp and vsp users update
-	* Fixed problem with activity pages
+	file refentry.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-25 16:09  source
+2010-01-04 11:01  source
 
-	* FIxed copyright
+	file sl.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-25 16:09  source
+2010-01-04 11:01  source
 
-	* Fixed SSL check
+	file sq.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-25 16:05  source
+2010-01-04 11:01  source
 
-	* Fixed bug in permissions
+	file sr.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-25 15:42  source
+2010-01-04 11:01  source
 
-	* Fixed problem with MaxMempoolSize
-	* Fixed problem with driver properties
+	file sr_Latn.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-25 15:41  source
+2010-01-04 11:01  source
 
-	* Fixed shortened long URLs in the crawlers view to avoid UI breakage
+	file stripns.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-25 15:12  source
+2010-01-04 11:01  source
 
-	* Fixed support for Google Base 'products' item type
-	* Fixed headers
+	file subtitles.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:44 +0000
 
-2010-01-25 14:57  source
+2010-01-04 11:01  source
 
-	* Fixed use pipeline client in crawler
+	* Imported docbook-xsl-1.75.2
 
-2010-01-25 10:39  source
+2010-01-04 11:01  source
 
-	* Fixed accept different headers in pipeline request; add header only if
-	  it contains something
+	file .CatalogManager.properties.example was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:41 +0000
 
-2010-01-15 13:47  source
+2010-01-04 11:01  source
 
-	* Fixed crash when timeout was sent using dv_array_of_long
+	file .cshrc.incl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:41 +0000
 
-2010-01-15 13:02  source
+2010-01-04 11:01  source
 
-	* Fixed small lang conversion issue
+	file .emacs.el was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:41 +0000
 
-2010-01-15 12:16  source
+2010-01-04 11:01  source
 
-	* Rebuild driver
+	file .profile.incl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:41 +0000
 
-2010-01-15 12:15  source
+2010-01-04 11:01  source
 
-	* Fixed issue with disconnect
-	* Fixed issue with XA exception
+	file .urilist was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-14 16:21  source
+2010-01-04 11:01  source
 
-	* Fixed bug calculating todays date
+	file AUTHORS was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-14 16:06  source
+2010-01-04 11:01  source
 
-	* Fixed use current OAT API function names
-	* Fixed bug in query execute permalink encoding
-	* Removed explicit reference to ymaps
-	* Temp fix for DESCRIBE popup query
+	file COPYING was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-14 16:04  source
+2010-01-04 11:01  source
 
-	* Added new popup calendar based on OAT
-	* Fixed use current OAT API function names
-	* FIxed explicit references to ymaps, gmaps
+	file INSTALL was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-14 15:57  source
+2010-01-04 11:01  source
 
-	* Added LICENSE and COPYING from OAT project
-	* Removed custom map loaders
-	* Fixed use current OAT API function names instead of backward compat
+	file NEWS was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-13 15:05  source
+2010-01-04 11:01  source
 
-	* Fixed non-rfc method to make URL
+	file NEWS.html was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-13 15:02  source
+2010-01-04 11:01  source
 
-	* Fixed missing type cast
+	file NEWS.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-13 08:51  source
+2010-01-04 11:01  source
 
-	* Fixed user UI login pages
-	* Fixed user UI pages
-	* Fixed user home page field size
+	file RELEASE-NOTES.html was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-12 23:21  source
+2010-01-04 11:01  source
 
-	* Fixed decoding unicode escape sequences in post request
+	file RELEASE-NOTES.txt was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-12 12:19  source
+2010-01-04 11:01  source
 
-	* Fixed automated labels extraction
+	file RELEASE-NOTES.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-12 12:15  source
+2010-01-04 11:01  source
 
-	* Fixed memory leak
+	file af.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-12 11:06  source
+2010-01-04 11:01  source
 
-	* Added doap:name for labeling
+	file am.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-11 16:02  source
+2010-01-04 11:01  source
 
-	* Fixed primary topic from Offering to Product
+	file ar.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-11 14:19  source
+2010-01-04 11:01  source
 
-	* Fixed missing dcterms:publisher
+	file autoidx-kimber.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-07 17:09  source
+2010-01-04 11:01  source
 
-	* Imported docbook-xsl-1.75.2
+	file autoidx-kosek.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-07 16:56  source
+2010-01-04 11:01  source
 
-	* Fixed copyright year to 2010
+	file az.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-07 16:55  source
+2010-01-04 11:01  source
 
-	* Fixed sync Contact UI with Profile UI
-	* Fixed copyright year to 2010
+	file bg.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-07 16:55  source
+2010-01-04 11:01  source
 
-	* Added VSP and REST implementation for user API
-	* Added new API functions
-	* Fixed users paths to physical location
-	* Fixed API bug with tag rules
-	* Updated copyright year to 2010
-	* Fixed issue mising quoted and unquoted identifiers
+	file bn.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-06 21:33  source
+2010-01-04 11:01  source
 
-	* Updated documentation
+	file bs.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-06 17:33  source
+2010-01-04 11:01  source
 
-	* Fixed bad transformation in feed when author has no name
-	* Fixed process media:contain properly re images
+	file catalog.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-06 16:49  source
+2010-01-04 11:01  source
 
-	* Added flag (DuplicateCheckpointRemaps) which should ONLY be used
-	  in recovery mode when a bad db can have cpt remap page which links
-	  back to itself. In this situation as last chance to recover we can
-	  look if remap already is registered and at that point stop looking.
-	  Further DBA must check for inconsistencies.
+	file charmap.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-06 16:47  source
+2010-01-04 11:01  source
 
-	* Fixed default log mode in SPARUL MDW operations to distinquish
-	  between NULL and 0 log mode
+	file charmap.xsl was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-06 16:45  source
+2010-01-04 11:01  source
 
-	* Fixed check if qi is actually available in this context
+	file common.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-06 12:12  source
+2010-01-04 11:01  source
 
-	* Fixed handling of default graph URI param
+	file cy.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-05 19:12  source
+2010-01-04 11:01  source
 
-	* Added extra tests
+	file entities.ent was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-05 18:24  source
+2010-01-04 11:01  source
 
-	* Fixed moved commit work else async exec might generate new rdf_obj
+	file eo.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-04 11:54  source
+2010-01-04 11:01  source
 
-	* Fixed if null box then use 0 to prevent core dump
+	file et.xml was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-04 11:47  source
+2010-01-04 11:01  source
 
-	* Fixed dependency
+	file install.sh was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-04 11:42  source
+2010-01-04 11:01  source
 
-	* Removed deprecated file
+	file test.sh was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
-2010-01-04 11:25  source
+2010-01-04 11:01  source
 
-	* Fixed typo
+	file uninstall.sh was added on branch V6_0_0-DEVEL on 2010-01-04 11:24:42 +0000
 
 2010-01-04 08:33  source
 
@@ -8132,6 +17755,14 @@
 
 2009-12-31 12:45  source
 
+	file ods_api_users.sql was added on branch V6_0_0-DEVEL on 2009-12-31 12:47:57 +0000
+
+2009-12-31 12:45  source
+
+	file users.vsp was added on branch V6_0_0-DEVEL on 2009-12-31 12:47:57 +0000
+
+2009-12-31 12:45  source
+
 	* Added VSP and REST implementation for user API
 	* Added new API functions
 	* Fixed users paths to physical location
@@ -8182,6 +17813,10 @@
 	* Fixed issues with dynamic local
 	* Fixed use chache for speedup
 
+2009-12-24 13:48  source
+
+	file revyu2rdf.xsl was added on branch V6_0_0-DEVEL on 2009-12-24 13:53:31 +0000
+
 2009-12-24 13:36  source
 
 	* Fixed dav initialization
@@ -8248,6 +17883,9 @@
 	* Fixed no offering
 	* Fixed back to go out icon
 
+2009-12-22 10:37  source
+
+	file trdfrng.sql was added on branch V6_0_0-DEVEL on 2009-12-22 10:37:52 +0000
 
 2009-12-22 10:28  source
 
@@ -8358,6 +17996,9 @@
 
 	* Added ithalia ontology
 
+2009-12-15 22:41  source
+
+	file thalia.owl was added on branch V6_0_0-DEVEL on 2009-12-15 23:01:44 +0000
 
 2009-12-15 22:39  source
 
@@ -8386,6 +18027,22 @@
 	* Moved data files into separate directory
 	* Minor fixes
 
+2009-12-14 14:39  source
+
+	file iso_country_codes.sql was added on branch V6_0_0-DEVEL on 2009-12-14 14:42:12 +0000
+
+2009-12-14 14:39  source
+
+	file oai_servers.sql was added on branch V6_0_0-DEVEL on 2009-12-14 14:42:12 +0000
+
+2009-12-14 14:39  source
+
+	file yelp_categories.sql was added on branch V6_0_0-DEVEL on 2009-12-14 14:42:12 +0000
+
+2009-12-14 14:38  source
+
+	file nyt_people.nt.gz was added on branch V6_0_0-DEVEL on 2009-12-14 14:42:12 +0000
+
 2009-12-13 23:28  source
 
 	* Fixed upstreaming
@@ -8394,6 +18051,10 @@
 
 	* Added Bookmarklet
 
+2009-12-13 23:24  source
+
+	file bmklet_32.png was added on branch V6_0_0-DEVEL on 2009-12-13 23:28:18 +0000
+
 2009-12-12 23:31  source
 
 	* Fixed issue withclosing gzip session
@@ -8633,6 +18294,10 @@
 
 	* Added support for sql export linked tables
 
+2009-12-02 14:37  source
+
+	file vdb_export.vspx was added on branch V6_0_0-DEVEL on 2009-12-02 14:48:42 +0000
+
 2009-12-02 14:33  source
 
 	* Fixed API methods
@@ -8673,6 +18338,10 @@
 
 	* Added API commands
 
+2009-12-01 14:19  source
+
+	file proc_on_api.sql was added on branch V6_0_0-DEVEL on 2009-12-01 14:21:18 +0000
+
 2009-12-01 14:18  source
 
 	* Removed deprecated files
@@ -8693,6 +18362,10 @@
 
 	* Added debug log to meta cartridges
 
+2009-11-30 23:40  source
+
+	file rdf_console.vspx was added on branch V6_0_0-DEVEL on 2009-11-30 23:44:07 +0000
+
 2009-11-30 23:39  source
 
 	* Fixed button alignment
@@ -8723,6 +18396,10 @@
 
 	* Moved Briefcase API from ODS, adding new commands
 
+2009-11-26 14:36  source
+
+	file od-a-api.sql was added on branch V6_0_0-DEVEL on 2009-11-26 14:37:21 +0000
+
 2009-11-26 14:32  source
 
 	* Fixed handling of proc names with dots
@@ -8983,6 +18660,10 @@
 
 2009-11-06 16:09  source
 
+	file oplzillow.owl was added on branch V6_0_0-DEVEL on 2009-11-06 16:49:02 +0000
+
+2009-11-06 16:09  source
+
 	* Fixed Zillow cartridge
 
 2009-11-06 12:09  source
@@ -9050,6 +18731,14 @@
 
 	* Fixed broken FOAF generation
 
+2009-11-04 01:52  source
+
+	file ms_spreadsheet2rdf.xsl was added on branch V6_0_0-DEVEL on 2009-11-04 09:45:46 +0000
+
+2009-11-04 01:52  source
+
+	file ms_document2rdf.xsl was added on branch V6_0_0-DEVEL on 2009-11-04 09:45:46 +0000
+
 2009-11-04 01:50  source
 
 	* Added more checks for CN, hostname and keys
@@ -9109,6 +18798,14 @@
 
 2009-10-29 21:06  source
 
+	file typeahead.css was added on branch V6_0_0-DEVEL on 2009-10-29 21:08:03 +0000
+
+2009-10-29 21:06  source
+
+	file typeahead.js was added on branch V6_0_0-DEVEL on 2009-10-29 21:08:03 +0000
+
+2009-10-29 21:06  source
+
 	* Fixed UI profile full name
 	* Fixed UI profile address
 	* Fixed suggestions lookup
@@ -9153,6 +18850,22 @@
 
 	* Added rule for bin objects
 
+2009-10-29 19:34  source
+
+	file chrome-logo.png was added on branch V6_0_0-DEVEL on 2009-10-29 20:10:10 +0000
+
+2009-10-29 19:34  source
+
+	file firefox-logo.png was added on branch V6_0_0-DEVEL on 2009-10-29 20:10:10 +0000
+
+2009-10-29 19:34  source
+
+	file opera-logo.png was added on branch V6_0_0-DEVEL on 2009-10-29 20:10:10 +0000
+
+2009-10-29 19:34  source
+
+	file safari-logo.png was added on branch V6_0_0-DEVEL on 2009-10-29 20:10:10 +0000
+
 2009-10-28 21:34  source
 
 	* Rebuild drivers
@@ -9173,6 +18886,10 @@
 	* Fixed navigation
 	* Fixed scheme support for feed
 
+2009-10-28 21:25  source
+
+	file oplebay.owl was added on branch V6_0_0-DEVEL on 2009-10-28 21:30:15 +0000
+
 2009-10-28 21:20  source
 
 	* Fixed problems with UI of RDF views
@@ -9220,10 +18937,34 @@
 
 	* Added support for comparison of XML trees
 
+2009-10-26 16:27  source
+
+	file conversation.js was added on branch V6_0_0-DEVEL on 2009-10-28 21:32:14 +0000
+
+2009-10-26 16:00  source
+
+	file html.png was added on branch V6_0_0-DEVEL on 2009-10-28 21:30:16 +0000
+
+2009-10-26 16:00  source
+
+	file mail.png was added on branch V6_0_0-DEVEL on 2009-10-28 21:30:16 +0000
+
+2009-10-26 16:00  source
+
+	file oplamazon.owl was added on branch V6_0_0-DEVEL on 2009-10-28 21:30:15 +0000
+
+2009-10-26 16:00  source
+
+	file phone.gif was added on branch V6_0_0-DEVEL on 2009-10-28 21:30:16 +0000
+
 2009-10-26 09:29  source
 
 	* Added missing image
 
+2009-10-26 09:29  source
+
+	file virt_power_no_border.png was added on branch V6_0_0-DEVEL on 2009-10-26 09:29:40 +0000
+
 2009-10-26 09:26  source
 
 	* Fixed menus
diff --git a/LICENSE b/LICENSE
index 33f11a8..4e83c45 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,5 +1,5 @@
 OpenLink Software's Virtuoso Open-Source (VOS) project
-Copyright (C) 1998-2010 OpenLink Software
+Copyright (C) 1998-2012 OpenLink Software
 
 This software is licensed under the GNU General Public License (see
 COPYING).
diff --git a/Makefile.am b/Makefile.am
index 8e5e9fc..15f4826 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2009 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -103,10 +103,6 @@ EXTRA_DIST = \
 	debian/virtuoso-opensource.postrm.debhelper \
 	debian/virtuoso-opensource.prerm.debhelper \
 	debian/virtuoso-opensource.substvars \
-	win32/mkperlenv.pl \
-	win32/mkpythonenv.py \
-	win32/*.bat \
-	win32/*.vcproj \
-	win32/*.sln \
-	win64/*.vcproj \
-	win64/*.sln
+	windows/*.bat \
+	windows/*.sln \
+	windows/*.vcxproj
diff --git a/Makefile.in b/Makefile.in
index 4e4e784..7d2e1cc 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2009 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -38,9 +37,8 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -77,7 +75,6 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -92,29 +89,12 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(docdir)"
+dist_docDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(dist_doc_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-	distdir dist dist-all distcheck
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
@@ -122,34 +102,9 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
 am__remove_distdir = \
-  { test ! -d "$(distdir)" \
-    || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
-         && rm -fr "$(distdir)"; }; }
-am__relativize = \
-  dir0=`pwd`; \
-  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
-  sed_rest='s,^[^/]*/*,,'; \
-  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
-  sed_butlast='s,/*[^/]*$$,,'; \
-  while test -n "$$dir1"; do \
-    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
-    if test "$$first" != "."; then \
-      if test "$$first" = ".."; then \
-        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
-        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
-      else \
-        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
-        if test "$$first2" = "$$first"; then \
-          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
-        else \
-          dir2="../$$dir2"; \
-        fi; \
-        dir0="$$dir0"/"$$first"; \
-      fi; \
-    fi; \
-    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
-  done; \
-  reldir="$$dir2"
+  { test ! -d $(distdir) \
+    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+         && rm -fr $(distdir); }; }
 DIST_ARCHIVES = $(distdir).tar.gz
 GZIP_ENV = --best
 distuninstallcheck_listfiles = find . -type f -print
@@ -241,7 +196,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -325,7 +279,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -346,7 +299,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -395,13 +347,9 @@ EXTRA_DIST = \
 	debian/virtuoso-opensource.postrm.debhelper \
 	debian/virtuoso-opensource.prerm.debhelper \
 	debian/virtuoso-opensource.substvars \
-	win32/mkperlenv.pl \
-	win32/mkpythonenv.py \
-	win32/*.bat \
-	win32/*.vcproj \
-	win32/*.sln \
-	win64/*.vcproj \
-	win64/*.sln
+	windows/*.bat \
+	windows/*.sln \
+	windows/*.vcxproj
 
 all: all-recursive
 
@@ -412,15 +360,15 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
-	      $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
+	      echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
+	      cd $(srcdir) && $(AUTOMAKE) --gnu  \
 		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -436,10 +384,9 @@ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENC
 	$(SHELL) ./config.status --recheck
 
 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	$(am__cd) $(srcdir) && $(AUTOCONF)
+	cd $(srcdir) && $(AUTOCONF)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-$(am__aclocal_m4_deps):
+	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -448,27 +395,24 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool config.lt
+	-rm -f libtool
 install-dist_docDATA: $(dist_doc_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(docdir)" || $(MKDIR_P) "$(DESTDIR)$(docdir)"
-	@list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
-	for p in $$list; do \
+	@list='$(dist_doc_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \
+	  f=$(am__strip_dir) \
+	  echo " $(dist_docDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(docdir)/$$f'"; \
+	  $(dist_docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(docdir)/$$f"; \
 	done
 
 uninstall-dist_docDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(docdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(docdir)" && rm -f $$files
+	@list='$(dist_doc_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(docdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(docdir)/$$f"; \
+	done
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -477,7 +421,7 @@ uninstall-dist_docDATA:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
+	@failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -494,7 +438,7 @@ $(RECURSIVE_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done; \
 	if test "$$dot_seen" = "no"; then \
@@ -502,7 +446,7 @@ $(RECURSIVE_TARGETS):
 	fi; test -z "$$fail"
 
 $(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
+	@failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -528,16 +472,16 @@ $(RECURSIVE_CLEAN_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 	done
 ctags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 	done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -545,14 +489,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	set x; \
+	tags=; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
 	  include_option=--etags-include; \
@@ -564,50 +508,46 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test ! -f $$subdir/TAGS || \
-	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
 	fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
+	     $$tags $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
 	$(am__remove_distdir)
-	test -d "$(distdir)" || mkdir "$(distdir)"
+	test -d $(distdir) || mkdir $(distdir)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	list='$(DISTFILES)'; \
@@ -623,55 +563,38 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d "$(distdir)/$$subdir" \
 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
 	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
-	    $(am__relativize); \
-	    new_distdir=$$reldir; \
-	    dir1=$$subdir; dir2="$(top_distdir)"; \
-	    $(am__relativize); \
-	    new_top_distdir=$$reldir; \
-	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
-	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
-	    ($(am__cd) $$subdir && \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
 	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$new_top_distdir" \
-	        distdir="$$new_distdir" \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
 		am__remove_distdir=: \
 		am__skip_length_check=: \
-		am__skip_mode_fix=: \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
 	done
-	-test -n "$(am__skip_mode_fix)" \
-	|| find "$(distdir)" -type d ! -perm -755 \
-		-exec chmod u+rwx,go+rx {} \; -o \
+	-find $(distdir) -type d ! -perm -755 -exec chmod u+rwx,go+rx {} \; -o \
 	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
 	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
 	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
-	|| chmod -R a+r "$(distdir)"
+	|| chmod -R a+r $(distdir)
 dist-gzip: distdir
 	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
 	$(am__remove_distdir)
@@ -680,14 +603,6 @@ dist-bzip2: distdir
 	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
 	$(am__remove_distdir)
 
-dist-lzma: distdir
-	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
-	$(am__remove_distdir)
-
-dist-xz: distdir
-	tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
-	$(am__remove_distdir)
-
 dist-tarZ: distdir
 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
 	$(am__remove_distdir)
@@ -711,17 +626,13 @@ dist dist-all: distdir
 distcheck: dist
 	case '$(DIST_ARCHIVES)' in \
 	*.tar.gz*) \
-	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
 	*.tar.bz2*) \
-	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
-	*.tar.lzma*) \
-	  lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
-	*.tar.xz*) \
-	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+	  bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
 	*.tar.Z*) \
 	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
 	*.shar.gz*) \
-	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
 	esac
@@ -729,11 +640,9 @@ distcheck: dist
 	mkdir $(distdir)/_build
 	mkdir $(distdir)/_inst
 	chmod a-w $(distdir)
-	test -d $(distdir)/_build || exit 0; \
 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
 	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
-	  && am__cwd=`pwd` \
-	  && $(am__cd) $(distdir)/_build \
+	  && cd $(distdir)/_build \
 	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
 	    $(DISTCHECK_CONFIGURE_FLAGS) \
 	  && $(MAKE) $(AM_MAKEFLAGS) \
@@ -755,15 +664,13 @@ distcheck: dist
 	  && rm -rf "$$dc_destdir" \
 	  && $(MAKE) $(AM_MAKEFLAGS) dist \
 	  && rm -rf $(DIST_ARCHIVES) \
-	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
-	  && cd "$$am__cwd" \
-	  || exit 1
+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
 	$(am__remove_distdir)
 	@(echo "$(distdir) archives ready for distribution: "; \
 	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
 	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
 distuninstallcheck:
-	@$(am__cd) '$(distuninstallcheck_dir)' \
+	@cd $(distuninstallcheck_dir) \
 	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
 	   || { echo "ERROR: files left after uninstall:" ; \
 	        if test -n "$(DESTDIR)"; then \
@@ -808,7 +715,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -830,8 +736,6 @@ dvi-am:
 
 html: html-recursive
 
-html-am:
-
 info: info-recursive
 
 info-am:
@@ -840,28 +744,18 @@ install-data-am: install-dist_docDATA
 
 install-dvi: install-dvi-recursive
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-recursive
 
-install-html-am:
-
 install-info: install-info-recursive
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-recursive
 
-install-pdf-am:
-
 install-ps: install-ps-recursive
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -884,17 +778,17 @@ ps-am:
 
 uninstall-am: uninstall-dist_docDATA
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+	install-strip
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am am--refresh check check-am clean clean-generic \
 	clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
-	dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
-	distcheck distclean distclean-generic distclean-libtool \
-	distclean-tags distcleancheck distdir distuninstallcheck dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dist_docDATA install-dvi \
+	dist-gzip dist-shar dist-tarZ dist-zip distcheck distclean \
+	distclean-generic distclean-libtool distclean-tags \
+	distcleancheck distdir distuninstallcheck dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dist_docDATA install-dvi \
 	install-dvi-am install-exec install-exec-am install-html \
 	install-html-am install-info install-info-am install-man \
 	install-pdf install-pdf-am install-ps install-ps-am \
@@ -933,7 +827,6 @@ uninstall-am: uninstall-dist_docDATA
 #
 snapshot:
 	$(MAKE) dist distdir=$(PACKAGE)-`date +"%Y%m%d"`
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/NEWS b/NEWS
index 0e39f69..792a4f8 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,211 @@
+Jul 30, 2012, V6.1.6:
+  * Database engine
+    - Added support for Sparql Service Description
+    - Added support for SOUNDEX and DIFFERENCE
+    - Added support for FROM SUBQUERY { .. } in quad map
+    - Added optimizations to JSON parser
+    - Added support for SSL Chain Certificates
+    - Added webid protected endpoints template
+    - Added error reporting if query compilation fails
+    - Added extra checks for db slices
+    - Added dsn name to explain output
+    - Added support for CORS in web services
+    - Added propagation of LIMIT restrictions
+    - Added support for protocol switching e.g. using websockets
+    - Added generation of url rewrite rules
+    - Fixed ETag calculation
+    - Fixed bad code for clear graph <xxxx>
+    - Fixed buffer overflow when using wide chars
+    - Fixed check to prevent out of range seek
+    - Fixed clear errors on ODBC connection handle
+    - Fixed compiler warnings
+    - Fixed datetime conversion
+    - Fixed external vars in table subqueries of scalar subqueries
+    - Fixed http_ses_arg is supposed to return ws_session
+    - Fixed issue with content type if already set by rewrite rule
+    - Fixed issue with transitive subqueries
+    - Fixed issue with unknown BIF msg in SPARQL compiler error
+    - Fixed issue with Bison 2.6 code generation
+    - Fixed issue with SERVICE
+    - Fixed issue with UNIONs
+    - Fixed issue with incomplete rdf box
+    - Fixed memory leaks
+    - Fixed multi-column transitivity
+    - Fixed portability issues on FreeBSD, Solaris and Mac OS X
+    - Fixed print of builtin expressions with multipart alias name
+    - Fixed use provided password from ODBC connect handle
+    - Fixed valgrind warnings
+    - Updated documentation
+
+  * SPARQL and RDF
+    - Added RDFa and MTML+Microdata autodetection
+    - Added REPORT method
+    - Added WebDAV DET folder type
+    - Added Wolfram|Alpha cartridge
+    - Added debug code for sponger
+    - Added di: scheme
+    - Added extra debugging code to SPARQL engine
+    - Added new mime type application/n-triples
+    - Added procedure view for SPARQL BINDINDS
+    - Added rdb2rdf VAD
+    - Added support for INF, -INF and NaN
+    - Added support for SPARQL 1.1 BINDINGS
+    - Added support for self-description
+    - Added support for slash proxy IRIs
+    - Added support for sponging of ftp urls
+    - Added support for subqueries inside QUAP MAP { .. } groups
+    - Added support for tab-separated-values (TSV) format in sparql
+    - Added support for text/turtle
+    - Fixed SPARQL LOAD SERVICE <...> DATA
+    - Fixed access rights and status for SPARUL_LOAD_SERVICE_DATA
+    - Fixed escaping of weird IRIs in RDF/XML output
+    - Fixed grants for SPARQL LOAD SERVICE <...> DATA
+    - Fixed issue joining two federated queries to the same host
+    - Fixed issue with double "AS" for lang in resultset
+    - Fixed issue with RDF View, bif:contains and option(?score)
+    - Fixed issue with SPARQL-FED code generation
+    - Fixed issue with graph level security check in SPARQL-FED subquery
+    - Fixed issue with transitive query
+    - Fixed issue with xsd:dateTime in SPARQL results
+    - Fixed issues loading microdata with namespace decls
+    - Fixed negation to use SPARQL 1.1 FILTER NOT EXISTS
+    - Fixed possible stack overflow on long UNIONs
+    - Fixed resource name encoding problem
+    - Fixed service SPARQL codegen with zero retvals
+    - Fixed support for SERVICE
+    - Improved error diagnostics for ALTER QUAD STORAGE <> { DROP }
+    - Removed test for @rel, @rev or @property from application/xhtml+xml
+    - Upgraded sesame driver to use Sesame 2.5.6
+
+    - Merged DBpedia VAD fixes
+      + Added registry setting dbp_last_modification to get SP returning last modified date
+      + Added support for If-Modified-Since
+      + Added support for rel="nofollow" on external links
+      + Fixed XHTML+RDFa validation
+      + Fixed check if modified
+      + Fixed reset timezone
+      + Fixed use owl graph for properties
+
+    - Merged iSPARQL vad
+      + Added control for raw URIs in sparql result set view
+      + Added persistence in permalinks
+      + Added alternate links in HEAD
+      + Added support to remember rdf display/tab
+      + Added support to remember previous tab
+      + Upgraded MAP support for latest OpenLayers/OpenStreetmap
+      + Disabled dysfunctional NASA blue marble tiles
+
+  * ODS Applications
+    - Added initial API documentation + doxify templates
+    - Added advanced ACL settings for sparql or services authentication
+    - Added ACL filters
+    - Added support for Box, Google Drive and Skydrive + ACLs
+    - Added support for private graphs
+    - Fixed redirect
+
+    - Merged ODS Addressbook fixes
+      + Added CalDAV Import
+
+    - Merged ODS Bookmark VAD
+      + Added box.net folder definition
+      + Added default values for cartridges
+      + Added support for WebDAV DET
+      + Added support for private graphs
+      + Fixed bad owner in some DET resources
+      + Fixed permission problem for some DETs
+      + Updated S3 DET folder
+
+    - Merged ODS Briefcase VAD
+      + Added ACL for IMAP DET folder
+      + Added mail notification for webid sharing
+      + Fixed ' -,acl' files
+      + Fixed problem with editing mounted sources
+      + Fixed resource server side encryption problem
+      + Fixed sponge feature
+
+    - Merged ODS Calendar VAD
+      + Added CalDAV, CardDAV DETs and RESTful CRUD
+      + Fixed WebID write access
+      + Fixed daylight savings time on import to calendar
+
+    - Merged ODS Framework VAD
+      + Added Help links
+      + Added JSON output option for certgen
+      + Added link tags to user's pages
+      + Fixed 'Enable Automatic WebID Login' value
+      + Fixed private graphs init
+      + Fixed quotes on sparql vars
+      + Fixed remove session when acl is altered
+      + Fixed rest interface page
+      + Fixed semping protocol
+      + Fixed typos
+      + Fixed void dset
+      + Updated CKeditor to version 3.6.3
+
+
+Mar 15, 2012, V6.1.5:
+  * Database engine
+    - Added support for SPARQL 1.1 WITH, USING, NAMED
+    - Added support for SPARQL 1.1 Update
+    - Added support for SPARQL 1.1 Functions
+    - Added support for SPARQL Macro Library syntax
+    - Added support for SPARQL DESCRIBE modes OBJCBD and SCBD
+    - Added support for SPARQL DESCRIBE/CONSTRUCT to return 3 column
+      resultset when using ODBC/JDBC/.NET by default
+    - Added support for wide strings in all SPARQL serializers
+    - Added common infrastructure for RDF-specific XML parsers
+    - Added new RDF/XML printer (faster + pretty print)
+    - Added TRIG formatter
+    - Added support for r2rml graph generation
+    - Added support for XHTML+Microdata
+    - Added human-readable HTML output for DESCRIBE (list and table)
+    - Added support for SELECT scalar_expression subqueries without FROM
+      clause to avoid extra lock on fake subqueries
+    - Added DBpedia vad package
+    - Added support for scoping ACL to a virtual dir
+    - Added new Visual Studio 11 project files for both 32bit and 64bit builds
+    - Fixed RDF/XML parser to pass w3c tests dated 2003-Nov.
+    - Fixed JSON-LD syntax to match recent draft of the spec
+    - Fixed CONSTRUCT with constant string objects with language
+    - Fixed output of bnodes in RDF/XML format
+    - Fixed support for sparql load <file:///....> i.e. with absolute path
+      from system root
+    - Fixed issue with uninitialized variables
+    - Fixed use portable method for escaping symbol for gawk 3 and 4
+    - Fixed issue with semaphores on Mac OS X 10.7
+    - Fixed compiler warnings
+    - Fixed memory leaks
+    - Updated documentation
+
+  * SPARQL and RDF
+    - Added new cartridges for Angellis. Klout, New York Times Article,
+      Social Statistics and Stackoverflow
+    - Added new ontolgies for Angellis, Cert, Crunchbase, DBpedia
+      Spotlight, NYT, LinkedIn, oplbase, oplweb
+    - Added Linkedin Shares cartridge
+    - Added support for extracting all meta and link head-element data from XHTML documents
+    - Added post-processing script for generating owl:sameAs links for
+      co-reference resolution
+    - Added support for get:soft "add" and get:cartridge
+    - Added support for paging over large collections to FB cartridge
+    - Fixed Amazon cartridge to work with new Product Advertising API
+    - Fixed handling of # in About header
+    - Fixed qualify opl:mentions  with cartridge identifier
+    - Fixed social-profile-url property across social cartridges
+
+  * ODS Applications
+    - Added support for WebID 1.0 spec
+    - Added WebID WaterMark
+    - Added support for CalDAV and CardDAV
+    - Added ACL editing for DETs
+    - Added folder selecton for SyncML
+    - Added option to import rdf data from file
+    - Added rule for briefcase folder IRIs
+    - Added VCARD Property Grouping
+    - Added private graphs data
+    - Added option to deactivate user
+
+
 Oct 31, 2011, V6.1.4:
   * Upgrading from previous versions
     - Added information about upgrading from previous 6.1.x to 6.1.4
diff --git a/README b/README
index 5899fe4..32302d5 100644
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
 Virtuoso Open-Source Edition: Building
 ======================================
 
-Copyright (C) 1998-2010 OpenLink Software <vos.admin at openlinksw.com>
+Copyright (C) 1998-2012 OpenLink Software <vos.admin at openlinksw.com>
 
 
 Table of Contents
@@ -34,6 +34,9 @@ Table of Contents
  * .... Mac OS X 10.6 32-bit
  * .... Mac OS X 10.6 64-bit
  * .... Mac OS X 10.6 Universal
+ * .... Mac OS X 10.7 32-bit
+ * .... Mac OS X 10.7 64-bit
+ * .... Mac OS X 10.7 Universal
  * .... Solaris 2.x i386 32-bit
  * .... Solaris 2.10 Opteron 32-bit
  * .... Solaris 2.10 Opteron 64-bit
@@ -313,6 +316,24 @@ Mac OS X 10.6 Universal
     export CFLAGS
     ./configure --disable-dependency-tracking ...
 
+Mac OS X 10.7 32-bit
+--------------------
+    CFLAGS="-O -m32 -mmacosx-version-min=10.7"
+    export CFLAGS
+    ./configure ...
+
+Mac OS X 10.7 64-bit
+--------------------
+    CFLAGS="-O -m64 -mmacosx-version-min=10.7"
+    export CFLAGS
+    ./configure ...
+
+Mac OS X 10.7 Universal 
+-----------------------
+    CFLAGS="-O -arch i386 -arch x86_64 -mmacosx-version-min=10.7"
+    export CFLAGS
+    ./configure --disable-dependency-tracking ...
+
 Solaris 2.x i386 32-bit
 -----------------------
 Note: on Solaris or Open Solaris we recommend you use gmake either from
diff --git a/README.CVS b/README.CVS
index 40b42a3..93f435a 100644
--- a/README.CVS
+++ b/README.CVS
@@ -1,7 +1,21 @@
 Using Virtuoso Open Source Edition CVS Tree
 ===========================================
 
-Copyright (C) 1998-2010 by OpenLink Software <vos.admin at openlinksw.com>
+Copyright (C) 1998-2012 OpenLink Software <vos.admin at openlinksw.com>
+
+
+NOTICE
+======
+
+The Virtuoso Open Source development team has decided to stop using
+CVS in favour of GIT. The VOS 6.1.5 version will be the last version
+in CVS tree on sourceforge.net. Users who are tracking the Virtuoso
+Open Source project or want to aid in it's development are encouraged
+to move with us to github via:
+
+  https://github.com/openlink/virtuoso-opensource
+
+For information about GIT see also README.GIT
 
 
 Introduction
diff --git a/README.GIT b/README.GIT
new file mode 100644
index 0000000..8cf774e
--- /dev/null
+++ b/README.GIT
@@ -0,0 +1,152 @@
+Using Virtuoso Open Source Edition GIT Tree
+===========================================
+
+Copyright (C) 1998-2012 OpenLink Software <vos.admin at openlinksw.com>
+
+
+Introduction
+============
+
+This document describes how to checkout a copy of the git tree for
+development purposes. It also lists the packages that need to be
+installed prior to generating the necessary scripts and Makefiles to
+build the project.
+
+Git access is only needed for developers who want to actively track
+progress of the Virtuoso source code and contribute bugfixes or
+enhancements to the project. It requires basic knowledge of git
+itself, the general layout of open source and GNU projects, the use
+of autoconf and automake etc, which is beyond the scope of this
+document. 
+
+If you have any questions, please email us at <vos.admin at openlinksw.com>.
+
+
+Git Archive Server Access
+=========================
+
+For main development OpenLink Software will publish the Virtuoso
+Open Source tree to GitHub and encourage everyone who is interested
+in tracking the project, to make an account there.
+
+Users who mainly just want to track the code can use the following
+command to get a copy of the tree:
+
+    $ git clone git://github.com/openlink/virtuoso-opensource.git
+
+
+At this point you can create your own work branch based on any of
+the branches available, create bugfixes and commit them to your own
+branch and then use the 'git format-patch' command to generate the
+appropriate diffs to send to:
+
+    vos.admin at openlinksw.com
+
+
+Developers are encouraged to fork the project using GitHub, create
+their own branches to make enhancements/bugfixes and then send pull
+requests using the excellent GitHub interface for the OpenLink team
+to examine and incorporate the fixes into the master tree for an
+upcoming release.
+
+Github has excellent documentation on how to fork a project, send
+pull requests, track the project etc. on:
+
+    http://help.github.com/
+
+
+OpenLink Software will continue to use sourceforge.net for the
+source tarball releases and certain binary releases, and for
+completenes will also provides read-only Git Archive access.
+
+For more information read:
+
+   https://sourceforge.net/scm/?type=git&group_id=161622
+
+
+
+
+Package Dependencies
+====================
+
+To generate the configure script and all other build files necessary,
+please make sure the following packages and recommended versions are
+installed on your system.
+
+    Package   Version  From
+    autoconf  2.57     http://www.gnu.org/software/autoconf/
+    automake  1.9      http://www.gnu.org/software/automake/
+    libtool   1.5      http://www.gnu.org/software/libtool/
+    flex      2.5.33   http://flex.sourceforge.net/
+    bison     2.3      http://www.gnu.org/software/bison/
+    gperf     2.7.2    http://www.gnu.org/software/gperf/
+    gawk      3.1.1    http://www.gnu.org/software/gawk/
+    m4        1.4.1    http://www.gnu.org/software/m4/
+    make      3.79.1   http://www.gnu.org/software/make/
+    OpenSSL   0.9.7    http://www.openssl.org/
+
+and any GNU packages required by these. The autogen.sh and configure
+scripts check for the presence and right version of some of the required
+components.
+
+The above version are the minimum recommended versions of these
+packages. Older version of these packages can sometimes be used, but
+could cause build problems.
+
+To check the version number of the tools installed on your system,
+use one of the following commands:
+
+  * autoconf --version
+  * automake --version
+  * libtoolize --version
+  * flex --version
+  * bison --version
+  * gperf --version
+  * gawk --version
+  * m4 --version
+  * make --version
+  * openssl version
+
+If you have an older version than automake version 1.9 you can edit
+the configure.in script around line 47 using the examples provided for
+each version.
+
+
+Diskspace Requirements
+======================
+
+The build produces a demo database and Virtuoso application packages
+that are quite large. At least 800 MB of free space should be available
+in the build file system.
+
+When running `make install', the target file system should have about 460
+MB free. By default, the install target directories are under /usr/local/,
+but you can specify
+
+    ./configure --prefix=/path/to/dir
+
+instead.
+
+The minimum working configuration consists of the server executable
+and config files plus database, no more than a few MB for the server
+executable, depending on platform and options.
+
+
+Generate build files
+====================
+
+To generate the configure script and all related build files, use use
+the supplied script in your CVS checkout directory:
+
+    $ ./autogen.sh
+
+If the above command succeed without any error messages, please use the
+following command to check out all the options you can use:
+
+    $ ./configure --help
+
+Certain build targets are only enabled when the --enable-maintainer-mode
+flag is added to configure.
+
+Please read the files INSTALL and README in this directory for further
+information on how to configure the package and install it on your system.
diff --git a/aclocal.m4 b/aclocal.m4
index ac48335..95c1bb7 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.10 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
+# 2005, 2006  Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -11,15 +11,12 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
-m4_ifndef([AC_AUTOCONF_VERSION],
-  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
-[m4_warning([this file was generated for autoconf 2.68.
-You have another version of autoconf.  It may work, but is not guaranteed to.
-If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically `autoreconf'.])])
+m4_if(m4_PACKAGE_VERSION, [2.61],,
+[m4_fatal([this file was generated for autoconf 2.61.
+You have another version of autoconf.  If you want to use that,
+you should regenerate the build system entirely.], [63])])
 
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2005, 2006  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -31,10 +28,10 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.11'
+[am__api_version='1.10'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11.1], [],
+m4_if([$1], [1.10], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -48,12 +45,10 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # AM_SET_CURRENT_AUTOMAKE_VERSION
 # -------------------------------
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.1])dnl
-m4_ifndef([AC_AUTOCONF_VERSION],
-  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+[AM_AUTOMAKE_VERSION([1.10])dnl
+_AM_AUTOCONF_VERSION(m4_PACKAGE_VERSION)])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
@@ -110,14 +105,14 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 9
+# serial 8
 
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
@@ -130,7 +125,6 @@ AC_SUBST([$1_TRUE])dnl
 AC_SUBST([$1_FALSE])dnl
 _AM_SUBST_NOTMAKE([$1_TRUE])dnl
 _AM_SUBST_NOTMAKE([$1_FALSE])dnl
-m4_define([_AM_COND_VALUE_$1], [$2])dnl
 if $2; then
   $1_TRUE=
   $1_FALSE='#'
@@ -144,14 +138,14 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 10
+# serial 9
 
 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
@@ -208,16 +202,6 @@ AC_CACHE_CHECK([dependency style of $depcc],
   if test "$am_compiler_list" = ""; then
      am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
   fi
-  am__universal=false
-  m4_case([$1], [CC],
-    [case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac],
-    [CXX],
-    [case " $depcc " in #(
-     *\ -arch\ *\ -arch\ *) am__universal=true ;;
-     esac])
-
   for depmode in $am_compiler_list; do
     # Setup a source with many dependencies, because some compilers
     # like to wrap large dependency lists on column 80 (with \), and
@@ -235,17 +219,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
     case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
     nosideeffect)
       # after this tag, mechanisms are not by side-effect, so they'll
       # only be used when explicitly requested
@@ -255,23 +229,19 @@ AC_CACHE_CHECK([dependency style of $depcc],
 	break
       fi
       ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
     none) break ;;
     esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
     if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
+       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
          >/dev/null 2>conftest.err &&
        grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
       # or remarks (even with -Werror).  So we grep stderr for any message
@@ -328,68 +298,57 @@ _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-#serial 5
+#serial 3
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[{
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
-  # are listed without --file.  Let's play safe and only enable the eval
-  # if we detect the quoting.
-  case $CONFIG_FILES in
-  *\'*) eval set x "$CONFIG_FILES" ;;
-  *)   set x $CONFIG_FILES ;;
-  esac
-  shift
-  for mf
-  do
-    # Strip MF so we end up with the name of the file.
-    mf=`echo "$mf" | sed -e 's/:.*$//'`
-    # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
-    # some people rename them; so instead we look at the file content.
-    # Grep'ing the first line is not enough: some people post-process
-    # each Makefile.in and add a new line on top of each file to say so.
-    # Grep'ing the whole file is not good either: AIX grep has a line
-    # limit of 2048, but all sed's we know have understand at least 4000.
-    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-      dirpart=`AS_DIRNAME("$mf")`
-    else
-      continue
-    fi
-    # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
-    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-    test -z "$DEPDIR" && continue
-    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
-    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
-    # Find all dependency output files, they are included files with
-    # $(DEPDIR) in their names.  We invoke sed twice because it is the
-    # simplest approach to changing $(DEPDIR) to its actual value in the
-    # expansion.
-    for file in `sed -n "
-      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
-      # Make sure the directory exists.
-      test -f "$dirpart/$file" && continue
-      fdir=`AS_DIRNAME(["$file"])`
-      AS_MKDIR_P([$dirpart/$fdir])
-      # echo "creating $dirpart/$file"
-      echo '# dummy' > "$dirpart/$file"
-    done
+[for mf in $CONFIG_FILES; do
+  # Strip MF so we end up with the name of the file.
+  mf=`echo "$mf" | sed -e 's/:.*$//'`
+  # Check whether this is an Automake generated Makefile or not.
+  # We used to match only the files named `Makefile.in', but
+  # some people rename them; so instead we look at the file content.
+  # Grep'ing the first line is not enough: some people post-process
+  # each Makefile.in and add a new line on top of each file to say so.
+  # Grep'ing the whole file is not good either: AIX grep has a line
+  # limit of 2048, but all sed's we know have understand at least 4000.
+  if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then
+    dirpart=`AS_DIRNAME("$mf")`
+  else
+    continue
+  fi
+  # Extract the definition of DEPDIR, am__include, and am__quote
+  # from the Makefile without running `make'.
+  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  am__include=`sed -n 's/^am__include = //p' < "$mf"`
+  test -z "am__include" && continue
+  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n 's/^U = //p' < "$mf"`
+  # Find all dependency output files, they are included files with
+  # $(DEPDIR) in their names.  We invoke sed twice because it is the
+  # simplest approach to changing $(DEPDIR) to its actual value in the
+  # expansion.
+  for file in `sed -n "
+    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`AS_DIRNAME(["$file"])`
+    AS_MKDIR_P([$dirpart/$fdir])
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
   done
-}
+done
 ])# _AM_OUTPUT_DEPENDENCY_COMMANDS
 
 
@@ -421,13 +380,13 @@ AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
 # Do all the work for Automake.                             -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+# 2005, 2006 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 16
+# serial 12
 
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
@@ -444,7 +403,7 @@ AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
 # arguments mandatory, and then we can depend on a new Autoconf
 # release and drop the old call support.
 AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.62])dnl
+[AC_PREREQ([2.60])dnl
 dnl Autoconf wants to disallow AM_ names.  We explicitly allow
 dnl the ones we care about.
 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@@ -495,8 +454,8 @@ AM_MISSING_PROG(AUTOCONF, autoconf)
 AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
 AM_MISSING_PROG(AUTOHEADER, autoheader)
 AM_MISSING_PROG(MAKEINFO, makeinfo)
-AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
 AC_REQUIRE([AM_PROG_MKDIR_P])dnl
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
@@ -504,37 +463,24 @@ AC_REQUIRE([AC_PROG_AWK])dnl
 AC_REQUIRE([AC_PROG_MAKE_SET])dnl
 AC_REQUIRE([AM_SET_LEADING_DOT])dnl
 _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
-	      [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
-			     [_AM_PROG_TAR([v7])])])
+              [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+	      		     [_AM_PROG_TAR([v7])])])
 _AM_IF_OPTION([no-dependencies],,
 [AC_PROVIDE_IFELSE([AC_PROG_CC],
-		  [_AM_DEPENDENCIES(CC)],
-		  [define([AC_PROG_CC],
-			  defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+                  [_AM_DEPENDENCIES(CC)],
+                  [define([AC_PROG_CC],
+                          defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_CXX],
-		  [_AM_DEPENDENCIES(CXX)],
-		  [define([AC_PROG_CXX],
-			  defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+                  [_AM_DEPENDENCIES(CXX)],
+                  [define([AC_PROG_CXX],
+                          defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_OBJC],
-		  [_AM_DEPENDENCIES(OBJC)],
-		  [define([AC_PROG_OBJC],
-			  defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+                  [_AM_DEPENDENCIES(OBJC)],
+                  [define([AC_PROG_OBJC],
+                          defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
 ])
-_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
-dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
-dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
-AC_CONFIG_COMMANDS_PRE(dnl
-[m4_provide_if([_AM_COMPILER_EXEEXT],
-  [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
 ])
 
-dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
-dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
-dnl mangled by Autoconf and run in a shell conditional statement.
-m4_define([_AC_COMPILER_EXEEXT],
-m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-
 
 # When config.status generates a header, we must update the stamp-h file.
 # This file resides in the same directory as the config header
@@ -545,19 +491,18 @@ m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
 # our stamp files there.
 AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
 [# Compute $1's index in $config_headers.
-_am_arg=$1
 _am_stamp_count=1
 for _am_header in $config_headers :; do
   case $_am_header in
-    $_am_arg | $_am_arg:* )
+    $1 | $1:* )
       break ;;
     * )
       _am_stamp_count=`expr $_am_stamp_count + 1` ;;
   esac
 done
-echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001, 2003, 2005, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -568,14 +513,7 @@ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_co
 # Define $install_sh.
 AC_DEFUN([AM_PROG_INSTALL_SH],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
-  *)
-    install_sh="\${SHELL} $am_aux_dir/install-sh"
-  esac
-fi
+install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
 AC_SUBST(install_sh)])
 
 # Copyright (C) 2003, 2005  Free Software Foundation, Inc.
@@ -623,38 +561,27 @@ fi])
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 5
+# serial 4
 
-# AM_MAINTAINER_MODE([DEFAULT-MODE])
-# ----------------------------------
-# Control maintainer-specific portions of Makefiles.
-# Default is to disable them, unless `enable' is passed literally.
-# For symmetry, `disable' may be passed as well.  Anyway, the user
-# can override the default with the --enable/--disable switch.
 AC_DEFUN([AM_MAINTAINER_MODE],
-[m4_case(m4_default([$1], [disable]),
-       [enable], [m4_define([am_maintainer_other], [disable])],
-       [disable], [m4_define([am_maintainer_other], [enable])],
-       [m4_define([am_maintainer_other], [enable])
-        m4_warn([syntax], [unexpected argument to AM@&t at _MAINTAINER_MODE: $1])])
-AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
-  dnl maintainer-mode's default is 'disable' unless 'enable' is passed
-  AC_ARG_ENABLE([maintainer-mode],
-[  --][am_maintainer_other][-maintainer-mode  am_maintainer_other make rules and dependencies not useful
+[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+  dnl maintainer-mode is disabled by default
+  AC_ARG_ENABLE(maintainer-mode,
+[  --enable-maintainer-mode  enable make rules and dependencies not useful
 			  (and sometimes confusing) to the casual installer],
-      [USE_MAINTAINER_MODE=$enableval],
-      [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+      USE_MAINTAINER_MODE=$enableval,
+      USE_MAINTAINER_MODE=no)
   AC_MSG_RESULT([$USE_MAINTAINER_MODE])
-  AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+  AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
   MAINT=$MAINTAINER_MODE_TRUE
-  AC_SUBST([MAINT])dnl
+  AC_SUBST(MAINT)dnl
 ]
 )
 
@@ -662,13 +589,13 @@ AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
 
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2009  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# serial 3
 
 # AM_MAKE_INCLUDE()
 # -----------------
@@ -677,7 +604,7 @@ AC_DEFUN([AM_MAKE_INCLUDE],
 [am_make=${MAKE-make}
 cat > confinc << 'END'
 am__doit:
-	@echo this is the am__doit target
+	@echo done
 .PHONY: am__doit
 END
 # If we don't find an include directive, just comment out the code.
@@ -687,24 +614,24 @@ am__quote=
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
-  am__include=include
-  am__quote=
-  _am_result=GNU
-  ;;
-esac
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+   am__include=include
+   am__quote=
+   _am_result=GNU
+fi
 # Now try BSD make style include.
 if test "$am__include" = "#"; then
    echo '.include "confinc"' > confmf
-   case `$am_make -s -f confmf 2> /dev/null` in #(
-   *the\ am__doit\ target*)
-     am__include=.include
-     am__quote="\""
-     _am_result=BSD
-     ;;
-   esac
+   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+      am__include=.include
+      am__quote="\""
+      _am_result=BSD
+   fi
 fi
 AC_SUBST([am__include])
 AC_SUBST([am__quote])
@@ -714,14 +641,14 @@ rm -f confinc confmf
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 6
+# serial 5
 
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
@@ -738,14 +665,7 @@ AC_SUBST($1)])
 AC_DEFUN([AM_MISSING_HAS_RUN],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 AC_REQUIRE_AUX_FILE([missing])dnl
-if test x"${MISSING+set}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
-fi
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
 # Use eval to expand $SHELL
 if eval "$MISSING --run true"; then
   am_missing_run="$MISSING --run "
@@ -783,13 +703,13 @@ esac
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# serial 3
 
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
@@ -806,7 +726,7 @@ AC_DEFUN([_AM_SET_OPTION],
 # ----------------------------------
 # OPTIONS is a space-separated list of Automake options.
 AC_DEFUN([_AM_SET_OPTIONS],
-[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
 
 # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
 # -------------------------------------------
@@ -833,14 +753,14 @@ AC_DEFUN([AM_RUN_LOG],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 5
+# serial 4
 
 # AM_SANITY_CHECK
 # ---------------
@@ -849,29 +769,16 @@ AC_DEFUN([AM_SANITY_CHECK],
 # Just in case
 sleep 1
 echo timestamp > conftest.file
-# Reject unsafe characters in $srcdir or the absolute working directory
-# name.  Accept space and tab only in the latter.
-am_lf='
-'
-case `pwd` in
-  *[[\\\"\#\$\&\'\`$am_lf]]*)
-    AC_MSG_ERROR([unsafe absolute working directory name]);;
-esac
-case $srcdir in
-  *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
-    AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
-esac
-
 # Do `set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
    if test "$[*]" = "X"; then
       # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
+      set X `ls -t $srcdir/configure conftest.file`
    fi
    rm -f conftest.file
    if test "$[*]" != "X $srcdir/configure conftest.file" \
@@ -924,25 +831,18 @@ fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2006  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
-# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# Prevent Automake from outputing VARIABLE = @VARIABLE@ in Makefile.in.
 # This macro is traced by Automake.
 AC_DEFUN([_AM_SUBST_NOTMAKE])
 
-# AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
-# Public sister of _AM_SUBST_NOTMAKE.
-AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
-
 # Check how to create a tarball.                            -*- Autoconf -*-
 
 # Copyright (C) 2004, 2005  Free Software Foundation, Inc.
diff --git a/appsrc/Makefile.am b/appsrc/Makefile.am
index d271b54..80e4fc4 100644
--- a/appsrc/Makefile.am
+++ b/appsrc/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/Makefile.in b/appsrc/Makefile.in
index ef7a5fe..704267b 100644
--- a/appsrc/Makefile.in
+++ b/appsrc/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -37,9 +36,8 @@
 #  
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -69,7 +67,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -81,38 +78,10 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	ps-recursive uninstall-recursive
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-	distdir
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-am__relativize = \
-  dir0=`pwd`; \
-  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
-  sed_rest='s,^[^/]*/*,,'; \
-  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
-  sed_butlast='s,/*[^/]*$$,,'; \
-  while test -n "$$dir1"; do \
-    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
-    if test "$$first" != "."; then \
-      if test "$$first" = ".."; then \
-        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
-        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
-      else \
-        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
-        if test "$$first2" = "$$first"; then \
-          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
-        else \
-          dir2="../$$dir2"; \
-        fi; \
-        dir0="$$dir0"/"$$first"; \
-      fi; \
-    fi; \
-    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
-  done; \
-  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
 AM_LDFLAGS = @AM_LDFLAGS@
@@ -200,7 +169,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -284,7 +252,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -305,7 +272,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -331,14 +297,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu appsrc/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu appsrc/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  appsrc/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  appsrc/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -356,7 +322,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -371,7 +336,7 @@ clean-libtool:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
+	@failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -388,7 +353,7 @@ $(RECURSIVE_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done; \
 	if test "$$dot_seen" = "no"; then \
@@ -396,7 +361,7 @@ $(RECURSIVE_TARGETS):
 	fi; test -z "$$fail"
 
 $(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
+	@failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -422,16 +387,16 @@ $(RECURSIVE_CLEAN_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 	done
 ctags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 	done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -439,14 +404,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	set x; \
+	tags=; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
 	  include_option=--etags-include; \
@@ -458,43 +423,39 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test ! -f $$subdir/TAGS || \
-	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
 	fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
+	     $$tags $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -515,44 +476,29 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d "$(distdir)/$$subdir" \
 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
 	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
-	    $(am__relativize); \
-	    new_distdir=$$reldir; \
-	    dir1=$$subdir; dir2="$(top_distdir)"; \
-	    $(am__relativize); \
-	    new_top_distdir=$$reldir; \
-	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
-	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
-	    ($(am__cd) $$subdir && \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
 	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$new_top_distdir" \
-	        distdir="$$new_distdir" \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
 		am__remove_distdir=: \
 		am__skip_length_check=: \
-		am__skip_mode_fix=: \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
@@ -582,7 +528,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -601,8 +546,6 @@ dvi-am:
 
 html: html-recursive
 
-html-am:
-
 info: info-recursive
 
 info-am:
@@ -611,28 +554,18 @@ install-data-am:
 
 install-dvi: install-dvi-recursive
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-recursive
 
-install-html-am:
-
 install-info: install-info-recursive
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-recursive
 
-install-pdf-am:
-
 install-ps: install-ps-recursive
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -653,8 +586,8 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+	install-strip
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am check check-am clean clean-generic clean-libtool \
@@ -670,7 +603,6 @@ uninstall-am:
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
 	uninstall uninstall-am
 
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/appsrc/ODS-Addressbook/Makefile.am b/appsrc/ODS-Addressbook/Makefile.am
index b4ce644..aa7f85e 100644
--- a/appsrc/ODS-Addressbook/Makefile.am
+++ b/appsrc/ODS-Addressbook/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2007 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -44,8 +44,10 @@ clean-local:
 	-rm -rf vad
 
 EXTRA_DIST = \
+	*.dox \
 	make_vad.sh \
 	sql/*.sql \
+	vad_version \
 	www/*.vsp \
 	www/*.vspx \
 	www/css/*.css \
diff --git a/appsrc/ODS-Addressbook/Makefile.in b/appsrc/ODS-Addressbook/Makefile.in
index 356db60..27335d1 100644
--- a/appsrc/ODS-Addressbook/Makefile.in
+++ b/appsrc/ODS-Addressbook/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2007 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -38,9 +37,8 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -70,7 +68,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -78,23 +75,9 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(vaddir)"
+nodist_vadDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(nodist_vad_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -184,7 +167,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -268,7 +250,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -289,7 +270,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -307,8 +287,10 @@ CLEANFILES = \
 	virtuoso.trx
 
 EXTRA_DIST = \
+	*.dox \
 	make_vad.sh \
 	sql/*.sql \
+	vad_version \
 	www/*.vsp \
 	www/*.vspx \
 	www/css/*.css \
@@ -327,14 +309,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu appsrc/ODS-Addressbook/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu appsrc/ODS-Addressbook/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  appsrc/ODS-Addressbook/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  appsrc/ODS-Addressbook/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -352,7 +334,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -362,23 +343,20 @@ clean-libtool:
 install-nodist_vadDATA: $(nodist_vad_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(vaddir)" || $(MKDIR_P) "$(DESTDIR)$(vaddir)"
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	for p in $$list; do \
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vaddir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(vaddir)" || exit $$?; \
+	  f=$(am__strip_dir) \
+	  echo " $(nodist_vadDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(vaddir)/$$f'"; \
+	  $(nodist_vadDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(vaddir)/$$f"; \
 	done
 
 uninstall-nodist_vadDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(vaddir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(vaddir)" && rm -f $$files
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(vaddir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(vaddir)/$$f"; \
+	done
 tags: TAGS
 TAGS:
 
@@ -402,17 +380,13 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
@@ -444,7 +418,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -463,8 +436,6 @@ dvi-am:
 
 html: html-am
 
-html-am:
-
 info: info-am
 
 info-am:
@@ -473,28 +444,18 @@ install-data-am: install-nodist_vadDATA
 
 install-dvi: install-dvi-am
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-am
 
-install-html-am:
-
 install-info: install-info-am
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-am
 
-install-pdf-am:
-
 install-ps: install-ps-am
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -535,7 +496,6 @@ ods_addressbook_dav.vad: $(EXTRA_DIST)
 
 clean-local:
 	-rm -rf vad
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/appsrc/ODS-Addressbook/ODS-Addressbook.dox b/appsrc/ODS-Addressbook/ODS-Addressbook.dox
new file mode 100644
index 0000000..5930f15
--- /dev/null
+++ b/appsrc/ODS-Addressbook/ODS-Addressbook.dox
@@ -0,0 +1,30 @@
+/**
+\defgroup ods_module_addressbook ODS Addressbook API
+
+ODS-Addressbook offers features to add, manage, and organize contacts for every ODS user.
+
+\section oids_addressbook_features Feature Highlights
+
+- Create/Update/Delete Contact.
+- Organize information in four main tabs: Personal, Contact, Home and Business
+- Tag Contacts. One or more contacts can be selected in order to add (n) tags to them. An additional option is to add tags from the user's tags list, so-called "My Tags".
+- Import Contacts: User can import contacts from:
+  - The following file types, found in the local file system or WebDAV?:
+    - vCard
+    - FOAF
+    - CSV (the user will be given the opportunity to map fields from the file to Addressbook properties)
+  - LDAP Servers: depends on what servers the user has defined at his User Profile Page->Tab "LDAP Servers"
+- Export contact(s) to vCard, FOAF, or CSV files
+- Share contact(s) with other users
+- View contact(s) others have shared with the user
+- Simple/Advanced Search
+  - Advanced search adds options to:
+    - search among own and/or shared contact(s)
+    - set max rows
+    - order by Name, Link, or Folder
+    - Set Direction of the search results: Desc or Asc
+    - Show a Tag Cloud within search results
+- RSS, Atom, and RDF support
+- SIOC(RDF/XML), SIOC(N3/Turtle) support
+- SyncML? support
+*/
diff --git a/appsrc/ODS-Addressbook/make_vad.sh b/appsrc/ODS-Addressbook/make_vad.sh
index 325abc6..756dd3a 100755
--- a/appsrc/ODS-Addressbook/make_vad.sh
+++ b/appsrc/ODS-Addressbook/make_vad.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: make_vad.sh,v 1.47.2.34 2011/07/04 10:04:00 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2007 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -30,7 +30,7 @@ export LANG LC_ALL
 
 MODE=$1
 LOGDIR=`pwd`
-VERSION="1.4.71"
+VERSION="1.0.0"
 LOGFILE="${LOGDIR}/vad_make.log"
 STICKER_DAV="vad_dav.xml"
 STICKER_FS="vad_filesystem.xml"
@@ -87,6 +87,56 @@ else
   myrm=$RM
 fi
 
+VOS=0
+if [ -f ../../autogen.sh ]
+then
+    VOS=1
+fi
+
+version_init()
+{
+  if [ $VOS -eq 1 ]
+  then
+      if [ -f vad_version ]
+      then
+	  VERSION=`cat vad_version`
+      else
+        LOG "The vad_version does not exist, please verify your checkout"
+	exit 1
+      fi
+  else
+      rm -f version.tmp
+      for i in `find . -name 'Entries' | grep -v "vad/" | grep -v "/tests/"`; do
+	  cat "$i" | grep -v "version\."| grep "^[^D].*" | cut -f 3 -d "/" | sed -e "s/1\.//g" >> version.tmp
+      done
+      LANG=POSIX
+      export LANG
+
+      BASE="0"
+#      echo $BASE
+      if [ -f version.base ] ; then
+	  BASE=`cat version.base`
+      fi
+
+      VERSION=`cat version.tmp | awk ' BEGIN { cnt=10 } { cnt = cnt + $1 } END { print cnt }'`
+
+      VERSION=`expr $BASE + $VERSION`
+      CURR_VERSION=$VERSION
+      if [ -f version.curr ] ; then
+	  CURR_VERSION=`cat version.curr`
+      fi
+      if [ $CURR_VERSION -gt $VERSION ] ; then
+	  BASE=`expr $CURR_VERSION - $VERSION + 1`
+	  echo $BASE > version.base
+	  VERSION=$CURR_VERSION
+      fi
+      echo $VERSION > version.curr
+      VERSION=`echo $VERSION | awk ' { printf "1.%02.02f", $1/100 }'`
+      rm -f version.tmp
+      echo "$VERSION" > vad_version
+  fi
+}
+
 virtuoso_start() {
   echo "Starting $SERVER"
   echo $BUILD
@@ -222,7 +272,7 @@ sticker_init() {
   echo "  <name package=\"AddressBook\">" >> $STICKER
   echo "    <prop name=\"Title\" value=\"ODS AddressBook Manager\"/>" >> $STICKER
   echo "    <prop name=\"Developer\" value=\"OpenLink Software\"/>" >> $STICKER
-  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2011 OpenLink Software\"/>" >> $STICKER
+  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2012 OpenLink Software\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.com/virtuoso\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.co.uk/virtuoso\"/>" >> $STICKER
   echo "  </name>" >> $STICKER
@@ -234,8 +284,8 @@ sticker_init() {
   echo "<dependencies>" >> $STICKER
   echo "  <require>" >> $STICKER
   echo "    <name package=\"Framework\"/>" >> $STICKER
-  echo "    <versions_later package=\"1.82.42\">" >> $STICKER
-  echo "      <prop name=\"Date\" value=\"2011-06-15 12:00\" />" >> $STICKER
+  echo "    <versions_later package=\"1.86.16\">" >> $STICKER
+  echo "      <prop name=\"Date\" value=\"2012-04-18 12:00\" />" >> $STICKER
   echo "      <prop name=\"Comment\" value=\"An incompatible version of the ODS Framework\" />" >> $STICKER
   echo "    </versions_later>" >> $STICKER
   echo "  </require>" >> $STICKER
@@ -263,6 +313,7 @@ sticker_init() {
   echo "      DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"/AddressBook/sql/ab-a-update.sql', 1, 'report', $ISDAV);" >> $STICKER
   echo "      DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"/AddressBook/sql/ab-a-api.sql', 1, 'report', $ISDAV);" >> $STICKER
   echo "      DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"/AddressBook/sql/sioc_ab.sql', 1, 'report', $ISDAV);" >> $STICKER
+  echo "      DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"/AddressBook/sql/DET_CardDAV.sql', 1, 'report', $ISDAV);" >> $STICKER
   echo "    ]]>" >> $STICKER
   echo "  </sql>" >> $STICKER
   echo "  <sql purpose=\"pre-uninstall\">" >> $STICKER
@@ -377,6 +428,7 @@ echo '----------------------'
 
 STOP_SERVER
 directory_clean
+version_init
 directory_init
 virtuoso_init
 if [ "$MODE" = "" ] || [ "$MODE" = "1" ]
@@ -393,7 +445,6 @@ virtuoso_shutdown
 STOP_SERVER
 chmod 644 ods_addressbook_dav.vad
 chmod 644 ods_addressbook_filesystem.vad
-directory_clean
 
 CHECK_LOG
 RUN egrep  '"\*\*.*FAILED:|\*\*.*ABORTED:"' "$LOGFILE"
@@ -403,5 +454,7 @@ then
 	exit 1
 fi
 
+directory_clean
+
 BANNER "COMPLETED VAD PACKAGING"
 exit 0
diff --git a/appsrc/ODS-Addressbook/sql/DET_CardDAV.sql b/appsrc/ODS-Addressbook/sql/DET_CardDAV.sql
new file mode 100755
index 0000000..f955e13
--- /dev/null
+++ b/appsrc/ODS-Addressbook/sql/DET_CardDAV.sql
@@ -0,0 +1,1091 @@
+--
+--
+--  $Id$
+--
+--  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+--  project.
+--
+--  Copyright (C) 1998-2012 OpenLink Software
+--
+--  This project is free software; you can redistribute it and/or modify it
+--  under the terms of the GNU General Public License as published by the
+--  Free Software Foundation; only version 2 of the License, dated June 1991.
+--
+--  This program is distributed in the hope that it will be useful, but
+--  WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+--  General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License along
+--  with this program; if not, write to the Free Software Foundation, Inc.,
+--  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+--
+use DB
+;
+
+--| This matches DAV_AUTHENTICATE (in id any, in what char(1), in req varchar, in a_uname varchar, in a_pwd varchar, in a_uid integer := null)
+--| The difference is that the DET function should not check whether the pair of name and password is valid; the auth_uid is not a null already.
+create function "CardDAV_DAV_AUTHENTICATE" (
+  in id any,
+  in what char(1),
+  in req varchar,
+  in auth_uname varchar,
+  in auth_pwd varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('CardDAV_DAV_AUTHENTICATE (', id, what, req, auth_uname, auth_pwd, auth_uid, http_dav_uid(), ')');
+  declare domain_id, item_id integer;
+  declare rc any;
+
+  rc := '';
+  domain_id := id[3];
+  if (not exists (select 1 from DB.DBA.WA_INSTANCE where WAI_ID = domain_id))
+    return -1;
+
+  if ('R' = what)
+  {
+    item_id := id[4];
+    if (not exists (select 1 from AB.WA.PERSONS where P_ID = item_id))
+      return -1;
+
+    rc := AB.WA.acl_check (domain_id, item_id);
+  }
+  else
+  {
+    rc := AB.WA.acl_check (domain_id);
+  }
+  if (rc <> '')
+  {
+    if ((rc = 'R') and (req = '1__'))
+      return http_nobody_uid ();
+
+    if ((rc = 'W') and (req = '11_'))
+      return http_nobody_uid ();
+  }
+  return -20;
+}
+;
+
+--| This exactly matches DAV_AUTHENTICATE_HTTP (in id any, in what char(1), in req varchar, in can_write_http integer, inout a_lines any, inout a_uname varchar, inout a_pwd varchar, inout a_uid integer, inout a_gid integer, inout _perms varchar) returns integer
+--| The function should fully check access because DAV_AUTHENTICATE_HTTP do nothing with auth data either before or after calling this DET function.
+--| Unlike DAV_AUTHENTICATE, user name passed to DAV_AUTHENTICATE_HTTP header may not match real DAV user.
+--| If DET call is successful, DAV_AUTHENTICATE_HTTP checks whether the user have read permission on mount point collection.
+--| Thus even if DET function allows anonymous access, the whole request may fail if mountpoint is not readable by public.
+create function "CardDAV_DAV_AUTHENTICATE_HTTP" (
+  in id any,
+  in what char(1),
+  in req varchar,
+  in can_write_http integer,
+  inout a_lines any,
+  inout a_uname varchar,
+  inout a_pwd varchar,
+  inout a_uid integer,
+  inout a_gid integer,
+  inout _perms varchar) returns integer
+{
+  -- dbg_obj_princ ('CardDAV_DAV_AUTHENTICATE_HTTP (', id, what, req, can_write_http, a_lines, a_uname, a_pwd, a_uid, a_gid, _perms, ')');
+  declare domain_id, item_id integer;
+  declare rc any;
+
+  rc := '';
+  domain_id := id[3];
+  if (not exists (select 1 from DB.DBA.WA_INSTANCE where WAI_ID = domain_id))
+    return -1;
+
+  if ('R' = what)
+  {
+    item_id := id[4];
+    if (not exists (select 1 from AB.WA.PERSONS where P_ID = item_id))
+      return -1;
+
+    rc := AB.WA.acl_check (domain_id, item_id);
+  }
+  else
+  {
+    rc := AB.WA.acl_check (domain_id);
+  }
+  if (rc <> '')
+  {
+    a_uid := http_nobody_uid ();
+    a_gid := http_nogroup_gid ();
+    if (rc = 'R')
+      _perms := '1__';
+    else if (rc = 'W')
+      _perms := '11_';
+
+    return a_uid;
+  }
+  return -20;
+}
+;
+
+--| This matches DAV_GET_PARENT (in id any, in st char(1), in path varchar) returns any
+create function "CardDAV_DAV_GET_PARENT" (
+  in id any,
+  in what char(1),
+  in path varchar) returns any
+{
+  -- dbg_obj_princ ('CardDAV_DAV_GET_PARENT (', id, what, path, ')');
+  if ('R' = what)
+{
+    id[4] := 0;
+
+    return id;
+  }
+  if ('C' = what)
+    return id[1];
+
+  return -20;
+}
+;
+
+--| When DAV_COL_CREATE_INT calls DET function, authentication, check for lock and check for overwrite are passed, uid and gid are translated from strings to IDs.
+--| Check for overwrite, but the deletion of previously existing collection should be made by DET function.
+create function "CardDAV_DAV_COL_CREATE" (in detcol_id any, in path_parts any, in permissions varchar, in uid integer, in gid integer, in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CardDAV_DAV_COL_CREATE (', detcol_id, path_parts, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| It looks like that this is redundant and should be removed at all.
+create function "CardDAV_DAV_COL_MOUNT" (in detcol_id any, in path_parts any, in full_mount_path varchar, in mount_det varchar, in permissions varchar, in uid integer, in gid integer, in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CardDAV_DAV_COL_MOUNT (', detcol_id, path_parts, full_mount_path, mount_det, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| It looks like that this is redundant and should be removed at all.
+create function "CardDAV_DAV_COL_MOUNT_HERE" (in parent_id any, in full_mount_path varchar, in permissions varchar, in uid integer, in gid integer, in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CardDAV_DAV_COL_MOUNT_HERE (', parent_id, full_mount_path, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_DELETE_INT calls DET function, authentication and check for lock are passed.
+create function "CardDAV_DAV_DELETE" (
+  in detcol_id any,
+  in path_parts any,
+  in what char(1),
+  in silent integer,
+  in auth_uid integer) returns integer
+{
+  --dbg_obj_princ ('CardDAV_DAV_DELETE (', detcol_id, path_parts, what, silent, auth_uid, ')');
+  declare top_id any;
+  declare rc, owner_uid, domain_id integer;
+
+  if ('C' = what)
+    return -20;
+
+  top_id := "CardDAV_DAV_SEARCH_ID_IMPL" (detcol_id, path_parts, 'R', owner_uid, domain_id);
+  if (top_id = -1)
+    return -20;
+
+  AB.WA.contact_delete (top_id[4], domain_id);
+  return 1;
+}
+;
+
+--| When DAV_RES_UPLOAD_STRSES_INT calls DET function, authentication and check for locks are performed before the call.
+--| There's a special problem, known as 'Transaction deadlock after reading from HTTP session'.
+--| The DET function should do only one INSERT of the 'content' into the table and do it as late as possible.
+--| The function should return -29 if deadlocked or otherwise broken after reading blob from HTTP.
+create function "CardDAV_DAV_RES_UPLOAD" (
+  in detcol_id any,
+  in path_parts any,
+  inout content any,
+  in type varchar,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  --dbg_obj_princ ('CardDAV_DAV_RES_UPLOAD (', detcol_id, path_parts, ', [content], ', content, type, permissions, uid, gid, auth_uid, ')');
+  declare top_id, res any;
+  declare owner_uid, domain_id, item_id, rc integer;
+
+  top_id := "CardDAV_DAV_SEARCH_ID_IMPL" (detcol_id, path_parts, 'R', owner_uid, domain_id);
+  if (top_id <> -1)
+  {
+    rc := AB.WA.contact_delete (top_id[4], domain_id);
+    if (rc < 1)
+      return -20;
+  }
+  if (__tag (content) = 126)
+  {
+    declare real_content any;
+
+    real_content := http_body_read (1);
+    content := string_output_string (real_content);  -- check if bellow code can work with string session and if so remove this line
+  }
+  if ((length (content) = 0) and (top_id = -1))
+  {
+    item_id := AB.WA.contact_update2 (-1, domain_id, 'P_NAME', 'UNLOCK');
+    AB.WA.contact_update2 (item_id, domain_id, 'P_UID', path_parts[1]);
+    return vector (CardDAV__UNAME (), detcol_id, uid, domain_id, item_id, 0);
+  }
+  res := AB.WA.import_vcard (domain_id, content);
+  if (length(res) > 0)
+    return vector (CardDAV__UNAME (), detcol_id, uid, domain_id, path_parts[1], 0);
+
+  return -20;
+}
+;
+
+--| When DAV_PROP_REMOVE_INT calls DET function, authentication and check for locks are performed before the call.
+--| The check whether it's a system name or not is _not_ permitted.
+create function "CardDAV_DAV_PROP_REMOVE" (in id any, in what char(0), in propname varchar, in silent integer, in auth_uid integer) returns integer
+{
+  -- dbg_obj_princ ('CardDAV_DAV_PROP_REMOVE (', id, what, propname, silent, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_PROP_SET_INT calls DET function, authentication and check for locks are performed before the call.
+--| The check whether it's a system property or not is _not_ permitted and the function should return -16 for live system properties.
+create function "CardDAV_DAV_PROP_SET" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in propvalue any,
+  in overwrite integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CardDAV_DAV_PROP_SET (', id, what, propname, propvalue, overwrite, auth_uid, ')');
+  if (propname = 'virt:aci_meta')
+  {
+    declare domain_id, item_id integer;
+
+    domain_id := id[3];
+    if (not exists (select 1 from DB.DBA.WA_INSTANCE where WAI_ID = domain_id))
+      return -1;
+
+    if ('R' = what)
+    {
+      item_id := id[4];
+      if (not exists (select 1 from AB.WA.PERSONS where P_ID = item_id))
+        return -1;
+
+      AB.WA.contact_update2 (item_id, domain_id, 'P_ACL', serialize (propvalue));
+    }
+    else
+    {
+      update DB.DBA.WA_INSTANCE
+         set WAI_ACL = serialize (propvalue)
+       where WAI_ID = domain_id;
+    }
+    return 1;
+  }
+  if (propname[0] = 58)
+    return -16;
+
+  return -20;
+}
+;
+
+--| When DAV_PROP_GET_INT calls DET function, authentication and check whether it's a system property are performed before the call.
+create function "CardDAV_DAV_PROP_GET" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('CardDAV_DAV_PROP_GET (', id, what, propname, auth_uid, ')');
+  if ('virt:aci_meta' = propname)
+  {
+    declare domain_id, item_id integer;
+
+    domain_id := id[3];
+    if (not exists (select 1 from DB.DBA.WA_INSTANCE where WAI_ID = domain_id))
+      return -1;
+
+    if ('R' = what)
+    {
+      item_id := id[4];
+      if (not exists (select 1 from AB.WA.PERSONS where P_ID = item_id))
+        return -1;
+
+      return (select deserialize (P_ACL) from AB.WA.PERSONS where P_DOMAIN_ID = domain_id and P_ID = item_id);
+    }
+    else
+    {
+      return (select deserialize (WAI_ACL) from DB.DBA.WA_INSTANCE where WAI_ID = domain_id);
+    }
+  }
+  if (':virtdet' = propname)
+  {
+    return CardDAV__UNAME();
+  }
+  return -11;
+}
+;
+
+--| When DAV_PROP_LIST_INT calls DET function, authentication is performed before the call.
+--| The returned list should contain only user properties.
+create function "CardDAV_DAV_PROP_LIST" (in id any, in what char(0), in propmask varchar, in auth_uid integer)
+{
+  -- dbg_obj_princ ('CardDAV_DAV_PROP_LIST (', id, what, propmask, auth_uid, ')');
+  return vector ();
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "CardDAV_DAV_DIR_SINGLE" (
+  in id any,
+  in what char(0),
+  in path any,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CardDAV_DAV_DIR_SINGLE (', id, what, path, auth_uid, ')');
+  declare domain_id integer;
+  declare colname, fullpath, rightcol varchar;
+  declare maxrcvdate datetime;
+  declare owner_gid, owner_uid integer;
+  declare access varchar;
+
+  "CardDAV__ACCESS_PARAMS" (id[1], access, owner_gid, owner_uid);
+
+  domain_id := id[3];
+  if (maxrcvdate is null)
+    maxrcvdate := coalesce ( (select max(P_UPDATED) from AB.WA.PERSONS where P_DOMAIN_ID = domain_id), cast ('1980-01-01' as datetime));
+
+  if (cast (maxrcvdate as integer) = 0)
+    maxrcvdate := cast ('1980-01-01' as datetime);
+
+  colname := (select "CardDAV__FIXNAME" (C.WAI_NAME)
+                from SYS_USERS A,
+                     WA_MEMBER B,
+                     WA_INSTANCE C
+               where A.U_ID = id[2]
+                 and B.WAM_USER = A.U_ID
+                 and B.WAM_MEMBER_TYPE = 1
+                 and B.WAM_INST = C.WAI_NAME
+                 and C.WAI_TYPE_NAME = 'AddressBook'
+                 and C.WAI_ID = domain_id);
+  if (DAV_HIDE_ERROR (colname) is null)
+    return -1;
+
+  if (path is not null)
+  {
+    rightcol := path[length(path) - 2];
+    if ('C' = what)
+      return vector (DAV_CONCAT_PATH ('/', path), 'C', 0, maxrcvdate, id, access, 0, id[2], maxrcvdate, 'text/vcard', rightcol );
+  }
+  fullpath := DAV_CONCAT_PATH (DAV_SEARCH_PATH (id[1], 'C'), colname || '/');
+  if ('C' = what)
+  {
+    if (id[4] > 0)
+      return -1;
+
+    return vector (fullpath, 'C', 0, maxrcvdate, id, access, 0, id[2], maxrcvdate, 'text/vcard', colname );
+  }
+  for (select "CardDAV__COMPOSE_ICS_NAME"(P_UID) as orig_mname, P_CREATED, P_UPDATED from AB.WA.PERSONS where P_ID = id[4]) do
+    return vector (fullpath || orig_mname, 'R', 1024, P_UPDATED, id, access, 0, id[2], P_CREATED, 'text/vcard', orig_mname);
+
+  return -1;
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "CardDAV_DAV_DIR_LIST" (
+  in detcol_id any,
+  in path_parts any,
+  in detcol_path varchar,
+  in name_mask varchar,
+  in recursive integer,
+  in auth_uid integer) returns any
+{
+  --dbg_obj_princ ('CardDAV_DAV_DIR_LIST (', detcol_id, path_parts, detcol_path, name_mask, recursive, auth_uid,  ')');
+  declare domain_id, owner_gid, owner_uid integer;
+  declare top_davpath, access varchar;
+  declare res any;
+  declare top_id, descnames any;
+  declare what char (1);
+
+  "CardDAV__ACCESS_PARAMS" (detcol_id, access, owner_gid, owner_uid);
+  what := case when ((0 = length (path_parts)) or ('' = path_parts[length (path_parts) - 1])) then 'C' else 'R' end;
+  if (isarray (detcol_id) and (recursive = -1))
+    return "CardDAV_DAV_DIR_SINGLE" (detcol_id, what, CardDAV_DAV_SEARCH_PATH (detcol_id, what), auth_uid);
+
+  domain_id := 0;
+  if ('C' = what and 1 = length(path_parts))
+  {
+    top_id := vector (CardDAV__UNAME (), detcol_id, owner_uid, 0, 0, 0); -- may be a fake id because top_id[3] may be NULL
+  } else {
+    top_id := "CardDAV_DAV_SEARCH_ID_IMPL" (detcol_id, path_parts, what, owner_uid, domain_id);
+  }
+  if (DAV_HIDE_ERROR (top_id) is null)
+    return vector();
+
+  top_davpath := DAV_CONCAT_PATH (detcol_path, path_parts);
+  if ('R' = what)
+    return vector ("CardDAV_DAV_DIR_SINGLE" (top_id, what, top_davpath, auth_uid));
+
+  res := vector();
+  if ('C' = what)
+  {
+    -- Top level
+    if (top_id[3] = 0)
+    {
+      for select "CardDAV__FIXNAME"(C.WAI_NAME) as orig_name,
+                 C.WAI_ID as dom_id
+            from SYS_USERS A,
+                 WA_MEMBER B,
+                 WA_INSTANCE C
+           where A.U_ID = owner_uid
+             and B.WAM_USER = A.U_ID
+             and B.WAM_MEMBER_TYPE = 1
+             and B.WAM_INST = C.WAI_NAME
+             and C.WAI_TYPE_NAME = 'AddressBook'
+      do
+      {
+         res := vector_concat (res, vector (vector (DAV_CONCAT_PATH (top_davpath, orig_name) || '/', 'C', 0, now(),
+                  vector (CardDAV__UNAME (), detcol_id, owner_uid, dom_id, 0, 0),
+                  access, owner_gid, owner_uid, now(), 'text/vcard', orig_name) ) );
+      }
+      return res;
+    }
+  }
+  for select "CardDAV__COMPOSE_ICS_NAME"(P_UID) as orig_mname, P_ID, P_CREATED, P_UPDATED
+        from AB.WA.PERSONS
+       where P_DOMAIN_ID = top_id[3]
+  do
+  {
+    res := vector_concat (res, vector (vector (DAV_CONCAT_PATH (top_davpath, orig_mname), 'R', 1024, P_UPDATED,
+    vector (CardDAV__UNAME (), detcol_id, owner_uid, top_id[3], P_ID, 0),
+    access, owner_gid, owner_uid, P_CREATED, 'text/vcard', orig_mname) ) );
+  }
+  return res;
+}
+;
+
+create procedure "CardDAV_DAV_FC_PRED_METAS" (inout pred_metas any)
+{
+  pred_metas := vector(
+    'P_ID',             vector ('PERSONS'     , 0, 'integer' ,  'P_ID'   ),
+    'P_DOMAIN_ID',      vector ('PERSONS'     , 0, 'integer' , 'P_DOMAIN_ID'   ),
+    'RES_NAME',         vector ('PERSONS'     , 0, 'varchar' , '"CardDAV__COMPOSE_ICS_NAME"(_top.P_UID)'),
+    'RES_FULL_PATH',    vector ('PERSONS'     , 0, 'varchar' , 'concat (DAV_CONCAT_PATH (_param.detcolpath, ''addressbook''), "CardDAV__FIXNAME" (WAI_NAME), ''/'', "CardDAV__COMPOSE_ICS_NAME" (_top.P_UID)'),
+    'RES_TYPE',         vector ('PERSONS'     , 0, 'varchar' , '(''text/vcard'')'),
+    'RES_OWNER_ID',             vector ('SYS_USERS'       , 0, 'integer'  , 'U_ID'        ),
+    'RES_OWNER_NAME',           vector ('SYS_USERS'       , 0, 'varchar'  , 'U_NAME'      ),
+    'RES_GROUP_ID',             vector ('SYS_USERS'     , 0, 'integer'  , 'http_nogroup_gid()'  ),
+    'RES_GROUP_NAME',           vector ('SYS_USERS'     , 0, 'varchar'  , '(''nogroup'')'       ),
+    'RES_COL_FULL_PATH',vector ('PERSONS'     , 0, 'varchar' , 'concat (DAV_CONCAT_PATH (_param.detcolpath, ''addressbook''), "CardDAV__FIXNAME" (WAI_NAME), ''/'')'      ),
+    'RES_COL_NAME',     vector ('PERSONS'     , 0, 'varchar' , '"CardDAV__FIXNAME" (WAI_NAME)'   ),
+    'RES_CR_TIME',      vector ('PERSONS'     , 0, 'datetime', 'P_CREATED'        ),
+    'RES_MOD_TIME',     vector ('PERSONS'     , 0, 'datetime', 'P_UPDATED'  ),
+    'RES_PERMS',        vector ('PERSONS'     , 0, 'varchar' , '(''110100000RR'')'   ),
+    'RES_CONTENT',      vector ('PERSONS'     , 0, 'text'    , 'P_INTERESTS'   ),
+    'PROP_NAME',        vector ('PERSONS'     , 0, 'varchar' , '(''P_INTERESTS'')' ),
+    'PROP_VALUE',       vector ('SYS_DAV_PROP'  , 1, 'text' , 'P_INTERESTS'   ),
+    'RES_TAGS',         vector ('all-tags'  , 0, 'varchar'  , 'P_TAGS'  ), -- 'varchar', not 'text-tag' because there's no free-text on union
+    'RES_PUBLIC_TAGS',      vector ('public-tags'   , 0, 'varchar'  , 'P_TAGS'  ), -- 'varchar', not 'text-tag' because there's no free-text in table!
+    'RES_PRIVATE_TAGS',     vector ('private-tags'  , 0, 'varchar'  , 'P_TAGS'  ), -- 'varchar', not 'text-tag' because there's no free-text in table!
+    'RDF_PROP',         vector ('fake-prop' , 1, 'varchar'  , NULL  ),
+    'RDF_VALUE',        vector ('fake-prop' , 2, 'XML'  , NULL  ),
+    'RDF_OBJ_VALUE',        vector ('fake-prop' , 3, 'XML'  , NULL  )
+  );
+}
+;
+
+create procedure "CardDAV_DAV_FC_TABLE_METAS" (inout table_metas any)
+{
+  table_metas := vector (
+    'PERSONS'     , vector ( '', '', 'P_NAME'  , 'P_NAME'  , '[__quiet] /' ),
+    'WA_INSTANCE' , vector ( '', '', 'WAI_NAME', 'WAI_NAME', '[__quiet] /' ),
+    'WA_MEMBER'   , vector ( '', '', 'WAM_INST', 'WAM_INST', '[__quiet] /' ),
+    'SYS_USERS'   , vector ( '', '', NULL      , NULL      , NULL  ),
+    'public-tags' , vector ( '', '', 'P_TAGS'  , 'P_TAGS'  , NULL  ),
+    'private-tags', vector ( '', '', 'P_TAGS'  , 'P_TAGS'  , NULL  ),
+    'all-tags'    , vector ( '', '', 'P_TAGS'  , 'P_TAGS'  , NULL  ),
+    'fake-prop' , vector (  '\n  inner join WS.WS.SYS_DAV_PROP as ^{alias}^ on ((^{alias}^.PROP_PARENT_ID is null) and (^{alias}^.PROP_TYPE = ''R'')^{andpredicates}^)' ,
+                    '\n  exists (select 1 from WS.WS.SYS_DAV_PROP as ^{alias}^ where (^{alias}^.PROP_PARENT_ID is null) and (^{alias}^.PROP_TYPE = ''R'')^{andpredicates}^)'    ,
+                             'PROP_VALUE',
+                             'PROP_VALUE',
+                             '[__quiet __davprop xmlns:virt="virt"] fakepropthatprobablyneverexists')
+    );
+}
+;
+
+create function "CardDAV_DAV_FC_PRINT_WHERE" (inout filter any, in param_uid integer) returns varchar
+{
+  -- dbg_obj_princ ('CardDAV_DAV_FC_PRINT_WHERE (', filter, param_uid, ')');
+  declare pred_metas, cmp_metas, table_metas any;
+  declare used_tables any;
+
+  "CardDAV_DAV_FC_PRED_METAS" (pred_metas);
+  DAV_FC_CMP_METAS (cmp_metas);
+  "CardDAV_DAV_FC_TABLE_METAS" (table_metas);
+  used_tables := vector(
+      'PERSONS', vector ('PERSONS', '_top', null, vector (), vector (), vector ()),
+      'WA_INSTANCE', vector ('WA_INSTANCE', '_instances', null, vector (), vector (), vector ()),
+      'WA_MEMBER', vector ('WA_MEMBER', '_members', null, vector (), vector (), vector ()),
+      'SYS_USERS', vector ('SYS_USERS', '_users', null, vector (), vector (), vector ())
+  );
+  return DAV_FC_PRINT_WHERE_INT (filter, pred_metas, cmp_metas, table_metas, used_tables, param_uid);
+}
+;
+
+--| When DAV_DIR_FILTER_INT calls DET function, authentication is performed before the call and compilation is initialized.
+create function "CardDAV_DAV_DIR_FILTER" (in detcol_id any, in path_parts any, in detcol_path any, inout compilation any, in recursive integer, in auth_uid integer) returns any
+{
+    --dbg_obj_princ ('CardDAV_DAV_DIR_FILTER (', detcol_id, path_parts, detcol_path, compilation, recursive, auth_uid, ')');
+    declare st, access, qry_text, execstate, execmessage varchar;
+    declare res any;
+    declare cond_list, execmeta, execrows any;
+    declare sub, post_id, condtext, cond_key varchar;
+    declare owner_gid, owner_uid, domain_id integer;
+    "CardDAV__ACCESS_PARAMS" (detcol_id, access, owner_gid, owner_uid);
+    vectorbld_init (res);
+    sub := null;
+    post_id := null;
+    if (((length (path_parts) <= 1) and (recursive <> 1)) or (length (path_parts) > 2))
+    {
+      -- dbg_obj_princ ('\r\nGoto skip_post_level\r\n');
+      goto finalize;
+    }
+    if (length (path_parts) >= 2)
+    {
+        sub := path_parts[0];
+        if (sub = 'addressbooks')
+        {
+            domain_id := coalesce ((select C.WAI_ID
+                from SYS_USERS A,
+                WA_MEMBER B,
+                WA_INSTANCE C
+            where A.U_ID = owner_uid
+              and B.WAM_USER = A.U_ID
+              and B.WAM_MEMBER_TYPE = 1
+              and B.WAM_INST = C.WAI_NAME
+              and C.WAI_TYPE_NAME = 'AddressBook'
+              and "CardDAV__FIXNAME"(C.WAI_NAME) = path_parts[1]));
+            if (domain_id is null)
+                goto finalize;
+        }
+        else
+            goto finalize;
+    }
+    cond_key := sprintf ('AddressBook&%d', coalesce (domain_id, 0));
+    condtext := get_keyword (cond_key, compilation);
+    if (condtext is null and 0)
+    {
+      cond_list := get_keyword ('', compilation);
+      if (sub is not null)
+        cond_list := vector_concat (cond_list, vector ( vector ('P_DOMAIN_ID', '=', domain_id)));
+      condtext := "CardDAV_DAV_FC_PRINT_WHERE" (cond_list, auth_uid);
+      compilation := vector_concat (compilation, vector (cond_key, condtext));
+    }
+    execstate := '00000';
+        qry_text := 'select concat (DAV_CONCAT_PATH (_param.detcolpath, ''addressbook''), ''/'', "CardDAV__FIXNAME" (WAI_NAME), ''/'', "CardDAV__COMPOSE_ICS_NAME" (_top.P_UID)),
+        ''R'', 1024, _top.P_UPDATED,
+                vector (CardDAV__UNAME (), ?, _users.U_ID, 3, _top.P_DOMAIN_ID, 0, 0, 0, 0),
+                ''110100000RR'', http_nogroup_gid(), _users.U_ID, _top.P_UPDATED, ''text/vcard'', "CardDAV__COMPOSE_ICS_NAME" (_top.P_UID)
+        from
+        (select top 1 ? as detcolpath from WS.WS.SYS_DAV_COL) as _param,
+        AB.WA.PERSONS as _top
+        join DB.DBA.WA_INSTANCE as _instances on (WAI_ID = P_DOMAIN_ID and WAI_TYPE_NAME = ''AddressBook'')
+                join DB.DBA.WA_MEMBER as _members on (WAM_MEMBER_TYPE = 1 and WAM_INST = WAI_NAME)
+                join DB.DBA.SYS_USERS as _users on (WAM_USER = U_ID and U_ID = ?)
+        ' || condtext;
+      exec (qry_text, execstate, execmessage,
+        vector (detcol_id, detcol_path, owner_uid),
+        100000000, execmeta, execrows );
+      if ('00000' <> execstate)
+        signal (execstate, execmessage || ' in ' || qry_text);
+      vectorbld_concat_acc (res, execrows);
+finalize:
+    vectorbld_final (res);
+    return res;
+}
+;
+
+create function "CardDAV_DAV_SEARCH_ID_IMPL" (
+  in detcol_id any,
+  in path_parts any,
+  in what char(1),
+  inout owner_uid integer,
+  inout domain_id integer) returns any
+{
+    --dbg_obj_princ ('CardDAV_DAV_SEARCH_ID_IMPL (', detcol_id, path_parts, what, muser_id, domain_id, ')');
+  declare owner_gid, ctr, len integer;
+    declare hitlist any;
+    declare access, colpath varchar;
+
+  "CardDAV__ACCESS_PARAMS" (detcol_id, access, owner_gid, owner_uid);
+    if (0 = length(path_parts))
+    {
+        if ('C' <> what)
+            return -1;
+
+    return vector (CardDAV__UNAME (), detcol_id, owner_uid, domain_id, 0, 0);
+    }
+    if ('' = path_parts[length(path_parts) - 1])
+    {
+        if ('C' <> what)
+            return -1;
+    }
+    else
+    {
+        if ('R' <> what)
+            return -1;
+    }
+    len := length (path_parts) - 1;
+    ctr := 0;
+    while (ctr < len)
+    {
+        if (ctr = 0)
+        {
+            hitlist := vector ();
+            for select C.WAI_ID as D_ID
+                     from SYS_USERS A,
+                          WA_MEMBER B,
+                          WA_INSTANCE C
+                    where A.U_ID = owner_uid
+                      and B.WAM_USER = A.U_ID
+                      and B.WAM_MEMBER_TYPE = 1
+                      and B.WAM_INST = C.WAI_NAME
+                      and C.WAI_TYPE_NAME = 'AddressBook'
+                and "CardDAV__FIXNAME"(C.WAI_NAME) = path_parts[ctr]
+            do
+            {
+                hitlist := vector_concat (hitlist, vector (D_ID));
+            }
+            if (length (hitlist) <> 1)
+                return -1;
+            domain_id := hitlist[0];
+        }
+        else if (ctr = 1 and len > 1)
+    {
+            return -1;
+    }
+        ctr := ctr + 1;
+    }
+    if ('C' = what)
+    return vector (CardDAV__UNAME (), detcol_id, owner_uid, domain_id, 0, 0);
+
+    hitlist := vector ();
+  for (select distinct P_ID from AB.WA.PERSONS where ("CardDAV__COMPOSE_ICS_NAME" (P_UID) = path_parts[ctr] or P_UID = path_parts[ctr]) and P_DOMAIN_ID = domain_id) do
+  {
+    hitlist := vector_concat (hitlist, vector (P_ID));
+  }
+    if (length (hitlist) <> 1)
+        return -1;
+
+  return vector (CardDAV__UNAME (), detcol_id, owner_uid, domain_id, hitlist[0], 0);
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "CardDAV_DAV_SEARCH_ID" (
+  in detcol_id any,
+  in path_parts any,
+  in what char(1)) returns any
+{
+  --dbg_obj_princ ('CardDAV_DAV_SEARCH_ID (', detcol_id, path_parts, what, ')');
+  declare owner_uid, domain_id integer;
+
+  return "CardDAV_DAV_SEARCH_ID_IMPL" (detcol_id, path_parts, what, owner_uid, domain_id);
+}
+;
+
+--| When DAV_SEARCH_PATH_INT calls DET function, authentication is performed before the call.
+create function "CardDAV_DAV_SEARCH_PATH" (
+  in id any,
+  in what char(1)) returns any
+{
+  -- dbg_obj_princ ('CardDAV_DAV_SEARCH_PATH (', id, what, ')');
+  declare path varchar;
+  declare domain_id, item_id integer;
+
+  path := DAV_SEARCH_PATH (id[1], 'C');
+  domain_id := id[3];
+  if (not exists (select 1 from DB.DBA.WA_INSTANCE where WAI_ID = domain_id))
+    return null;
+
+  path := path || "CardDAV__FIXNAME" (AB.WA.domain_name (domain_id)) || '/';
+  if ('C' = what)
+    return path;
+
+  item_id := id[4];
+  for (select P_UID from AB.WA.PERSONS where P_ID = item_id) do
+    return  path || "CardDAV__COMPOSE_ICS_NAME" (P_UID);
+
+  return null;
+}
+;
+
+--| When DAV_COPY_INT calls DET function, authentication and check for locks are performed before the call, but no check for existing/overwrite.
+create function "CardDAV_DAV_RES_UPLOAD_COPY" (in detcol_id any, in path_parts any, in source_id any, in what char(1), in overwrite_flags integer, in permissions varchar, in uid integer, in gid integer, in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CardDAV_DAV_RES_UPLOAD_COPY (', detcol_id, path_parts, source_id, what, overwrite_flags, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_COPY_INT calls DET function, authentication and check for locks are performed before the call, but no check for existing/overwrite.
+create function "CardDAV_DAV_RES_UPLOAD_MOVE" (in detcol_id any, in path_parts any, in source_id any, in what char(1), in overwrite_flags integer, in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CardDAV_DAV_RES_UPLOAD_MOVE (', detcol_id, path_parts, source_id, what, overwrite_flags, auth_uid, ')');
+  return -20;
+}
+;
+
+
+--| When DAV_RES_CONTENT or DAV_RES_COPY_INT or DAV_RES_MOVE_INT calls DET function, authentication is made.
+--| If content_mode is 1 then content is a valid output stream before the call.
+create function "CardDAV_DAV_RES_CONTENT" (
+  in id any,
+  inout content any,
+  out type varchar,
+  in content_mode integer) returns integer
+{
+  --dbg_obj_princ ('CardDAV_DAV_RES_CONTENT (', id, ', content, type, ', content_mode, ')');
+  declare tz integer;
+
+  type := 'text/vcard';
+  whenever not found goto endline;
+  if (id[4] is not null)
+    content := AB.WA.export_vcard (id[3], vector(id[4]));
+
+endline:
+  return 0;
+}
+;
+
+--| This adds an extra access path to the existing resource or collection.
+create function "CardDAV_DAV_SYMLINK" (in detcol_id any, in path_parts any, in source_id any, in what char(1), in overwrite integer, in uid integer, in gid integer, in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CardDAV_DAV_SYMLINK (', detcol_id, path_parts, source_id, overwrite, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| This gets a list of resources and/or collections as it is returned by DAV_DIR_LIST and and writes the list of quads (old_id, 'what', old_full_path, dereferenced_id, dereferenced_full_path).
+create function "CardDAV_DAV_DEREFERENCE_LIST" (in detcol_id any, inout report_array any) returns any
+{
+  -- dbg_obj_princ ('CardDAV_DAV_DEREFERENCE_LIST (', detcol_id, report_array, ')');
+  return -20;
+}
+;
+
+--| This gets one of reference quads returned by ..._DAV_REREFERENCE_LIST() and returns a record (new_full_path, new_dereferenced_full_path, name_may_vary).
+create function "CardDAV_DAV_RESOLVE_PATH" (in detcol_id any, inout reference_item any, inout old_base varchar, inout new_base varchar) returns any
+{
+  -- dbg_obj_princ ('CardDAV_DAV_RESOLVE_PATH (', detcol_id, reference_item, old_base, new_base, ')');
+  return -20;
+}
+;
+
+--| There's no API function to lock for a while (do we need such?) The "LOCK" DAV method checks that all parameters are valid but does not check for existing locks.
+create function "CardDAV_DAV_LOCK" (
+  in path any,
+  in id any,
+  in what char(1),
+  inout locktype varchar,
+  inout scope varchar,
+  in token varchar,
+  inout owner_name varchar,
+  inout owned_tokens varchar,
+  in depth varchar,
+  in timeout_sec integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CardDAV_DAV_LOCK (', path, id, what, locktype, scope, token, owner_name, owned_tokens, depth, timeout_sec, auth_uid, ')');
+  declare rc any;
+  declare domain_id, item_id integer;
+  declare name, uid varchar;
+
+  rc := 0;
+  if (what = 'C')
+  {
+    rc := -27;
+    goto _exit;
+  }
+
+  domain_id := id[3];
+  item_id := id[4];
+  if (exists (select 1 from AB.WA.PERSONS where P_DOMAIN_ID = domain_id and P_ID = item_id and P_NAME = 'UNLOCK'))
+  {
+    rc := lower (uuid());
+    update AB.WA.PERSONS
+       set P_NAME = 'LOCK',
+           P_FIRST_NAME = rc
+     where P_DOMAIN_ID = domain_id
+       and P_ID = item_id;
+
+    goto _exit;
+}
+
+  if (exists (select 1 from AB.WA.PERSONS where P_DOMAIN_ID = domain_id and P_ID = item_id and P_NAME = 'LOCK' and dateadd ('second', -1, now()) > P_UPDATED))
+  {
+    rc := lower (uuid());
+    update AB.WA.PERSONS
+       set P_NAME = 'LOCK',
+           P_FIRST_NAME = rc
+     where P_DOMAIN_ID = domain_id
+       and P_ID = item_id;
+
+    goto _exit;
+  }
+
+  uid := (select P_UID from AB.WA.PERSONS where P_DOMAIN_ID = domain_id and P_ID = item_id);
+  if (path like ('%' || CardDAV__COMPOSE_ICS_NAME (uid)))
+  {
+    rc := lower (uuid());
+
+    goto _exit;
+  }
+
+  rc := -20;
+
+_exit:;
+  return rc;
+}
+;
+
+--| There's no API function to unlock for a while (do we need such?) The "UNLOCK" DAV method checks that all parameters are valid but does not check for existing locks.
+create function "CardDAV_DAV_UNLOCK" (
+  in id any,
+  in what char(1),
+  in token varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('CardDAV_DAV_UNLOCK (', id, what, token, auth_uid, ')');
+  declare rc any;
+  declare domain_id, item_id integer;
+
+  rc := 0;
+  domain_id := id[3];
+  item_id := id[4];
+  if (exists (select 1 from AB.WA.PERSONS where P_DOMAIN_ID = domain_id and P_ID = item_id and P_NAME = 'LOCK'))
+  {
+    update AB.WA.PERSONS
+       set P_NAME = 'UNLOCK',
+           P_FIRST_NAME = null
+     where P_DOMAIN_ID = domain_id
+       and P_ID = item_id;
+
+    rc := -27;
+    goto _exit;
+  }
+
+_exit:;
+  return rc;
+}
+;
+
+--| The caller does not check if id is valid.
+--| This returns -1 if id is not valid, 0 if all existing locks are listed in owned_tokens whitespace-delimited list, 1 for soft 2 for hard lock.
+create function "CardDAV_DAV_IS_LOCKED" (
+  inout id any,
+  inout what char(1),
+  in owned_tokens varchar) returns integer
+{
+  -- dbg_obj_princ ('CardDAV_DAV_IS_LOCKED (', id, what, owned_tokens, ')');
+  declare rc, if_token any;
+
+  rc := 0;
+  if (what = 'C')
+    goto _exit;
+
+  for (select P_FIRST_NAME from AB.WA.PERSONS where P_DOMAIN_ID = id[3] and P_ID = id[4] and P_NAME = 'LOCK') do
+  {
+    rc := 2;
+    if (not isnull (strstr (owned_tokens, P_FIRST_NAME)))
+      rc := 0;
+}
+
+_exit:;
+  return rc;
+}
+;
+
+--| The caller does not check if id is valid.
+--| This returns -1 if id is not valid, list of tuples (LOCK_TYPE, LOCK_SCOPE, LOCK_TOKEN, LOCK_TIMEOUT, LOCK_OWNER, LOCK_OWNER_INFO) otherwise.
+create function "CardDAV_DAV_LIST_LOCKS" (
+  in id any,
+  in what char(1),
+  in recursive integer) returns any
+{
+  -- dbg_obj_princ ('CardDAV_DAV_LIST_LOCKS" (', id, what, recursive);
+  return vector ();
+}
+;
+
+create function CardDAV__UNAME () returns any
+{
+  return UNAME'CardDAV';
+}
+;
+
+create function "CardDAV__FIXNAME" (in mailname any) returns varchar
+{
+  return
+    replace (
+    replace (
+    replace (
+    replace (
+    replace (
+    replace (
+    replace (
+    replace (
+    replace (mailname, '/', '_'), '\\', '_'), ':', '_'), '+', '_'), '\"', '_'), '[', '_'), ']', '_'), '''', '_'), ' ', '_');
+}
+;
+
+create function "CardDAV__COMPOSE_ICS_NAME" (in uid varchar) returns varchar
+{
+  return replace(sprintf('%s.vcf', uid), '@', '-');
+}
+;
+
+create function "CardDAV__ACCESS_PARAMS" (
+  in detcol_id any,
+  out access varchar,
+  out gid integer,
+  out uid integer)
+{
+  whenever not found goto ret;
+
+  access := '110000000NN';
+  gid := http_nogroup_gid ();
+  uid := http_nobody_uid ();
+  if (isinteger (detcol_id))
+    select COL_PERMS, COL_GROUP, COL_OWNER into access, gid, uid from WS.WS.SYS_DAV_COL where COL_ID = detcol_id;
+
+  ret: ;
+}
+;
+
+create procedure DB.DBA.HP_AUTH_DAV_PROTOCOL_CARDDAV (in realm varchar)
+{
+    declare _u_name, _u_password, _perms varchar;
+    declare _u_id, _u_group integer;
+    declare auth any;
+    declare _user, lev varchar;
+    declare our_auth_vec, lines, sec, path, req_perms, cmp_perms, def_page varchar;
+    declare _method, allow_basic, authenticated integer;
+    authenticated := 0;
+    lines := http_request_header ();
+    path := http_physical_path ();
+    sec := http_map_get ('security_level');
+    if (isstring (sec))
+        sec := ucase (sec);
+    if (sec = 'DIGEST')
+        allow_basic := 0;
+    else
+        allow_basic := 1;
+    auth := DB.DBA.vsp_auth_vec (lines);
+    if (0 <> auth)
+    {
+        lev := get_keyword ('authtype', auth, '');
+        if (allow_basic = 0 and 'basic' = lev)
+            goto nf;
+        _user := get_keyword ('username', auth);
+        if (_user = '' or isnull (_user))
+        {
+            goto nf;
+        }
+        whenever not found goto nf;
+        select U_NAME, pwd_magic_calc (U_NAME, U_PWD, 1), U_GROUP, U_ID, U_METHODS, U_DEF_PERMS
+            into _u_name, _u_password, _u_group, _u_id, _method, _perms from WS.WS.SYS_DAV_USER
+            where U_NAME = _user and U_ACCOUNT_DISABLED = 0 with (exclusive, prefetch 1);
+        if (_u_password is null)
+            goto nf;
+        if (DB.DBA.vsp_auth_verify_pass (auth, _u_name,
+            coalesce(get_keyword ('realm', auth), ''),
+            coalesce(get_keyword ('uri', auth), ''),
+            coalesce(get_keyword ('nonce', auth), ''),
+            coalesce(get_keyword ('nc', auth),''),
+            coalesce(get_keyword ('cnonce', auth), ''),
+            coalesce(get_keyword ('qop', auth), ''),
+            _u_password))
+        {
+            update WS.WS.SYS_DAV_USER set U_LOGIN_TIME = now () where U_NAME = _user;
+            if (http_map_get ('persist_ses_vars'))
+            {
+                declare vars any;
+                declare sid varchar;
+                vars := null;
+                sid := http_param ('sid');
+                vars := coalesce ((select deserialize (ASES_VARS) from DB.DBA.ADMIN_SESSION where ASES_ID = sid), null);
+                if (vars is null or isarray (vars))
+                    connection_vars_set (vars);
+                if (connection_get ('sid') is null)
+                    connection_set ('sid', sid);
+            }
+            if (connection_get ('CardDAVUserID') is null or connection_get ('CardDAVUserID') <> _u_id)
+                connection_set ('CardDAVUserID', _user);
+            authenticated := 1;
+        }
+    }
+    else
+        goto nf;
+    -- Check permissions
+    if (authenticated and _u_id = 1)
+        return 1;
+    else if (not authenticated)
+        return -1;
+    else if (authenticated)
+        return (_u_id);
+nf:
+    DB.DBA.vsp_auth_get (realm, '/DAV', md5 (datestring(now())), md5 ('opaakki'), 'false', lines, allow_basic);
+    return 0;
+}
+;
+
+
+create procedure DB.DBA.install_carddav_vhosts()
+{
+    DB.DBA.VHOST_REMOVE (lpath=>'/.well-known/carddav/');
+    DB.DBA.VHOST_DEFINE (lpath=>'/.well-known/carddav/',
+        ppath => '/!well-known/carddav/',
+        is_dav => 1,
+        vsp_user => 'dba',
+        opts => vector('noinherit', 1, 'exec_as_get', 1),
+        auth_fn=>'DB.DBA.HP_AUTH_DAV_PROTOCOL_CARDDAV',
+        realm=>'CardDAVUserID',
+        sec=>'Basic');
+}
+;
+
+DB.DBA.install_carddav_vhosts()
+;
+
+create procedure WS.WS."/!well-known/carddav/" (inout path varchar, inout params any, inout lines any)
+{
+    declare user_id, inst_name varchar;
+    declare command varchar;
+    declare pos integer;
+    declare exit handler for sqlstate '*'
+    {
+        http_request_status ('HTTP/1.1 404 Not Found');
+        return;
+    };
+    whenever not found goto retr;
+    user_id := connection_get ('CardDAVUserID');
+    inst_name := (select CalDAV__FIXNAME (C.WAI_NAME)
+        from SYS_USERS A,
+        WA_MEMBER B,
+        WA_INSTANCE C
+        where A.U_NAME = user_id
+        and B.WAM_USER = A.U_ID
+        and B.WAM_MEMBER_TYPE = 1
+        and B.WAM_INST = C.WAI_NAME
+        and C.WAI_TYPE_NAME = 'AddressBook');
+    if (inst_name is null or length(inst_name) = 0)
+        goto retr;
+    http_request_status ('HTTP/1.1 301 Moved Permanently');
+    http_header (sprintf ('Location: /DAV/home/%s/addressbooks/%s/\r\n', user_id, inst_name));
+    return;
+retr:
+    http_request_status ('HTTP/1.1 404 Not Found');
+    return;
+}
+;
+
+registry_set ('/!well-known/carddav/', 'no_vsp_recompile')
+;
diff --git a/appsrc/ODS-Addressbook/sql/ab-a-api.sql b/appsrc/ODS-Addressbook/sql/ab-a-api.sql
index bf48adb..d40e16e 100644
--- a/appsrc/ODS-Addressbook/sql/ab-a-api.sql
+++ b/appsrc/ODS-Addressbook/sql/ab-a-api.sql
@@ -1,10 +1,10 @@
 --
---  $Id: ab-a-api.sql,v 1.16.2.6 2011/06/09 17:43:16 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2008 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Addressbook/sql/ab-a-code.sql b/appsrc/ODS-Addressbook/sql/ab-a-code.sql
index 02b39c7..751bc00 100644
--- a/appsrc/ODS-Addressbook/sql/ab-a-code.sql
+++ b/appsrc/ODS-Addressbook/sql/ab-a-code.sql
@@ -1,10 +1,10 @@
 --
---  $Id: ab-a-code.sql,v 1.50.2.26 2011/06/02 12:33:25 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2007 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -119,7 +119,7 @@ _end:;
 create procedure AB.WA.session_restore(
   inout params any)
 {
-  declare domain_id, account_id, account_rights any;
+  declare domain_id, account_id any;
 
   domain_id := AB.WA.session_domain (params);
   account_id := -1;
@@ -135,11 +135,11 @@ create procedure AB.WA.session_restore(
   {
     account_id := U_ID;
   }
-  account_rights := AB.WA.access_rights (domain_id, account_id);
   return vector (
                  'domain_id', domain_id,
                  'account_id',   account_id,
-                 'account_rights', account_rights
+                 'account_rights', AB.WA.account_rights (domain_id, account_id),
+                 'person_rights', AB.WA.person_rights (domain_id, account_id)
                );
 }
 ;
@@ -218,7 +218,7 @@ create procedure AB.WA.check_grants (
 
 -------------------------------------------------------------------------------
 --
-create procedure AB.WA.access_rights (
+create procedure AB.WA.person_rights (
   in domain_id integer,
   in account_id integer)
 {
@@ -284,6 +284,62 @@ create procedure AB.WA.access_rights (
 
 -------------------------------------------------------------------------------
 --
+create procedure AB.WA.account_rights (
+  in domain_id integer,
+  in account_id integer)
+{
+  declare rc varchar;
+
+  if (domain_id <= 0)
+    return null;
+
+  if (AB.WA.check_admin (account_id))
+    return 'W';
+
+  if (exists (select 1
+                from SYS_USERS A,
+                     WA_MEMBER B,
+                     WA_INSTANCE C
+               where A.U_ID = account_id
+                 and B.WAM_USER = A.U_ID
+                 and B.WAM_MEMBER_TYPE = 1
+                 and B.WAM_INST = C.WAI_NAME
+                 and C.WAI_ID = domain_id))
+    return 'W';
+
+  if (exists (select 1
+                from SYS_USERS A,
+                     WA_MEMBER B,
+                     WA_INSTANCE C
+               where A.U_ID = account_id
+                 and B.WAM_USER = A.U_ID
+                 and B.WAM_MEMBER_TYPE = 2
+                 and B.WAM_INST = C.WAI_NAME
+                 and C.WAI_ID = domain_id))
+    return 'W';
+
+  if (exists (select 1
+                from SYS_USERS A,
+                     WA_MEMBER B,
+                     WA_INSTANCE C
+               where A.U_ID = account_id
+                 and B.WAM_USER = A.U_ID
+                 and B.WAM_INST = C.WAI_NAME
+                 and C.WAI_ID = domain_id))
+    return 'R';
+
+  if (exists (select 1
+                from DB.DBA.WA_INSTANCE
+               where WAI_ID = domain_id
+                 and WAI_IS_PUBLIC = 1))
+    return 'R';
+
+  return null;
+}
+;
+
+-------------------------------------------------------------------------------
+--
 create procedure AB.WA.wa_home_link ()
 {
   return case when registry_get ('wa_home_link') = 0 then '/ods/' else registry_get ('wa_home_link') end;
@@ -709,6 +765,12 @@ create procedure AB.WA.domain_update (
   AB.WA.domain_gems_delete (domain_id, account_id, 'AddressBook', AB.WA.domain_gems_name (domain_id) || '_Gems');
   AB.WA.domain_gems_create (domain_id, account_id);
 
+  declare home, path varchar;
+  home := AB.WA.dav_home (account_id);
+  path := home || 'addressbooks' || '/';
+  DB.DBA.DAV_MAKE_DIR (path, account_id, null, '110100000N');
+  update WS.WS.SYS_DAV_COL set COL_DET = 'CardDAV' where COL_ID = DAV_SEARCH_ID (path, 'C');
+
   return 1;
 }
 ;
@@ -1192,8 +1254,7 @@ _true:;
 create procedure AB.WA.dav_home(
   inout account_id integer) returns varchar
 {
-  declare name, home any;
-  declare cid integer;
+  declare cid, name, home any;
 
   name := coalesce((select U_NAME from DB.DBA.SYS_USERS where U_ID = account_id), -1);
   if (isinteger(name))
@@ -1458,6 +1519,23 @@ _again:
 }
 ;
 
+-------------------------------------------------------------------------------
+--
+create procedure AB.WA.http_error (
+  in _header any,
+  in _silent integer := 0)
+{
+  if (_header[0] like 'HTTP/1._ 4__ %' or _header[0] like 'HTTP/1._ 5__ %')
+  {
+    if (not _silent)
+      signal ('22023', trim (_header[0], '\r\n'));
+
+    return 0;
+  }
+  return 1;
+}
+;
+
 -----------------------------------------------------------------------------
 --
 create procedure AB.WA.xml_set(
@@ -1637,6 +1715,18 @@ create procedure AB.WA.stringCut (
 
 -------------------------------------------------------------------------------
 --
+create procedure AB.WA.isVector (
+  inout aVector any)
+{
+  if (isarray (aVector) and not isstring (aVector))
+    return 1;
+
+  return 0;
+}
+;
+
+-------------------------------------------------------------------------------
+--
 create procedure AB.WA.vector_unique(
   inout aVector any,
   in minLength integer := 0)
@@ -2054,7 +2144,7 @@ create procedure AB.WA.ab_path2 (
 --
 create procedure AB.WA.make_node (
   in node_type varchar,
-  in node_id any)
+  in node_id any) returns varchar
 {
   return node_type || '#' || cast(node_id as varchar);
 }
@@ -2425,9 +2515,10 @@ create procedure AB.WA.dt_iso8601 (
 create procedure AB.WA.test_clear (
   in S any)
 {
-  declare N integer;
+  S := substring (S, 1, coalesce (strstr (S, '<>'), length (S)));
+  S := substring (S, 1, coalesce (strstr (S, '\nin'), length (S)));
 
-  return substring(S, 1, coalesce(strstr(S, '<>'), length(S)));
+  return S;
 }
 ;
 
@@ -2493,7 +2584,7 @@ create procedure AB.WA.test (
     return value;
   }
 
-  value := OMAIL.WA.validate2 (valueClass, cast (value as varchar));
+  value := AB.WA.validate2 (valueClass, cast (value as varchar));
   if (valueType = 'integer')
   {
     tmp := get_keyword('minValue', params);
@@ -2578,7 +2669,7 @@ create procedure AB.WA.validate2 (
     if (isnull (regexp_match('^[^\\\/\?\*\"\'\>\<\:\|]*\$', propertyValue)))
       goto _error;
   } else if ((propertyType = 'uri') or (propertyType = 'anyuri')) {
-    if (isnull (regexp_match('^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_=:]*)?\$', propertyValue)))
+    if (isnull (regexp_match('^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_=:~]*)?\$', propertyValue)))
       goto _error;
   } else if (propertyType = 'email') {
     if (isnull (regexp_match('^([a-zA-Z0-9_\-])+(\.([a-zA-Z0-9_\-])+)*@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([a-zA-Z0-9])+(([\-])+([a-zA-Z0-9])+)*\.)+([a-zA-Z])+(([\-])+([a-zA-Z0-9])+)*))\$', propertyValue)))
@@ -2762,7 +2853,10 @@ create procedure AB.WA.ab_sparql (
 create procedure AB.WA.ab_graph_delete (
   in graph varchar)
 {
-  AB.WA.ab_sparql (sprintf ('SPARQL clear graph <%s>', graph));
+  if (is_empty_or_null (graph))
+    return;
+
+  SPARQL clear graph ?:graph;
 }
 ;
 
@@ -3151,6 +3245,8 @@ create procedure AB.WA.contact_update2 (
   if (id = -1)
     return id;
 
+  if (pName = 'P_UID')
+    update AB.WA.PERSONS set P_UID = pValue where P_ID = id;
   if (pName = 'P_CATEGORY_ID')
     update AB.WA.PERSONS set P_CATEGORY_ID = pValue where P_ID = id;
   if (pName = 'P_KIND')
@@ -3168,7 +3264,7 @@ create procedure AB.WA.contact_update2 (
   if (pName = 'P_FULL_NAME')
     update AB.WA.PERSONS set P_FULL_NAME = pValue where P_ID = id;
   if (pName = 'P_GENDER')
-    update AB.WA.PERSONS set P_GENDER = pValue where P_ID = id;
+    update AB.WA.PERSONS set P_GENDER = lcase (pValue) where P_ID = id;
   if (pName = 'P_BIRTHDAY')
     update AB.WA.PERSONS set P_BIRTHDAY = pValue where P_ID = id;
   if (pName = 'P_FOAF')
@@ -3321,12 +3417,11 @@ create procedure AB.WA.contact_update4 (
   if (not isnull (tmp))
   {
     if (length (pFields) = 0)
-      return 0;
+      return vector ();
 
     id := tmp;
   }
-
-  if ((isinteger (id)) and (id = -1))
+  if (isinteger (id) and (id = -1))
   {
     L := length (pFields);
     for (N := 0; N < L; N := N + 1)
@@ -3371,13 +3466,10 @@ create procedure AB.WA.contact_update4 (
     pValues := V;
   }
   if (isinteger (id))
-  {
     id := vector (id);
-  }
+
   for (N := 0; N < length (id); N := N + 1)
-  {
     AB.WA.contact_update3 (id[N], domain_id, pFields, pValues, tags);
-  }
 
   return id;
 }
@@ -3406,6 +3498,7 @@ create procedure AB.WA.contact_delete (
   in domain_id integer)
 {
   delete from AB.WA.PERSONS where P_ID = id and P_DOMAIN_ID = domain_id;
+  return row_count ();
 }
 ;
 
@@ -3424,10 +3517,11 @@ create procedure AB.WA.contact_validation (
   declare id, st, msg, meta, rows, F, V, T any;
 
   id := null;
-  if (not isnull (validation) and length (validation))
-  {
-    S := sprintf ('select P_ID from AB.WA.PERSONS where P_DOMAIN_ID = %d', domain_id);
-    V := vector ();
+  if (isnull (validation) or (length (validation) = 0))
+    goto _exit;
+
+  S := 'select P_ID from AB.WA.PERSONS where P_DOMAIN_ID = ?';
+  V := vector (domain_id);
     for (N := 0; N < length (validation); N := N + 1)
     {
       M := AB.WA.vector_index (pFields, validation [N]);
@@ -3437,10 +3531,14 @@ create procedure AB.WA.contact_validation (
           V := vector_concat (V, vector (pValues [M]));
         }
       }
+  if (length (V) = 1)
+    goto _exit;
+
       st := '00000';
     exec (S, st, msg, V, vector ('use_cache', 1), meta, rows);
-      if ((st = '00000') and (length (rows) > 0))
-      {
+  if ((st <> '00000') or (length (rows) <> 1))
+    goto _exit;
+
       declare validationMode varchar;
 
       id := vector ();
@@ -3527,8 +3625,8 @@ create procedure AB.WA.contact_validation (
       }
       pFields := F;
       pValues := V;
-    }
-  }
+
+_exit:;
   return id;
 }
 ;
@@ -3538,16 +3636,19 @@ create procedure AB.WA.contact_validation (
 create procedure AB.WA.contact_rights (
   in domain_id integer,
   in id integer,
-  in access_role varchar)
+  in account_rights varchar,
+  in person_rights varchar)
 {
   declare retValue varchar;
 
   retValue := '';
   if (exists (select 1 from AB.WA.PERSONS where P_ID = id and P_DOMAIN_ID = domain_id))
   {
+    if (isnull (person_rights) or (account_rights < person_rights))
   retValue := AB.WA.acl_check (domain_id, id);
+
     if (retValue = '')
-      retValue := access_role;
+      retValue := account_rights;
   }
     return retValue;
   }
@@ -3659,6 +3760,39 @@ create procedure AB.WA.value2str (
 }
 ;
 
+--------------------------------------------------------------------------------
+--
+create procedure AB.WA.import_CardDAV_check (
+  in _name any,
+  in _options any,
+  in _silent integer := 0)
+{
+  declare _user, _password varchar;
+  declare _page, _body, _resHeader, _reqHeader any;
+  declare exit handler for sqlstate '*'
+  {
+    return 0;
+  };
+
+  _user := get_keyword ('user', _options);
+  _password := get_keyword ('password', _options);
+
+  -- check CardDAV
+  _reqHeader := 'Accept: text/xml\r\nContent-Type: text/xml; charset=utf-8';
+  if (not is_empty_or_null (_user))
+    _reqHeader := _reqHeader || sprintf ('\r\nAuthorization: Basic %s', encode_base64 (_user || ':' || _password));
+
+  _page := http_client_ext (url=>_name, http_method=>'OPTIONS', http_headers=>_reqHeader, headers =>_resHeader, n_redirects=>15);
+  if (not AB.WA.http_error (_resHeader, _silent))
+    return 0;
+
+  if (not (http_request_header (_resHeader, 'DAV') like '%addressbook%'))
+    return 0;
+
+  return 1;
+}
+;
+
 -------------------------------------------------------------------------------
 --
 create procedure AB.WA.import_count (
@@ -3684,6 +3818,10 @@ create procedure AB.WA.import_count (
   -- LinkedIn
   if (type = 4)
     return AB.WA.import_linkedin_count (data);
+
+  -- CardDAV
+  if (type = 5)
+    return AB.WA.import_CardDAV_count (data);
 }
 ;
 
@@ -3774,6 +3912,49 @@ create procedure AB.WA.import_linkedin_count (
 
 -------------------------------------------------------------------------------
 --
+create procedure AB.WA.import_CardDav_count (
+  in _name any,
+  in _options any,
+  in _silent integer := 0)
+{
+  declare _user, _password varchar;
+  declare _page, _body, _resHeader, _reqHeader any;
+  declare _xml, _items any;
+  declare exit handler for sqlstate '*'
+  {
+    return 0;
+  };
+
+  _user := get_keyword ('user', _options);
+  _password := get_keyword ('password', _options);
+
+  -- check CardDAV
+  _reqHeader := 'Accept: text/xml\r\nContent-Type: text/xml; charset=utf-8';
+  if (not is_empty_or_null (_user))
+    _reqHeader := _reqHeader || sprintf ('\r\nAuthorization: Basic %s', encode_base64 (_user || ':' || _password));
+
+  _page := http_client_ext (url=>_name, http_method=>'OPTIONS', http_headers=>_reqHeader, headers =>_resHeader, n_redirects=>15);
+  if (not AB.WA.http_error (_resHeader, _silent))
+    return 0;
+
+  if (not (http_request_header (_resHeader, 'DAV') like '%addressbook%'))
+    return 0;
+
+  _body := null;
+  _reqHeader := _reqHeader || '\r\nDepth: 1';
+  _page := http_client_ext (url=>_name, http_method=>'PROPFIND', http_headers=>_reqHeader, headers =>_resHeader, body=>_body, n_redirects=>15);
+  if (not AB.WA.http_error (_resHeader, _silent))
+    return 0;
+
+  _xml := xml_tree_doc (xml_expand_refs (xml_tree (_page)));
+  _items := xpath_eval ('[xmlns:D="DAV:" xmlns="urn:ietf:params:xml:ns:carddav:"] /D:multistatus/D:response/D:href/text()', _xml, 0);
+
+  return length (_items)-1;
+}
+;
+
+-------------------------------------------------------------------------------
+--
 create procedure AB.WA.import_check_progress_id (
   in progress_id any)
 {
@@ -3840,6 +4021,20 @@ create procedure AB.WA.import (
     -- LinkedIn
     AB.WA.import_linkedin (domain_id, data, options, validation, progress_id);
   }
+  else if (type = 5)
+  {
+    -- CardDAV
+    AB.WA.import_CardDAV (domain_id, data, options, validation, progress_id);
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create procedure AB.WA.import_vcard_decode (
+  in S varchar)
+{
+  return replace (S, '\\:', ':');
 }
 ;
 
@@ -3852,9 +4047,9 @@ create procedure AB.WA.import_vcard (
   in validation any := null,
   in progress_id varchar := null)
 {
-  declare L, M, N, nLength, mLength, id integer;
-  declare tmp, uid, data, pFields, pValues, pField, pField2 any;
-  declare xmlData, xmlItems, itemName, Meta, V any;
+  declare M, N, pos, mLength, mGroupLength, id integer;
+  declare tmp, T, uid, data, pFields, pValues, pField any;
+  declare xmlData, xmlItems, xmlSubItems, itemSubName, itemPrefix, itemName, Meta, MetaGroup any;
   declare mode, externalUID, updatedBefore, vcardImported any;
 
   vcardImported := vector ();
@@ -3871,27 +4066,53 @@ create procedure AB.WA.import_vcard (
 
   Meta := vector
     (
-      'P_UID',            null, 'UID/val',
-      'P_NAME',           null, 'NICKNAME/val|N/fld[1]|N/fld[2]|N/val',
-      'P_TITLE',          null, 'N/fld[4]',
-      'P_FIRST_NAME',     null, 'N/fld[2]',
-      'P_MIDDLE_NAME',    null, 'N/fld[3]',
-      'P_LAST_NAME',      null, 'N/fld[1]|N/val',
-      'P_FULL_NAME',      null, 'FN/val',
-      'P_BIRTHDAY',       null, 'BDAY/val',
-      'P_B_ORGANIZATION', null, 'ORG/val|ORG/fld[1]',
-      'P_B_JOB',          null, 'TITLE/val',
-      'P_H_ADDRESS1',     vector ('*', 'P_H_ADDRESS1', 'HOME',     'P_H_ADDRESS1', 'WORK',     'P_B_ADDRESS1'),                'for \044v in ADR/fld[3] return concat (\044v, for \044t in \044v/../TYPE return concat (" @TYPE_", \044t))',
-      'P_H_ADDRESS2',     vector ('*', 'P_H_ADDRESS2', 'HOME',     'P_H_ADDRESS2', 'WORK',     'P_B_ADDRESS2'),                'for \044v in ADR/fld[2] return concat (\044v, for \044t in \044v/../TYPE return concat (" @TYPE_", \044t))',
-      'P_H_CITY',         vector ('*', 'P_H_CITY',     'HOME',     'P_H_CITY',     'WORK',     'P_B_CITY'),                    'for \044v in ADR/fld[4] return concat (\044v, for \044t in \044v/../TYPE return concat (" @TYPE_", \044t))',
-      'P_H_CODE',         vector ('*', 'P_H_CODE',     'HOME',     'P_H_CODE',     'WORK',     'P_B_CODE'),                    'for \044v in ADR/fld[6] return concat (\044v, for \044t in \044v/../TYPE return concat (" @TYPE_", \044t))',
-      'P_H_STATE',        vector ('*', 'P_H_STATE',    'HOME',     'P_H_STATE',    'WORK',     'P_B_STATE'),                   'for \044v in ADR/fld[5] return concat (\044v, for \044t in \044v/../TYPE return concat (" @TYPE_", \044t))',
-      'P_H_COUNTRY',      vector ('*', 'P_H_COUNTRY',  'HOME',     'P_H_COUNTRY',  'WORK',     'P_B_COUNTRY'),                 'for \044v in ADR/fld[7] return concat (\044v, for \044t in \044v/../TYPE return concat (" @TYPE_", \044t))',
-      'P_MAIL',           vector ('*', 'P_MAIL',       'HOME',     'P_H_MAIL',     'WORK',     'P_B_MAIL',  'PREF', 'P_MAIL'), 'for \044v in EMAIL/val return concat (\044v, for \044t in \044v/../TYPE return concat (" @TYPE_", \044t))',
-      'P_H_PHONE',        vector ('*', 'P_H_PHONE',    'HOME,FAX', 'P_H_FAX',      'WORK,FAX', 'P_B_FAX',   'FAX',  'P_H_FAX', 'HOME', 'P_H_PHONE', 'WORK', 'P_B_PHONE', 'CELL', 'P_H_MOBILE'), 'for \044v in TEL/val return concat (\044v, for \044t in \044v/../TYPE return concat (" @TYPE_", \044t))',
-      'P_WEB',            vector ('*', 'P_WEB',        'HOME',     'P_H_WEB',      'WORK',     'P_B_WEB'),                     'for \044v in URL/val return concat (\044v, for \044t in \044v/../TYPE return concat (" @TYPE_", \044t))'
+      'P_UID',            vector ('UID/val'),
+      'P_NAME',           vector ('NICKNAME/val', 'N/fld[1]', 'N/fld[2]', 'N/val'),
+      'P_TITLE',          vector ('N/fld[4]'),
+      'P_FIRST_NAME',     vector ('N/fld[2]'),
+      'P_MIDDLE_NAME',    vector ('N/fld[3]'),
+      'P_LAST_NAME',      vector ('N/fld[1]', 'N/val'),
+      'P_FULL_NAME',      vector ('FN/val'),
+      'P_BIRTHDAY',       vector ('BDAY/val'),
+      'P_GENDER',         vector ('X-GENDER/val'),
+      'P_B_ORGANIZATION', vector ('ORG/val', 'ORG/fld[1]'),
+      'P_B_JOB',          vector ('TITLE/val'),
+      'P_ICQ',            vector ('X-ICQ/val'),
+      'P_MSN',            vector ('X-MSN/val'),
+      'P_AIM',            vector ('X-AIM/val'),
+      'P_YAHOO',          vector ('X-YAHOO/val'),
+      'P_SKYPE',          vector ('X-SKYPE/val'),
+      'P_MAIL',           vector ('EMAIL[TYPE="PREF"]/val'),
+      'P_WEB',            vector ('URL[TYPE="PREF"]/val'),
+      'P_H_ADDRESS1',     vector ('ADR[TYPE="HOME" or TYPE!="WORK"]/fld[3]'),
+      'P_H_ADDRESS2',     vector ('ADR[TYPE="HOME" or TYPE!="WORK"]/fld[2]'),
+      'P_H_CITY',         vector ('ADR[TYPE="HOME" or TYPE!="WORK"]/fld[4]'),
+      'P_H_CODE',         vector ('ADR[TYPE="HOME" or TYPE!="WORK"]/fld[6]'),
+      'P_H_STATE',        vector ('ADR[TYPE="HOME" or TYPE!="WORK"]/fld[5]'),
+      'P_H_COUNTRY',      vector ('ADR[TYPE="HOME" or TYPE!="WORK"]/fld[7]'),
+      'P_H_PHONE',        vector ('TEL[TYPE="HOME" or TYPE!="WORK"]/val'),
+      'P_H_FAX',          vector ('TEL[TYPE="HOME" and TYPE="FAX"]/val'),
+      'P_H_MOBILE',       vector ('TEL[TYPE="MOBILE"]/val'),
+      'P_H_MAIL',         vector ('EMAIL[TYPE="HOME"]/val'),
+      'P_H_WEB',          vector ('URL[TYPE="HOME"]/val'),
+      'P_H_ADDRESS1',     vector ('ADR[TYPE="WORK"]/fld[3]'),
+      'P_H_ADDRESS2',     vector ('ADR[TYPE="WORK"]/fld[2]'),
+      'P_H_CITY',         vector ('ADR[TYPE="WORK"]/fld[4]'),
+      'P_H_CODE',         vector ('ADR[TYPE="WORK"]/fld[6]'),
+      'P_H_STATE',        vector ('ADR[TYPE="WORK"]/fld[5]'),
+      'P_H_COUNTRY',      vector ('ADR[TYPE="WORK"]/fld[7]'),
+      'P_B_PHONE',        vector ('TEL[TYPE="WORK"]/val'),
+      'P_B_FAX',          vector ('TEL[TYPE="WORK" and TYPE="FAX"]/val'),
+      'P_B_MOBILE',       vector ('TEL[TYPE="WORK" and TYPE="MOBILE"]/val'),
+      'P_B_MAIL',         vector ('EMAIL[TYPE="WORK"]/val'),
+      'P_B_WEB',          vector ('URL[TYPE="WORK"]/val')
     );
   mLength := length (Meta);
+  MetaGroup := vector
+    (
+      'P_IRI',            vector ('URL/val', 'X-ABLabel[val="PROFILE"]/val')
+    );
+  mGroupLength := length (MetaGroup);
 
   -- using DAV parser
   if (not isstring (content))
@@ -3902,64 +4123,67 @@ create procedure AB.WA.import_vcard (
   xmlItems := xpath_eval ('/*', xmlData, 0);
   foreach (any xmlItem in xmlItems) do
   {
-    itemName := xpath_eval ('name(.)', xmlItem);
-    if (itemName = 'IMC-VCARD')
-    {
       if (not AB.WA.import_check_progress_id (progress_id))
         return;
 
+    if (xpath_eval ('name(.)', xmlItem) <> 'IMC-VCARD')
+      goto _skip;
+
+    xmlItem := xml_cut (xmlItem);
+
       id := -1;
       uid := null;
       pFields := vector ();
       pValues := vector ();
-      for (N := 0; N < mLength; N := N + 3)
+    for (N := 0; N < mLength; N := N + 2)
       {
         pField := Meta [N];
-        tmp := xquery_eval (Meta [N+2], xmlItem, 0);
-        foreach (any T in tmp) do
+      for (M := 0; M < length (Meta[N+1]); M := M + 1)
         {
-          T := cast (T as varchar);
+        T := serialize_to_UTF8_xml (xpath_eval ('/IMC-VCARD/' || Meta[N+1][M] || '/text()', xmlItem, 1));
           if (not is_empty_or_null (T))
           {
-            pField2 := pField;
-            if (pField2 = 'P_UID')
-            {
+          if (pField = 'P_UID')
               uid := T;
-            }
-              if (not isnull (Meta [N+1]))
-              {
-                if (strstr (T, ' @TYPE_') <> 0)
-                {
-                  pField2 := '';
-                  for (M := 0; M < length (Meta [N+1]); M := M + 2)
-                  {
-                    if ((Meta [N+1][M] = '*') and isnull (strstr (T, ' @TYPE_')))
-                    {
-                      pField2 := Meta [N+1][M+1];
-            } else {
-                      V := split_and_decode (Meta [N+1][M], 0, '\0\0,');
-                      for (L := 0; L < length (V); L := L + 1)
+
+          if (not AB.WA.vector_contains (pFields, pField))
                     {
-                        if (isnull (strstr (T, ' @TYPE_' || V[L])))
-                          goto _exit;
-                    }
-                      pField2 := Meta [N+1][M+1];
-                    _exit:;
+            pFields := vector_concat (pFields, vector (pField));
+            pValues := vector_concat (pValues, vector (AB.WA.import_vcard_decode (T)));
                     }
                   }
-                  M := strstr (T, ' @TYPE_');
-                  if (not isnull (M))
-                    T := subseq (T, 0, M);
                 }
               }
-              if (not AB.WA.vector_contains (pFields, pField2))
+    xmlSubItems := xpath_eval ('/IMC-VCARD/*', xmlItem, 0);
+    foreach (any xmlSubItem in xmlSubItems) do
+    {
+      itemSubName := cast (xpath_eval ('name(.)', xmlSubItem) as varchar);
+      pos := strchr (itemSubName, '.');
+      if (pos is not NULL)
               {
-                  pFields := vector_concat (pFields, vector (pField2));
-              pValues := vector_concat (pValues, vector (T));
+        itemName := subseq (itemSubName, pos+1);
+        itemPrefix := subseq (itemSubName, 0, pos);
+        for (N := 0; N < mGroupLength; N := N + 2)
+        {
+          if (strstr (MetaGroup[N+1][0], itemName) = 0)
+          {
+            T := xpath_eval ('/IMC-VCARD/' || itemPrefix || '.' || MetaGroup[N+1][1] || '/text()', xmlItem, 1);
+            if (not isnull (T))
+            {
+              pField := MetaGroup[N];
+              T := serialize_to_UTF8_xml (xpath_eval ('./val/text()', xmlSubItem));
+              if (not AB.WA.vector_contains (pFields, pField))
+              {
+                pFields := vector_concat (pFields, vector (pField));
+                pValues := vector_concat (pValues, vector (AB.WA.import_vcard_decode (T)));
             }
+              goto _1;
           }
         }
       }
+      _1:;
+      }
+    }
       if (isnull (uid) and not isnull (externalUID))
       {
         N := strchr (externalUID, '_');
@@ -3984,7 +4208,6 @@ create procedure AB.WA.import_vcard (
     _skip:;
       AB.WA.import_inc_progress_id (progress_id);
     }
-  }
   return vcardImported;
 }
 ;
@@ -4321,8 +4544,7 @@ create procedure AB.WA.import_foaf_content (
   if (length (Items))
   {
     personIRI := Items[0][0];
-    tmp := replace (Items[N][3], 'mailto:', '');
-    Persons := vector_concat (Persons, vector (vector (1, personIRI,  coalesce (Items[N][2], Items[N][1]), tmp)));
+    Persons := vector_concat (Persons, vector (vector (1, personIRI,  coalesce (Items[0][2], Items[0][1]), replace (Items[0][3], 'mailto:', ''))));
     S := sprintf (' sparql
                     define input:storage ""
                     prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
@@ -4355,21 +4577,20 @@ create procedure AB.WA.import_foaf_content (
                            }', contentIRI);
   }
   Items := AB.WA.ab_sparql (S);
-  for (N := 0; N < length (Items); N := N + 1)
-  {
-    if (not isnull (coalesce (Items[N][2], Items[N][1])))
+  foreach (any Item in Items) do
     {
+    if (isnull (coalesce (Item[2], Item[1])))
+      goto _skip;
+
       for (M := 0; M < length (Persons); M := M + 1)
       {
-        if (Persons[M][1] = Items[N][0])
+      if (Persons[M][1] = Item[0])
           goto _skip;
       }
-      tmp := replace (Items[N][3], 'mailto:', '');
-      Persons := vector_concat (Persons, vector (vector (0, Items[N][0], coalesce (Items[N][2], Items[N][1]), tmp)));
+    Persons := vector_concat (Persons, vector (vector (0, Item[0], coalesce (Item[2], Item[1]), replace (Item[3], 'mailto:', ''))));
+
     _skip:;
     }
-  }
-
 _exit:;
   return Persons;
 }
@@ -4514,6 +4735,74 @@ create procedure AB.WA.import_linkedin (
 }
 ;
 
+--------------------------------------------------------------------------------
+--
+create procedure AB.WA.import_CardDAV (
+  in domain_id integer,
+  in name any,
+  in options any := null,
+  in validation any := null,
+  in progress_id varchar := null)
+{
+  declare _user, _password any;
+  declare _page, _body, _bodyTemplate, _resHeader, _reqHeader any;
+  declare _xml, _xml2, _items, _data any;
+
+  _user := get_keyword ('user', options);
+  _password := get_keyword ('password', options);
+  _bodyTemplate :=
+   '<?xml version="1.0" encoding="utf-8" ?>
+    <C:addressbook-multiget xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:carddav">
+      <D:prop>
+        <D:getetag/>
+        <C:address-data/>
+      </D:prop>
+      <D:href>%s</D:href>
+    </C:addressbook-multiget>';
+
+  -- check CardDAV
+  _reqHeader := 'Accept: text/xml\r\nContent-Type: text/xml; charset=utf-8';
+  if (not is_empty_or_null (_user))
+    _reqHeader := _reqHeader || sprintf ('\r\nAuthorization: Basic %s', encode_base64 (_user || ':' || _password));
+
+  _page := http_client_ext (url=>name, http_method=>'OPTIONS', http_headers=>_reqHeader, headers =>_resHeader, n_redirects=>15);
+  AB.WA.http_error (_resHeader);
+  if (not (http_request_header (_resHeader, 'DAV') like '%addressbook%'))
+    signal ('AB001', 'Bad import/subscription source!<>');
+
+  _body := null;
+  _reqHeader := _reqHeader || '\r\nDepth: 1';
+  _page := http_client_ext (url=>name, http_method=>'PROPFIND', http_headers=>_reqHeader, headers =>_resHeader, body=>_body, n_redirects=>15);
+  AB.WA.http_error (_resHeader);
+  {
+    declare exit handler for sqlstate '*'
+    {
+      signal ('AB001', 'Bad import/subscription source!<>');
+    };
+    _xml := xml_tree_doc (xml_expand_refs (xml_tree (_page)));
+		_items := xpath_eval ('[xmlns:D="DAV:" xmlns="urn:ietf:params:xml:ns:carddav:"] /D:multistatus/D:response/D:href/text()', _xml, 0);
+		foreach (any _item in _items) do
+		{
+      if (not AB.WA.import_check_progress_id (progress_id))
+        return;
+
+      _body := sprintf (_bodyTemplate, cast (_item as varchar));
+
+      commit work;
+      _page := http_client_ext (url=>name, http_method=>'REPORT', http_headers=>_reqHeader, headers =>_resHeader, body=>_body, n_redirects=>15);
+      AB.WA.http_error (_resHeader);
+      _xml2 := xml_tree_doc (xml_expand_refs (xml_tree (_page)));
+		  if (not isnull (xpath_eval ('[xmlns:D="DAV:" xmlns="urn:ietf:params:xml:ns:carddav:"] /D:multistatus/D:response/D:href/text()', _xml2, 1)))
+		  {
+		    _data := cast (xpath_eval ('[xmlns:D="DAV:" xmlns="urn:ietf:params:xml:ns:carddav:"] /D:multistatus/D:response/D:propstat/D:prop/address-data/text()', _xml2, 1) as varchar);
+		    AB.WA.import_vcard (domain_id, _data, options, validation, progress_id);
+      }
+	  }
+  }
+  return 1;
+}
+;
+
 -------------------------------------------------------------------------------
 --
 create procedure AB.WA.import_contact_update (
@@ -4632,6 +4921,15 @@ create procedure AB.WA.import_contact_update (
 
 ----------------------------------------------------------------------
 --
+create procedure AB.WA.export_vcard_encode (
+  in S varchar)
+{
+  return replace (S, ':', '\\:');
+}
+;
+
+----------------------------------------------------------------------
+--
 create procedure AB.WA.export_vcard_line (
   in property varchar,
   in value any,
@@ -4644,6 +4942,24 @@ create procedure AB.WA.export_vcard_line (
 }
 ;
 
+----------------------------------------------------------------------
+--
+create procedure AB.WA.export_vcard_group (
+  in prefix varchar,
+  in property varchar,
+  in value any,
+  in label varchar,
+  in labelValue any,
+  inout sStream any)
+{
+  if (not is_empty_or_null (value))
+  {
+    http (sprintf ('%s:%s\r\n', prefix || '.' || property, AB.WA.export_vcard_encode (cast (value as varchar))), sStream);
+    http (sprintf ('%s:%s\r\n', prefix || '.' || label, cast (labelValue as varchar)), sStream);
+  }
+}
+;
+
 -------------------------------------------------------------------------------
 --
 create procedure AB.WA.export_vcard (
@@ -4668,7 +4984,7 @@ create procedure AB.WA.export_vcard (
     if (AB.WA.tags_exchangeTest (P_TAGS, oTagsInclude, oTagsExclude))
   {
 	  http ('BEGIN:VCARD\r\n', sStream);
-	  http ('VERSION:2.1\r\n', sStream);
+      http ('VERSION:3.0\r\n', sStream);
 
       AB.WA.export_vcard_line ('REV', AB.WA.dt_iso8601 (P_UPDATED), sStream);
 
@@ -4687,6 +5003,7 @@ create procedure AB.WA.export_vcard (
         AB.WA.export_vcard_line ('N', S, sStream);
       }
       AB.WA.export_vcard_line ('BDAY', AB.WA.dt_format (P_BIRTHDAY, 'Y-M-D'), sStream);
+      AB.WA.export_vcard_line ('X-GENDER', initcap (P_GENDER), sStream);
 
 	  -- mail
       AB.WA.export_vcard_line ('EMAIL;TYPE=PREF;TYPE=INTERNET', P_MAIL, sStream);
@@ -4728,6 +5045,14 @@ create procedure AB.WA.export_vcard (
       AB.WA.export_vcard_line ('ORG', P_B_ORGANIZATION, sStream);
       AB.WA.export_vcard_line ('TITLE', P_B_JOB, sStream);
 
+      AB.WA.export_vcard_line ('X-ICQ',   P_ICQ, sStream);
+      AB.WA.export_vcard_line ('X-MSN',   P_MSN, sStream);
+      AB.WA.export_vcard_line ('X-AIM',   P_AIM, sStream);
+      AB.WA.export_vcard_line ('X-YAHOO', P_YAHOO, sStream);
+      AB.WA.export_vcard_line ('X-SKYPE', P_SKYPE, sStream);
+
+      AB.WA.export_vcard_group ('item1', 'URL', P_IRI, 'X-ABLabel', 'PROFILE', sStream);
+
 	  http ('END:VCARD\r\n', sStream);
 	}
 	}
@@ -5100,15 +5425,16 @@ create procedure AB.WA.exchange_exec_internal (
     -- subscribe
     else if (_direction = 1)
     {
+      if (_type = 3)
+        return AB.WA.exchange_CardDAV (_id);
+
       if (_type = 1)
-      {
         _name := AB.WA.host_url () || _name;
-      }
+
       _content := AB.WA.dav_content (_name, _user, _password);
       if (isnull(_content))
-      {
         signal ('AB001', 'Bad import/subscription source!<>');
-      }
+
       AB.WA.import_vcard (_domain_id, _content, _options);
     }
     -- syncml
@@ -5165,6 +5491,27 @@ create procedure AB.WA.exchange_exec_internal (
 
 --------------------------------------------------------------------------------
 --
+create procedure AB.WA.exchange_CardDAV (
+  in _id integer)
+{
+  for (select EX_DOMAIN_ID as _domain_id, EX_TYPE as _direction, deserialize (EX_OPTIONS) as _options from AB.WA.EXCHANGE where EX_ID = _id) do
+  {
+    declare _type, _name, _pName, _user, _password any;
+    declare _page, _body, _bodyTemplate, _resHeader, _reqHeader any;
+    declare _xml, _items, _data any;
+
+    _type := get_keyword ('type', _options);
+    if (_type <> 3)
+       return 0;
+
+    AB.WA.import_CardDAV (_domain_id, get_keyword ('name', _options), _options);
+  }
+  return 1;
+}
+;
+
+--------------------------------------------------------------------------------
+--
 create procedure AB.WA.exchange_scheduler ()
 {
   declare id, days, rc, err integer;
@@ -5280,6 +5627,10 @@ create procedure AB.WA.syncml_check (
     return 0;
   if (VAD.DBA.version_compare (syncmlVersion, '1.05.75') < 0)
     return 0;
+  if (__proc_exists ('DB.DBA.yac_syncml_version_get') is null)
+    return 0;
+  if (__proc_exists ('DB.DBA.yac_syncml_type_get') is null)
+    return 0;
   if (isnull (syncmlPath))
     return 1;
   if (DB.DBA.yac_syncml_version_get (syncmlPath) = 'N')
@@ -5307,11 +5658,8 @@ create procedure AB.WA.syncml_entry_update (
   for (select deserialize (EX_OPTIONS) as _options from AB.WA.EXCHANGE where EX_DOMAIN_ID = _domain_id and EX_TYPE = 2) do
   {
     _syncmlPath := get_keyword ('name', _options);
-
     if (not AB.WA.syncml_check (_syncmlPath))
       goto _skip;
-    if (DB.DBA.yac_syncml_type_get (_syncmlPath) not in ('vcard_11', 'vcard_12'))
-      goto _skip;
 
     oTagsInclude := null;
     oTagsExclude := null;
@@ -5351,17 +5699,15 @@ create procedure AB.WA.syncml_entry_update_internal (
     _content := AB.WA.entry2syncml (_entry_id);
     _permissions := USER_GET_OPTION (_user, 'PERMISSIONS');
     if (isnull (_permissions))
-    {
       _permissions := '110100000RR';
-    }
+
     connection_set ('__sync_dav_upl', '1');
     connection_set ('__sync_ods', '1');
-    DB.DBA.DAV_RES_UPLOAD_STRSES_INT (_path, _content, 'text/x-vcard', _permissions, http_dav_uid (), http_dav_uid () + 1, null, null, 0);
+    DB.DBA.DAV_RES_UPLOAD_STRSES_INT (_path, _content, 'text/x-vcard', _permissions, _user, _user, null, null, 0);
     connection_set ('__sync_ods', '0');
     connection_set ('__sync_dav_upl', '0');
   }
-
-  if (_action = 'D')
+  else if (_action = 'D')
   {
     declare _id integer;
 
@@ -5369,7 +5715,7 @@ create procedure AB.WA.syncml_entry_update_internal (
     if (isinteger(_id) and (_id > 0))
     {
       connection_set ('__sync_ods', '1');
-      DB.DBA.DAV_DELETE (_path, 1, _user, _password);
+      DB.DBA.DAV_DELETE_INT (_path, 1, _user, _password, 0);
       connection_set ('__sync_ods', '0');
     }
   }
diff --git a/appsrc/ODS-Addressbook/sql/ab-a-table.sql b/appsrc/ODS-Addressbook/sql/ab-a-table.sql
index a8d00ee..4851855 100644
--- a/appsrc/ODS-Addressbook/sql/ab-a-table.sql
+++ b/appsrc/ODS-Addressbook/sql/ab-a-table.sql
@@ -1,10 +1,10 @@
 --
---  $Id: ab-a-table.sql,v 1.21.2.4 2010/11/11 12:37:55 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2007 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Addressbook/sql/ab-a-update.sql b/appsrc/ODS-Addressbook/sql/ab-a-update.sql
index 6be1745..4d38288 100644
--- a/appsrc/ODS-Addressbook/sql/ab-a-update.sql
+++ b/appsrc/ODS-Addressbook/sql/ab-a-update.sql
@@ -1,10 +1,10 @@
 --
---  $Id: ab-a-update.sql,v 1.3.2.4 2010/10/07 13:24:45 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2008 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Addressbook/sql/ab-a-wa.sql b/appsrc/ODS-Addressbook/sql/ab-a-wa.sql
index 749213e..1910a87 100644
--- a/appsrc/ODS-Addressbook/sql/ab-a-wa.sql
+++ b/appsrc/ODS-Addressbook/sql/ab-a-wa.sql
@@ -1,10 +1,10 @@
 --
---  $Id: ab-a-wa.sql,v 1.8.2.9 2011/05/17 23:00:21 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2007 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Addressbook/sql/ab-d.sql b/appsrc/ODS-Addressbook/sql/ab-d.sql
index 6037065..a0414aa 100644
--- a/appsrc/ODS-Addressbook/sql/ab-d.sql
+++ b/appsrc/ODS-Addressbook/sql/ab-d.sql
@@ -1,10 +1,10 @@
 --
---  $Id: ab-d.sql,v 1.13.2.8 2011/06/02 12:33:25 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2007 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Addressbook/sql/sioc_ab.sql b/appsrc/ODS-Addressbook/sql/sioc_ab.sql
index cc1e4dc..c2cef61 100644
--- a/appsrc/ODS-Addressbook/sql/sioc_ab.sql
+++ b/appsrc/ODS-Addressbook/sql/sioc_ab.sql
@@ -1,10 +1,10 @@
 --
---  $Id: sioc_ab.sql,v 1.33.2.15 2011/08/01 14:15:23 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2007 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -120,6 +120,7 @@ create procedure fill_ods_addressbook_sioc2 (
     fill_ods_addressbook_services ();
 
     for (select WAI_ID,
+                WAI_IS_PUBLIC,
                 WAI_TYPE_NAME,
                 WAI_NAME,
                 WAI_ACL
@@ -129,7 +130,7 @@ create procedure fill_ods_addressbook_sioc2 (
     {
       graph_iri := SIOC..acl_graph (WAI_TYPE_NAME, WAI_NAME);
       exec (sprintf ('sparql clear graph <%s>', graph_iri));
-      SIOC..wa_instance_acl_insert (WAI_TYPE_NAME, WAI_NAME, WAI_ACL);
+      SIOC..wa_instance_acl_insert (WAI_IS_PUBLIC, WAI_TYPE_NAME, WAI_NAME, WAI_ACL);
       for (select P_DOMAIN_ID, P_ID, P_ACL
              from AB.WA.PERSONS
             where P_DOMAIN_ID = WAI_ID and P_ACL is not null) do
@@ -216,7 +217,7 @@ create procedure fill_ods_addressbook_sioc2 (
           order by P_ID) do
   {
       contact_iri := SIOC..addressbook_contact_iri (P_DOMAIN_ID, P_ID);
-      graph_iri := SIOC..get_graph_new (null, coalesce (_access_mode, WAI_IS_PUBLIC), contact_iri);
+      graph_iri := SIOC..get_graph_new (coalesce (_access_mode, WAI_IS_PUBLIC), contact_iri);
       addressbook_iri := addressbook_iri (WAI_NAME);
       socialnetwork_iri := socialnetwork_iri (WAI_NAME);
     creator_iri := user_iri (WAM_USER);
@@ -318,7 +319,7 @@ create procedure fill_ods_addressbook_services ()
 
 -------------------------------------------------------------------------------
 --
-create procedure clean_ods_addressbook_sioc2 (
+create procedure clean_ods_addressbook_sioc (
   in _wai_name varchar := null,
   in _access_mode integer := null)
 {
@@ -355,7 +356,7 @@ create procedure clean_ods_addressbook_sioc2 (
           order by P_ID) do
     {
       contact_iri := SIOC..addressbook_contact_iri (P_DOMAIN_ID, P_ID);
-      graph_iri := SIOC..get_graph_new (null, coalesce (_access_mode, WAI_IS_PUBLIC), contact_iri);
+      graph_iri := SIOC..get_graph_new (coalesce (_access_mode, WAI_IS_PUBLIC), contact_iri);
 
       contact_delete (graph_iri,
                       P_DOMAIN_ID,
@@ -456,7 +457,7 @@ create procedure contact_insert (
             and WAI_IS_PUBLIC > 0) do
   {
       iri := addressbook_contact_iri (domain_id, contact_id);
-      graph_iri := SIOC..get_graph_new (domain_id, WAI_IS_PUBLIC, iri);
+      graph_iri := SIOC..get_graph_new (WAI_IS_PUBLIC, iri);
       addressbook_iri := addressbook_iri (WAI_NAME);
       socialnetwork_iri := socialnetwork_iri (WAI_NAME);
     creator_iri := user_iri (WAM_USER);
@@ -706,7 +707,7 @@ create procedure contact_delete (
   iri := SIOC..addressbook_contact_iri (domain_id, contact_id);
   if (isnull (graph_iri))
   {
-    graph_iri := SIOC..get_graph_new (domain_id, null, iri);
+    graph_iri := SIOC..get_graph_new (AB.WA.domain_is_public (domain_id), iri);
     if (isnull (graph_iri))
       return;
   }
@@ -1043,7 +1044,7 @@ create procedure contact_comment_insert (
   master_id := cast (master_id as integer);
   master_iri := SIOC..addressbook_contact_iri (domain_id, master_id);
 	if (isnull (graph_iri))
-    graph_iri := get_graph_new (domain_id, null, master_iri);
+    graph_iri := get_graph_new (AB.WA.domain_is_public (domain_id), master_iri);
 
     if (isnull (graph_iri))
       return;
@@ -1083,7 +1084,7 @@ create procedure contact_comment_delete (
   master_id := cast (master_id as integer);
   master_iri := SIOC..addressbook_contact_iri (domain_id, master_id);
   if (isnull (graph_iri))
-    graph_iri := SIOC..get_graph_new (domain_id, null, master_iri);
+    graph_iri := SIOC..get_graph_new (AB.WA.domain_is_public (domain_id), master_iri);
 
     if (isnull (graph_iri))
       return;
@@ -1231,7 +1232,7 @@ create procedure contact_annotation_insert (
   master_iri := SIOC..addressbook_contact_iri (domain_id, master_id);
 	if (isnull (graph_iri))
 		{
-    graph_iri := get_graph_new (domain_id, null, master_iri);
+    graph_iri := get_graph_new (AB.WA.domain_is_public (domain_id), master_iri);
     if (isnull (graph_iri))
       return;
 		}
@@ -1268,7 +1269,7 @@ create procedure contact_annotation_delete (
   master_iri := SIOC..addressbook_contact_iri (domain_id, master_id);
   if (isnull (graph_iri))
   {
-    graph_iri := SIOC..get_graph_new (domain_id, null, master_iri);
+    graph_iri := SIOC..get_graph_new (AB.WA.domain_is_public (domain_id), master_iri);
     if (isnull (graph_iri))
       return;
   }
diff --git a/appsrc/ODS-Addressbook/vad_version b/appsrc/ODS-Addressbook/vad_version
new file mode 100644
index 0000000..7230342
--- /dev/null
+++ b/appsrc/ODS-Addressbook/vad_version
@@ -0,0 +1 @@
+1.9.72
diff --git a/appsrc/ODS-Addressbook/www/ab_login.vspx b/appsrc/ODS-Addressbook/www/ab_login.vspx
index 023b3cf..0d5cb09 100644
--- a/appsrc/ODS-Addressbook/www/ab_login.vspx
+++ b/appsrc/ODS-Addressbook/www/ab_login.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
-  -  $Id: ab_login.vspx,v 1.2.2.4 2010/10/07 13:24:45 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -34,16 +34,16 @@
       if (page_name = 'error.vspx')
         return;
 
-      if (AB.WA.check_grants (self.account_rights, page_name))
+      if (AB.WA.check_grants (self.person_rights, page_name))
         return;
 
-      if (isnull (self.account_rights) and not is_empty_or_null (self.sid))
+      if (isnull (self.person_rights) and not is_empty_or_null (self.sid))
       {
         self.vc_redirect (sprintf ('/ods/error.vspx?__PAGE=%U&__SQL_STATE=%U&__SQL_MESSAGE=%U', 'home.vspx', '23023', 'You have no access rights for the application!'));
         return;
       }
 
-      if (isnull (self.account_rights))
+      if (isnull (self.person_rights))
       {
       vh := http_map_get ('vhost');
       lh := http_map_get ('lhost');
diff --git a/appsrc/ODS-Addressbook/www/ajax.vsp b/appsrc/ODS-Addressbook/www/ajax.vsp
index 79b1996..b413069 100644
--- a/appsrc/ODS-Addressbook/www/ajax.vsp
+++ b/appsrc/ODS-Addressbook/www/ajax.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: ajax.vsp,v 1.1.2.5 2011/06/09 17:43:16 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2008 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Addressbook/www/annotea.vspx b/appsrc/ODS-Addressbook/www/annotea.vspx
index c59d0c6..6363397 100644
--- a/appsrc/ODS-Addressbook/www/annotea.vspx
+++ b/appsrc/ODS-Addressbook/www/annotea.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: annotea.vspx,v 1.7.2.6 2011/07/04 10:04:00 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Addressbook/www/conversation.vspx b/appsrc/ODS-Addressbook/www/conversation.vspx
index c69ff42..22dbdcb 100644
--- a/appsrc/ODS-Addressbook/www/conversation.vspx
+++ b/appsrc/ODS-Addressbook/www/conversation.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: conversation.vspx,v 1.2.2.3 2011/05/02 14:16:24 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Addressbook/www/css/style.css b/appsrc/ODS-Addressbook/www/css/style.css
index 0dedb90..ff70ef0 100644
--- a/appsrc/ODS-Addressbook/www/css/style.css
+++ b/appsrc/ODS-Addressbook/www/css/style.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: style.css,v 1.18.2.11 2011/05/17 23:00:21 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2007 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -28,11 +28,29 @@ body {
   font-size: 9pt;
 }
 
+pre {
+  white-space: pre-wrap;       /* css-3 */
+  white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
+  white-space: -pre-wrap;      /* Opera 4-6 */
+  white-space: -o-pre-wrap;    /* Opera 7 */
+  word-wrap: break-word;       /* Internet Explorer 5.5+ */
+}
+
 form {
   margin: 0;
   padding: 0;
 }
 
+abbr {
+  border: none;
+}
+
+input[type="text"], input[type="password"], select {
+  box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  -webkit-box-sizing: border-box;
+}
+
 a {
   text-decoration: none;
 }
@@ -71,46 +89,7 @@ a:hover {
   vertical-align: top;
 }
 
-/* Footer */
-
-#FT {
-  width: 100%;
-  position: relative;
-  bottom: 0px;
-  font-size: 8pt;
-  float: left;
-  clear: both;
-  text-align: right;
-  border-top: 2px solid #fff;
-  margin-right: 10px;
-  background-color: #fff;
-  background-image: url(../image/ods_main_footer.png);
-}
-
-#FT_L {
-  float: left;
-  clear: left;
-  margin-top: 10px;
-  margin-left: 8px;
-  border: 1px solid #788;
-}
-
-#FT_R {
-  float: right;
-  clear: right;
-  margin-top: 10px;
-  margin-bottom: 10px;
-  margin-right: 5px;
-  color: #788;
-}
-
-#FT_R a {
-  text-decoration: none;
-  color: inherit;
-}
-
 /* Left side within MT */
-
 .page_head {
   width: 100%;
   background-color: #b0cde4;
@@ -120,6 +99,7 @@ a:hover {
   font-size: 12px;
   background-color: #EFEFEF;
   border: 1px solid #7f94a5;
+  border-radius: 5px;
   -moz-border-radius: 5px;
   -webkit-border-radius: 5px;
   padding: 5px;
@@ -610,6 +590,8 @@ div.tab {
   border: 1px solid #000;
   border-bottom-width: 0px;
   border-color: #7f94a5;
+  border-top-left-radius: 3px;
+  border-top-right-radius: 3px;
   -moz-border-radius-topleft: 3px;
   -moz-border-radius-topright: 3px;
   -webkit-border-top-left-radius: 3px;
@@ -790,6 +772,7 @@ div.menu .menuItem:hover {
 span.button {
   background: none repeat scroll 0 0 #99B3C5;
   border: 1px solid #7F94A5;
+  border-radius: 5px;
   -moz-border-radius: 5px;
   -webkit-border-radius: 5px;
   color: #FFFFFF;
diff --git a/appsrc/ODS-Addressbook/www/error.vspx b/appsrc/ODS-Addressbook/www/error.vspx
index 8824500..7ca3e5e 100644
--- a/appsrc/ODS-Addressbook/www/error.vspx
+++ b/appsrc/ODS-Addressbook/www/error.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
-  -  $Id: error.vspx,v 1.3.2.2 2010/09/20 10:14:40 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Addressbook/www/export.vspx b/appsrc/ODS-Addressbook/www/export.vspx
index fe1b7ae..3fdf9fb 100644
--- a/appsrc/ODS-Addressbook/www/export.vspx
+++ b/appsrc/ODS-Addressbook/www/export.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
-  -  $Id: export.vspx,v 1.5.2.4 2010/10/07 13:24:45 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Addressbook/www/gems.vsp b/appsrc/ODS-Addressbook/www/gems.vsp
index ba2e53f..8d32759 100644
--- a/appsrc/ODS-Addressbook/www/gems.vsp
+++ b/appsrc/ODS-Addressbook/www/gems.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: gems.vsp,v 1.1.2.3 2010/10/07 13:24:46 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2008 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Addressbook/www/home.vspx b/appsrc/ODS-Addressbook/www/home.vspx
index 810c43e..c13ecf8 100644
--- a/appsrc/ODS-Addressbook/www/home.vspx
+++ b/appsrc/ODS-Addressbook/www/home.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: home.vspx,v 1.58.2.29 2011/07/04 10:04:00 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -51,7 +51,7 @@
         self.v_id := atoi(self.abContact);
         if (self.v_id = -1)
         {
-          if (self.account_rights = 'W')
+          if (self.person_rights = 'W')
           {
             self.abAction := 'create';
             self.v_name := trim (get_keyword ('name', params, ''));
@@ -93,11 +93,11 @@
 
   <v:method name="toolbarEnable" arglist="in cmd varchar">
     <![CDATA[
-      if ((cmd = 'create') and ((self.account_rights <> 'W') or (self.abScope = 'MySharedContacts')))
+      if ((cmd = 'create') and ((self.person_rights <> 'W') or (self.abScope = 'MySharedContacts')))
         return 0;
-      if ((cmd = 'import') and ((self.account_rights <> 'W') or (self.abScope = 'MySharedContacts')))
+      if ((cmd = 'import') and ((self.person_rights <> 'W') or (self.abScope = 'MySharedContacts')))
         return 0;
-      if ((cmd = 'export') and ((self.account_rights <> 'W') or (self.abScope = 'MySharedContacts')))
+      if ((cmd = 'export') and ((self.person_rights <> 'W') or (self.abScope = 'MySharedContacts')))
         return 0;
       return 1;
     ]]>
@@ -247,7 +247,7 @@
          {
            http (' ');
          } else {
-           http (sprintf ('<img class="photo" src="%s"/>', fValue));
+        http (sprintf ('<img class="resize" src="%s" />', fValue));
          }
     ]]>
   </v:method>
@@ -329,24 +329,24 @@
           http ('<div style="margin-left:12px; white-space: nowrap;">');
         }
         image := 'plus.gif';
-        image2 := 'folder_16.png';
+        image2 := 'image/folder_16.png';
         alt := 'Open Node';
         if (not AB.WA.ab_node_has_childs (domain_id, user_id, nodes[N+1], nodes[N+2]))
         {
           image := 'c.gif';
-          image2 := 'folder_16.png';
+          image2 := 'image/folder_16.png';
         }
         else if (AB.WA.vector_contains(self.abState, nodes[N+2]))
         {
           image := 'minus.gif';
-          image2 := 'folder_open_16.png';
+          image2 := 'image/folder_open_16.png';
           alt := 'Close Node';
         }
 
         if ((AB.WA.node_type(nodes[N+1]) = 'u') and (AB.WA.node_id(nodes[N+1]) = -1))
-          image2 := 'group_16.png';
+          image2 := '/ods/images/icons/group_16.png';
         if ((AB.WA.node_type(nodes[N+1]) = 'u') and (AB.WA.node_id(nodes[N+1]) >= 0))
-          image2 := 'user_16.png';
+          image2 := '/ods/images/icons/user_16.png';
 
         class := 'nolink_b';
         if (nodes[N+2] = self.abPath)
@@ -360,7 +360,7 @@
         } else {
           http(sprintf('<a href="#" name="pt_toggle_%s" onclick="javascript: vspxPost (\'pt_browse\', \'pt_toggle\', \'%s\', \'pt_path\', \'%s\'); return false"><img src="image/%s" border="0" class="nolink" alt="%s" title="%s" /></a>', nodes[N+2], nodes[N+1], nodes[N+2], image, alt, alt));
         }
-        http(sprintf('<a href="#" name="pt_node_%s" onclick="javascript: vspxPost (\'pt_browse\', \'pt_node\', \'%s\', \'pt_path\', \'%s\'); return false" class="nolink3 %s" alt="%s" title="%s" > <img src="image/%s" border="0" alt="" /> %s</a>', nodes[N+2], nodes[N+1], nodes[N+2], class, nodes[N], nodes[N], image2, nodes[N]));
+        http(sprintf('<a href="#" name="pt_node_%s" onclick="javascript: vspxPost (\'pt_browse\', \'pt_node\', \'%s\', \'pt_path\', \'%s\'); return false" class="nolink3 %s" alt="%s" title="%s" > <img src="%s" border="0" alt="" /> %s</a>', nodes[N+2], nodes[N+1], nodes[N+2], class, nodes[N], nodes[N], image2, nodes[N]));
         if (image = 'minus.gif')
           self.showTree(level+1, domain_id, user_id, nodes[N+1], nodes[N+2]);
 
@@ -399,6 +399,8 @@
 
       self.i_source := -1;
       self.i_type := -1;
+      self.i_uUser := '';
+      self.i_uPassword := '';
       self.i_lName := '';
       self.i_lHost := '';
       self.i_lPort := '';
@@ -491,7 +493,7 @@
         }
       }
       self.v_grants := trim (self.v_grants, ',');
-      self.v_acl := serialize (DB.DBA.wa_acl_params (params));
+      self.v_acl := serialize (DB.DBA.wa_aci_params (params));
     ]]>
   </v:method>
 
@@ -595,6 +597,8 @@
 
       <v:variable name="i_source" type="any" default="-1"/>
       <v:variable name="i_type" type="any" default="-1"/>
+      <v:variable name="i_uUser" type="varchar" default="''" />
+      <v:variable name="i_uPassword" type="varchar" default="''" />
       <v:variable name="i_lName" type="varchar" default="''"/>
       <v:variable name="i_lHost" type="varchar" default="''"/>
       <v:variable name="i_lPort" type="varchar" default="'389'"/>
@@ -641,7 +645,7 @@
             self.abSubAction := '';
             self.abValue := '';
           }
-          if ((self.account_rights <> 'W') and (self.abAction = 'settings'))
+          if ((self.person_rights <> 'W') and (self.abAction = 'settings'))
             self.abAction := 'browse';
             
           self.mode_test();
@@ -1070,7 +1074,7 @@
                   {
                     if (not is_empty_or_null(self.abValue))
                     {
-                  image := 'tag_16.png';
+                      image := 'image/tag_16.png';
                       nodeName := nodeName || ', Tag: ' || self.abValue;
                     }
                   }
@@ -1086,15 +1090,15 @@
                 }
                 if (self.abScope = 'MySharedContacts')
                 {
-                image := 'group_16.png';
+                  image := '/ods/images/icons/group_16.png';
                 if ((AB.WA.node_type (self.abNode) = 'u') and (AB.WA.node_id (self.abNode) >= 0))
-                  image := 'user_16.png';
+                    image := '/ods/images/icons/user_16.png';
                 nodeName := self.abName;
               }
 
               --nodeName := AB.WA.stringCut (coalesce(nodeName, ''), self.chars);
               if (image <> '')
-                image := sprintf ('<img src="image/%s" border="0" alt="" /> ', image);
+                  image := sprintf ('<img src="%s" border="0" alt="" /> ', image);
 
                 http('<div id="ab_header">');
                 if (not is_empty_or_null(nodeName))
@@ -1125,7 +1129,7 @@
                         if (not is_empty_or_null (cast (self.abValue as integer)))
                           AB.WA.xml_set('category', data, self.abValue);
                       }
-                        control.ds_sql := AB.WA.search_sql (self.domain_id, self.account_id, self.account_rights, data);
+                        control.ds_sql := AB.WA.search_sql (self.domain_id, self.account_id, self.person_rights, data);
                     }
                     else if (self.abScope = 'MySharedContacts')
                     {
@@ -1181,7 +1185,7 @@
                     <table class="ODS_grid" style="border: 0px;">
                       <thead>
                     <tr>
-                          <v:template name="t2" type="simple" enabled="--case when ((self.account_rights <> 'W') or (self.abScope = 'MySharedContacts')) then 0 else 1 end">
+                          <v:template name="t2" type="simple" enabled="--case when ((self.person_rights <> 'W') or (self.abScope = 'MySharedContacts')) then 0 else 1 end">
                             <th class="checkbox">
                           <input type="checkbox" name="cb_all" value="Select All" onclick="selectAllCheckboxes(this, 'cb_item')" />
                         </th>
@@ -1200,11 +1204,11 @@
                         declare permissions any;
 
                         id := (control as vspx_row_template).te_column_value('P_ID');
-                        permissions := AB.WA.contact_rights (self.domain_id, id, self.account_rights);
+                        permissions := AB.WA.contact_rights (self.domain_id, id, self.account_rights, self.person_rights);
                       ?>
                   <table>
                     <tr>
-                          <vm:if test="(self.account_rights = 'W') and (self.abScope <> 'MySharedContacts')">
+                          <vm:if test="(self.person_rights = 'W') and (self.abScope <> 'MySharedContacts')">
                             <td class="checkbox" valign="top">
                           <?vsp
                                 if (permissions = 'W')
@@ -1609,7 +1613,7 @@
                     <table class="form-body n" cellspacing="0">
                       <tr>
                         <th>
-                          <v:label for="ab_foaf" value="Profile Document URL" />
+                          <vm:label for="x_foaf" value="Profile Document URL" />
                         </th>
                         <td>
                           <vm:if test="self.abAction <> 'view'">
@@ -1636,7 +1640,7 @@
                       </vm:if>
                       <tr>
                         <th>
-                          <v:label for="ab_foaf" value="Profile Document URL" />
+                          <vm:label for="ab_foaf" value="Profile Document URL" />
                         </th>
                         <td>
                           <vm:if test="self.abAction <> 'view'">
@@ -1647,7 +1651,7 @@
                       </tr>
                       <tr>
                         <th>
-                          <v:label for="ab_iri" value="WebID" />
+                          <vm:label for="ab_iri" value="WebID" />
                         </th>
                         <td>
                           <vm:if test="self.abAction <> 'view'">
@@ -1658,22 +1662,22 @@
                       </tr>
                       <tr>
                       <th width="25%">
-                        <v:label for="ab_name" value="Name (*)" />
+                          <vm:label for="ab_name" value="Name (*)" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_name" value="--self.v_name" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
+                            <v:text name="ab_name" xhtml_id="ab_name" value="--self.v_name" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_name, 'nickname', null); ?>
                       </td>
                     </tr>
                     <tr class="contactType">
                       <th>
-                        <v:label for="ab_title" value="Title"/>
+                          <vm:label for="ab_title" value="Title" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                          <v:select-list name="ab_title">
+                            <v:select-list name="ab_title" xhtml_id="ab_title">
                           <v:item name="" value=""/>
                           <v:item name="Mr" value="Mr"/>
                           <v:item name="Mrs" value="Mrs"/>
@@ -1693,55 +1697,55 @@
                     </tr>
                     <tr class="contactType">
                       <th>
-                        <v:label for="ab_fName" value="First Name"/>
+                          <vm:label for="ab_fName" value="First Name" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_fName" value="--self.v_fName" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
+                            <v:text name="ab_fName" xhtml_id="ab_fName" value="--self.v_fName" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_fName, 'given-name', null); ?>
                       </td>
                     </tr>
                     <tr class="contactType">
                       <th>
-                        <v:label for="ab_mName" value="Middle Name" />
+                          <vm:label for="ab_mName" value="Middle Name" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_mName" value="--self.v_mName" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
+                            <v:text name="ab_mName" xhtml_id="ab_mName" value="--self.v_mName" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_mName, 'additional-name', null); ?>
                       </td>
                     </tr>
                     <tr class="contactType">
                       <th>
-                        <v:label for="ab_lName" value="Last Name"/>
+                          <vm:label for="ab_lName" value="Last Name" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_lName" value="--self.v_lName" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
+                            <v:text name="ab_lName" xhtml_id="ab_lName" value="--self.v_lName" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_lName, 'family-name', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_fullName" value="Full Name"/>
+                          <vm:label for="ab_fullName" value="Full Name" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_fullName" value="--self.v_fullName" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
+                            <v:text name="ab_fullName" xhtml_id="ab_fullName" value="--self.v_fullName" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
                         </vm:if>
                           <?vsp self.viewField (self.v_fullName, 'fn', null); ?>
                       </td>
                     </tr>
                     <tr class="contactType">
                       <th>
-                        <v:label for="ab_gender" value="Gender" />
+                          <vm:label for="ab_gender" value="Gender" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                          <v:select-list name="ab_gender">
+                            <v:select-list name="ab_gender" xhtml_id="ab_gender">
                           <v:item name="" value=""/>
                           <v:item name="Male" value="male"/>
                           <v:item name="Female" value="female"/>
@@ -1758,7 +1762,7 @@
                     </tr>
                     <tr class="contactType">
                       <th>
-                          <v:label for="ab_birthday" value="Birthday" />
+                          <vm:label for="ab_birthday" value="Birthday" />
                       </th>
                         <td nowrap="nowrap">
                         <vm:if test="self.abAction <> 'view'">
@@ -1825,7 +1829,7 @@
                         </th>
                         <td class="listing_col" nowrap="nowrap">
                           <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_photo" value="--self.v_photo" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
+                            <v:text name="ab_photo" xhtml_id="ab_photo" value="--self.v_photo" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
                             <v:button name="ab_photo_preview" value="Preview" action="simple" xhtml_class="button">
                               <v:on-post>
                                 <![CDATA[
@@ -1934,7 +1938,7 @@
                       </vm:if>
                     <tr>
                         <th>
-                          <v:label for="ab_category" value="Category" />
+                          <vm:label for="ab_category_name" value="Category" />
                         </th>
                         <td id="td_cc">
                           <vm:if test="self.abAction <> 'view'">
@@ -1970,11 +1974,11 @@
                         }
                       </script>
                       <th>
-                        <v:label for="ab_tags" value="Tags (comma-separated)" />
+                          <vm:label for="ab_tags" value="Tags (comma-separated)" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                        <v:text name="ab_tags" null-value="''" value="--self.v_tags" xhtml_class="textbox" xhtml_size="60"/>
+                            <v:text name="ab_tags" xhtml_id="ab_tags" null-value="''" value="--self.v_tags" xhtml_class="textbox" xhtml_size="60" />
                           <input type="button" value="Suggest" onclick="javascript: suggestTags();" class="button" />
                           <input type="button" value="Clear" onclick="javascript: document.F1.elements['ab_tags'].value = ''" class="button" />
                         </vm:if>
@@ -1990,77 +1994,77 @@
                   <table class="form-body" cellspacing="0">
                     <tr>
                       <th width="25%">
-                        <v:label for="ab_mail" value="Mail"/>
+                          <vm:label for="ab_mail" value="Mail" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_mail" value="--self.v_mail" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
+                            <v:text name="ab_mail" xhtml_id="ab_mail" value="--self.v_mail" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
                         </vm:if>
                           <?vsp self.viewField (self.v_mail, 'email:internet, pref', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_web" value="Web"/>
+                          <vm:label for="ab_web" value="Web" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_web" value="--self.v_web" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
+                            <v:text name="ab_web" xhtml_id="ab_web" value="--self.v_web" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
                         </vm:if>
                           <?vsp self.viewField (self.v_web, 'url:pref', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_icq" value="Icq"/>
+                          <vm:label for="ab_icq" value="Icq" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_icq" value="--self.v_icq" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
+                            <v:text name="ab_icq" xhtml_id="ab_icq" value="--self.v_icq" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_icq, '', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_skype" value="Skype ID"/>
+                          <vm:label for="ab_skype" value="Skype ID" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_skype" value="--self.v_skype" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
+                            <v:text name="ab_skype" xhtml_id="ab_skype" value="--self.v_skype" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_skype, '', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_aim" value="AIM Name"/>
+                          <vm:label for="ab_aim" value="AIM Name" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_aim" value="--self.v_aim" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
+                            <v:text name="ab_aim" xhtml_id="ab_aim" value="--self.v_aim" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_aim, '', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_yahoo" value="Yahoo! ID"/>
+                          <vm:label for="ab_yahoo" value="Yahoo! ID" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_yahoo" value="--self.v_yahoo" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
+                            <v:text name="ab_yahoo" xhtml_id="ab_yahoo" value="--self.v_yahoo" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_yahoo, '', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_msn" value="MSN Messenger"/>
+                          <vm:label for="ab_msn" value="MSN Messenger" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_msn" value="--self.v_msn" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
+                            <v:text name="ab_msn" xhtml_id="ab_msn" value="--self.v_msn" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_msn, '', null); ?>
                       </td>
@@ -2072,7 +2076,7 @@
                   <table class="form-body" cellspacing="0">
                     <tr>
                       <th width="25%">
-                        <v:label for="ab_hCountry" value="Country"/>
+                          <vm:label for="ab_hCountry" value="Country" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
@@ -2083,7 +2087,7 @@
                     </tr>
                     <tr>
                       <th>
-                          <v:label for="ab_hState" value="State/Province" />
+                          <vm:label for="ab_hState" value="State/Province" />
                       </th>
       		            <td>
                         <vm:if test="self.abAction <> 'view'">
@@ -2098,55 +2102,55 @@
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_hCity" value="City/Town"/>
+                          <vm:label for="ab_hCity" value="City/Town" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_hCity" value="--self.v_hCity" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
+                            <v:text name="ab_hCity" xhtml_id="ab_hCity" value="--self.v_hCity" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_hCity, 'locality', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_hCode" value="Zip/Postal Code" />
+                          <vm:label for="ab_hCode" value="Zip/Postal Code" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_hCode" value="--self.v_hCode" xhtml_size="30" />
+                            <v:text name="ab_hCode" xhtml_id="ab_hCode" value="--self.v_hCode" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_hCode, 'postal-code', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_hAddress1" value="Address1"/>
+                          <vm:label for="ab_hAddress1" value="Address1" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_hAddress1" value="--self.v_hAddress1" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
+                            <v:text name="ab_hAddress1" xhtml_id="ab_hAddress1" value="--self.v_hAddress1" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
                         </vm:if>
                           <?vsp self.viewField (self.v_hAddress1, 'street-address', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_hAddress2" value="Address2"/>
+                          <vm:label for="ab_hAddress2" value="Address2" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_hAddress2" value="--self.v_hAddress2" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
+                            <v:text name="ab_hAddress2" xhtml_id="ab_hAddress2" value="--self.v_hAddress2" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
                         </vm:if>
                           <?vsp self.viewField (self.v_hAddress2, 'extended-address', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_hTzone" value="Time Zone"/>
+                          <vm:label for="ab_hTzone" value="Time Zone" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                        <v:select-list name="ab_hTzone">
+                            <v:select-list name="ab_hTzone" xhtml_id="ab_hTzone">
                           <v:on-init>
                             <![CDATA[
                               declare x,y any;
@@ -2167,7 +2171,7 @@
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_hLat" value="Latitude"/>
+                          <vm:label for="ab_hLat" value="Latitude" />
                       </th>
 		                  <td>
                         <vm:if test="self.abAction <> 'view'">
@@ -2178,7 +2182,7 @@
 		                </tr>
 		                <tr>
                       <th>
-                        <v:label for="ab_hLng" value="Longitude" />
+                          <vm:label for="ab_hLng" value="Longitude" />
                       </th>
 		                  <td>
                         <vm:if test="self.abAction <> 'view'">
@@ -2189,55 +2193,55 @@
 		                </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_hWeb" value="Web"/>
+                          <vm:label for="ab_hWeb" value="Web" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_hWeb" value="--self.v_hWeb" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
+                            <v:text name="ab_hWeb" xhtml_id="ab_hWeb" value="--self.v_hWeb" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
                         </vm:if>
                           <?vsp self.viewField (self.v_hWeb, 'url:home', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_hMail" value="Mail"/>
+                          <vm:label for="ab_hMail" value="Mail" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_hMail" value="--self.v_hMail" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
+                            <v:text name="ab_hMail" xhtml_id="ab_hMail" value="--self.v_hMail" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
                         </vm:if>
                           <?vsp self.viewField (self.v_hMail, 'email:internet', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_hPhone" value="Phone"/>
+                          <vm:label for="ab_hPhone" value="Phone" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_hPhone" value="--self.v_hPhone" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
+                            <v:text name="ab_hPhone" xhtml_id="ab_hPhone" value="--self.v_hPhone" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_hPhone, 'tel:home', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_hMobile" value="Mobile"/>
+                          <vm:label for="ab_hMobile" value="Mobile" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_hMobile" value="--self.v_hMobile" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
+                            <v:text name="ab_hMobile" xhtml_id="ab_hMobile" value="--self.v_hMobile" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_hMobile, 'tel:home,cell', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_hFax" value="Fax" />
+                          <vm:label for="ab_hFax" value="Fax" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_hFax" value="--self.v_hFax" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
+                            <v:text name="ab_hFax" xhtml_id="ab_hFax" value="--self.v_hFax" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_hFax, '', null); ?>
                       </td>
@@ -2249,7 +2253,7 @@
                   <table class="form-body" cellspacing="0">
                     <tr>
                       <th width="25%">
-                        <v:label for="ab_bCountry" value="Country"/>
+                          <vm:label for="ab_bCountry" value="Country" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
@@ -2260,7 +2264,7 @@
                     </tr>
                     <tr>
                       <th>
-                          <v:label for="ab_bState" value="State/Province" />
+                          <vm:label for="ab_bState" value="State/Province" />
                       </th>
       		            <td>
                         <vm:if test="self.abAction <> 'view'">
@@ -2275,55 +2279,55 @@
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_bCity" value="City/Town"/>
+                          <vm:label for="ab_bCity" value="City/Town" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_bCity" value="--self.v_bCity" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
+                            <v:text name="ab_bCity" xhtml_id="ab_bCity" value="--self.v_bCity" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_bCity, 'locality', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_bCode" value="Zip/Postal Code"/>
+                          <vm:label for="ab_bCode" value="Zip/Postal Code" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_bCode" value="--self.v_bCode" xhtml_size="30" />
+                            <v:text name="ab_bCode" xhtml_id="ab_bCode" value="--self.v_bCode" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_bCode, 'postal-code', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_bAddress1" value="Address1"/>
+                          <vm:label for="ab_bAddress1" value="Address1" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_bAddress1" value="--self.v_bAddress1" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
+                            <v:text name="ab_bAddress1" xhtml_id="ab_bAddress1" value="--self.v_bAddress1" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
                         </vm:if>
                           <?vsp self.viewField (self.v_bAddress1, 'street-address', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_bAddress2" value="Address2"/>
+                          <vm:label for="ab_bAddress2" value="Address2" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_bAddress2" value="--self.v_bAddress2" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
+                            <v:text name="ab_bAddress2" xhtml_id="ab_bAddress2" value="--self.v_bAddress2" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
                         </vm:if>
                           <?vsp self.viewField (self.v_bAddress2, 'extended-address', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_bTzone" value="Time Zone"/>
+                          <vm:label for="ab_bTzone" value="Time Zone" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                        <v:select-list name="ab_bTzone">
+                            <v:select-list name="ab_bTzone" xhtml_id="ab_bTzone">
                           <v:on-init>
                             <![CDATA[
                               declare x,y any;
@@ -2344,7 +2348,7 @@
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_bLat" value="Latitude"/>
+                          <vm:label for="ab_bLat" value="Latitude" />
                       </th>
 		                  <td>
                         <vm:if test="self.abAction <> 'view'">
@@ -2355,7 +2359,7 @@
 		                </tr>
 		                <tr>
                       <th>
-                        <v:label for="ab_bLng" value="Longitude" />
+                          <vm:label for="ab_bLng" value="Longitude" />
                       </th>
 		                  <td>
                         <vm:if test="self.abAction <> 'view'">
@@ -2366,11 +2370,11 @@
 		                </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_bIndustry" value="Industry"/>
+                          <vm:label for="ab_bIndustry" value="Industry" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                          <v:data-list name="ab_bIndustry" sql="select '' as WI_NAME from WA_INDUSTRY union select WI_NAME from WA_INDUSTRY" key-column="WI_NAME" value-column="WI_NAME">
+                            <v:data-list name="ab_bIndustry" xhtml_id="ab_bIndustry" sql="select '' as WI_NAME from WA_INDUSTRY union select WI_NAME from WA_INDUSTRY" key-column="WI_NAME" value-column="WI_NAME">
 		                      <v:before-data-bind>
 			                      control.ufl_value := self.v_bIndustry;
 		                      </v:before-data-bind>
@@ -2381,88 +2385,88 @@
                     </tr>
                     <tr class="contactType">
                       <th>
-                        <v:label for="ab_bOrganization" value="Organization"/>
+                          <vm:label for="ab_bOrganization" value="Organization" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_bOrganization" value="--self.v_bOrganization" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
+                            <v:text name="ab_bOrganization" xhtml_id="ab_bOrganization" value="--self.v_bOrganization" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
                         </vm:if>
                           <?vsp self.viewField (self.v_bOrganization, 'org', null); ?>
                       </td>
                     </tr>
                     <tr class="contactType">
                       <th>
-                        <v:label for="ab_bDepartment" value="Department" />
+                          <vm:label for="ab_bDepartment" value="Department" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_bDepartment" value="--self.v_bDepartment" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
+                            <v:text name="ab_bDepartment" xhtml_id="ab_bDepartment" value="--self.v_bDepartment" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
                         </vm:if>
                           <?vsp self.viewField (self.v_bDepartment, '', null); ?>
                       </td>
                     </tr>
                     <tr class="contactType">
                       <th>
-                        <v:label for="ab_bJob" value="Job Title"/>
+                          <vm:label for="ab_bJob" value="Job Title" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_bJob" value="--self.v_bJob" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
+                            <v:text name="ab_bJob" xhtml_id="ab_bJob" value="--self.v_bJob" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
                         </vm:if>
                           <?vsp self.viewField (self.v_bJob, 'title', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_bWeb" value="Web"/>
+                          <vm:label for="ab_bWeb" value="Web" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_bWeb" value="--self.v_bWeb" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
+                            <v:text name="ab_bWeb" xhtml_id="ab_bWeb" value="--self.v_bWeb" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
                         </vm:if>
                           <?vsp self.viewField (self.v_bWeb, 'url:work', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_bMail" value="Mail"/>
+                          <vm:label for="ab_bMail" value="Mail" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_bMail" value="--self.v_bMail" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
+                            <v:text name="ab_bMail" xhtml_id="ab_bMail" value="--self.v_bMail" fmt-function="AB.WA.utf2wide" xhtml_size="60" />
                         </vm:if>
                           <?vsp self.viewField (self.v_bMail, 'email:internet', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_bPhone" value="Phone"/>
+                          <vm:label for="ab_bPhone" value="Phone" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_bPhone" value="--self.v_bPhone" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
+                            <v:text name="ab_bPhone" xhtml_id="ab_bPhone" value="--self.v_bPhone" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_bPhone, 'tel:work', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_bMobile" value="Mobile"/>
+                          <vm:label for="ab_bMobile" value="Mobile" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_bMobile" value="--self.v_bMobile" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
+                            <v:text name="ab_bMobile" xhtml_id="ab_bMobile" value="--self.v_bMobile" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_bMobile, 'tel:work,cell', null); ?>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        <v:label for="ab_bFax" value="Fax" />
+                          <vm:label for="ab_bFax" value="Fax" />
                       </th>
                       <td>
                         <vm:if test="self.abAction <> 'view'">
-                            <v:text name="ab_bFax" value="--self.v_bFax" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
+                            <v:text name="ab_bFax" xhtml_id="ab_bFax" value="--self.v_bFax" fmt-function="AB.WA.utf2wide" xhtml_size="30" />
                         </vm:if>
                           <?vsp self.viewField (self.v_bFax, '', null); ?>
                       </td>
@@ -2573,35 +2577,23 @@
                                   <th class="action">Action</th>
                               </tr>
                             </thead>
+                              <tbody id="s_tbody">
+                                <tr id="s_tr_no"><td colspan="4"><b>No Shares</b></td></tr>
                       		  <![CDATA[
                       		    <script type="text/javascript">
                             <?vsp
-                                declare N, L integer;
-                                declare acl, aType, aAccess any;
+                                    declare acl any;
 
-                              L := 0;
                               acl := (select WAI_ACL from DB.DBA.WA_INSTANCE where WAI_ID = self.domain_id);
                               acl := case when isnull (acl) then vector () else deserialize (acl) end;
-                                for (N := 0; N < length (acl); N := N + 1)
-                              {
-                                L := L + 1;
-                                  http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("s", {fld_1: {mode: 50, value: "%s"}, fld_2: {value: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; white-space: nowrap; text-align: center;"}, fld_4: {value: "Inherited"}});});', acl[N][2], acl[N][1], acl[N][3], acl[N][4], acl[N][5]));
-                              }
+                                    DB.DBA.wa_aci_lines (acl);
+
                               acl := deserialize (self.v_acl);
-                                for (N := 0; N < length (acl); N := N + 1)
-                              {
-                                L := L + 1;
-                                  if (self.abAction <> 'view')
-                                  {
-                                    http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createRow("s", null, {fld_1: {mode: 50, value: "%s", onchange: function(){TBL.changeCell50(this);}}, fld_2: {mode: 51, form: "F1", tdCssText: "white-space: nowrap;", className: "_validate_ _webid_", value: "%s", readOnly: %s, imgCssText: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; text-align: center;"}});});', acl[N][2], acl[N][1], case when acl[N][2] = 'public' then 'true' else 'false' end, case when acl[N][2] = 'public' then 'display: none;' else '' end, acl[N][3], acl[N][4], acl[N][5]));
-                                  } else {
-                                    http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("s", {fld_1: {mode: 50, value: "%s"}, fld_2: {value: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; white-space: nowrap; text-align: center;"}});});', acl[N][2], acl[N][1], acl[N][3], acl[N][4], acl[N][5]));
-                                  }
-                                }
+                                    DB.DBA.wa_aci_lines (acl, self.abAction);
                            		    ?>
                            		    </script>
                            		  ]]>
-                            <tr id="s_tr_no" style="display: <?V case when L=0 then '' else 'none' end ?>;"><td colspan="<?V case when self.abAction='view' then 3 else 4 end ?>"><b>No Shares</b></td></tr>
+                              </tbody>
                           </table>
                         </td>
                         <vm:if test="self.abAction <> 'view'">
@@ -2649,11 +2641,11 @@
              	        <?vsp } ?>
                       <tr>
                         <th width="25%" valign="top">
-                          <v:label for="ab_Certificate" value="Certificate" />
+                          <vm:label for="ab_Certificate" value="Certificate" />
                         </th>
                         <td>
                           <vm:if test="self.abAction <> 'view'">
-                            <v:textarea name="ab_Certificate" null-value="" value="--self.v_certificate" xhtml_cols="70" xhtml_rows="20" />
+                            <v:textarea name="ab_Certificate" xhtml_id="ab_Certificate" null-value="" value="--self.v_certificate" xhtml_cols="70" xhtml_rows="20" />
                           </vm:if>
                           <?vsp self.viewField (self.v_certificate, null, null); ?>
                         </td>
@@ -2945,7 +2937,7 @@
                   ]]>
                 </v:on-post>
               </v:button>
-                <v:button action="simple" name="ab_edit" value="Edit" enabled="--case when (AB.WA.contact_rights (self.domain_id, self.v_id, self.account_rights) = 'W') and (self.abAction = 'view') then 1 else 0 end" xhtml_class="form-button">
+                <v:button action="simple" name="ab_edit" value="Edit" enabled="--case when (AB.WA.contact_rights (self.domain_id, self.v_id, self.account_rights, self.person_rights) = 'W') and (self.abAction = 'view') then 1 else 0 end" xhtml_class="form-button">
                   <v:on-post>
                     <![CDATA[
                       self.abAction := 'edit';
@@ -2984,7 +2976,7 @@
 	                  </th>
 	                  <td nowrap="nowarap">
                         <label>
-                          <v:radio-button name="i_source_0" xhtml_id="i_source_0" group-name="i_source" value="0" xhtml_onchange="javascript: destinationChange(this, {show: [\'imp_tr_0\', \'imp_tr_1\', \'imp_tr_2\']});">
+                          <v:radio-button name="i_source_0" xhtml_id="i_source_0" group-name="i_source" value="0" xhtml_onchange="javascript: destinationChange(this, {show: [\'imp_tr_0\', \'imp_tr_1\', \'imp_tr_2\'], exec: [iType]});">
 	                      <v:before-render>
 	                        <![CDATA[
 	                          control.ufl_selected := either(lte(self.i_source, 0), 1, 0);
@@ -2995,25 +2987,36 @@
                         </label>
                         <br />
                         <label>
-                          <v:radio-button name="i_source_1" xhtml_id="i_source_1" group-name="i_source" value="1" xhtml_onchange="javascript: destinationChange(this, {show: [\'imp_tr_0\', \'imp_tr_1\', \'imp_tr_2\']});">
+                          <v:radio-button name="i_source_1" xhtml_id="i_source_1" group-name="i_source" value="1" xhtml_onchange="javascript: destinationChange(this, {show: [\'imp_tr_0\', \'imp_tr_1\', \'imp_tr_2\'], exec: [iType]});">
 	                      <v:before-render>
 	                        <![CDATA[
 	                          control.ufl_selected := either(equ(self.i_source, 1), 1, 0);
 	                        ]]>
 	                      </v:before-render>
 	                    </v:radio-button>
-                          <b>WebDAV</b>
+                          <b>WebDAV File Path</b>
+                        </label>
+                        <br />
+                        <label>
+                          <v:radio-button name="i_source_5" xhtml_id="i_source_5" group-name="i_source" value="5" xhtml_onchange="javascript: destinationChange(this, {hide: [\'imp_tr_0\', \'imp_tr_1\', \'imp_tr_2\']});">
+                            <v:before-render>
+                              <![CDATA[
+                                control.ufl_selected := either (equ (self.i_source, 5), 1, 0);
+                              ]]>
+                            </v:before-render>
+                          </v:radio-button>
+                          <b>CardDAV Path</b>
                         </label>
                         <br />
                         <label>
-                          <v:radio-button name="i_source_2" xhtml_id="i_source_2" group-name="i_source" value="2" xhtml_onchange="javascript: destinationChange(this, {show: [\'imp_tr_0\', \'imp_tr_1\', \'imp_tr_2\']});">
+                          <v:radio-button name="i_source_2" xhtml_id="i_source_2" group-name="i_source" value="2" xhtml_onchange="javascript: destinationChange(this, {show: [\'imp_tr_0\', \'imp_tr_1\', \'imp_tr_2\'], exec: [iType]});">
 	                      <v:before-render>
 	                        <![CDATA[
 	                          control.ufl_selected := either(equ(self.i_source, 2), 1, 0);
 	                        ]]>
 	                      </v:before-render>
 	                    </v:radio-button>
-                          <b>URI</b>
+                          <b>URL</b>
                         </label>
                         <br />
                         <label>
@@ -3036,7 +3039,7 @@
                                 ]]>
                               </v:before-render>
                             </v:radio-button>
-                            <b>LinkedIn</b>
+                            <b>LinkedIn Account</b>
                           </label>
                         </vm:if>
 	                  </td>
@@ -3081,6 +3084,16 @@
 	                  </td>
 	                </tr>
 	              </table>
+                  <script type="text/javascript">
+                    <![CDATA[
+                      destinationChange($('i_source_0'), {show: ['imp_tr_0', 'imp_tr_1', 'imp_tr_2'], exec: [iType]});
+                      destinationChange($('i_source_1'), {show: ['imp_tr_0', 'imp_tr_1', 'imp_tr_2'], exec: [iType]});
+                      destinationChange($('i_source_5'), {hide: ['imp_tr_0', 'imp_tr_1', 'imp_tr_2']});
+                      destinationChange($('i_source_2'), {show: ['imp_tr_0', 'imp_tr_1', 'imp_tr_2'], exec: [iType]});
+                      destinationChange($('i_source_3'), {hide: ['imp_tr_0', 'imp_tr_1', 'imp_tr_2']});
+                      destinationChange($('i_source_4'), {hide: ['imp_tr_0', 'imp_tr_1', 'imp_tr_2']});
+                    ]]>
+                  </script>
 	            </div>
 
 	            <div class="new-form-footer">
@@ -3097,6 +3110,11 @@
                           self.i_source := 4;
                           self.i_type   := 4;
                         }
+                        else if (self.i_source_5.ufl_selected)
+                        {
+                          self.i_source := 5;
+                          self.i_type   := 5;
+                        }
                         else
                         {
                           if (self.i_source_0.ufl_selected)
@@ -3199,20 +3217,20 @@
                   <vm:if test="self.i_source = 0">
 		                <tr>
 		                  <th width="30%">
-                        Select file
+                          <label for="f_file">Select file <?V case when self.i_type = 0 then '(.vcf)' when self.i_type = 2 then '(.csv)' end ?></label>
 		                  </th>
 		                  <td>
-                        <input type="file" name="f_file" size="40"/>
+                          <input type="file" name="f_file" size="60" />
 		                  </td>
 		                </tr>
                   </vm:if>
                   <vm:if test="self.i_source = 1">
 		                <tr>
 		                  <th width="30%">
-	                      Select WebDAV file
+                          <label for="f_dav">Select WebDAV file</label>
 		                  </th>
 		                  <td>
-                        <v:text name="f_dav" xhtml_id="f_dav" value="" xhtml_size="40" />
+                          <v:text name="f_dav" xhtml_id="f_dav" value="" xhtml_size="60" />
                           <input type="button" value="Browse..." onclick="davBrowse ('f_dav');" />
                        		  <![CDATA[
                     		    <script type="text/javascript">
@@ -3222,22 +3240,52 @@
 		                  </td>
 		                </tr>
                   </vm:if>
-                  <vm:if test="self.i_source = 2">
+                    <vm:if test="self.i_source = 2 or self.i_source = 5">
                     <tr>
 		                  <th width="30%">
-                          Select URI
+                          <label for="f_uri" ><?V case when self.i_source = 2 then 'Select File URL ' else 'Select CalDAV Path' end ?><?V case when self.i_type = 0 then '(.vcf)' when self.i_type = 2 then '(.csv)' end ?></label>
                       </th>
                       <td>
-                        <v:text name="f_uri" value="--''" xhtml_size="60" />
+                          <v:text name="f_uri" xhtml_id="f_uri" value="--''" xhtml_size="60" />
                       </td>
                     </tr>
+                      <vm:if test="self.i_source = 5">
+                        <tr>
+                          <th>
+                            <label for="f_uUser">User</label>
+                          </th>
+                          <td>
+                            <v:text name="f_uUser" xhtml_id="f_uUser" null-value="--self.i_uUser" value="--''" xhtml_size="30">
+                               <v:before-render>
+                                <![CDATA[
+                                  control.ufl_value := self.i_uUser;
+                                ]]>
+                              </v:before-render>
+                            </v:text>
+                          </td>
+                        </tr>
+                        <tr>
+                          <th>
+                            <label for="f_uPassword">Password</label>
+                          </th>
+                          <td>
+                            <v:text name="f_uPassword" xhtml_id="f_uPassword" type="password" null-value="--self.i_uPassword" value="--''" xhtml_size="30">
+                               <v:before-render>
+                                <![CDATA[
+                                  control.ufl_value := self.i_uPassword;
+                                ]]>
+                              </v:before-render>
+                            </v:text>
+                          </td>
+                        </tr>
+                      </vm:if>
                       <vm:if test="self.i_type = 1">
                         <tr>
                           <th>
-                            Grab Depth
+                            <label for="i_depth">Grab Depth</label>
                           </th>
                           <td>
-                            <v:select-list name="i_depth">
+                            <v:select-list name="i_depth" xhtml_id="i_depth">
                               <v:item value="0" name="0" />
                               <v:item value="1" name="1" />
                               <v:item value="2" name="2" />
@@ -3252,18 +3300,18 @@
                         </tr>
                         <tr>
                           <th>
-                            Maximum Entity Count
+                            <label for="i_limit">Maximum Entity Count</label>
                           </th>
                           <td>
-                            <v:text name="i_limit" value="--self.i_contentLimit" xhtml_size="3" />
+                            <v:text name="i_limit" xhtml_id="i_limit" value="--self.i_contentLimit" xhtml_size="3" />
                           </td>
                         </tr>
                         <tr>
                           <th>
-                            Follow Property
+                            <label for="i_follow">Follow Property</label>
                           </th>
                           <td>
-                            <v:select-list name="i_follow">
+                            <v:select-list name="i_follow" xhtml_id="i_follow">
                               <v:item value="http://xmlns.com/foaf/0.1/knows" name="foaf:knows" />
                               <v:item value="http://www.w3.org/2002/07/owl#sameAs" name="owl:sameAs" />
                               <v:item value="http://www.w3.org/2000/01/rdf-schema#seeAlso" name="rdfs:seeAlso" />
@@ -3283,10 +3331,11 @@
                       <vm:if test="exists (select 1 from LDAP..LDAP_SERVERS where LS_USER_ID = self.account_id)">
                     <tr>
                       <th width="30%">
-                        LDAP server
+                          <label for="f_lName">LDAP server</label>
                       </th>
               	      <td>
               	        <v:data-list name="f_lName"
+                                       xhtml_id="f_lName"
               	                     value="--self.i_lName"
               	                     key-column="LS_NAME"
               	                     value-column="LS_NAME"
@@ -3327,10 +3376,10 @@
                       </vm:if>
                     <tr>
 		                  <th width="30%">
-                        Host URL
+                          <label for="f_lHost">Host URL</label>
                       </th>
                       <td>
-                        <v:text name="f_lHost" null-value="--''" value="" xhtml_size="70">
+                          <v:text name="f_lHost" xhtml_id="f_lHost" null-value="--''" value="" xhtml_size="70">
                    		    <v:before-render>
       		                  <![CDATA[
                   		        control.ufl_value := self.i_lHost;
@@ -3341,10 +3390,10 @@
                     </tr>
                     <tr>
                       <th>
-                        Host port
+                          <label for="f_lPort">Host port</label>
                       </th>
                       <td>
-                        <v:text name="f_lPort" null-value="--''" value="" xhtml_size="10">
+                          <v:text name="f_lPort" xhtml_id="f_lPort" null-value="--''" value="" xhtml_size="10">
                    		    <v:before-render>
       		                  <![CDATA[
                   		        control.ufl_value := self.i_lPort;
@@ -3355,10 +3404,10 @@
                     </tr>
                     <tr>
                       <th>
-                        Base DN
+                          <label for="f_lBase_dn">Base DN</label>
                       </th>
                       <td>
-                        <v:text name="f_lBase_dn" null-value="--''" value="" xhtml_size="70">
+                          <v:text name="f_lBase_dn" xhtml_id="f_lBase_dn" null-value="--''" value="" xhtml_size="70">
                    		    <v:before-render>
       		                  <![CDATA[
                   		        control.ufl_value := self.i_lBase_dn;
@@ -3369,10 +3418,10 @@
                     </tr>
                     <tr>
                       <th>
-                        Bind DN
+                          <label for="f_lBind_dn">Bind DN</label>
                       </th>
                       <td>
-                        <v:text name="f_lBind_dn" null-value="--''" value="" xhtml_size="70">
+                          <v:text name="f_lBind_dn" xhtml_id="f_lBind_dn" null-value="--''" value="" xhtml_size="70">
                    		    <v:before-render>
       		                  <![CDATA[
                   		        control.ufl_value := self.i_lBind_dn;
@@ -3383,10 +3432,10 @@
                     </tr>
                     <tr>
                       <th>
-                        Password
+                          <label for="f_lPassword">Password</label>
                       </th>
                       <td>
-                        <v:text name="f_lPassword" type="password" null-value="--self.i_lPassword" value="--''" xhtml_size="30">
+                          <v:text name="f_lPassword" xhtml_id="f_lPassword" type="password" null-value="--self.i_lPassword" value="--''" xhtml_size="30">
                    		    <v:before-render>
       		                  <![CDATA[
                   		        control.ufl_value := self.i_lPassword;
@@ -3397,10 +3446,10 @@
                     </tr>
                     <tr>
                       <th>
-                        Search string
+                          <label for="f_lSearch">Search string</label>
                       </th>
                       <td>
-                        <v:text name="f_lSearch" null-value="--''" value="--self.i_lSearch" xhtml_size="70"/>
+                          <v:text name="f_lSearch" xhtml_id="f_lSearch" null-value="--''" value="--self.i_lSearch" xhtml_size="70" />
                       </td>
                     </tr>
                   </vm:if>
@@ -3485,6 +3534,19 @@
                       	host := 'ldap://' || self.i_lHost || ':' || self.i_lPort;
                         self.i_data := ldap_search (host, 0, self.i_lBase_dn, self.i_lSearch, self.i_lBind_dn, self.i_lPassword);
 	                    }
+                        else if (self.i_source = 5)
+                        {
+                          self.i_uUser := trim (self.f_uUser.ufl_value);
+                          self.i_uPassword := trim (self.f_uPassword.ufl_value);
+                          self.f_uri.ufl_value := trim (self.f_uri.ufl_value);
+                          if (is_empty_or_null (self.f_uri.ufl_value))
+                            signal ('TEST', 'Please select correct URL address!');
+
+                          if (not AB.WA.import_CardDAV_check (self.f_uri.ufl_value, vector ('user', self.i_uUser, 'password', self.i_uPassword), 1))
+                            signal ('TEST', 'Bad CardDAV source!');
+
+                          self.i_data := self.f_uri.ufl_value;
+                        }
 
                         self.i_number := 0;
                         if (self.i_type = 1)
@@ -3505,15 +3567,19 @@
 
                           self.i_number := AB.WA.import_count (self.i_type, self.i_data);
                       }
+                        else if (self.i_type = 5)
+                        {
+                          self.i_number := AB.WA.import_CardDAV_count (self.f_uri.ufl_value, vector ('user', self.i_uUser, 'password', self.i_uPassword), 1);
+                        }
                         else
                         {
                           self.i_number := AB.WA.import_count (self.i_type, self.i_data);
                         }
                         if (self.i_number = 0)
-                          signal ('TEST', 'No persons founded!<>');
+                          signal ('TEST', 'Import target data not found!<>');
 
                         -- next step
-                      if (self.i_type = 0)
+                        if ((self.i_type = 0) or (self.i_type = 5))
                         {
                           self.abStep := '5';
                         }
@@ -3552,7 +3618,7 @@
                     <thead>
                     <tr>
                         <th class="checkbox">
-                        <input type="checkbox" name="cb_all" value="Select All" onclick="selectAllCheckboxes(this, 'cb_item')" />
+                          <input type="checkbox" name="cb_all" value="Select All" onclick="selectAllCheckboxes(this, 'cb_item', true)" />
                       </th>
                       <th>Name</th>
                       <th>Mail</th>
@@ -3572,7 +3638,7 @@
                       <td class="checkbox">
                       <?vsp
                           if (item[0] = 0)
-                            http (sprintf ('<input type="checkbox" name="cb_item" value="%s" onclick="selectCheck(this, \'cb_item\')" />', item[1]));
+                            http (sprintf ('<input type="checkbox" name="cb_item" value="%s" onclick="selectCheck(this, \'cb_item\', true)" />', item[1]));
                       ?>
               		  </td>
               		  <td>
@@ -3643,7 +3709,9 @@
                             self.abStep := '4';
 
                           AB.WA.push (self.abSteps, '3');
-                      } else {
+                        }
+                        else
+                        {
                           self.resetImport (0);
                           self.abAction := 'import';
                       }
@@ -3949,33 +4017,29 @@
                           <table class="form-body" cellspacing="0">
                             <tr>
                               <td style="width: 90%; background-color: white;">
-                                <table id="s_tbl" class="ODS_grid">
+                                <table class="ODS_grid">
                                   <thead>
                                     <tr>
                                       <th width="15%">Type</th>
                                       <th>Value</th>
                                       <th width="1%" nowrap="nowrap">ACL: (R)ead, (W)rite</th>
-                                      <th width="50px">Action</th>
+                                      <th class="action">Action</th>
                                     </tr>
                                   </thead>
+                                  <tbody id="s_tbody">
+                                    <tr id="s_tr_no"><td colspan="4"><b>No Shares</b></td></tr>
                             		  <![CDATA[
                             		    <script type="text/javascript">
                                     <?vsp
-                                      declare N, L integer;
-                                      declare acl, aType, aAccess any;
+                                        declare acl any;
 
-                                      L := 0;
                                       acl := (select WAI_ACL from DB.DBA.WA_INSTANCE where WAI_ID = self.domain_id);
                                       acl := case when isnull (acl) then vector () else deserialize (acl) end;
-                                      for (N := 0; N < length (acl); N := N + 1)
-                                      {
-                                        L := L + 1;
-                                        http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("s", {fld_1: {mode: 50, value: "%s"}, fld_2: {value: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; white-space: nowrap; text-align: center;"}, fld_4: {value: "Inherited"}});});', acl[N][2], acl[N][1], acl[N][3], acl[N][4], acl[N][5]));
-                                      }
+                                        DB.DBA.wa_aci_lines (acl);
                                     ?>
                             		    </script>
                             		  ]]>
-                                  <tr id="s_tr_no" style="display: <?V case when L=0 then '' else 'none' end ?>;"><td colspan="4"><b>No Shares</b></td></tr>
+                                  </tbody>
                             		</table>
                             	</td>
                               <td valign="top" nowrap="nowrap">
@@ -4019,7 +4083,7 @@
                               declare N, M integer;
                             declare data, fields any;
 
-                            data := coalesce ((select deserialize (LV_FIELDS) from LDAP..LDAP_VALIDATION where LV_USER_ID = self.account_id), vector());
+                              data := coalesce ((select deserialize (LV_FIELDS) from LDAP..LDAP_VALIDATION where LV_USER_ID = self.account_id), vector('P_NAME', '1'));
                             fields := LDAP..contact_fields ();
                               M := length (fields) / 2;
                               for (N := 0; N < M; N := N + 2)
@@ -4104,7 +4168,7 @@
                           }
                         }
                         self.v_grants := trim (self.v_grants, ',');
-                        tmp  := DB.DBA.wa_acl_params (params);
+                        tmp  := DB.DBA.wa_aci_params (params);
                         if (length (tmp))
                           self.v_acl := serialize (tmp);
 
@@ -4135,7 +4199,9 @@
                           if (self.i_source = 2)
                           {
                       options := vector ('tags', self.v_tags, 'mode', 2);
-                          } else {
+                    }
+                    else
+                    {
                       options := vector ('tags', self.v_tags);
                           }
                   }
@@ -4159,6 +4225,11 @@
                     -- LinkedIn
                     options := vector ('tags', self.v_tags);
                   }
+                  else if (self.i_type = 5)
+                  {
+                    -- CalDAV
+                    options := vector ('tags', self.v_tags, 'user', self.i_uUser, 'password', self.i_uPassword);
+                  }
 
                   if (self.v_grants <> '')
                     options := vector_concat (options, vector ('grants', self.v_grants));
@@ -4556,12 +4627,13 @@
                       ]]>
                     </v:on-post>
                   </v:button>
-                  <v:button action="simple" value="Clear" xhtml_class="form-button">
+                  <v:button action="simple" value="Clear" xhtml_onclick="javascript: return confirm (\'Do you want to reset settings to default?\');" xhtml_class="form-button">
                     <v:on-post>
                       <![CDATA[
                         delete from AB.WA.SETTINGS where S_ACCOUNT_ID = self.account_id;
                         AB.WA.nntp_update (self.domain_id, null, null, 1, 0);
 
+                        self.settings := vector_concat (vector ('app', DB.DBA.WA_USER_APP_ENABLE (self.account_id)), AB.WA.settings (self.domain_id));
                         self.vc_data_bind(e);
                       ]]>
                     </v:on-post>
@@ -4686,10 +4758,10 @@
                   <table class="form-body" cellspacing="0">
                   <tr>
                     <th width="30%">
-                      Name
+                        <label for="c_name">Name</label>
                     </th>
                     <td>
-                      <v:text name="c_name" value="--self.v_name" xhtml_size="60" />
+                        <v:text name="c_name" xhtml_id="c_name" value="--self.v_name" xhtml_size="60" />
                     </td>
                   </tr>
                 </table>
@@ -4975,10 +5047,10 @@
                   <table cellspacing="0">
                     <tr>
                       <th width="30%">
-                        <v:label for="exc_name" value="Name" />
+                        <vm:label for="exc_name" value="Name" />
                       </th>
                       <td>
-                        <v:text name="exc_name" null-value="--''" value="--self.ve_name" xhtml_size="60" />
+                        <v:text name="exc_name" xhtml_id="exc_name" null-value="--''" value="--self.ve_name" xhtml_size="60" />
                       </td>
                     </tr>
                     <vm:if test="self.abSubAction not in ('syncmlCreate', 'syncmlUpdate')">
@@ -5047,26 +5119,42 @@
                     </tr>
                     <vm:if test="self.abSubAction not in ('syncmlCreate', 'syncmlUpdate')">
                     <tr>
-                      <th rowspan="2" valign="top">
+                        <th rowspan="<?V case when (self.abSubAction in ('subscribeCreate', 'subscribeUpdate')) then 3 else 2 end ?>" valign="top">
                         <?V case when (self.abSubAction in ('publishCreate', 'publishUpdate')) then 'Destination' else  'Source' end ?> type
                       </th>
                       <td nowrap="nowarap">
                         <label>
-                          <v:radio-button name="exc_options_type_1" group-name="exc_options_type" value="1" xhtml_onchange="javascript: destinationChange(this, {show: [\'exc_options_name_button\'], clear: [\'exc_options_name\']});">
+                            <v:radio-button name="exc_options_type_1" xhtml_id="exc_options_type_1" group-name="exc_options_type" value="1" xhtml_onchange="javascript: destinationChange(this, {show: [\'exc_options_name_button\'], clear: [\'exc_options_name\'], exec: [excLabel]});">
                             <v:before-render>
                               <![CDATA[
                                   control.ufl_selected := either (lte (get_keyword ('type', coalesce (self.ve_options, vector ()), 1), 1), 1, 0);
                               ]]>
                             </v:before-render>
                           </v:radio-button>
-                          <b>WebDAV Path</b>
+                            <b>WebDAV File Path</b>
                         </label>
                       </td>
                     </tr>
+                      <vm:if test="self.abSubAction in ('subscribeCreate', 'subscribeUpdate')">
                     <tr>
                       <td nowrap="nowarap">
                         <label>
-                          <v:radio-button name="exc_options_type_2" group-name="exc_options_type" value="2" xhtml_onchange="javascript: destinationChange(this, {hide: [\'exc_options_name_button\'], clear: [\'exc_options_name\']});">
+                              <v:radio-button name="exc_options_type_3" xhtml_id="exc_options_type_3" group-name="exc_options_type" value="3" xhtml_onchange="javascript: destinationChange(this, {hide: [\'exc_options_name_button\'], clear: [\'exc_options_name\'], exec: [excLabel]});">
+                              <v:before-render>
+                                <![CDATA[
+                                  control.ufl_selected := either (equ (get_keyword ('type', coalesce (self.ve_options, vector ()), 1), 3), 1, 0);
+                                ]]>
+                              </v:before-render>
+                            </v:radio-button>
+                            <b>CardDAV Path</b>
+                          </label>
+                        </td>
+                      </tr>
+                      </vm:if>
+                      <tr>
+                        <td nowrap="nowarap">
+                          <label>
+                            <v:radio-button name="exc_options_type_2" xhtml_id="exc_options_type_2" group-name="exc_options_type" value="2" xhtml_onchange="javascript: destinationChange(this, {hide: [\'exc_options_name_button\'], clear: [\'exc_options_name\'], exec: [excLabel]});">
                             <v:before-render>
                               <![CDATA[
                                   control.ufl_selected := either (equ (get_keyword ('type', coalesce (self.ve_options, vector ()), 1), 2), 1, 0);
@@ -5080,34 +5168,37 @@
                     </vm:if>
                     <tr>
                       <th>
-                        <v:label for="sr_chars" value="-- case when (self.abSubAction in ('syncmlCreate', 'syncmlUpdate')) then 'WebDAV SyncML Path' else 'WebDAV Path / URL' end" />
+                        <vm:if test="self.abAction in ('syncmlCreate', 'syncmlUpdate')">
+                          <label for="exc_options_name">WebDAV SyncML Path</label>
+                        </vm:if>
+                        <vm:if test="self.abAction not in ('syncmlCreate', 'syncmlUpdate')">
+                          <label for="exc_options_name"><span id="excLabel">WebDAV File Name (.ics)</span></label>
+                        </vm:if>
                       </th>
                       <td>
                         <v:text name="exc_options_name" xhtml_id="exc_options_name" value="--get_keyword ('name', self.ve_options)" xhtml_size="60" />
-                        <vm:if test="self.abSubAction not in ('syncmlCreate', 'syncmlUpdate')">
-                          <input type="button" id="exc_options_name_button" value="Browse..." onclick="davBrowse ('exc_options_name');" style="display: <?V case when (get_keyword ('type', self.ve_options, 1) <> 1) then 'none' else '' end ?>" />
+                        <input type="button" id="exc_options_name_button" value="Browse..." onclick="davBrowse ('exc_options_name', <?V case when (self.abSubAction in ('syncmlCreate', 'syncmlUpdate')) then 'true' else 'false' end ?>);" style="display: <?V case when (get_keyword ('type', self.ve_options, 1) <> 1) then 'none' else '' end ?>" />
                             <![CDATA[
                     		    <script type="text/javascript">
                               OAT.Loader.load(['dav'], function(){OAT.WebDav.init(davOptions);});
                     		    </script>
                             ]]>
-                        </vm:if>
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        User
+                        <vm:label for="exc_options_user" value="User" />
                       </th>
                       <td>
-                        <v:text name="exc_options_user" value="--get_keyword ('user', self.ve_options)" null-value="''" />
+                        <v:text name="exc_options_user" xhtml_id="exc_options_user" value="--get_keyword ('user', self.ve_options)" null-value="''" />
                       </td>
                     </tr>
                     <tr>
                       <th>
-                        Password
+                        <vm:label for="exc_options_password" value="Password" />
                       </th>
                       <td>
-                        <v:text name="exc_options_password" type="password"  value="--get_keyword ('password', self.ve_options)" null-value="''" />
+                        <v:text name="exc_options_password" xhtml_id="exc_options_password" type="password"  value="--get_keyword ('password', self.ve_options)" null-value="''" />
                       </td>
                     </tr>
                     <tr>
@@ -5118,10 +5209,10 @@
                     <vm:if test="self.abSubAction in ('syncmlCreate', 'syncmlUpdate')">
                       <tr>
                         <th>
-                          <v:label for="exc_options_mode" value="Sync mode" />
+                          <vm:label for="exc_options_mode" value="Sync mode" />
                         </th>
                         <td>
-                          <v:select-list name="exc_options_mode">
+                          <v:select-list name="exc_options_mode" xhtml_id="exc_options_mode">
                             <v:item value="0" name="Update both" />
                             <v:item value="1" name="Update client" />
                             <v:item value="-1" name="Update SyncML server" />
@@ -5137,20 +5228,20 @@
                     </vm:if>
                     <tr>
                       <th>
-                        <v:label for="exc_tags_include" value="Include with tags (comma-separated)" />
+                        <vm:label for="exc_tags_include" value="Include with tags (comma-separated)" />
                       </th>
                       <td>
-                        <v:text name="exc_tags_include" value="--get_keyword ('tagsInclude', self.ve_options)" xhtml_class="textbox" xhtml_size="60" />
+                        <v:text name="exc_tags_include" xhtml_id="exc_tags_include" value="--get_keyword ('tagsInclude', self.ve_options)" xhtml_class="textbox" xhtml_size="60" />
                         <input type="button" value="Clear" onclick="javascript: document.F1.elements['exc_tags_include'].value = ''" class="button" />
                       </td>
                     </tr>
                     <?vsp self.myTags ('exc_tags_include'); ?>
                     <tr>
                       <th>
-                        <v:label for="exc_tags_exclude" value="Exclude with tags (comma-separated)" />
+                        <vm:label for="exc_tags_exclude" value="Exclude with tags (comma-separated)" />
                       </th>
                       <td>
-                        <v:text name="exc_tags_exclude" value="--get_keyword ('tagsExclude', self.ve_options)" xhtml_class="textbox" xhtml_size="60" />
+                        <v:text name="exc_tags_exclude" xhtml_id="exc_tags_exclude" value="--get_keyword ('tagsExclude', self.ve_options)" xhtml_class="textbox" xhtml_size="60" />
                         <input type="button" value="Clear" onclick="javascript: document.F1.elements['exc_tags_exclude'].value = ''" class="button" />
                       </td>
                     </tr>
@@ -5158,16 +5249,23 @@
                     <vm:if test="self.abSubAction in ('syncmlCreate', 'syncmlUpdate')">
                       <tr>
                         <th>
-                          <v:label for="exc_tags" value="Tags for incoming entries (comma-separated)" />
+                          <vm:label for="exc_tags" value="Tags for incoming entries (comma-separated)" />
                         </th>
                         <td>
-                          <v:text name="exc_tags" value="--get_keyword ('tags', self.ve_options)" xhtml_class="textbox" xhtml_size="60" />
+                          <v:text name="exc_tags" xhtml_id="exc_tags" value="--get_keyword ('tags', self.ve_options)" xhtml_class="textbox" xhtml_size="60" />
                           <input type="button" value="Clear" onclick="javascript: document.F1.elements['exc_tags'].value = ''" class="button" />
                         </td>
                       </tr>
                       <?vsp self.myTags ('exc_tags'); ?>
                     </vm:if>
                   </table>
+                  <script type="text/javascript">
+                    <![CDATA[
+                      destinationChange($('exc_options_type_1'), {show: ['exc_options_name_button'], clear: ['exc_options_name'], exec: [excLabel]});
+                      destinationChange($('exc_options_type_3'), {hide: ['exc_options_name_button'], clear: ['exc_options_name'], exec: [excLabel]});
+                      destinationChange($('exc_options_type_2'), {hide: ['exc_options_name_button'], clear: ['exc_options_name'], exec: [excLabel]});
+                    ]]>
+                  </script>
                 </div>
                 <div class="new-form-footer">
                   <v:button action="simple" value="--case when self.abSubAction in ('publishCreate', 'subscribeCreate', 'syncmlCreate') then 'Create' else 'Update' end" name="exc_save" xhtml_class="form-button">
@@ -5219,6 +5317,10 @@
                         {
                           _type := 2;
                         }
+                          else if (self.exc_options_type_3.ufl_selected)
+                          {
+                            _type := 3;
+                          }
                         }
                         _name := trim (self.exc_options_name.ufl_value);
                         if (self.abSubAction in ('syncmlCreate', 'syncmlUpdate'))
@@ -5371,7 +5473,7 @@
                   </table>
                 </div>
                 <div class="new-form-footer">
-                  <v:button action="simple" value="Sync" name="exc_sync_exec" xhtml_class="form-button">
+                  <v:button action="simple" value="--case when isnull (self.ve_result) then 'Sync' else 'New Sync' end" name="exc_sync_exec" xhtml_class="form-button">
                     <v:on-post>
                       <![CDATA[
                         declare _mode any;
@@ -5383,7 +5485,7 @@
                       ]]>
                     </v:on-post>
                   </v:button>
-                  <v:button action="simple" value="Cancel" name="exc_sync_cancel" xhtml_class="form-button">
+                  <v:button action="simple" value="--case when isnull (self.ve_result) then 'Cancel' else 'Exit' end" name="exc_sync_cancel" xhtml_class="form-button">
                     <v:on-post>
                       <![CDATA[
                         self.abSubAction := 'syncmlBrowse';
diff --git a/appsrc/ODS-Addressbook/www/image/close_16.png b/appsrc/ODS-Addressbook/www/image/close_16.png
deleted file mode 100644
index 2610797..0000000
Binary files a/appsrc/ODS-Addressbook/www/image/close_16.png and /dev/null differ
diff --git a/appsrc/ODS-Addressbook/www/image/edit_16.png b/appsrc/ODS-Addressbook/www/image/edit_16.png
deleted file mode 100644
index f8aaba2..0000000
Binary files a/appsrc/ODS-Addressbook/www/image/edit_16.png and /dev/null differ
diff --git a/appsrc/ODS-Addressbook/www/image/first_16.gif b/appsrc/ODS-Addressbook/www/image/first_16.gif
deleted file mode 100644
index d870e80..0000000
Binary files a/appsrc/ODS-Addressbook/www/image/first_16.gif and /dev/null differ
diff --git a/appsrc/ODS-Addressbook/www/image/last_16.gif b/appsrc/ODS-Addressbook/www/image/last_16.gif
deleted file mode 100644
index afcc7e8..0000000
Binary files a/appsrc/ODS-Addressbook/www/image/last_16.gif and /dev/null differ
diff --git a/appsrc/ODS-Addressbook/www/image/next_16.gif b/appsrc/ODS-Addressbook/www/image/next_16.gif
deleted file mode 100644
index f7e1621..0000000
Binary files a/appsrc/ODS-Addressbook/www/image/next_16.gif and /dev/null differ
diff --git a/appsrc/ODS-Addressbook/www/image/previous_16.gif b/appsrc/ODS-Addressbook/www/image/previous_16.gif
deleted file mode 100644
index b907b15..0000000
Binary files a/appsrc/ODS-Addressbook/www/image/previous_16.gif and /dev/null differ
diff --git a/appsrc/ODS-Addressbook/www/invite.vspx b/appsrc/ODS-Addressbook/www/invite.vspx
index d5c2b73..a021856 100644
--- a/appsrc/ODS-Addressbook/www/invite.vspx
+++ b/appsrc/ODS-Addressbook/www/invite.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: invite.vspx,v 1.3.2.1 2010/09/20 10:14:41 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Addressbook/www/js/ab.js b/appsrc/ODS-Addressbook/www/js/ab.js
index 0707271..fe2b602 100644
--- a/appsrc/ODS-Addressbook/www/js/ab.js
+++ b/appsrc/ODS-Addressbook/www/js/ab.js
@@ -3,7 +3,7 @@
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2007 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -198,8 +198,10 @@ function confirmAction(confirmMsq, form, txt, selectionMsq) {
   return false;
 }
 
-function selectCheck(obj, prefix) {
+function selectCheck(obj, prefix, noToolbars) {
   coloriseRow(getParent(obj, 'tr'), obj.checked);
+  if (noToolbars)
+    return;
   enableToolbars(obj.form, prefix);
 }
 
@@ -227,7 +229,7 @@ function enableElement(id, id_gray, showFlag) {
 }
 }
 
-function selectAllCheckboxes (obj, prefix) {
+function selectAllCheckboxes(obj, prefix, noToolbars) {
   var objForm = obj.form;
   for (var i = 0; i < objForm.elements.length; i++) {
     var o = objForm.elements[i];
@@ -239,12 +241,15 @@ function selectAllCheckboxes (obj, prefix) {
       coloriseRow(getParent(o, 'tr'), o.checked);
     }
   }
+  obj.focus();
   if (obj.value == 'Select All')
     obj.value = 'Unselect All';
   else
     obj.value = 'Select All';
-  selectCheck (obj, prefix);
-  obj.focus();
+
+  if (noToolbars)
+    return;
+  enableToolbars(objForm, prefix);
 }
 
 function anySelected (form, txt, selectionMsq) {
@@ -541,11 +546,17 @@ function updateGeodata(mode) {
 	OAT.AJAX.GET(S, '', function(arg) {cb(arg, mode);});
 }
 
-function davBrowse(fld) {
+function davBrowse(fld, folders) {
+	/* load stylesheets */
+	OAT.Style.include("grid.css");
+	OAT.Style.include("webdav.css");
+
   var options = {
     mode: 'browser',
     onConfirmClick: function(path, fname) {$(fld).value = '/DAV' + path + fname;}
   };
+  if (!folders) {folders = false;}
+  OAT.WebDav.options.foldersOnly = folders;
   OAT.WebDav.open(options);
 }
 
@@ -605,6 +616,36 @@ function destinationChange(obj, actions) {
 			}
     }
   }
+	if (actions.exec) {
+		var a = actions.exec;
+		for ( var i = 0; i < a.length; i++) {
+			a[i](obj);
+		}
+	}
+}
+
+function excLabel(obj) {
+  var srcLabel = $('excLabel');
+  if (!srcLabel)
+    return;
+  if ($('exc_options_type_1').checked)
+    srcLabel.innerHTML = 'WebDAV File URL (.ics)';
+  if ($('exc_options_type_3').checked)
+    srcLabel.innerHTML = 'CalDAV URL';
+  if ($('exc_options_type_2').checked)
+    srcLabel.innerHTML = 'File URL (.ics)';
+}
+
+function iType(obj) {
+  var i = -1;
+  if ($('i_type_0').checked)
+    i = 0;
+  if ($('i_type_1').checked)
+    i = 1;
+  if ($('i_type_2').checked)
+    i = 2;
+  if (i < 0)
+    $('i_type_0').checked = true;
 }
 
 function urlParam(fldName)
@@ -694,7 +735,9 @@ function checkState()
     } else {
       progressTimer = null;
       progressPollTimer = null;
-      $('btn_Stop').click();
+      $('btn_Stop').value = 'Close';
+      OAT.Dom.hide('btn_Background');
+      doPost ('F1', 'btn_Background');
     }
   }
   OAT.AJAX.POST('ajax.vsp', "a=load&sa=state&id="+progressID+urlParam("sid")+urlParam("realm"), x);
@@ -871,21 +914,12 @@ AB.setFOAFValue = function(fValue, fName) {
 
 AB.aboutDialog = function() {
   var aboutDiv = $('aboutDiv');
-	if (aboutDiv) {
+  if (aboutDiv)
 		OAT.Dom.unlink(aboutDiv);
-	}
-	aboutDiv = OAT.Dom.create('div', {
-		width : '430px',
-    height: '170px',
-    overflow: 'hidden'
-	});
+
+  aboutDiv = OAT.Dom.create('div', {height: '160px', overflow: 'hidden'});
   aboutDiv.id = 'aboutDiv';
-	aboutDialog = new OAT.Dialog('About ODS AddressBook', aboutDiv, {
-		width : 445,
-		buttons : 0,
-		resize : 0,
-		modal : 1
-	});
+  aboutDialog = new OAT.Dialog('About ODS AddressBook', aboutDiv, {width:445, buttons: 0, resize:0, modal:1});
 	aboutDialog.cancel = aboutDialog.hide;
 
   var x = function (txt) {
diff --git a/appsrc/ODS-Addressbook/www/message.vspx b/appsrc/ODS-Addressbook/www/message.vspx
index 1e0fd63..cd1ed83 100644
--- a/appsrc/ODS-Addressbook/www/message.vspx
+++ b/appsrc/ODS-Addressbook/www/message.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: message.vspx,v 1.1.2.1 2010/09/20 10:14:41 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Addressbook/www/search.vspx b/appsrc/ODS-Addressbook/www/search.vspx
index 49a7422..bdf9b0c 100644
--- a/appsrc/ODS-Addressbook/www/search.vspx
+++ b/appsrc/ODS-Addressbook/www/search.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: search.vspx,v 1.15.2.11 2011/05/17 23:00:21 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -91,7 +91,7 @@
 
       state := '00000';
       sqlParams := vector();
-      sql := AB.WA.search_sql (self.domain_id, self.account_id, self.account_rights, data, self.v_max);
+      sql := AB.WA.search_sql (self.domain_id, self.account_id, self.person_rights, data, self.v_max);
       sql := concat (sql, ' order by ', self.v_order, ' ', self.v_direction);
       exec(sql, state, msg, sqlParams, 0, meta, result);
       if (state = '00000')
diff --git a/appsrc/ODS-Addressbook/www/tags.vspx b/appsrc/ODS-Addressbook/www/tags.vspx
index e8c6f15..32abe8d 100644
--- a/appsrc/ODS-Addressbook/www/tags.vspx
+++ b/appsrc/ODS-Addressbook/www/tags.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: tags.vspx,v 1.2.2.3 2011/05/02 14:16:25 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Addressbook/www/template/popup.vspx b/appsrc/ODS-Addressbook/www/template/popup.vspx
index 59f1787..83329c3 100644
--- a/appsrc/ODS-Addressbook/www/template/popup.vspx
+++ b/appsrc/ODS-Addressbook/www/template/popup.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
-  -  $Id: popup.vspx,v 1.7.2.11 2011/07/04 10:04:01 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -68,6 +68,7 @@
         <v:variable persist="0" name="domain_id" type="integer" default="-1"/>
         <v:variable persist="0" name="account_id" type="integer" default="-1"/>
         <v:variable persist="0" name="account_rights" type="varchar" default="''"/>
+      <v:variable persist="0" name="person_rights" type="varchar" default="''" />
         <v:variable persist="0" name="settings" type="any" />
       <v:variable persist="0" name="rdf_iri" type="varchar" default="null" />
       <v:on-init>
@@ -82,6 +83,7 @@
           self.domain_id := cast(get_keyword('domain_id', aSessInfo, '-1') as integer);
           self.account_id := cast (get_keyword ('account_id', aSessInfo, '-1') as integer);
           self.account_rights := get_keyword ('account_rights', aSessInfo, '');
+          self.person_rights := get_keyword ('person_rights', aSessInfo);
           self.settings := AB.WA.settings (self.domain_id);
         ]]>
       </v:on-init>
diff --git a/appsrc/ODS-Addressbook/www/template/template.vspx b/appsrc/ODS-Addressbook/www/template/template.vspx
index 148c510..b537975 100644
--- a/appsrc/ODS-Addressbook/www/template/template.vspx
+++ b/appsrc/ODS-Addressbook/www/template/template.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: template.vspx,v 1.26.2.16 2011/07/04 10:04:01 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -65,11 +65,6 @@
           connectionHeaders: {Authorization: '<?V AB.WA.account_basicAuthorization (self.account_id) ?>'}
         };
 
-      	/* load stylesheets */
-      	OAT.Style.include("grid.css");
-      	OAT.Style.include("webdav.css");
-      	OAT.Style.include("winms.css");
-        
         var featureList=["ajax", "json", "anchor", "dialog", "panelbar", "combolist", "calendar"];
         OAT.Loader.load(featureList);
       </script>
@@ -155,6 +150,7 @@
         <v:variable persist="0" name="domain_id" type="integer" default="-1" />
         <v:variable persist="0" name="account_id" type="integer" default="-1" />
       <v:variable persist="0" name="account_rights" type="varchar" default="''" />
+      <v:variable persist="0" name="person_rights" type="varchar" default="''" />
         <v:variable persist="0" name="settings" type="any" />
       <v:variable persist="0" name="rdf_iri" type="varchar" default="null" />
       <v:on-init>
@@ -169,6 +165,7 @@
           self.domain_id := cast(get_keyword('domain_id', aSessInfo, '-1') as integer);
           self.account_id := cast (get_keyword ('account_id', aSessInfo, '-1') as integer);
           self.account_rights := get_keyword ('account_rights', aSessInfo);
+          self.person_rights := get_keyword ('person_rights', aSessInfo);
           self.settings := vector_concat (vector ('app', DB.DBA.WA_USER_APP_ENABLE (self.account_id)), AB.WA.settings (self.domain_id));
 
           self.vc_add_attribute ('xmlns:foaf', 'http://xmlns.com/foaf/0.1/');
diff --git a/appsrc/ODS-Addressbook/www/template/template.xsl b/appsrc/ODS-Addressbook/www/template/template.xsl
index 2702bfe..4b940dd 100644
--- a/appsrc/ODS-Addressbook/www/template/template.xsl
+++ b/appsrc/ODS-Addressbook/www/template/template.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: template.xsl,v 1.16.2.10 2011/05/02 14:16:25 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -190,7 +190,7 @@
             <?vsp http (AB.WA.utf2wide (AB.WA.banner_links (self.domain_id, self.sid, self.realm))); ?>
           </div>
           <div style="float: right; padding-right: 0.5em;">
-            <vm:if test="self.account_rights = 'W'">
+            <vm:if test="self.person_rights = 'W'">
               <a href="<?vsp http (AB.WA.utf2wide (AB.WA.page_url (self.domain_id, 'home.vspx?action=settings', self.sid, self.realm))); ?>" title="Preferences">Preferences</a>
               |
             </vm:if>
@@ -221,7 +221,7 @@
         <div id="FT" style="display: <?V case when get_keyword ('interface', C, '') = 'js' then 'none' else '' end ?>">
         <div id="FT_L">
           <a href="http://www.openlinksw.com/virtuoso">
-            <img alt="Powered by OpenLink Virtuoso Universal Server" src="image/virt_power_no_border.png" border="0" />
+              <img alt="Powered by OpenLink Virtuoso Universal Server" src="/ods/images/virt_power_no_border.png" border="0" />
           </a>
         </div>
         <div id="FT_R">
diff --git a/appsrc/ODS-Addressbook/xslt/rss2atom.xsl b/appsrc/ODS-Addressbook/xslt/rss2atom.xsl
index 641213c..2390919 100644
--- a/appsrc/ODS-Addressbook/xslt/rss2atom.xsl
+++ b/appsrc/ODS-Addressbook/xslt/rss2atom.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom.xsl,v 1.2.2.2 2010/09/20 10:14:41 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Addressbook/xslt/rss2atom03.xsl b/appsrc/ODS-Addressbook/xslt/rss2atom03.xsl
index 2505311..bd79434 100644
--- a/appsrc/ODS-Addressbook/xslt/rss2atom03.xsl
+++ b/appsrc/ODS-Addressbook/xslt/rss2atom03.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom03.xsl,v 1.2.2.1 2010/09/20 10:14:41 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Addressbook/xslt/rss2rdf.xsl b/appsrc/ODS-Addressbook/xslt/rss2rdf.xsl
index 6556b06..a171837 100644
--- a/appsrc/ODS-Addressbook/xslt/rss2rdf.xsl
+++ b/appsrc/ODS-Addressbook/xslt/rss2rdf.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
-  -  $Id: rss2rdf.xsl,v 1.2.2.1 2010/09/20 10:14:41 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Addressbook/xslt/rss2xbel.xsl b/appsrc/ODS-Addressbook/xslt/rss2xbel.xsl
index 59a9eeb..b78984a 100644
--- a/appsrc/ODS-Addressbook/xslt/rss2xbel.xsl
+++ b/appsrc/ODS-Addressbook/xslt/rss2xbel.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -  
-  -  $Id: rss2xbel.xsl,v 1.1.2.1 2010/09/20 10:14:41 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/Makefile.am b/appsrc/ODS-Blog/Makefile.am
index e2d15e3..5961da2 100644
--- a/appsrc/ODS-Blog/Makefile.am
+++ b/appsrc/ODS-Blog/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -44,6 +44,7 @@ clean-local:
 	-rm -rf vad
 
 EXTRA_DIST = \
+	*.dox \
 	*.sql \
 	*.vsp \
 	*.vspx \
diff --git a/appsrc/ODS-Blog/Makefile.in b/appsrc/ODS-Blog/Makefile.in
index d0d0767..9224c72 100644
--- a/appsrc/ODS-Blog/Makefile.in
+++ b/appsrc/ODS-Blog/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -38,9 +37,8 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -70,7 +68,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -78,23 +75,9 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(vaddir)"
+nodist_vadDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(nodist_vad_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -184,7 +167,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -268,7 +250,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -289,7 +270,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -307,6 +287,7 @@ CLEANFILES = \
 	virtuoso.trx
 
 EXTRA_DIST = \
+	*.dox \
 	*.sql \
 	*.vsp \
 	*.vspx \
@@ -373,14 +354,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu appsrc/ODS-Blog/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu appsrc/ODS-Blog/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  appsrc/ODS-Blog/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  appsrc/ODS-Blog/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -398,7 +379,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -408,23 +388,20 @@ clean-libtool:
 install-nodist_vadDATA: $(nodist_vad_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(vaddir)" || $(MKDIR_P) "$(DESTDIR)$(vaddir)"
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	for p in $$list; do \
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vaddir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(vaddir)" || exit $$?; \
+	  f=$(am__strip_dir) \
+	  echo " $(nodist_vadDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(vaddir)/$$f'"; \
+	  $(nodist_vadDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(vaddir)/$$f"; \
 	done
 
 uninstall-nodist_vadDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(vaddir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(vaddir)" && rm -f $$files
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(vaddir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(vaddir)/$$f"; \
+	done
 tags: TAGS
 TAGS:
 
@@ -448,17 +425,13 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
@@ -490,7 +463,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -509,8 +481,6 @@ dvi-am:
 
 html: html-am
 
-html-am:
-
 info: info-am
 
 info-am:
@@ -519,28 +489,18 @@ install-data-am: install-nodist_vadDATA
 
 install-dvi: install-dvi-am
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-am
 
-install-html-am:
-
 install-info: install-info-am
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-am
 
-install-pdf-am:
-
 install-ps: install-ps-am
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -581,7 +541,6 @@ ods_blog_dav.vad: $(EXTRA_DIST)
 
 clean-local:
 	-rm -rf vad
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/appsrc/ODS-Blog/ODS-Blog.dox b/appsrc/ODS-Blog/ODS-Blog.dox
new file mode 100644
index 0000000..5467c1c
--- /dev/null
+++ b/appsrc/ODS-Blog/ODS-Blog.dox
@@ -0,0 +1,3 @@
+/**
+\defgroup ods_module_weblog ODS Weblog
+*/
\ No newline at end of file
diff --git a/appsrc/ODS-Blog/atom_pub.sql b/appsrc/ODS-Blog/atom_pub.sql
index 2eaa139..aca61fb 100644
--- a/appsrc/ODS-Blog/atom_pub.sql
+++ b/appsrc/ODS-Blog/atom_pub.sql
@@ -1,12 +1,12 @@
 --
---  $Id: atom_pub.sql,v 1.3.2.1 2010/09/20 10:14:42 source Exp $
+--  $Id$
 --
 --  Atom publishing protocol support.
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -288,11 +288,11 @@ atom_req_headers (in req "blogRequest", in what int := 0)
     if (req.user_name is not null)
       {
   b := encode_base64 (req.user_name||':'||req.passwd);
-  return sprintf ('%s: application/x.atom+xml\r\nAuthorization: Basic %s', case when what = 0 then 'Content-Type' else 'Accept' end, b);
+	return sprintf ('%s: application/atom+xml\r\nAuthorization: Basic %s', case when what = 0 then 'Content-Type' else 'Accept' end, b);
       }
     else
       {
-  return sprintf ('%s: application/x.atom+xml', case when what = 0 then 'Content-Type' else 'Accept' end);
+	return sprintf ('%s: application/atom+xml', case when what = 0 then 'Content-Type' else 'Accept' end);
       }
   }
 ;
diff --git a/appsrc/ODS-Blog/blog.sql b/appsrc/ODS-Blog/blog.sql
index 167c022..71a7944 100644
--- a/appsrc/ODS-Blog/blog.sql
+++ b/appsrc/ODS-Blog/blog.sql
@@ -1,12 +1,12 @@
 --
---  $Id: blog.sql,v 1.20.2.7 2010/12/07 10:59:24 source Exp $
+--  $Id$
 --
 --  Blogger API support.
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -666,6 +666,7 @@ blog2_exec_no_error ('create table SYS_BLOG_CHANNEL_FEEDS
   CF_PUBDATE datetime,
   CF_COMMENT_API varchar,
   CF_COMMENT_RSS varchar,
+  CF_READ int,
   primary key (CF_CHANNEL_URI, CF_ID)
   )')
 ;
@@ -884,7 +885,7 @@ insert soft SYS_ROUTING_TYPE (RT_ID, RT_NAME, RT_TYPE_DESCRIPTION) values (3, 'd
 insert soft SYS_ROUTING_TYPE (RT_ID, RT_NAME, RT_TYPE_DESCRIPTION) values (4, 'Ping', 'Weblog ping')
 ;
 
---   Routing Procotol Table Structure:
+--   Routing Protocol Table Structure:
 blog2_exec_no_error ('create table SYS_ROUTING_PROTOCOL
 (
    RP_ID  int primary key,
diff --git a/appsrc/ODS-Blog/blog_api.sql b/appsrc/ODS-Blog/blog_api.sql
index ea529e0..3ee9ca9 100644
--- a/appsrc/ODS-Blog/blog_api.sql
+++ b/appsrc/ODS-Blog/blog_api.sql
@@ -598,5 +598,6 @@ grant execute on ODS.ODS_API."weblog.upstreaming.get" to ODS_API;
 grant execute on ODS.ODS_API."weblog.upstreaming.remove" to ODS_API;
 grant execute on ODS.ODS_API."weblog.tagging.set" to ODS_API;
 grant execute on ODS.ODS_API."weblog.tagging.retag" to ODS_API;
+grant execute on DB.DBA.XML_URI_GET_STRING_OR_ENT to ODS_API;
 
 use DB;
diff --git a/appsrc/ODS-Blog/conv.sql b/appsrc/ODS-Blog/conv.sql
index 1cc1bbc..8e782ae 100644
--- a/appsrc/ODS-Blog/conv.sql
+++ b/appsrc/ODS-Blog/conv.sql
@@ -1,10 +1,10 @@
 --
---  $Id: conv.sql,v 1.4.2.1 2010/09/20 10:14:42 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/dav_browser.sql b/appsrc/ODS-Blog/dav_browser.sql
index 0d5a620..0a5cd33 100644
--- a/appsrc/ODS-Blog/dav_browser.sql
+++ b/appsrc/ODS-Blog/dav_browser.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: dav_browser.sql,v 1.3.2.1 2010/09/20 10:14:42 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/gdata.sql b/appsrc/ODS-Blog/gdata.sql
index 4765976..fde0e09 100644
--- a/appsrc/ODS-Blog/gdata.sql
+++ b/appsrc/ODS-Blog/gdata.sql
@@ -1,12 +1,12 @@
 --
---  $Id: gdata.sql,v 1.4.2.1 2010/09/20 10:14:42 source Exp $
+--  $Id$
 --
 --  Atom publishing protocol support.
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -121,8 +121,8 @@ create procedure ATOM.ATOM.gdata
     id := path [5];
 
   ver := null;
-  if (length (path) > 6 and atoi (id) > 0)
-    ver := atoi (path [6]);
+  --if (length (path) > 6 and atoi (id) > 0)
+  --  ver := atoi (path [6]);
 
   if (blogid is null)
     {
diff --git a/appsrc/ODS-Blog/index.vsp b/appsrc/ODS-Blog/index.vsp
index 9f71613..4917d80 100644
--- a/appsrc/ODS-Blog/index.vsp
+++ b/appsrc/ODS-Blog/index.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: index.vsp,v 1.3.2.1 2010/09/20 10:14:42 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/index.vspx b/appsrc/ODS-Blog/index.vspx
index ed4abd3..8ae9c83 100644
--- a/appsrc/ODS-Blog/index.vspx
+++ b/appsrc/ODS-Blog/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.3.2.1 2010/09/20 10:14:42 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/install.sql b/appsrc/ODS-Blog/install.sql
index 72f8670..4e76302 100644
--- a/appsrc/ODS-Blog/install.sql
+++ b/appsrc/ODS-Blog/install.sql
@@ -1,10 +1,10 @@
 --
---  $Id: install.sql,v 1.25.2.8 2010/11/09 20:15:17 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/make_vad.sh b/appsrc/ODS-Blog/make_vad.sh
index 7bd3462..9559f77 100755
--- a/appsrc/ODS-Blog/make_vad.sh
+++ b/appsrc/ODS-Blog/make_vad.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: make_vad.sh,v 1.22.2.10 2011/05/18 21:17:54 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -59,6 +59,7 @@ TEMPFILE=/tmp/isql.$$
 LN="ln -fs"
 RM="rm -f"
 fi
+
 VOS=0
 if [ -f ../../autogen.sh ]
 then
@@ -84,7 +85,7 @@ else
   myrm=rm
 fi
 
-VERSION_INIT()
+version_init()
 {
   if [ $VOS -eq 1 ]
   then
@@ -281,7 +282,7 @@ sticker_init() {
   echo "  <name package=\"Weblog\">" >> $STICKER
   echo "    <prop name=\"Title\" value=\"ODS Weblog\"/>" >> $STICKER
   echo "    <prop name=\"Developer\" value=\"OpenLink Software\"/>" >> $STICKER
-  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2011 OpenLink Software\"/>" >> $STICKER
+  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2012 OpenLink Software\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.com/virtuoso/blog2/download\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.co.uk/virtuoso/blog2/download\"/>" >> $STICKER
   echo "  </name>" >> $STICKER
@@ -462,7 +463,7 @@ BANNER "STARTED PACKAGING BLOG VAD"
 STOP_SERVER
 $myrm $LOGFILE 2>/dev/null
 directory_clean
-VERSION_INIT
+version_init
 directory_init
 virtuoso_init
 sticker_init
@@ -470,7 +471,6 @@ vad_create
 virtuoso_shutdown
 chmod 644 ods_blog_dav.vad
 #chmod 644 virtuoso.trx
-directory_clean
 
 CHECK_LOG
 RUN egrep  '"\*\*.*FAILED:|\*\*.*ABORTED:"' "$LOGFILE"
@@ -480,5 +480,7 @@ then
 	exit 1
 fi
 
+directory_clean
+
 BANNER "COMPLETED VAD PACKAGING"
 exit 0
diff --git a/appsrc/ODS-Blog/public/back_nav.vspx b/appsrc/ODS-Blog/public/back_nav.vspx
index a4586ef..c2729d3 100644
--- a/appsrc/ODS-Blog/public/back_nav.vspx
+++ b/appsrc/ODS-Blog/public/back_nav.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: back_nav.vspx,v 1.3.2.1 2010/09/20 10:14:43 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/public/c_confirm.vspx b/appsrc/ODS-Blog/public/c_confirm.vspx
index 34727bd..449a4bf 100644
--- a/appsrc/ODS-Blog/public/c_confirm.vspx
+++ b/appsrc/ODS-Blog/public/c_confirm.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: c_confirm.vspx,v 1.5.2.1 2010/09/20 10:14:43 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/public/css/dav.css b/appsrc/ODS-Blog/public/css/dav.css
index 0ac3769..5a50594 100644
--- a/appsrc/ODS-Blog/public/css/dav.css
+++ b/appsrc/ODS-Blog/public/css/dav.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: dav.css,v 1.2.2.1 2010/09/20 10:14:44 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/public/css/default.css b/appsrc/ODS-Blog/public/css/default.css
index bdd10b3..d98f2a2 100644
--- a/appsrc/ODS-Blog/public/css/default.css
+++ b/appsrc/ODS-Blog/public/css/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.2.2.1 2010/09/20 10:14:44 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/public/css/rte.css b/appsrc/ODS-Blog/public/css/rte.css
index 0dadda8..98c23b4 100644
--- a/appsrc/ODS-Blog/public/css/rte.css
+++ b/appsrc/ODS-Blog/public/css/rte.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: rte.css,v 1.3.2.1 2010/09/20 10:14:44 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/public/css/webdav.css b/appsrc/ODS-Blog/public/css/webdav.css
index df4618a..93bc072 100644
--- a/appsrc/ODS-Blog/public/css/webdav.css
+++ b/appsrc/ODS-Blog/public/css/webdav.css
@@ -1,9 +1,9 @@
 /*
- *  $Id: webdav.css,v 1.1.2.1 2010/09/20 10:14:44 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Ajax Toolkit (OAT) project.
  *
- *  Copyright (C) 2005-2007 OpenLink Software
+ *  Copyright (C) 2005-2012 OpenLink Software
  *
  *  See LICENSE file for details.
  */
diff --git a/appsrc/ODS-Blog/public/openid_helper.vsp b/appsrc/ODS-Blog/public/openid_helper.vsp
index a645a2e..8efa7e5 100644
--- a/appsrc/ODS-Blog/public/openid_helper.vsp
+++ b/appsrc/ODS-Blog/public/openid_helper.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --  
---  $Id: openid_helper.vsp,v 1.3.2.1 2010/09/20 10:14:43 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/public/popup_browser.vspx b/appsrc/ODS-Blog/public/popup_browser.vspx
index cf48ffc..088dfdd 100644
--- a/appsrc/ODS-Blog/public/popup_browser.vspx
+++ b/appsrc/ODS-Blog/public/popup_browser.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: popup_browser.vspx,v 1.3.2.1 2010/09/20 10:14:43 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/public/r_unsubscribe.vspx b/appsrc/ODS-Blog/public/r_unsubscribe.vspx
index 76ca18a..086c619 100644
--- a/appsrc/ODS-Blog/public/r_unsubscribe.vspx
+++ b/appsrc/ODS-Blog/public/r_unsubscribe.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: r_unsubscribe.vspx,v 1.3.2.1 2010/09/20 10:14:43 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/public/scripts/browserdetect.js b/appsrc/ODS-Blog/public/scripts/browserdetect.js
index d3b717a..2ab03c2 100644
--- a/appsrc/ODS-Blog/public/scripts/browserdetect.js
+++ b/appsrc/ODS-Blog/public/scripts/browserdetect.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: browserdetect.js,v 1.2.2.1 2010/09/20 10:14:44 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/public/scripts/entry.js b/appsrc/ODS-Blog/public/scripts/entry.js
index 38a2bb8..349926c 100644
--- a/appsrc/ODS-Blog/public/scripts/entry.js
+++ b/appsrc/ODS-Blog/public/scripts/entry.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: entry.js,v 1.2.2.1 2010/09/20 10:14:44 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/public/scripts/form.js b/appsrc/ODS-Blog/public/scripts/form.js
index 985191f..dbccb2a 100644
--- a/appsrc/ODS-Blog/public/scripts/form.js
+++ b/appsrc/ODS-Blog/public/scripts/form.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: form.js,v 1.6.2.1 2010/09/20 10:14:44 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/public/scripts/openid.js b/appsrc/ODS-Blog/public/scripts/openid.js
index 2bc7e9b..30dad93 100644
--- a/appsrc/ODS-Blog/public/scripts/openid.js
+++ b/appsrc/ODS-Blog/public/scripts/openid.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: openid.js,v 1.2.2.1 2010/09/20 10:14:44 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/public/scripts/plugins.js b/appsrc/ODS-Blog/public/scripts/plugins.js
index 934dd03..0f0205d 100644
--- a/appsrc/ODS-Blog/public/scripts/plugins.js
+++ b/appsrc/ODS-Blog/public/scripts/plugins.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: plugins.js,v 1.2.2.1 2010/09/20 10:14:44 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/public/search.vspx b/appsrc/ODS-Blog/public/search.vspx
index 123203c..962070b 100644
--- a/appsrc/ODS-Blog/public/search.vspx
+++ b/appsrc/ODS-Blog/public/search.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: search.vspx,v 1.11.2.2 2010/09/20 10:14:43 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -1285,7 +1285,9 @@
           http ('<title>');
           http_value (BLOG..blog_utf2wide(elm[2]));
           http ('</title>');
-          http (sprintf ('<link>http://%s', BLOG.DBA.BLOG_GET_HOST ()));
+          http ('<link>');
+	  if (elm[1] not like '%://%')    
+            http (sprintf ('http://%s', BLOG.DBA.BLOG_GET_HOST ()));
           http_value (elm[1]);
           http ('</link>');
           http ('<pubDate>');
diff --git a/appsrc/ODS-Blog/public/view.vspx b/appsrc/ODS-Blog/public/view.vspx
index d2e46a6..5b45597 100644
--- a/appsrc/ODS-Blog/public/view.vspx
+++ b/appsrc/ODS-Blog/public/view.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: view.vspx,v 1.3.2.1 2010/09/20 10:14:43 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/public/view_file.vspx b/appsrc/ODS-Blog/public/view_file.vspx
index 0e6300a..0d61b7c 100644
--- a/appsrc/ODS-Blog/public/view_file.vspx
+++ b/appsrc/ODS-Blog/public/view_file.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: view_file.vspx,v 1.3.2.1 2010/09/20 10:14:43 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/sioc_blog.sql b/appsrc/ODS-Blog/sioc_blog.sql
index a4f7882..5cea211 100644
--- a/appsrc/ODS-Blog/sioc_blog.sql
+++ b/appsrc/ODS-Blog/sioc_blog.sql
@@ -1,10 +1,10 @@
 --
---  $Id: sioc_blog.sql,v 1.14.2.4 2011/05/18 21:17:54 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/template.sql b/appsrc/ODS-Blog/template.sql
index 9dcb8d7..f07774d 100644
--- a/appsrc/ODS-Blog/template.sql
+++ b/appsrc/ODS-Blog/template.sql
@@ -1,10 +1,10 @@
 --
---  $Id: template.sql,v 1.4.2.1 2010/09/20 10:14:42 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/atlantis/default.css b/appsrc/ODS-Blog/templates/atlantis/default.css
index 3734382..030f21e 100644
--- a/appsrc/ODS-Blog/templates/atlantis/default.css
+++ b/appsrc/ODS-Blog/templates/atlantis/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.2.2.1 2010/09/20 10:14:44 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/atlantis/index.vspx b/appsrc/ODS-Blog/templates/atlantis/index.vspx
index 0030e47..296f033 100644
--- a/appsrc/ODS-Blog/templates/atlantis/index.vspx
+++ b/appsrc/ODS-Blog/templates/atlantis/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.3.2.2 2010/09/20 10:14:44 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/autumn/default.css b/appsrc/ODS-Blog/templates/autumn/default.css
index 159215d..1868e47 100644
--- a/appsrc/ODS-Blog/templates/autumn/default.css
+++ b/appsrc/ODS-Blog/templates/autumn/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.2.2.2 2010/09/20 10:14:45 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/autumn/index.vspx b/appsrc/ODS-Blog/templates/autumn/index.vspx
index 76baed3..3cf50be 100644
--- a/appsrc/ODS-Blog/templates/autumn/index.vspx
+++ b/appsrc/ODS-Blog/templates/autumn/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.3.2.2 2010/09/20 10:14:45 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/blue_left/default.css b/appsrc/ODS-Blog/templates/blue_left/default.css
index e71a434..0702b6c 100644
--- a/appsrc/ODS-Blog/templates/blue_left/default.css
+++ b/appsrc/ODS-Blog/templates/blue_left/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.2.2.2 2010/09/20 10:14:45 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/blue_left/index.vspx b/appsrc/ODS-Blog/templates/blue_left/index.vspx
index c137b74..52dedbb 100644
--- a/appsrc/ODS-Blog/templates/blue_left/index.vspx
+++ b/appsrc/ODS-Blog/templates/blue_left/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.3.2.2 2010/09/20 10:14:45 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/columns_clean/archive.vspx b/appsrc/ODS-Blog/templates/columns_clean/archive.vspx
index 6fe7b69..2d85075 100644
--- a/appsrc/ODS-Blog/templates/columns_clean/archive.vspx
+++ b/appsrc/ODS-Blog/templates/columns_clean/archive.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: archive.vspx,v 1.1.2.1 2010/09/20 10:14:45 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/columns_clean/default.css b/appsrc/ODS-Blog/templates/columns_clean/default.css
index de79bef..a4e0427 100644
--- a/appsrc/ODS-Blog/templates/columns_clean/default.css
+++ b/appsrc/ODS-Blog/templates/columns_clean/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.1.2.2 2010/09/20 10:14:45 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/columns_clean/index.vspx b/appsrc/ODS-Blog/templates/columns_clean/index.vspx
index ef1a0ac..49685a6 100644
--- a/appsrc/ODS-Blog/templates/columns_clean/index.vspx
+++ b/appsrc/ODS-Blog/templates/columns_clean/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.1.2.2 2010/09/20 10:14:45 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/columns_clean/linkblog.vspx b/appsrc/ODS-Blog/templates/columns_clean/linkblog.vspx
index 1260422..5c2b979 100644
--- a/appsrc/ODS-Blog/templates/columns_clean/linkblog.vspx
+++ b/appsrc/ODS-Blog/templates/columns_clean/linkblog.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: linkblog.vspx,v 1.1.2.1 2010/09/20 10:14:45 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/columns_clean/summary.vspx b/appsrc/ODS-Blog/templates/columns_clean/summary.vspx
index 744e85f..c108330 100644
--- a/appsrc/ODS-Blog/templates/columns_clean/summary.vspx
+++ b/appsrc/ODS-Blog/templates/columns_clean/summary.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: summary.vspx,v 1.1.2.1 2010/09/20 10:14:45 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/default/default.css b/appsrc/ODS-Blog/templates/default/default.css
index 41c6c5d..1f5ff14 100644
--- a/appsrc/ODS-Blog/templates/default/default.css
+++ b/appsrc/ODS-Blog/templates/default/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.2.2.2 2010/09/20 10:14:45 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/default/index.vspx b/appsrc/ODS-Blog/templates/default/index.vspx
index 6c6ac7c..dfbd203 100644
--- a/appsrc/ODS-Blog/templates/default/index.vspx
+++ b/appsrc/ODS-Blog/templates/default/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.3.2.2 2010/09/20 10:14:45 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/default/red.css b/appsrc/ODS-Blog/templates/default/red.css
index 0c1c97e..06a9084 100644
--- a/appsrc/ODS-Blog/templates/default/red.css
+++ b/appsrc/ODS-Blog/templates/default/red.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: red.css,v 1.3.2.2 2010/09/20 10:14:45 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/digital_bazaar/archive.vspx b/appsrc/ODS-Blog/templates/digital_bazaar/archive.vspx
index 19dbf9c..2283363 100755
--- a/appsrc/ODS-Blog/templates/digital_bazaar/archive.vspx
+++ b/appsrc/ODS-Blog/templates/digital_bazaar/archive.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 -
--  $Id: archive.vspx,v 1.1.4.2 2010/09/22 13:56:49 source Exp $
+-  $Id$
 -
 -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 -  project.
 -
--  Copyright (C) 1998-2006 OpenLink Software
+-  Copyright (C) 1998-2012 OpenLink Software
 -
 -  This project is free software; you can redistribute it and/or modify it
 -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/digital_bazaar/default.css b/appsrc/ODS-Blog/templates/digital_bazaar/default.css
index a79512d..2ca5100 100755
--- a/appsrc/ODS-Blog/templates/digital_bazaar/default.css
+++ b/appsrc/ODS-Blog/templates/digital_bazaar/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.1.4.3 2010/09/22 13:56:49 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/digital_bazaar/index.vspx b/appsrc/ODS-Blog/templates/digital_bazaar/index.vspx
index 5ef5716..aab4977 100755
--- a/appsrc/ODS-Blog/templates/digital_bazaar/index.vspx
+++ b/appsrc/ODS-Blog/templates/digital_bazaar/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
  -
--  $Id: index.vspx,v 1.1.4.4 2010/10/07 13:24:15 source Exp $
+-  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/digital_bazaar/linkblog.vspx b/appsrc/ODS-Blog/templates/digital_bazaar/linkblog.vspx
index c6794c6..890aad3 100755
--- a/appsrc/ODS-Blog/templates/digital_bazaar/linkblog.vspx
+++ b/appsrc/ODS-Blog/templates/digital_bazaar/linkblog.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: linkblog.vspx,v 1.1.4.2 2010/09/27 14:45:09 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/digital_bazaar/summary.vspx b/appsrc/ODS-Blog/templates/digital_bazaar/summary.vspx
index 4761607..10a6035 100755
--- a/appsrc/ODS-Blog/templates/digital_bazaar/summary.vspx
+++ b/appsrc/ODS-Blog/templates/digital_bazaar/summary.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 -
--  $Id: summary.vspx,v 1.1.4.2 2010/09/22 13:56:49 source Exp $
+-  $Id$
 -
 -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 -  project.
 -
--  Copyright (C) 1998-2006 OpenLink Software
+-  Copyright (C) 1998-2012 OpenLink Software
 -
 -  This project is free software; you can redistribute it and/or modify it
 -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/main.vspx b/appsrc/ODS-Blog/templates/main.vspx
index 46f2a92..c88d0aa 100644
--- a/appsrc/ODS-Blog/templates/main.vspx
+++ b/appsrc/ODS-Blog/templates/main.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: main.vspx,v 1.4.2.1 2010/09/20 10:14:44 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/micro/default.css b/appsrc/ODS-Blog/templates/micro/default.css
index f29b355..28829d3 100644
--- a/appsrc/ODS-Blog/templates/micro/default.css
+++ b/appsrc/ODS-Blog/templates/micro/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.1.4.2 2010/12/07 10:59:24 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2010 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/micro/index.vspx b/appsrc/ODS-Blog/templates/micro/index.vspx
index 8f85d8b..0aa8940 100644
--- a/appsrc/ODS-Blog/templates/micro/index.vspx
+++ b/appsrc/ODS-Blog/templates/micro/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.1.4.2 2010/12/07 10:59:24 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2010 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/modern/default.css b/appsrc/ODS-Blog/templates/modern/default.css
index 70376aa..41c6122 100644
--- a/appsrc/ODS-Blog/templates/modern/default.css
+++ b/appsrc/ODS-Blog/templates/modern/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.2.2.2 2010/09/20 10:14:45 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/modern/index.vspx b/appsrc/ODS-Blog/templates/modern/index.vspx
index 9b8a651..aca6e00 100644
--- a/appsrc/ODS-Blog/templates/modern/index.vspx
+++ b/appsrc/ODS-Blog/templates/modern/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.3.2.2 2010/09/20 10:14:46 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/modern/red.css b/appsrc/ODS-Blog/templates/modern/red.css
index 2a9839f..149b4c8 100644
--- a/appsrc/ODS-Blog/templates/modern/red.css
+++ b/appsrc/ODS-Blog/templates/modern/red.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: red.css,v 1.3.2.2 2010/09/20 10:14:46 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/newspaper_view/archive.vspx b/appsrc/ODS-Blog/templates/newspaper_view/archive.vspx
index d536cde..6e99991 100755
--- a/appsrc/ODS-Blog/templates/newspaper_view/archive.vspx
+++ b/appsrc/ODS-Blog/templates/newspaper_view/archive.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: archive.vspx,v 1.1.4.2 2010/09/22 13:56:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/newspaper_view/default.css b/appsrc/ODS-Blog/templates/newspaper_view/default.css
index ff29242..af587b4 100755
--- a/appsrc/ODS-Blog/templates/newspaper_view/default.css
+++ b/appsrc/ODS-Blog/templates/newspaper_view/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.1.4.3 2010/09/22 13:56:49 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/newspaper_view/index.vspx b/appsrc/ODS-Blog/templates/newspaper_view/index.vspx
index 752b6ae..b24670b 100755
--- a/appsrc/ODS-Blog/templates/newspaper_view/index.vspx
+++ b/appsrc/ODS-Blog/templates/newspaper_view/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.1.4.3 2010/09/22 13:56:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/newspaper_view/linkblog.vspx b/appsrc/ODS-Blog/templates/newspaper_view/linkblog.vspx
index 31b03dd..161176e 100755
--- a/appsrc/ODS-Blog/templates/newspaper_view/linkblog.vspx
+++ b/appsrc/ODS-Blog/templates/newspaper_view/linkblog.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: linkblog.vspx,v 1.1.4.2 2010/09/27 14:45:09 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/newspaper_view/summary.vspx b/appsrc/ODS-Blog/templates/newspaper_view/summary.vspx
index 3f028ef..ffa1387 100755
--- a/appsrc/ODS-Blog/templates/newspaper_view/summary.vspx
+++ b/appsrc/ODS-Blog/templates/newspaper_view/summary.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
  -
- -  $Id: summary.vspx,v 1.1.4.2 2010/09/22 13:56:50 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/about.vspx b/appsrc/ODS-Blog/templates/openlink/about.vspx
index a3907d5..09a2273 100644
--- a/appsrc/ODS-Blog/templates/openlink/about.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/about.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: about.vspx,v 1.3.2.1 2010/09/20 10:14:46 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/archive.vspx b/appsrc/ODS-Blog/templates/openlink/archive.vspx
index 332f3ee..5c7137f 100644
--- a/appsrc/ODS-Blog/templates/openlink/archive.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/archive.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: archive.vspx,v 1.4.2.1 2010/09/20 10:14:46 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/bridge.vspx b/appsrc/ODS-Blog/templates/openlink/bridge.vspx
index 6f76089..c85e1a8 100644
--- a/appsrc/ODS-Blog/templates/openlink/bridge.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/bridge.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: bridge.vspx,v 1.4.2.1 2010/09/20 10:14:46 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/category.vspx b/appsrc/ODS-Blog/templates/openlink/category.vspx
index 4623ca3..590465b 100644
--- a/appsrc/ODS-Blog/templates/openlink/category.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/category.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: category.vspx,v 1.4.2.1 2010/09/20 10:14:46 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/channel_list.vspx b/appsrc/ODS-Blog/templates/openlink/channel_list.vspx
index a2fcb2a..5fd5863 100644
--- a/appsrc/ODS-Blog/templates/openlink/channel_list.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/channel_list.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: channel_list.vspx,v 1.4.2.1 2010/09/20 10:14:46 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/channels.vspx b/appsrc/ODS-Blog/templates/openlink/channels.vspx
index ac8d7f8..100ed66 100644
--- a/appsrc/ODS-Blog/templates/openlink/channels.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/channels.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: channels.vspx,v 1.4.2.1 2010/09/20 10:14:46 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/channels_ctgs.vspx b/appsrc/ODS-Blog/templates/openlink/channels_ctgs.vspx
index 9794126..78b98c6 100644
--- a/appsrc/ODS-Blog/templates/openlink/channels_ctgs.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/channels_ctgs.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: channels_ctgs.vspx,v 1.4.2.1 2010/09/20 10:14:46 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/comments.vspx b/appsrc/ODS-Blog/templates/openlink/comments.vspx
index 0ee2c8c..0ca4370 100644
--- a/appsrc/ODS-Blog/templates/openlink/comments.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/comments.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: comments.vspx,v 1.4.2.1 2010/09/20 10:14:46 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/community.vspx b/appsrc/ODS-Blog/templates/openlink/community.vspx
index cac3f11..b2a91e3 100644
--- a/appsrc/ODS-Blog/templates/openlink/community.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/community.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: community.vspx,v 1.4.2.1 2010/09/20 10:14:46 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/contacts.vspx b/appsrc/ODS-Blog/templates/openlink/contacts.vspx
index 0ad9454..fc488b7 100644
--- a/appsrc/ODS-Blog/templates/openlink/contacts.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/contacts.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: contacts.vspx,v 1.4.2.1 2010/09/20 10:14:47 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/default.css b/appsrc/ODS-Blog/templates/openlink/default.css
index 1320fe6..0ab034b 100644
--- a/appsrc/ODS-Blog/templates/openlink/default.css
+++ b/appsrc/ODS-Blog/templates/openlink/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.10.2.2 2010/09/20 10:14:47 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/edit.vspx b/appsrc/ODS-Blog/templates/openlink/edit.vspx
index 4564ff9..06cb0aa 100644
--- a/appsrc/ODS-Blog/templates/openlink/edit.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/edit.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: edit.vspx,v 1.4.2.2 2010/09/20 10:14:47 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/edit_comments.vspx b/appsrc/ODS-Blog/templates/openlink/edit_comments.vspx
index 6e0d74f..b8c971c 100644
--- a/appsrc/ODS-Blog/templates/openlink/edit_comments.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/edit_comments.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: edit_comments.vspx,v 1.4.2.1 2010/09/20 10:14:47 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/edit_post.vspx b/appsrc/ODS-Blog/templates/openlink/edit_post.vspx
index 43e249f..777c89c 100644
--- a/appsrc/ODS-Blog/templates/openlink/edit_post.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/edit_post.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: edit_post.vspx,v 1.5.2.1 2010/09/20 10:14:47 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/edit_tb.vspx b/appsrc/ODS-Blog/templates/openlink/edit_tb.vspx
index bacb7b0..f5562b3 100644
--- a/appsrc/ODS-Blog/templates/openlink/edit_tb.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/edit_tb.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: edit_tb.vspx,v 1.4.2.1 2010/09/20 10:14:47 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/errors.vspx b/appsrc/ODS-Blog/templates/openlink/errors.vspx
index 5f4f3c4..da12da2 100644
--- a/appsrc/ODS-Blog/templates/openlink/errors.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/errors.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: errors.vspx,v 1.3.2.1 2010/09/20 10:14:47 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/feed_list.vspx b/appsrc/ODS-Blog/templates/openlink/feed_list.vspx
index f68cad2..3a29ec7 100644
--- a/appsrc/ODS-Blog/templates/openlink/feed_list.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/feed_list.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: feed_list.vspx,v 1.3.2.1 2010/09/20 10:14:47 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/feed_view.vspx b/appsrc/ODS-Blog/templates/openlink/feed_view.vspx
index d1a812d..e722b09 100644
--- a/appsrc/ODS-Blog/templates/openlink/feed_view.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/feed_view.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: feed_view.vspx,v 1.3.2.1 2010/09/20 10:14:47 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/get_blogs.vspx b/appsrc/ODS-Blog/templates/openlink/get_blogs.vspx
index b5b4cf5..fb477ec 100644
--- a/appsrc/ODS-Blog/templates/openlink/get_blogs.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/get_blogs.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: get_blogs.vspx,v 1.3.2.1 2010/09/20 10:14:47 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/get_tags.vspx b/appsrc/ODS-Blog/templates/openlink/get_tags.vspx
index 0a2a0e4..8b75f2e 100644
--- a/appsrc/ODS-Blog/templates/openlink/get_tags.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/get_tags.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: get_tags.vspx,v 1.3.2.1 2010/09/20 10:14:47 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/import.vspx b/appsrc/ODS-Blog/templates/openlink/import.vspx
index 79e8611..0ef19ee 100644
--- a/appsrc/ODS-Blog/templates/openlink/import.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/import.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: import.vspx,v 1.1.2.1 2010/09/20 10:14:47 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/index.vspx b/appsrc/ODS-Blog/templates/openlink/index.vspx
index c94cf8e..d8163c9 100644
--- a/appsrc/ODS-Blog/templates/openlink/index.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.14.2.5 2010/09/27 14:45:09 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/linkblog.vspx b/appsrc/ODS-Blog/templates/openlink/linkblog.vspx
index 6eed82c..f896db2 100644
--- a/appsrc/ODS-Blog/templates/openlink/linkblog.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/linkblog.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: linkblog.vspx,v 1.5.2.1 2010/09/20 10:14:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/list_comments.vspx b/appsrc/ODS-Blog/templates/openlink/list_comments.vspx
index d056a89..505aa61 100644
--- a/appsrc/ODS-Blog/templates/openlink/list_comments.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/list_comments.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: list_comments.vspx,v 1.4.2.1 2010/09/20 10:14:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/login.vspx b/appsrc/ODS-Blog/templates/openlink/login.vspx
index 1ea5a5d..6ed302f 100644
--- a/appsrc/ODS-Blog/templates/openlink/login.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/login.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: login.vspx,v 1.3.2.1 2010/09/20 10:14:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/logout.vspx b/appsrc/ODS-Blog/templates/openlink/logout.vspx
index d57ed60..319ad5f 100644
--- a/appsrc/ODS-Blog/templates/openlink/logout.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/logout.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: logout.vspx,v 1.3.2.1 2010/09/20 10:14:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/member_data.vspx b/appsrc/ODS-Blog/templates/openlink/member_data.vspx
index 4267f1d..8a39035 100644
--- a/appsrc/ODS-Blog/templates/openlink/member_data.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/member_data.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: member_data.vspx,v 1.4.2.1 2010/09/20 10:14:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/membership.vspx b/appsrc/ODS-Blog/templates/openlink/membership.vspx
index 68c65d9..79ba7cb 100644
--- a/appsrc/ODS-Blog/templates/openlink/membership.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/membership.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: membership.vspx,v 1.4.2.1 2010/09/20 10:14:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/moblog_mime_select.vspx b/appsrc/ODS-Blog/templates/openlink/moblog_mime_select.vspx
index 4d36575..d93808b 100644
--- a/appsrc/ODS-Blog/templates/openlink/moblog_mime_select.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/moblog_mime_select.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: moblog_mime_select.vspx,v 1.3.2.1 2010/09/20 10:14:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/moblog_msg.vspx b/appsrc/ODS-Blog/templates/openlink/moblog_msg.vspx
index bac7b61..df6230a 100644
--- a/appsrc/ODS-Blog/templates/openlink/moblog_msg.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/moblog_msg.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: moblog_msg.vspx,v 1.4.2.1 2010/09/20 10:14:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/moblogimage.vspx b/appsrc/ODS-Blog/templates/openlink/moblogimage.vspx
index 8d370c0..069b909 100644
--- a/appsrc/ODS-Blog/templates/openlink/moblogimage.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/moblogimage.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: moblogimage.vspx,v 1.4.2.1 2010/09/20 10:14:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/ping.vspx b/appsrc/ODS-Blog/templates/openlink/ping.vspx
index 4776b24..3bef4e7 100644
--- a/appsrc/ODS-Blog/templates/openlink/ping.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/ping.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: ping.vspx,v 1.4.2.1 2010/09/20 10:14:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/ping_queue.vspx b/appsrc/ODS-Blog/templates/openlink/ping_queue.vspx
index b50e03a..614eccd 100644
--- a/appsrc/ODS-Blog/templates/openlink/ping_queue.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/ping_queue.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: ping_queue.vspx,v 1.4.2.1 2010/09/20 10:14:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/posts.vspx b/appsrc/ODS-Blog/templates/openlink/posts.vspx
index c3d8915..58cca78 100644
--- a/appsrc/ODS-Blog/templates/openlink/posts.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/posts.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: posts.vspx,v 1.4.2.1 2010/09/20 10:14:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/register.vspx b/appsrc/ODS-Blog/templates/openlink/register.vspx
index 734b500..5e5098a 100644
--- a/appsrc/ODS-Blog/templates/openlink/register.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/register.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: register.vspx,v 1.3.2.1 2010/09/20 10:14:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/routing_queue.vspx b/appsrc/ODS-Blog/templates/openlink/routing_queue.vspx
index c181626..20da221 100644
--- a/appsrc/ODS-Blog/templates/openlink/routing_queue.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/routing_queue.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: routing_queue.vspx,v 1.4.2.1 2010/09/20 10:14:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/suggest_kwd.vspx b/appsrc/ODS-Blog/templates/openlink/suggest_kwd.vspx
index c11be22..4d2cae3 100644
--- a/appsrc/ODS-Blog/templates/openlink/suggest_kwd.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/suggest_kwd.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: suggest_kwd.vspx,v 1.3.2.1 2010/09/20 10:14:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/suggest_tb.vspx b/appsrc/ODS-Blog/templates/openlink/suggest_tb.vspx
index 5f06703..f2ce83f 100644
--- a/appsrc/ODS-Blog/templates/openlink/suggest_tb.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/suggest_tb.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: suggest_tb.vspx,v 1.3.2.1 2010/09/20 10:14:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/summary.vspx b/appsrc/ODS-Blog/templates/openlink/summary.vspx
index 5115582..1fc171a 100644
--- a/appsrc/ODS-Blog/templates/openlink/summary.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/summary.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: summary.vspx,v 1.5.2.1 2010/09/20 10:14:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/tags.vspx b/appsrc/ODS-Blog/templates/openlink/tags.vspx
index 0785aa7..2f10d43 100644
--- a/appsrc/ODS-Blog/templates/openlink/tags.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/tags.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: tags.vspx,v 1.4.2.1 2010/09/20 10:14:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/templates.vspx b/appsrc/ODS-Blog/templates/openlink/templates.vspx
index 63b8ab9..c30cd15 100644
--- a/appsrc/ODS-Blog/templates/openlink/templates.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/templates.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: templates.vspx,v 1.4.2.1 2010/09/20 10:14:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/wa.vspx b/appsrc/ODS-Blog/templates/openlink/wa.vspx
index 18ce034..4153ba5 100644
--- a/appsrc/ODS-Blog/templates/openlink/wa.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/wa.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: wa.vspx,v 1.3.2.1 2010/09/20 10:14:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/wa_left.vspx b/appsrc/ODS-Blog/templates/openlink/wa_left.vspx
index 5d74377..be9f83f 100644
--- a/appsrc/ODS-Blog/templates/openlink/wa_left.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/wa_left.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: wa_left.vspx,v 1.3.2.1 2010/09/20 10:14:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink/wa_right.vspx b/appsrc/ODS-Blog/templates/openlink/wa_right.vspx
index 7b266bc..cfd971d 100644
--- a/appsrc/ODS-Blog/templates/openlink/wa_right.vspx
+++ b/appsrc/ODS-Blog/templates/openlink/wa_right.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: wa_right.vspx,v 1.3.2.1 2010/09/20 10:14:50 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/openlink_classic/default.css b/appsrc/ODS-Blog/templates/openlink_classic/default.css
index 2942fb6..ea8f903 100644
--- a/appsrc/ODS-Blog/templates/openlink_classic/default.css
+++ b/appsrc/ODS-Blog/templates/openlink_classic/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.3.2.1 2010/09/20 10:14:50 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/round_the_corner/default.css b/appsrc/ODS-Blog/templates/round_the_corner/default.css
index 15d91fd..d589846 100644
--- a/appsrc/ODS-Blog/templates/round_the_corner/default.css
+++ b/appsrc/ODS-Blog/templates/round_the_corner/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.2.2.2 2010/09/20 10:14:50 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/round_the_corner/index.vspx b/appsrc/ODS-Blog/templates/round_the_corner/index.vspx
index c8c5c3d..be8f8ad 100644
--- a/appsrc/ODS-Blog/templates/round_the_corner/index.vspx
+++ b/appsrc/ODS-Blog/templates/round_the_corner/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.3.2.2 2010/09/20 10:14:50 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/round_wheat/default.css b/appsrc/ODS-Blog/templates/round_wheat/default.css
index 00c74bb..b8fbf7a 100644
--- a/appsrc/ODS-Blog/templates/round_wheat/default.css
+++ b/appsrc/ODS-Blog/templates/round_wheat/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.2.2.2 2010/09/20 10:14:50 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/round_wheat/index.vspx b/appsrc/ODS-Blog/templates/round_wheat/index.vspx
index e588a7d..bc82ca5 100644
--- a/appsrc/ODS-Blog/templates/round_wheat/index.vspx
+++ b/appsrc/ODS-Blog/templates/round_wheat/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.3.2.2 2010/09/20 10:14:50 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/seattle/default.css b/appsrc/ODS-Blog/templates/seattle/default.css
index d1d2002..264a528 100644
--- a/appsrc/ODS-Blog/templates/seattle/default.css
+++ b/appsrc/ODS-Blog/templates/seattle/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.2.2.1 2010/09/20 10:14:50 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/seattle/index.vspx b/appsrc/ODS-Blog/templates/seattle/index.vspx
index c3929bb..36f1d3a 100644
--- a/appsrc/ODS-Blog/templates/seattle/index.vspx
+++ b/appsrc/ODS-Blog/templates/seattle/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.3.2.2 2010/09/20 10:14:50 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/spring/default.css b/appsrc/ODS-Blog/templates/spring/default.css
index 41da667..bb16dd9 100644
--- a/appsrc/ODS-Blog/templates/spring/default.css
+++ b/appsrc/ODS-Blog/templates/spring/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.2.2.1 2010/09/20 10:14:50 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/spring/index.vspx b/appsrc/ODS-Blog/templates/spring/index.vspx
index 1a22c18..9500964 100644
--- a/appsrc/ODS-Blog/templates/spring/index.vspx
+++ b/appsrc/ODS-Blog/templates/spring/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.3.2.2 2010/09/20 10:14:50 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/squeaky_clean/archive.vspx b/appsrc/ODS-Blog/templates/squeaky_clean/archive.vspx
index 830938e..7814852 100644
--- a/appsrc/ODS-Blog/templates/squeaky_clean/archive.vspx
+++ b/appsrc/ODS-Blog/templates/squeaky_clean/archive.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: archive.vspx,v 1.3.2.1 2010/09/20 10:14:50 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/squeaky_clean/default.css b/appsrc/ODS-Blog/templates/squeaky_clean/default.css
index fa12836..49912c0 100644
--- a/appsrc/ODS-Blog/templates/squeaky_clean/default.css
+++ b/appsrc/ODS-Blog/templates/squeaky_clean/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.2.2.2 2010/09/20 10:14:50 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/squeaky_clean/index.vspx b/appsrc/ODS-Blog/templates/squeaky_clean/index.vspx
index 56d5b28..a119046 100644
--- a/appsrc/ODS-Blog/templates/squeaky_clean/index.vspx
+++ b/appsrc/ODS-Blog/templates/squeaky_clean/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.3.2.2 2010/09/20 10:14:51 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/squeaky_clean/linkblog.vspx b/appsrc/ODS-Blog/templates/squeaky_clean/linkblog.vspx
index 5309bd0..1babe05 100644
--- a/appsrc/ODS-Blog/templates/squeaky_clean/linkblog.vspx
+++ b/appsrc/ODS-Blog/templates/squeaky_clean/linkblog.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: linkblog.vspx,v 1.3.2.1 2010/09/20 10:14:51 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/squeaky_clean/mr_green_genes.css b/appsrc/ODS-Blog/templates/squeaky_clean/mr_green_genes.css
index 1053cfd..405b5c6 100644
--- a/appsrc/ODS-Blog/templates/squeaky_clean/mr_green_genes.css
+++ b/appsrc/ODS-Blog/templates/squeaky_clean/mr_green_genes.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: mr_green_genes.css,v 1.2.2.2 2010/09/20 10:14:51 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/squeaky_clean/summary.vspx b/appsrc/ODS-Blog/templates/squeaky_clean/summary.vspx
index 750c846..8306388 100644
--- a/appsrc/ODS-Blog/templates/squeaky_clean/summary.vspx
+++ b/appsrc/ODS-Blog/templates/squeaky_clean/summary.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: summary.vspx,v 1.3.2.1 2010/09/20 10:14:51 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/squeaky_clean_2col/archive.vspx b/appsrc/ODS-Blog/templates/squeaky_clean_2col/archive.vspx
index 669eff7..73b6f03 100644
--- a/appsrc/ODS-Blog/templates/squeaky_clean_2col/archive.vspx
+++ b/appsrc/ODS-Blog/templates/squeaky_clean_2col/archive.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: archive.vspx,v 1.3.2.1 2010/09/20 10:14:51 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/squeaky_clean_2col/default.css b/appsrc/ODS-Blog/templates/squeaky_clean_2col/default.css
index 7a512b1..1e58c0b 100644
--- a/appsrc/ODS-Blog/templates/squeaky_clean_2col/default.css
+++ b/appsrc/ODS-Blog/templates/squeaky_clean_2col/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.2.2.2 2010/09/20 10:14:51 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/squeaky_clean_2col/index.vspx b/appsrc/ODS-Blog/templates/squeaky_clean_2col/index.vspx
index 4e0ed4f..2e19aa9 100644
--- a/appsrc/ODS-Blog/templates/squeaky_clean_2col/index.vspx
+++ b/appsrc/ODS-Blog/templates/squeaky_clean_2col/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.3.2.2 2010/09/20 10:14:51 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/squeaky_clean_2col/linkblog.vspx b/appsrc/ODS-Blog/templates/squeaky_clean_2col/linkblog.vspx
index b8fb4a4..50d8262 100644
--- a/appsrc/ODS-Blog/templates/squeaky_clean_2col/linkblog.vspx
+++ b/appsrc/ODS-Blog/templates/squeaky_clean_2col/linkblog.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: linkblog.vspx,v 1.3.2.1 2010/09/20 10:14:51 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/squeaky_clean_2col/mr_green_genes.css b/appsrc/ODS-Blog/templates/squeaky_clean_2col/mr_green_genes.css
index 1053cfd..405b5c6 100644
--- a/appsrc/ODS-Blog/templates/squeaky_clean_2col/mr_green_genes.css
+++ b/appsrc/ODS-Blog/templates/squeaky_clean_2col/mr_green_genes.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: mr_green_genes.css,v 1.2.2.2 2010/09/20 10:14:51 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/squeaky_clean_2col/summary.vspx b/appsrc/ODS-Blog/templates/squeaky_clean_2col/summary.vspx
index 63df308..78f8e59 100644
--- a/appsrc/ODS-Blog/templates/squeaky_clean_2col/summary.vspx
+++ b/appsrc/ODS-Blog/templates/squeaky_clean_2col/summary.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: summary.vspx,v 1.3.2.1 2010/09/20 10:14:51 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/thin_clean/default.css b/appsrc/ODS-Blog/templates/thin_clean/default.css
index 9ad5c12..e49b27a 100644
--- a/appsrc/ODS-Blog/templates/thin_clean/default.css
+++ b/appsrc/ODS-Blog/templates/thin_clean/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.2.2.2 2010/09/20 10:14:51 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/thin_clean/index.vspx b/appsrc/ODS-Blog/templates/thin_clean/index.vspx
index c5470e4..ca64e7f 100644
--- a/appsrc/ODS-Blog/templates/thin_clean/index.vspx
+++ b/appsrc/ODS-Blog/templates/thin_clean/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.3.2.2 2010/09/20 10:14:51 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/thin_pastel/default.css b/appsrc/ODS-Blog/templates/thin_pastel/default.css
index 615b5ae..46a4397 100644
--- a/appsrc/ODS-Blog/templates/thin_pastel/default.css
+++ b/appsrc/ODS-Blog/templates/thin_pastel/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.2.2.2 2010/09/20 10:14:51 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/templates/thin_pastel/index.vspx b/appsrc/ODS-Blog/templates/thin_pastel/index.vspx
index 5485074..4fa0806 100644
--- a/appsrc/ODS-Blog/templates/thin_pastel/index.vspx
+++ b/appsrc/ODS-Blog/templates/thin_pastel/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.3.2.2 2010/09/20 10:14:51 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/trackback.sql b/appsrc/ODS-Blog/trackback.sql
index feaa61b..eb70503 100644
--- a/appsrc/ODS-Blog/trackback.sql
+++ b/appsrc/ODS-Blog/trackback.sql
@@ -1,12 +1,12 @@
 --
---  $Id: trackback.sql,v 1.5.2.1 2010/09/20 10:14:43 source Exp $
+--  $Id$
 --
 --  MT Trackback support.
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/uninst.sql b/appsrc/ODS-Blog/uninst.sql
index 4a4fdc9..8cc42dd 100644
--- a/appsrc/ODS-Blog/uninst.sql
+++ b/appsrc/ODS-Blog/uninst.sql
@@ -1,10 +1,10 @@
 --
---  $Id: uninst.sql,v 1.5.2.2 2010/11/09 20:15:17 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/vad_version b/appsrc/ODS-Blog/vad_version
index 31c140b..28348f2 100644
--- a/appsrc/ODS-Blog/vad_version
+++ b/appsrc/ODS-Blog/vad_version
@@ -1 +1 @@
-1.34.72
+1.34.81
diff --git a/appsrc/ODS-Blog/wa_integration.sql b/appsrc/ODS-Blog/wa_integration.sql
index f2dbcce..10c1b1d 100644
--- a/appsrc/ODS-Blog/wa_integration.sql
+++ b/appsrc/ODS-Blog/wa_integration.sql
@@ -1,10 +1,10 @@
 --
---  $Id: wa_integration.sql,v 1.12.2.3 2010/10/07 13:24:15 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/wa_search_blog.sql b/appsrc/ODS-Blog/wa_search_blog.sql
index fdf3f90..675a787 100644
--- a/appsrc/ODS-Blog/wa_search_blog.sql
+++ b/appsrc/ODS-Blog/wa_search_blog.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: wa_search_blog.sql,v 1.3.2.1 2010/09/20 10:14:43 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/blog_template_check.xsl b/appsrc/ODS-Blog/widgets/blog_template_check.xsl
index 534317d..4893f90 100644
--- a/appsrc/ODS-Blog/widgets/blog_template_check.xsl
+++ b/appsrc/ODS-Blog/widgets/blog_template_check.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: blog_template_check.xsl,v 1.2.2.1 2010/09/20 10:14:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/blog_tidy.xsl b/appsrc/ODS-Blog/widgets/blog_tidy.xsl
index d5b8ed1..67b9d7b 100644
--- a/appsrc/ODS-Blog/widgets/blog_tidy.xsl
+++ b/appsrc/ODS-Blog/widgets/blog_tidy.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: blog_tidy.xsl,v 1.4.2.1 2010/09/20 10:14:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/calendar.xsl b/appsrc/ODS-Blog/widgets/calendar.xsl
index 47433be..8192a13 100644
--- a/appsrc/ODS-Blog/widgets/calendar.xsl
+++ b/appsrc/ODS-Blog/widgets/calendar.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: calendar.xsl,v 1.17.2.9 2010/12/07 10:59:24 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -369,7 +369,8 @@
         </v:before-render>
         <v:before-data-bind>
           <![CDATA[
-            declare _editid, _cf_id, _ch_id, _subj, _msg, _from_preview_mode, params any;
+            declare _editid, _editbid, _cf_id, _ch_id, _subj, _msg, _from_preview_mode, params any;
+
             params := self.vc_event.ve_params;
             _editid := get_keyword('editid', params);
             _cf_id := get_keyword('cf_id', params);
@@ -385,10 +386,12 @@
 	      declare meta BLOG.DBA."MTWeblogPost";
               self.text2 := null;
               whenever not found goto endb;
-              select blob_to_string (B_CONTENT), B_TITLE, B_COMMENTS_NO, B_META, B_STATE, B_TS
-                into self.text2, self.mtit1.ufl_value, self.comments_no, meta, self.post_state, self.post_date
+              select blob_to_string (B_CONTENT), B_TITLE, B_COMMENTS_NO, B_META, B_STATE, B_TS, B_BLOG_ID
+                into self.text2, self.mtit1.ufl_value, self.comments_no, meta, self.post_state, self.post_date, _editbid
                 from BLOG.DBA.SYS_BLOGS
-               where (BLOG2_GET_ACCESS (B_BLOG_ID, self.sid, self.realm, 120) in (1, 2)) and B_POST_ID = _editid;
+               where B_POST_ID = _editid;
+	       if (not BLOG2_GET_ACCESS (_editbid, self.sid, self.realm, 120) in (1, 2))
+	         goto endb;
               self.editpost := _editid;
 	      self.mtit1.ufl_value := BLOG..blog_utf2wide(self.mtit1.ufl_value);
 	      if (meta is not null and meta.enclosure is not null)
diff --git a/appsrc/ODS-Blog/widgets/comment_check.xsl b/appsrc/ODS-Blog/widgets/comment_check.xsl
index 612bb25..49fd176 100644
--- a/appsrc/ODS-Blog/widgets/comment_check.xsl
+++ b/appsrc/ODS-Blog/widgets/comment_check.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: comment_check.xsl,v 1.2.2.1 2010/09/20 10:14:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/compat.xsl b/appsrc/ODS-Blog/widgets/compat.xsl
index 5d8708c..f6e47f3 100644
--- a/appsrc/ODS-Blog/widgets/compat.xsl
+++ b/appsrc/ODS-Blog/widgets/compat.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: compat.xsl,v 1.3.2.2 2010/09/20 10:14:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/dav_browser.xsl b/appsrc/ODS-Blog/widgets/dav_browser.xsl
index 798e2ec..8ff4662 100644
--- a/appsrc/ODS-Blog/widgets/dav_browser.xsl
+++ b/appsrc/ODS-Blog/widgets/dav_browser.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: dav_browser.xsl,v 1.3.2.1 2010/09/20 10:14:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/error.xsl b/appsrc/ODS-Blog/widgets/error.xsl
index 51e5073..f51d4e5 100644
--- a/appsrc/ODS-Blog/widgets/error.xsl
+++ b/appsrc/ODS-Blog/widgets/error.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: error.xsl,v 1.3.2.1 2010/09/20 10:14:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/foaf.xsl b/appsrc/ODS-Blog/widgets/foaf.xsl
index a37d6b9..2bde12b 100644
--- a/appsrc/ODS-Blog/widgets/foaf.xsl
+++ b/appsrc/ODS-Blog/widgets/foaf.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: foaf.xsl,v 1.3.2.1 2010/09/20 10:14:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/main.xsl b/appsrc/ODS-Blog/widgets/main.xsl
index 41b7cfc..d06e90f 100644
--- a/appsrc/ODS-Blog/widgets/main.xsl
+++ b/appsrc/ODS-Blog/widgets/main.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: main.xsl,v 1.39.2.14 2011/08/01 14:12:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -653,6 +653,7 @@ else if (length (self.catid))
  self.vc_add_attribute ('xmlns:rdfs', 'http://www.w3.org/2000/01/rdf-schema#');
  self.vc_add_attribute ('xmlns:sioct', 'http://rdfs.org/sioc/types#');
  self.vc_add_attribute ('xmlns:sioc', 'http://rdfs.org/sioc/ns#');
+ self.vc_add_attribute ('xmlns:cert', 'http://www.w3.org/ns/auth/cert#');
       ]]>
       <xsl:if test="//vm:keep-variable">
       self.restore_vars ();
@@ -1279,16 +1280,8 @@ window.onload = function (e)
       <xsl:attribute name="hspace">3</xsl:attribute>
       <xsl:attribute name="src">
 	  <xsl:choose>
-	      <xsl:when test="@image">
-		  <?vsp
-		      http(self.custom_img_loc || '<xsl:value-of select="@image"/>');
-		  ?>
-	      </xsl:when>
-	      <xsl:otherwise>
-		  <?vsp
-		      http(self.custom_img_loc || <xsl:value-of select="$default"/>);
-		  ?>
-	      </xsl:otherwise>
+	      <xsl:when test="@image"><?vsp http(self.custom_img_loc || '<xsl:value-of select="@image"/>'); ?></xsl:when>
+	      <xsl:otherwise><?vsp http(self.custom_img_loc || <xsl:value-of select="$default"/>); ?></xsl:otherwise>
 	  </xsl:choose>
       </xsl:attribute>
   </xsl:template>
diff --git a/appsrc/ODS-Blog/widgets/make_sp.xsl b/appsrc/ODS-Blog/widgets/make_sp.xsl
index a688c7c..0d5efee 100644
--- a/appsrc/ODS-Blog/widgets/make_sp.xsl
+++ b/appsrc/ODS-Blog/widgets/make_sp.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: make_sp.xsl,v 1.2.2.1 2010/09/20 10:14:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/opml2ocs.xsl b/appsrc/ODS-Blog/widgets/opml2ocs.xsl
index 7eaa131..f4d71b8 100644
--- a/appsrc/ODS-Blog/widgets/opml2ocs.xsl
+++ b/appsrc/ODS-Blog/widgets/opml2ocs.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: opml2ocs.xsl,v 1.2.2.1 2010/09/20 10:14:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/opml2ocs03.xsl b/appsrc/ODS-Blog/widgets/opml2ocs03.xsl
index 72ad9b8..236a40f 100644
--- a/appsrc/ODS-Blog/widgets/opml2ocs03.xsl
+++ b/appsrc/ODS-Blog/widgets/opml2ocs03.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: opml2ocs03.xsl,v 1.3.2.1 2010/09/20 10:14:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/opml2xoxo.xsl b/appsrc/ODS-Blog/widgets/opml2xoxo.xsl
index db6c6ed..2fe67b5 100644
--- a/appsrc/ODS-Blog/widgets/opml2xoxo.xsl
+++ b/appsrc/ODS-Blog/widgets/opml2xoxo.xsl
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id: opml2xoxo.xsl,v 1.1.2.1 2010/09/20 10:14:53 source Exp $  -->
+<!-- $Id$  -->
 <!--
 Copyright Uche Ogbuji 2005
 -->
diff --git a/appsrc/ODS-Blog/widgets/render.xsl b/appsrc/ODS-Blog/widgets/render.xsl
index e10258c..5fe9153 100644
--- a/appsrc/ODS-Blog/widgets/render.xsl
+++ b/appsrc/ODS-Blog/widgets/render.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: render.xsl,v 1.2.2.2 2010/09/20 10:14:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/rss11.xsl b/appsrc/ODS-Blog/widgets/rss11.xsl
index e0b5e43..92fed7c 100644
--- a/appsrc/ODS-Blog/widgets/rss11.xsl
+++ b/appsrc/ODS-Blog/widgets/rss11.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss11.xsl,v 1.3.2.1 2010/09/20 10:14:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/rss2atom.xsl b/appsrc/ODS-Blog/widgets/rss2atom.xsl
index 9278af5..cca873e 100644
--- a/appsrc/ODS-Blog/widgets/rss2atom.xsl
+++ b/appsrc/ODS-Blog/widgets/rss2atom.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom.xsl,v 1.4.2.4 2010/11/09 20:15:17 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/rss2atom03.xsl b/appsrc/ODS-Blog/widgets/rss2atom03.xsl
index da34dfb..f8a2229 100644
--- a/appsrc/ODS-Blog/widgets/rss2atom03.xsl
+++ b/appsrc/ODS-Blog/widgets/rss2atom03.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom03.xsl,v 1.4.2.1 2010/09/20 10:14:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/rss2mrss.xsl b/appsrc/ODS-Blog/widgets/rss2mrss.xsl
index 4272176..191db5e 100644
--- a/appsrc/ODS-Blog/widgets/rss2mrss.xsl
+++ b/appsrc/ODS-Blog/widgets/rss2mrss.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2mrss.xsl,v 1.2.2.1 2010/09/20 10:14:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/rss2rdf.xsl b/appsrc/ODS-Blog/widgets/rss2rdf.xsl
index 12e9541..079d5aa 100644
--- a/appsrc/ODS-Blog/widgets/rss2rdf.xsl
+++ b/appsrc/ODS-Blog/widgets/rss2rdf.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2rdf.xsl,v 1.6.2.1 2010/09/20 10:14:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/rss2wml.xsl b/appsrc/ODS-Blog/widgets/rss2wml.xsl
index 582d481..c1d2609 100644
--- a/appsrc/ODS-Blog/widgets/rss2wml.xsl
+++ b/appsrc/ODS-Blog/widgets/rss2wml.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2wml.xsl,v 1.2.2.1 2010/09/20 10:14:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/rss2xbel.xsl b/appsrc/ODS-Blog/widgets/rss2xbel.xsl
index ea17d33..4fc1d71 100644
--- a/appsrc/ODS-Blog/widgets/rss2xbel.xsl
+++ b/appsrc/ODS-Blog/widgets/rss2xbel.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2xbel.xsl,v 1.2.2.1 2010/09/20 10:14:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/store.xsl b/appsrc/ODS-Blog/widgets/store.xsl
index 0d27f75..810bf84 100644
--- a/appsrc/ODS-Blog/widgets/store.xsl
+++ b/appsrc/ODS-Blog/widgets/store.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: store.xsl,v 1.2.2.1 2010/09/20 10:14:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/store_post.xsl b/appsrc/ODS-Blog/widgets/store_post.xsl
index 2dcf17c..84685b1 100644
--- a/appsrc/ODS-Blog/widgets/store_post.xsl
+++ b/appsrc/ODS-Blog/widgets/store_post.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: store_post.xsl,v 1.4.2.1 2010/09/20 10:14:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Blog/widgets/xbel.xsl b/appsrc/ODS-Blog/widgets/xbel.xsl
index 0cee1ee..b1fd1f9 100644
--- a/appsrc/ODS-Blog/widgets/xbel.xsl
+++ b/appsrc/ODS-Blog/widgets/xbel.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: xbel.xsl,v 1.2.2.1 2010/09/20 10:14:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Bookmark/Makefile.am b/appsrc/ODS-Bookmark/Makefile.am
index d67f527..ed67f19 100644
--- a/appsrc/ODS-Bookmark/Makefile.am
+++ b/appsrc/ODS-Bookmark/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -44,8 +44,10 @@ clean-local:
 	-rm -rf vad
 
 EXTRA_DIST = \
+	*.dox \
 	make_vad.sh \
 	sql/*.sql \
+	vad_version \
 	www/*.vsp \
 	www/*.vspx \
 	www/css/*.css \
diff --git a/appsrc/ODS-Bookmark/Makefile.in b/appsrc/ODS-Bookmark/Makefile.in
index b2942be..fcdbfc5 100644
--- a/appsrc/ODS-Bookmark/Makefile.in
+++ b/appsrc/ODS-Bookmark/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -38,9 +37,8 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -70,7 +68,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -78,23 +75,9 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(vaddir)"
+nodist_vadDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(nodist_vad_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -184,7 +167,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -268,7 +250,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -289,7 +270,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -307,8 +287,10 @@ CLEANFILES = \
 	virtuoso.trx
 
 EXTRA_DIST = \
+	*.dox \
 	make_vad.sh \
 	sql/*.sql \
+	vad_version \
 	www/*.vsp \
 	www/*.vspx \
 	www/css/*.css \
@@ -327,14 +309,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu appsrc/ODS-Bookmark/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu appsrc/ODS-Bookmark/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  appsrc/ODS-Bookmark/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  appsrc/ODS-Bookmark/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -352,7 +334,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -362,23 +343,20 @@ clean-libtool:
 install-nodist_vadDATA: $(nodist_vad_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(vaddir)" || $(MKDIR_P) "$(DESTDIR)$(vaddir)"
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	for p in $$list; do \
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vaddir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(vaddir)" || exit $$?; \
+	  f=$(am__strip_dir) \
+	  echo " $(nodist_vadDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(vaddir)/$$f'"; \
+	  $(nodist_vadDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(vaddir)/$$f"; \
 	done
 
 uninstall-nodist_vadDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(vaddir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(vaddir)" && rm -f $$files
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(vaddir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(vaddir)/$$f"; \
+	done
 tags: TAGS
 TAGS:
 
@@ -402,17 +380,13 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
@@ -444,7 +418,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -463,8 +436,6 @@ dvi-am:
 
 html: html-am
 
-html-am:
-
 info: info-am
 
 info-am:
@@ -473,28 +444,18 @@ install-data-am: install-nodist_vadDATA
 
 install-dvi: install-dvi-am
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-am
 
-install-html-am:
-
 install-info: install-info-am
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-am
 
-install-pdf-am:
-
 install-ps: install-ps-am
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -535,7 +496,6 @@ ods_bookmark_dav.vad: $(EXTRA_DIST)
 
 clean-local:
 	-rm -rf vad
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/appsrc/ODS-Bookmark/ODS-Bookmark.dox b/appsrc/ODS-Bookmark/ODS-Bookmark.dox
new file mode 100644
index 0000000..44663ed
--- /dev/null
+++ b/appsrc/ODS-Bookmark/ODS-Bookmark.dox
@@ -0,0 +1,3 @@
+/**
+\defgroup ods_module_bookmark ODS Bookmarks
+*/
\ No newline at end of file
diff --git a/appsrc/ODS-Bookmark/make_vad.sh b/appsrc/ODS-Bookmark/make_vad.sh
index 49776d0..fa6b1e7 100755
--- a/appsrc/ODS-Bookmark/make_vad.sh
+++ b/appsrc/ODS-Bookmark/make_vad.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: make_vad.sh,v 1.58.2.27 2011/07/04 10:04:01 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -30,7 +30,7 @@ export LANG LC_ALL
 
 MODE=$1
 LOGDIR=`pwd`
-VERSION="1.7.98"
+VERSION="1.0.0"
 LOGFILE="${LOGDIR}/vad_make.log"
 STICKER_DAV="vad_dav.xml"
 STICKER_FS="vad_filesystem.xml"
@@ -63,11 +63,6 @@ else
   LN="ln -fs"
   RM="rm -f"
 fi
-VOS=0
-if [ -f ../../autogen.sh ]
-then
-    VOS=1
-fi
 
 if [ "z$SERVER" = "z" ]  
 then
@@ -91,6 +86,57 @@ else
   myrm=$RM
 fi
 
+
+VOS=0
+if [ -f ../../autogen.sh ]
+then
+    VOS=1
+fi
+
+version_init()
+{
+  if [ $VOS -eq 1 ]
+  then
+      if [ -f vad_version ]
+      then
+	  VERSION=`cat vad_version`
+      else
+        LOG "The vad_version does not exist, please verify your checkout"
+	exit 1
+      fi
+  else
+      rm -f version.tmp
+      for i in `find . -name 'Entries' | grep -v "vad/" | grep -v "/tests/"`; do
+	  cat "$i" | grep -v "version\."| grep "^[^D].*" | cut -f 3 -d "/" | sed -e "s/1\.//g" >> version.tmp
+      done
+      LANG=POSIX
+      export LANG
+
+      BASE="0"
+#      echo $BASE
+      if [ -f version.base ] ; then
+	  BASE=`cat version.base`
+      fi
+
+      VERSION=`cat version.tmp | awk ' BEGIN { cnt=10 } { cnt = cnt + $1 } END { print cnt }'`
+
+      VERSION=`expr $BASE + $VERSION`
+      CURR_VERSION=$VERSION
+      if [ -f version.curr ] ; then
+	  CURR_VERSION=`cat version.curr`
+      fi
+      if [ $CURR_VERSION -gt $VERSION ] ; then
+	  BASE=`expr $CURR_VERSION - $VERSION + 1`
+	  echo $BASE > version.base
+	  VERSION=$CURR_VERSION
+      fi
+      echo $VERSION > version.curr
+      VERSION=`echo $VERSION | awk ' { printf "1.%02.02f", $1/100 }'`
+      rm -f version.tmp
+      echo "$VERSION" > vad_version
+  fi
+}
+
 virtuoso_start() {
   echo "Starting $SERVER"
   echo $BUILD
@@ -226,7 +272,7 @@ sticker_init() {
   echo "  <name package=\"Bookmarks\">" >> $STICKER
   echo "    <prop name=\"Title\" value=\"ODS Bookmark Manager\"/>" >> $STICKER
   echo "    <prop name=\"Developer\" value=\"OpenLink Software\"/>" >> $STICKER
-  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2011 OpenLink Software\"/>" >> $STICKER
+  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2012 OpenLink Software\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.com/virtuoso\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.co.uk/virtuoso\"/>" >> $STICKER
   echo "  </name>" >> $STICKER
@@ -238,8 +284,8 @@ sticker_init() {
   echo "<dependencies>" >> $STICKER
   echo "  <require>" >> $STICKER
   echo "    <name package=\"Framework\"/>" >> $STICKER
-  echo "    <versions_later package=\"1.82.42\">" >> $STICKER
-  echo "      <prop name=\"Date\" value=\"2011-06-15 12:00\" />" >> $STICKER
+  echo "    <versions_later package=\"1.86.16\">" >> $STICKER
+  echo "      <prop name=\"Date\" value=\"2012-04-18 12:00\" />" >> $STICKER
   echo "      <prop name=\"Comment\" value=\"An incompatible version of the ODS Framework\" />" >> $STICKER
   echo "    </versions_later>" >> $STICKER
   echo "  </require>" >> $STICKER
@@ -380,6 +426,7 @@ echo '----------------------'
 
 STOP_SERVER
 directory_clean
+version_init
 directory_init
 virtuoso_init
 if [ "$MODE" = "" ] || [ "$MODE" = "1" ]
@@ -396,7 +443,6 @@ virtuoso_shutdown
 STOP_SERVER
 chmod 644 ods_bookmark_dav.vad
 chmod 644 ods_bookmark_filesystem.vad
-directory_clean
 
 CHECK_LOG
 RUN egrep  '"\*\*.*FAILED:|\*\*.*ABORTED:"' "$LOGFILE"
@@ -406,5 +452,7 @@ then
 	exit 1
 fi
 
+directory_clean
+
 BANNER "COMPLETED VAD PACKAGING"
 exit 0
diff --git a/appsrc/ODS-Bookmark/sql/DET_Bookmark.sql b/appsrc/ODS-Bookmark/sql/DET_Bookmark.sql
index ae5aba3..6f364dc 100644
--- a/appsrc/ODS-Bookmark/sql/DET_Bookmark.sql
+++ b/appsrc/ODS-Bookmark/sql/DET_Bookmark.sql
@@ -1,10 +1,10 @@
 --
---  $Id: DET_Bookmark.sql,v 1.11.2.1 2010/09/20 10:14:54 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Bookmark/sql/bmk-a-api.sql b/appsrc/ODS-Bookmark/sql/bmk-a-api.sql
index ce34d91..9584236 100644
--- a/appsrc/ODS-Bookmark/sql/bmk-a-api.sql
+++ b/appsrc/ODS-Bookmark/sql/bmk-a-api.sql
@@ -1,10 +1,10 @@
 --
---  $Id: bmk-a-api.sql,v 1.10.2.5 2011/06/09 17:43:16 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2008 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Bookmark/sql/bmk-a-code.sql b/appsrc/ODS-Bookmark/sql/bmk-a-code.sql
index 963c431..01ddcc3 100644
--- a/appsrc/ODS-Bookmark/sql/bmk-a-code.sql
+++ b/appsrc/ODS-Bookmark/sql/bmk-a-code.sql
@@ -1,10 +1,10 @@
 --
---  $Id: bmk-a-code.sql,v 1.56.2.20 2011/08/01 14:12:15 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -140,11 +140,11 @@ create procedure BMK.WA.session_restore(
   {
     account_id := U_ID;
     }
-  account_rights := BMK.WA.access_rights (domain_id, account_id);
   return vector (
                  'domain_id', domain_id,
                  'account_id',   account_id,
-                 'account_rights', account_rights
+                 'account_rights', BMK.WA.account_rights (domain_id, account_id),
+                 'person_rights', BMK.WA.person_rights (domain_id, account_id)
                );
 }
 ;
@@ -219,7 +219,7 @@ create procedure BMK.WA.check_grants (in role_name varchar, in page_name varchar
 
 -------------------------------------------------------------------------------
 --
-create procedure BMK.WA.access_rights (
+create procedure BMK.WA.person_rights (
   in domain_id integer,
   in account_id integer)
 {
@@ -288,6 +288,65 @@ create procedure BMK.WA.access_rights (
 
 -------------------------------------------------------------------------------
 --
+create procedure BMK.WA.account_rights (
+  in domain_id integer,
+  in account_id integer)
+{
+  declare rc varchar;
+
+  if (domain_id = -1)
+    return 'R';
+
+  if (domain_id = -2)
+    return null;
+
+  if (BMK.WA.check_admin (account_id))
+    return 'W';
+
+  if (exists (select 1
+                from SYS_USERS A,
+                     WA_MEMBER B,
+                     WA_INSTANCE C
+               where A.U_ID = account_id
+                 and B.WAM_USER = A.U_ID
+                 and B.WAM_MEMBER_TYPE = 1
+                 and B.WAM_INST = C.WAI_NAME
+                 and C.WAI_ID = domain_id))
+    return 'W';
+
+  if (exists (select 1
+                from SYS_USERS A,
+                     WA_MEMBER B,
+                     WA_INSTANCE C
+               where A.U_ID = account_id
+                 and B.WAM_USER = A.U_ID
+                 and B.WAM_MEMBER_TYPE = 2
+                 and B.WAM_INST = C.WAI_NAME
+                 and C.WAI_ID = domain_id))
+    return 'W';
+
+  if (exists (select 1
+                from SYS_USERS A,
+                     WA_MEMBER B,
+                     WA_INSTANCE C
+               where A.U_ID = account_id
+                 and B.WAM_USER = A.U_ID
+                 and B.WAM_INST = C.WAI_NAME
+                 and C.WAI_ID = domain_id))
+    return 'R';
+
+  if (exists (select 1
+                from DB.DBA.WA_INSTANCE
+               where WAI_ID = domain_id
+                 and WAI_IS_PUBLIC = 1))
+    return 'R';
+
+  return null;
+}
+;
+
+-------------------------------------------------------------------------------
+--
 create procedure BMK.WA.wa_home_link ()
 {
 	return case when registry_get ('wa_home_link') = 0 then '/ods/' else registry_get ('wa_home_link') end;
@@ -1163,7 +1222,7 @@ create procedure BMK.WA.bookmark_import_atom (
       {
         D := '<div>';
         foreach (any content in contents) do
-          D := concat(D, ENEWS.WA.xml2string(content));
+          D := concat(D, BMK.WA.xml2string(content));
 
         D := concat(D, '</div>');
       }
@@ -1324,16 +1383,19 @@ create procedure BMK.WA.bookmark_export_tmp (
 create procedure BMK.WA.bookmark_rights (
   in domain_id integer,
   in id integer,
-  in access_role varchar)
+  in account_rights varchar,
+  in person_rights varchar)
 {
   declare retValue varchar;
 
   retValue := '';
   if (exists (select 1 from BMK.WA.BOOKMARK_DOMAIN where BD_ID = id and BD_DOMAIN_ID = domain_id))
   {
+    if (isnull (person_rights) or (account_rights < person_rights))
     retValue := BMK.WA.acl_check (domain_id, id);
+
     if (retValue = '')
-      retValue := access_role;
+      retValue := account_rights;
   }
   return retValue;
 }
@@ -1423,16 +1485,17 @@ create procedure BMK.WA.folder_id(
   declare aPath any;
 
   folder_id := null;
-  if (not is_empty_or_null(folder_name))
+  if (not is_empty_or_null (trim (folder_name)))
   {
     aPath := split_and_decode(trim(folder_name, '/'),0,'\0\0/');
     for (i := 0; i < length(aPath); i := i + 1)
     {
       if (i = 0)
       {
-        if (not exists (select 1 from BMK.WA.FOLDER where F_DOMAIN_ID = domain_id and F_NAME = aPath[i] and F_PARENT_ID is null))
-          insert into BMK.WA.FOLDER (F_DOMAIN_ID, F_NAME, F_PATH) values (domain_id, aPath[i], '');
-        folder_id := (select F_ID from BMK.WA.FOLDER where F_DOMAIN_ID = domain_id and F_NAME = aPath[i] and F_PARENT_ID is null);
+        if (not exists (select 1 from BMK.WA.FOLDER where F_DOMAIN_ID = domain_id and F_NAME = aPath[i] and coalesce (F_PARENT_ID, -1) = -1))
+          insert into BMK.WA.FOLDER (F_DOMAIN_ID, F_PARENT_ID, F_NAME, F_PATH) values (domain_id, -1, aPath[i], '');
+
+        folder_id := (select F_ID from BMK.WA.FOLDER where F_DOMAIN_ID = domain_id and F_NAME = aPath[i] and coalesce (F_PARENT_ID, -1) = -1);
       }
       else
       {
@@ -1449,9 +1512,9 @@ create procedure BMK.WA.folder_id(
 -------------------------------------------------------------------------------
 --
 create procedure BMK.WA.folder_create(
-  inout domain_id varchar,
-  in folder_name any,
-  in folder_id any)
+  inout domain_id integer,
+  in folder_name varchar,
+  in folder_id integer)
 {
   folder_name := trim(folder_name);
   if (folder_name <> '')
@@ -1470,8 +1533,8 @@ create procedure BMK.WA.folder_create(
 -------------------------------------------------------------------------------
 --
 create procedure BMK.WA.folder_create2(
-  in domain_id varchar,
-  in parent_id varchar,
+  in domain_id integer,
+  in parent_id integer,
   in folder_name any)
 {
   declare folder_id integer;
@@ -1686,7 +1749,8 @@ create procedure BMK.WA.sfolder_sql(
   in maxRows varchar := '',
   in nodeType varchar := 'b')
 {
-  declare S, T, tmp, where2, delimiter2 varchar;
+  declare tmp any;
+  declare S, T, where2, delimiter2 varchar;
 
   where2 := ' \n ';
   delimiter2 := '\n and ';
@@ -3207,10 +3271,9 @@ create procedure BMK.WA.xtree_doc (
 create procedure BMK.WA.xml_set(
   in id varchar,
   inout pXml varchar,
-  in value varchar)
+  in value any)
 {
   declare aEntity any;
-
   {
     declare exit handler for SQLSTATE '*' {
       pXml := xtree_doc('<?xml version="1.0" encoding="UTF-8"?><settings />');
@@ -3379,6 +3442,18 @@ create procedure BMK.WA.stringCut (
 
 -------------------------------------------------------------------------------
 --
+create procedure BMK.WA.isVector (
+  inout aVector any)
+{
+  if (isarray (aVector) and not isstring (aVector))
+    return 1;
+
+  return 0;
+}
+;
+
+-------------------------------------------------------------------------------
+--
 create procedure BMK.WA.vector_unique(
   inout aVector any,
   in minLength integer := 0)
@@ -3915,7 +3990,7 @@ create procedure BMK.WA.dt_user2gmt(
 --
 create procedure BMK.WA.dt_value(
   in pDate datetime,
-  in pUser datetime := null)
+  in pUser varchar := null)
 {
   if (isnull(pDate))
     return pDate;
@@ -4015,21 +4090,23 @@ create procedure BMK.WA.dt_deformat(
   d := 0;
   m := 0;
   y := 0;
-  while (N <= length(pFormat)) {
+  while (N <= length (pFormat))
+  {
     ch := upper(substring(pFormat, N, 1));
     if (ch = 'M')
       m := BMK.WA.dt_deformat_tmp(pString, I);
     if (ch = 'D')
       d := BMK.WA.dt_deformat_tmp(pString, I);
-    if (ch = 'Y') {
+    if (ch = 'Y')
+    {
       y := BMK.WA.dt_deformat_tmp(pString, I);
       if (y < 50)
         y := 2000 + y;
       if (y < 100)
         y := 1900 + y;
-    };
+    }
     N := N + 1;
-  };
+  }
   return stringdate(concat(cast(m as varchar), '.', cast(d as varchar), '.', cast(y as varchar)));
 }
 ;
@@ -4038,16 +4115,16 @@ create procedure BMK.WA.dt_deformat(
 --
 create procedure BMK.WA.dt_deformat_tmp(
   in S varchar,
-  inout N varchar)
+  inout N integer)
 {
-  declare
-    V any;
+  declare V any;
 
   V := regexp_parse('[0-9]+', S, N);
-  if (length(V) > 1) {
-    N := aref(V,1);
-    return atoi(subseq(S, aref(V, 0), aref(V,1)));
-  };
+  if (length(V) > 1)
+  {
+    N := V[1];
+    return atoi (subseq (S, V[0], V[1]));
+  }
   N := N + 1;
   return 0;
 }
@@ -4061,7 +4138,8 @@ create procedure BMK.WA.dt_reformat(
   in pOutFormat varchar := 'm.d.Y')
 {
   return BMK.WA.dt_format(BMK.WA.dt_deformat(pString, pInFormat), pOutFormat);
-};
+}
+;
 
 -----------------------------------------------------------------------------------------
 --
@@ -4115,9 +4193,10 @@ create procedure BMK.WA.data (
 create procedure BMK.WA.test_clear (
   in S any)
 {
-  declare N integer;
+  S := substring (S, 1, coalesce (strstr (S, '<>'), length (S)));
+  S := substring (S, 1, coalesce (strstr (S, '\nin'), length (S)));
 
-  return substring(S, 1, coalesce(strstr(S, '<>'), length(S)));
+  return S;
 }
 ;
 
@@ -4128,8 +4207,8 @@ create procedure BMK.WA.test (
   in params any := null)
 {
   declare valueType, valueClass, valueName, valueMessage, tmp any;
-
-  declare exit handler for SQLSTATE '*' {
+  declare exit handler for SQLSTATE '*'
+  {
     if (not is_empty_or_null(valueMessage))
       signal ('TEST', valueMessage);
     if (__SQL_STATE = 'EMPTY')
@@ -4183,7 +4262,7 @@ create procedure BMK.WA.test (
     return value;
   }
 
-  value := OMAIL.WA.validate2 (valueClass, cast (value as varchar));
+  value := BMK.WA.validate2 (valueClass, cast (value as varchar));
   if (valueType = 'integer')
   {
     tmp := get_keyword('minValue', params);
@@ -5117,63 +5196,3 @@ create procedure BMK.WA.news_comment_get_cn_type (in f_name varchar)
   return ext;
 }
 ;
-
--------------------------------------------------------------------------------
---
-create procedure BMK.WA.obj2json (
-  in o any,
-  in d integer := 2)
-{
-  declare N, Nn, M, Mm integer;
-  declare R, T any;
-  declare retValue any;
-
-	if (d = 0)
-	  return '[maximum depth achieved]';
-
-  T := vector ('\b', '\\b', '\t', '\\t', '\n', '\\n', '\f', '\\f',	'\r', '\\r', '"', '\\"', '\\', '\\\\');
-	retValue := '';
-	if (isnumeric (o))
-	{
-		retValue := cast (o as varchar);
-	}
-	else if (isstring (o))
-	{
-		Nn := length(o);
-		for (N := 0; N < Nn; N := N + 1)
-		{
-			R := chr (o[N]);
-		  Mm := length(T);
-		  for (M := 0; M < Mm; M := M + 2)
-		  {
-				if (R = T[M])
-				  R := T[M+1];
-			}
-			retValue := retValue || R;
-		}
-		retValue := '"' || retValue || '"';
-	}
-	else if (isarray (o))
-	{
-		retValue := '[';
-		Nn := length(o);
-		for (N := 0; N < Nn; N := N + 1)
-		{
-		  retValue := retValue || BMK.WA.obj2json (o[N], d-1);
-		  if (N <> length(o)-1)
-			  retValue := retValue || ',';
-		}
-		retValue := retValue || ']';
-	}
-	return retValue;
-}
-;
-
--------------------------------------------------------------------------------
---
-create procedure BMK.WA.json2obj (
-  in o any)
-{
-  return json_parse (o);
-}
-;
diff --git a/appsrc/ODS-Bookmark/sql/bmk-a-ods.sql b/appsrc/ODS-Bookmark/sql/bmk-a-ods.sql
index a1c502c..77e7058 100644
--- a/appsrc/ODS-Bookmark/sql/bmk-a-ods.sql
+++ b/appsrc/ODS-Bookmark/sql/bmk-a-ods.sql
@@ -1,10 +1,10 @@
 --
---  $Id: bmk-a-ods.sql,v 1.2.2.1 2010/09/20 10:14:54 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Bookmark/sql/bmk-a-table.sql b/appsrc/ODS-Bookmark/sql/bmk-a-table.sql
index 18eac17..b08a9d9 100644
--- a/appsrc/ODS-Bookmark/sql/bmk-a-table.sql
+++ b/appsrc/ODS-Bookmark/sql/bmk-a-table.sql
@@ -1,10 +1,10 @@
 --
---  $Id: bmk-a-table.sql,v 1.22.2.3 2011/05/20 16:24:09 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -694,17 +694,17 @@ BMK.WA.exec_no_error ('
 --
 create procedure BMK.WA.drop_index ()
 {
-  if (registry_get ('bmk_index_version') = '2')
+  if (registry_get ('bmk_index_version') = '3')
     return;
 
   BMK.WA.exec_no_error ('drop table BMK.WA.BOOKMARK_DOMAIN_BD_DESCRIPTION_WORDS');
-  registry_set ('bmk_index_version', '2');
+  registry_set ('bmk_index_version', '3');
 }
 ;
 BMK.WA.drop_index ();
 
 BMK.WA.exec_no_error('
-  create text index on BMK.WA.BOOKMARK_DOMAIN (BD_DESCRIPTION) with key BD_ID not insert clustered with (BD_ID, BD_UPDATED) using function
+  create text index on BMK.WA.BOOKMARK_DOMAIN (BD_DESCRIPTION) with key BD_ID not insert clustered with (BD_ID, BD_UPDATED) using function language \'x-ViDoc\'
 ');
 
 -------------------------------------------------------------------------------
diff --git a/appsrc/ODS-Bookmark/sql/bmk-a-update.sql b/appsrc/ODS-Bookmark/sql/bmk-a-update.sql
index 2803c8e..612948e 100644
--- a/appsrc/ODS-Bookmark/sql/bmk-a-update.sql
+++ b/appsrc/ODS-Bookmark/sql/bmk-a-update.sql
@@ -1,10 +1,10 @@
 --
---  $Id: bmk-a-update.sql,v 1.2.2.3 2010/10/07 13:24:04 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2007 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Bookmark/sql/bmk-a-wa.sql b/appsrc/ODS-Bookmark/sql/bmk-a-wa.sql
index 7eb0e25..02a5aba 100644
--- a/appsrc/ODS-Bookmark/sql/bmk-a-wa.sql
+++ b/appsrc/ODS-Bookmark/sql/bmk-a-wa.sql
@@ -1,10 +1,10 @@
 --
---  $Id: bmk-a-wa.sql,v 1.14.2.6 2011/05/17 22:59:35 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Bookmark/sql/bmk-d.sql b/appsrc/ODS-Bookmark/sql/bmk-d.sql
index 0f47353..0292edf 100644
--- a/appsrc/ODS-Bookmark/sql/bmk-d.sql
+++ b/appsrc/ODS-Bookmark/sql/bmk-d.sql
@@ -1,10 +1,10 @@
 --
---  $Id: bmk-d.sql,v 1.15.2.7 2011/05/20 16:24:09 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -22,7 +22,6 @@
 ------------------------------------------------------------------------------
 -- bmk-d.sql
 -- script for cleaning wa installation.
--- Copyright (C) 2004 OpenLink Software
 ------------------------------------------------------------------------------
 
 create procedure BMK.WA.uninstall ()
diff --git a/appsrc/ODS-Bookmark/sql/sioc_bmk.sql b/appsrc/ODS-Bookmark/sql/sioc_bmk.sql
index 525174f..8dececc 100644
--- a/appsrc/ODS-Bookmark/sql/sioc_bmk.sql
+++ b/appsrc/ODS-Bookmark/sql/sioc_bmk.sql
@@ -1,10 +1,10 @@
 --
---  $Id: sioc_bmk.sql,v 1.19.2.11 2011/05/18 21:18:29 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -111,6 +111,7 @@ create procedure fill_ods_bookmark_sioc2 (
     SIOC..fill_ods_bookmark_services ();
 
     for (select WAI_ID,
+                WAI_IS_PUBLIC,
                 WAI_TYPE_NAME,
                 WAI_NAME,
                 WAI_ACL
@@ -120,7 +121,7 @@ create procedure fill_ods_bookmark_sioc2 (
     {
       graph_iri := SIOC..acl_graph (WAI_TYPE_NAME, WAI_NAME);
       exec (sprintf ('sparql clear graph <%s>', graph_iri));
-      SIOC..wa_instance_acl_insert (WAI_TYPE_NAME, WAI_NAME, WAI_ACL);
+      SIOC..wa_instance_acl_insert (WAI_IS_PUBLIC, WAI_TYPE_NAME, WAI_NAME, WAI_ACL);
       for (select BD_DOMAIN_ID, BD_ID, BD_ACL
              from BMK..BOOKMARK_DOMAIN
             where BD_DOMAIN_ID = WAI_ID and BD_ACL is not null) do
@@ -165,7 +166,7 @@ create procedure fill_ods_bookmark_sioc2 (
           order by BD_ID) do
       {
       bookmark_iri := SIOC..bmk_post_iri (BD_DOMAIN_ID, BD_ID);
-      graph_iri := SIOC..get_graph_new (null, coalesce (_access_mode, WAI_IS_PUBLIC), bookmark_iri);
+      graph_iri := SIOC..get_graph_new (coalesce (_access_mode, WAI_IS_PUBLIC), bookmark_iri);
       forum_iri := SIOC..bmk_iri (coalesce (_wai_name, WAI_NAME));
       creator_iri := SIOC..user_iri (WAM_USER);
 
@@ -222,7 +223,7 @@ create procedure fill_ods_bookmark_services ()
 
 -------------------------------------------------------------------------------
 --
-create procedure clean_ods_bookmark_sioc2 (
+create procedure clean_ods_bookmark_sioc (
   in _wai_name varchar := null,
   in _access_mode integer := null)
 {
@@ -260,9 +261,9 @@ create procedure clean_ods_bookmark_sioc2 (
           order by BD_ID) do
     {
       bookmark_iri := SIOC..bmk_post_iri (BD_DOMAIN_ID, BD_ID);
-      graph_iri := SIOC..get_graph_new (WAI_ID, coalesce (_access_mode, WAI_IS_PUBLIC), bookmark_iri);
+      graph_iri := SIOC..get_graph_new (coalesce (_access_mode, WAI_IS_PUBLIC), bookmark_iri);
 
-      bookmark_domain_delete (graph_iri, BD_DOMAIN_ID, BD_ID);
+      SIOC..bookmark_domain_delete (graph_iri, BD_DOMAIN_ID, BD_ID);
 
       cnt := cnt + 1;
       if (mod (cnt, 500) = 0)
@@ -315,7 +316,7 @@ create procedure bookmark_domain_insert (
           and WAM_INST = WAI_NAME
             and U_ID = WAM_USER) do
   {
-      graph_iri := SIOC..get_graph_new (WAI_ID, WAI_IS_PUBLIC, bookmark_iri);
+      graph_iri := SIOC..get_graph_new (WAI_IS_PUBLIC, bookmark_iri);
       forum_iri := SIOC..bmk_iri (WAI_NAME);
       creator_iri := SIOC..user_iri (WAM_USER);
 
@@ -355,7 +356,7 @@ create procedure bookmark_domain_delete (
   bookmark_iri := SIOC..bmk_post_iri (domain_id, bookmark_id);
   if (isnull (graph_iri))
   {
-    graph_iri := SIOC..get_graph_new (domain_id, null, bookmark_iri);
+    graph_iri := SIOC..get_graph_new (BMK.WA.domain_is_public (domain_id), bookmark_iri);
     if (isnull (graph_iri))
       return;
   }
@@ -588,7 +589,7 @@ create procedure bmk_comment_insert (
   master_iri := SIOC..bmk_post_iri (domain_id, master_id);
 	if (isnull (graph_iri))
 		{
-    graph_iri := get_graph_new (domain_id, null, master_iri);
+    graph_iri := get_graph_new (BMK.WA.domain_is_public (domain_id), master_iri);
     if (isnull (graph_iri))
       return;
 		}
@@ -629,7 +630,7 @@ create procedure bmk_comment_delete (
   master_iri := SIOC..bmk_post_iri (domain_id, master_id);
   if (isnull (graph_iri))
   {
-    graph_iri := SIOC..get_graph_new (domain_id, null, master_iri);
+    graph_iri := SIOC..get_graph_new (BMK.WA.domain_is_public (domain_id), master_iri);
     if (isnull (graph_iri))
       return;
   }
@@ -774,7 +775,7 @@ create procedure bmk_annotation_insert (
   master_iri := SIOC..bmk_post_iri (domain_id, master_id);
 	if (isnull (graph_iri))
 		{
-    graph_iri := get_graph_new (domain_id, null, master_iri);
+    graph_iri := get_graph_new (BMK.WA.domain_is_public (domain_id), master_iri);
     if (isnull (graph_iri))
       return;
 		}
@@ -811,7 +812,7 @@ create procedure bmk_annotation_delete (
   if (isnull (graph_iri))
   {
     master_iri := SIOC..bmk_post_iri (domain_id, master_id);
-    graph_iri := SIOC..get_graph_new (domain_id, null, master_iri);
+    graph_iri := SIOC..get_graph_new (BMK.WA.domain_is_public (domain_id), master_iri);
     if (isnull (graph_iri))
       return;
   }
diff --git a/appsrc/ODS-Bookmark/vad_version b/appsrc/ODS-Bookmark/vad_version
new file mode 100644
index 0000000..c56d7da
--- /dev/null
+++ b/appsrc/ODS-Bookmark/vad_version
@@ -0,0 +1 @@
+1.12.51
diff --git a/appsrc/ODS-Bookmark/www/ajax.vsp b/appsrc/ODS-Bookmark/www/ajax.vsp
index 66606f6..0438a99 100644
--- a/appsrc/ODS-Bookmark/www/ajax.vsp
+++ b/appsrc/ODS-Bookmark/www/ajax.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: ajax.vsp,v 1.9.2.7 2011/05/02 14:16:25 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -21,14 +21,13 @@
 --  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 --
 
-  declare N, M, id, _domain_id, _account_id integer;
+  declare N, M, _domain_id, _account_id integer;
   declare sid, realm, action, subAction, node, nodePath varchar;
   declare nodes, parts, sessionData, returnData any;
 
   sid := get_keyword ('sid', params, '');
   realm := get_keyword ('realm', params, '');
 
-  id := cast (get_keyword ('id', params, '0') as integer);
   action := get_keyword ('a', params, '');
   subAction := get_keyword ('sa', params, '');
 
@@ -38,6 +37,9 @@
 
   if (action = 'visited')
   {
+    declare id integer;
+
+    id := cast (get_keyword ('id', params, '0') as integer);
     BMK.WA.bookmark_visited_set (_domain_id, id, now ());
   }
   else if (action = 'load')
@@ -150,7 +152,7 @@
     }
     http_rewrite ();
     http_header ('Content-Type: text/plain\r\n');
-    http (BMK.WA.obj2json(returnData, 3));
+    http (ODS..obj2json (returnData, 5));
   }
   else if (action = 'tags')
   {
@@ -204,7 +206,7 @@
           tmp := split_and_decode (trim (params[N+1]), 0, '\0\0,');
           for (M := 0; M < length (tmp); M := M + 1)
           {
-            if (ODRIVE.WA.odrive_user_id (trim (tmp[M])) <> -1)
+            if (not isnull (BMK.WA.account_id (trim (tmp[M]))))
               grants := grants || ',' || tmp[M];
           }
         }
@@ -221,7 +223,7 @@
       tmp := BMK.WA.tags2vector (tags);
       tmp := BMK.WA.vector_unique (tmp);
       tags := BMK.WA.vector2tags (tmp);
-      acl := serialize (DB.DBA.wa_acl_params (params));
+      acl := serialize (DB.DBA.wa_aci_params (params));
       folder_id := BMK.WA.folder_create (_domain_id, folder_name, folder_id);
       id := BMK.WA.bookmark_update (id, _domain_id, uri, name, description, tags, folder_id, null, acl);
       BMK.WA.shareNode (_account_id, BMK.WA.make_node ('b', id), grants, 1);
@@ -413,7 +415,7 @@
 	_formExit:;
     http_rewrite ();
     http_header ('Content-Type: text/plain\r\n');
-    http (BMK.WA.obj2json(returnData));
+    http (ODS..obj2json(returnData, 5));
   }
   else if (action = 'about')
   {
diff --git a/appsrc/ODS-Bookmark/www/annotea.vspx b/appsrc/ODS-Bookmark/www/annotea.vspx
index a42887c..897afe9 100644
--- a/appsrc/ODS-Bookmark/www/annotea.vspx
+++ b/appsrc/ODS-Bookmark/www/annotea.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: annotea.vspx,v 1.8.2.7 2011/07/04 10:04:01 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Bookmark/www/bmk_login.vspx b/appsrc/ODS-Bookmark/www/bmk_login.vspx
index ea98db6..be10dda 100644
--- a/appsrc/ODS-Bookmark/www/bmk_login.vspx
+++ b/appsrc/ODS-Bookmark/www/bmk_login.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: bmk_login.vspx,v 1.9.2.4 2010/10/07 13:24:04 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -34,7 +34,7 @@
       if (page_name = 'error.vspx')
         return;
 
-      if (isnull (self.account_rights) and not is_empty_or_null (self.sid))
+      if (isnull (self.person_rights) and not is_empty_or_null (self.sid))
       {
         self.vc_redirect (sprintf ('/ods/error.vspx?__PAGE=%U&__SQL_STATE=%U&__SQL_MESSAGE=%U', 'home.vspx', '23023', 'You have no access rights for the application!'));
         return;
@@ -56,10 +56,10 @@
         return;
       }
 
-      if (BMK.WA.check_grants (self.account_rights, page_name))
+      if (BMK.WA.check_grants (self.person_rights, page_name))
         return;
 
-      if (isnull (self.account_rights))
+      if (isnull (self.person_rights))
       {
         self.vc_redirect (sprintf ('%slogin.vspx?URL=%U', ods_path, HTTP_REQUESTED_URL()));;
         return;
diff --git a/appsrc/ODS-Bookmark/www/bookmarks.vspx b/appsrc/ODS-Bookmark/www/bookmarks.vspx
index 125e207..c20dac8 100644
--- a/appsrc/ODS-Bookmark/www/bookmarks.vspx
+++ b/appsrc/ODS-Bookmark/www/bookmarks.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: bookmarks.vspx,v 1.40.2.6 2011/05/17 22:59:35 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -65,7 +65,7 @@
                   self.tbLabels := cast (get_keyword ('tbLabels', self.settings, '1') as integer);
           
                   self.bNodeAction := '';
-                  if ((get_keyword ('URI', params, '') <> '') and (self.account_rights = 'W'))
+                  if ((get_keyword ('URI', params, '') <> '') and (self.person_rights = 'W'))
                             {
                     self.bNodeAction := 'Bookmark/Create';
                     self.bNodeParams := sprintf('&URI=%U&TITLE=%U', get_keyword ('URI', params, ''), get_keyword ('TITLE', params, ''));
@@ -95,7 +95,7 @@
                             {
                       self.bNode := BMK.WA.make_node ('b', get_keyword ('id', params));
                       self.bNodeAction := 'Bookmark/Edit';
-                      if ((self.account_rights <> 'W') or (grant_id >= 0))
+                      if ((self.person_rights <> 'W') or (grant_id >= 0))
                         self.bNodeAction := 'Bookmark/View';
                     }
                   }
@@ -111,7 +111,7 @@
                       self.bNodePath := BMK.WA.bmk_path2 (BMK.WA.make_node ('f', BD_FOLDER_ID));
                     }
                   }
-                  else if ((get_keyword ('action', params, '') = 'Smart Folder/Create') and (self.account_rights = 'W'))
+                  else if ((get_keyword ('action', params, '') = 'Smart Folder/Create') and (self.person_rights = 'W'))
                             {
                     self.bNodeAction := 'Smart Folder/Create';
                     for (N := 0; N < length (params); N := N + 1)
@@ -143,7 +143,7 @@
                   toolbarWidth := '';
                 ?>
                 <div>
-                  <vm:if test="self.account_rights = 'W'">
+                  <vm:if test="self.person_rights = 'W'">
                   <span class="toolbar" style="cursor: pointer;<?V toolbarWidth ?>" onclick="javascript: BMK.formShow('import');" alt="Import">
                     <img src="image/impt_32.png" border="0" alt="Import" /><?vsp http(self.toolbarLabel('Import'));?>
                   </span>
diff --git a/appsrc/ODS-Bookmark/www/conversation.vspx b/appsrc/ODS-Bookmark/www/conversation.vspx
index 3b79f58..0a21896 100644
--- a/appsrc/ODS-Bookmark/www/conversation.vspx
+++ b/appsrc/ODS-Bookmark/www/conversation.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: conversation.vspx,v 1.3.2.3 2011/05/02 14:16:26 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Bookmark/www/css/style.css b/appsrc/ODS-Bookmark/www/css/style.css
index 8acb610..ddfd469 100644
--- a/appsrc/ODS-Bookmark/www/css/style.css
+++ b/appsrc/ODS-Bookmark/www/css/style.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: style.css,v 1.24.2.11 2011/05/17 22:59:35 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -27,11 +27,23 @@ body {
   font-size: 9pt;
 }
 
+pre {
+  white-space: pre-wrap;       /* css-3 */
+  white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
+  white-space: -pre-wrap;      /* Opera 4-6 */
+  white-space: -o-pre-wrap;    /* Opera 7 */
+  word-wrap: break-word;       /* Internet Explorer 5.5+ */
+}
+
 form {
   margin: 0;
   padding: 0;
 }
 
+abbr {
+  border: none;
+}
+
 a {
   text-decoration: none;
 }
@@ -82,43 +94,6 @@ a:hover, .link:hover
   vertical-align: top;
 }
 
-/* Footer */
-#FT {
-  width: 100%;
-  position: relative;
-  bottom: 0px;
-  font-size: 8pt;
-  float: left;
-  clear: both;
-  text-align: right;
-  border-top: 2px solid #fff;
-  margin-right: 10px;
-  background-color: #fff;
-  background-image: url(../image/ods_main_footer.png);
-}
-
-#FT_L {
-  float: left;
-  clear: left;
-  margin-top: 10px;
-  margin-left: 8px;
-  border: 1px solid #788;
-}
-
-#FT_R {
-  float: right;
-  clear: right;
-  margin-top: 10px;
-  margin-bottom: 10px;
-  margin-right: 5px;
-  color: #788;
-}
-
-#FT_R a {
-  text-decoration: none;
-  color: inherit;
-}
-
 /* Left side within MT */
 .page_head {
   width: 100%;
@@ -129,6 +104,7 @@ a:hover, .link:hover
   font-size: 12px;
   background-color: #EFEFEF;
   border: 1px solid #7f94a5;
+  border-radius: 5px;
   -moz-border-radius: 5px;
   -webkit-border-radius: 5px;
   padding: 5px;
@@ -382,6 +358,7 @@ input.button {
   border: solid 1px;
   border-color: #7f94a5;
   background: #99b3c5;
+  border-radius: 3px;
   -moz-border-radius: 3px;
   -webkit-border-radius: 3px;
 }
@@ -600,6 +577,8 @@ div.tab {
   border: 1px solid #000;
   border-bottom-width: 0px;
   border-color: #7f94a5;
+  border-top-left-radius: 3px;
+  border-top-right-radius: 3px;
   -moz-border-radius-topleft: 3px;
   -moz-border-radius-topright: 3px;
   -webkit-border-top-left-radius: 3px;
@@ -736,6 +715,7 @@ font-weight:normal !important;
 span.button {
   background: none repeat scroll 0 0 #99B3C5;
   border: 1px solid #7F94A5;
+  border-radius: 5px;
   -moz-border-radius: 5px;
   -webkit-border-radius: 5px;
   color: #FFFFFF;
diff --git a/appsrc/ODS-Bookmark/www/error.vspx b/appsrc/ODS-Bookmark/www/error.vspx
index c209c44..052465d 100644
--- a/appsrc/ODS-Bookmark/www/error.vspx
+++ b/appsrc/ODS-Bookmark/www/error.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: error.vspx,v 1.5.2.2 2010/09/20 10:14:55 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Bookmark/www/export.vspx b/appsrc/ODS-Bookmark/www/export.vspx
index c10a1d6..f5e2ebb 100644
--- a/appsrc/ODS-Bookmark/www/export.vspx
+++ b/appsrc/ODS-Bookmark/www/export.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
-  -  $Id: export.vspx,v 1.15.2.3 2010/09/20 10:14:55 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Bookmark/www/forms.vspx b/appsrc/ODS-Bookmark/www/forms.vspx
index 4a26af8..8539705 100644
--- a/appsrc/ODS-Bookmark/www/forms.vspx
+++ b/appsrc/ODS-Bookmark/www/forms.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: forms.vspx,v 1.12.2.18 2011/07/04 10:04:01 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -39,7 +39,7 @@
     ]]>
   </v:method>
 
-  <v:method name="shareSelect" arglist="in node varchar">
+  <v:method name="shareSelect" arglist="in node any">
     <![CDATA[
       declare grants any;
 
@@ -55,7 +55,7 @@
       if (lcase (BMK.WA.node_type (node)) <> 'b')
         return 'visited';
 
-      if (self.account_rights <> 'W')
+      if (self.person_rights <> 'W')
         return 'unvisited';
 
       return either (isnull (BMK.WA.bookmark_visited (self.domain_id, BMK.WA.node_id (node))), 'unvisited', 'visited');
@@ -155,7 +155,7 @@
       <v:variable name="v_tags" type="varchar" default="''"/>
       <v:variable name="v_folder_name" type="varchar" default="''"/>
       <v:variable name="v_own" type="integer" default="0"/>
-      <v:variable name="v_folder_id" type="varchar" default="'0'"/>
+      <v:variable name="v_folder_id" type="integer" default="0"/>
       <v:variable name="v_shared" type="integer" default="0"/>
       <v:variable name="v_grants" type="any" default="null"/>
       <v:variable name="v_acl" type="any" default="null"/>
@@ -234,7 +234,7 @@
 
           mt := '';
           st := '';
-          if ((self.account_rights = 'W') and (not (((node_type = 's') and (node_id = -1)) or (node_type = 'u') or (node_type = 'F'))))
+          if ((self.person_rights = 'W') and (not (((node_type = 's') and (node_id = -1)) or (node_type = 'u') or (node_type = 'F'))))
           {
             mt := sprintf('Selected as <select name="mark" onchange="javascript: if (anySelected(this.form, \'cb_item\', \'No posts were selected to mark as \'+this.options[this.selectedIndex].text+\'.\')) {this.form.submit();} else {this.selectedIndex = 0}"><option/><option>visited</option><option>unvisited</option></select>');
             st := sprintf('View <select name="show" onchange="javascript: this.form.submit();"><option value="">all</option><option value="visited">visited</option><option value="unvisited">unvisited</option></select>');
@@ -330,7 +330,7 @@
                                  ) x
                                       where 1 = 1';
                   BMK.WA.xml_set('folderID', data, BMK.WA.node_suffix(self.bNode));
-                  tmp := BMK.WA.sfolder_sql (self.domain_id, self.account_id, self.account_rights, data);
+                  tmp := BMK.WA.sfolder_sql (self.domain_id, self.account_id, self.person_rights, data);
                   sql := replace(sql, '<BOOKMARKS>', tmp);
                   sql := replace(sql, '<ID>', BMK.WA.node_suffix(self.bNode));
                 }
@@ -379,14 +379,14 @@
                 sql := 'select distinct rs.* from BMK.WA.shared_sql (rs0, rs1, rs2, rs3)(_TYPE integer, _ID integer, _NODE varchar, _NAME varchar, _URI varchar, _VISITED datetime, _UPDATED datetime, _CREATED datetime, _FOLDER_ID integer, _FOLDER_NAME varchar, _GRANT_ID integer) rs where rs0 = ? and rs1 = ? and rs2 = ? and rs3 = ?';
                 control.add_parameter (self.domain_id);
                 control.add_parameter (self.account_id);
-                control.add_parameter (self.account_rights);
+                control.add_parameter (self.person_rights);
                 control.add_parameter (data);
 
               }
               else if ((node_type = 't') and not is_empty_or_null (BMK.WA.node_suffix (self.bNode)))
               {
                 BMK.WA.xml_set('tags', data, BMK.WA.node_suffix(self.bNode));
-                sql := BMK.WA.sfolder_sql (self.domain_id, self.account_id, self.account_rights, data);
+                sql := BMK.WA.sfolder_sql (self.domain_id, self.account_id, self.person_rights, data);
               }
               else if ((node_type = 'u') and (node_id = -1))
               {
@@ -533,9 +533,9 @@
                     node := (control as vspx_row_template).te_column_value('_NODE');
                       node_type := BMK.WA.node_type (node);
                     node_id := BMK.WA.node_id (node);
-                    permissions := self.account_rights;
+                    permissions := self.person_rights;
                     if (node_type = 'b')
-                      permissions := BMK.WA.bookmark_rights (self.domain_id, node_id, self.account_rights);
+                      permissions := BMK.WA.bookmark_rights (self.domain_id, node_id, self.person_rights, self.account_rights);
 
                   ?>
                   <td class="checkbox">
@@ -1044,7 +1044,7 @@
               <v:on-post>
                 <![CDATA[
                   -- check / create folder
-                  self.v_folder_id := self.i_folder_id.ufl_value;
+                  self.v_folder_id := cast (self.i_folder_id.ufl_value as integer);
                   self.v_folder_name := trim (self.i_folder_name.ufl_value);
                   if ((self.v_folder_name <> '') and (not BMK.WA.folder_check_name(self.v_folder_name, 1)))
                   {
@@ -1184,12 +1184,12 @@
                 <v:label for="e_format" value="Format"/>
               </th>
               <td>
-                <input type="radio" name="e_format" id="e_format_0" value="Netscape" checked="checked" onclick="changeExportName('e_file', '.xbel', '.html');"/><xsl:call-template name="nbsp"/><label for="e_format_0">Netscape</label>
+                <input type="radio" name="e_format" id="e_format_0" value="Netscape" checked="checked" onclick="changeExportName('e_file', '.xbel', '.html');"/> <label for="e_format_0">Netscape</label>
               </td>
             </tr>
             <tr>
               <td>
-                <input type="radio" name="e_format" id="e_format_1" value="XBEL" onclick="changeExportName('e_file', '.html', '.xbel');"/><xsl:call-template name="nbsp"/><label for="e_format_1">XBEL</label>
+                <input type="radio" name="e_format" id="e_format_1" value="XBEL" onclick="changeExportName('e_file', '.html', '.xbel');"/> <label for="e_format_1">XBEL</label>
               </td>
             </tr>
             <tr>
@@ -1406,35 +1406,23 @@
                             <th class="action">Action</th>
                         </tr>
                       </thead>
+                        <tbody id="s_tbody">
+                          <tr id="s_tr_no"><td colspan="4"><b>No Shares</b></td></tr>
                 		  <![CDATA[
                 		    <script type="text/javascript">
                       <?vsp
-                          declare N, L integer;
-                          declare acl, aType, aAccess any;
+                              declare acl any;
 
-                        L := 0;
                         acl := (select WAI_ACL from DB.DBA.WA_INSTANCE where WAI_ID = self.domain_id);
                         acl := case when isnull (acl) then vector () else deserialize (acl) end;
-                          for (N := 0; N < length (acl); N := N + 1)
-                        {
-                          L := L + 1;
-                            http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("s", {fld_1: {mode: 50, value: "%s"}, fld_2: {value: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; white-space: nowrap; text-align: center;"}, fld_4: {value: "Inherited"}});});', acl[N][2], acl[N][1], acl[N][3], acl[N][4], acl[N][5]));
-                        }
+                              DB.DBA.wa_aci_lines (acl);
+
                         acl := deserialize (self.v_acl);
-                          for (N := 0; N < length (acl); N := N + 1)
-                        {
-                          L := L + 1;
-                            if (self.v_form <> 'Bookmark/View')
-                            {
-                              http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createRow("s", null, {fld_1: {mode: 50, value: "%s", onchange: function(){TBL.changeCell50(this);}}, fld_2: {mode: 51, form: "F1", tdCssText: "white-space: nowrap;", className: "_validate_ _webid_", value: "%s", readOnly: %s, imgCssText: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; text-align: center;"}});});', acl[N][2], acl[N][1], case when acl[N][2] = 'public' then 'true' else 'false' end, case when acl[N][2] = 'public' then 'display: none;' else '' end, acl[N][3], acl[N][4], acl[N][5]));
-                            } else {
-                              http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("s", {fld_1: {mode: 50, value: "%s"}, fld_2: {value: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; white-space: nowrap; text-align: center;"}});});', acl[N][2], acl[N][1], acl[N][3], acl[N][4], acl[N][5]));
-                            }
-                          }
+                              DB.DBA.wa_aci_lines (acl, case when self.v_form = 'Bookmark/View' then 'view' else '' end);
                      		    ?>
                      		    </script>
                      		  ]]>
-                      <tr id="s_tr_no" style="display: <?V case when L=0 then '' else 'none' end ?>;"><td colspan="<?V case when self.v_form='Bookmark/View' then 3 else 4 end ?>"><b>No Shares</b></td></tr>
+                        </tbody>
                     </table>
                   </td>
                   <vm:if test="self.v_form <> 'Bookmark/View'">
diff --git a/appsrc/ODS-Bookmark/www/gems.vsp b/appsrc/ODS-Bookmark/www/gems.vsp
index 8055702..82b8034 100644
--- a/appsrc/ODS-Bookmark/www/gems.vsp
+++ b/appsrc/ODS-Bookmark/www/gems.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: gems.vsp,v 1.1.2.3 2010/10/07 13:24:04 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2008 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Bookmark/www/image/virtuosologo.jpg b/appsrc/ODS-Bookmark/www/image/virtuosologo.jpg
deleted file mode 100644
index 8f15047..0000000
Binary files a/appsrc/ODS-Bookmark/www/image/virtuosologo.jpg and /dev/null differ
diff --git a/appsrc/ODS-Bookmark/www/js/bookmark.js b/appsrc/ODS-Bookmark/www/js/bookmark.js
index df2dcf3..8b31d73 100644
--- a/appsrc/ODS-Bookmark/www/js/bookmark.js
+++ b/appsrc/ODS-Bookmark/www/js/bookmark.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: bookmark.js,v 1.27.2.15 2011/06/09 17:43:16 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -677,7 +677,8 @@ function checkState()
         setTimeout("checkState()", 500);
       } else {
       progressTimer = null;
-        $('btn_Stop').click();
+      $('btn_Stop').value = 'Close';
+      OAT.Dom.hide('btn_Background');
       }
     }
   OAT.AJAX.POST('ajax.vsp', "a=load&sa=state&id="+progressID+urlParam("sid")+urlParam("realm"), x);
@@ -751,12 +752,17 @@ function readBookmark (id)
   OAT.AJAX.POST ('ajax.vsp', "sid="+sid+"&realm="+realm+"&id="+id+"&a=visited", function(){}, {onstart:function(){}, onerror:function(){}});
 }
 
-function davBrowse (fld)
-{
+function davBrowse(fld, folders) {
+	/* load stylesheets */
+	OAT.Style.include("grid.css");
+	OAT.Style.include("webdav.css");
+
   var options = {
     mode: 'browser',
     onConfirmClick: function(path, fname) {$(fld).value = '/DAV' + path + fname;}
   };
+  if (!folders) {folders = false;}
+  OAT.WebDav.options.foldersOnly = folders;
   OAT.WebDav.open(options);
 }
 
@@ -1293,7 +1299,7 @@ BMK.loadItems = function(nodeID, nodePath)
     nodePath = nodeID;
   var pane = $('pane_right_top');
   pane.innerHTML = '';
-  var URL = 'forms.vspx?sa=browse&node='+encodeURIComponent(nodeID)+'&path='+encodeURIComponent(nodePath)+BMK.sessionParams();
+  var URL = 'forms.vspx?sa=browse&node='+encodeURIComponent(nodeID)+'&path='+encodeURIComponent('/'+BMK.trim(nodePath, '/'))+BMK.sessionParams();
   var v = $('nodeItem');
   if (v && (v.value != '')) {
     URL += '&item=' + v.value;
@@ -1426,12 +1432,10 @@ BMK.formPostAfter = function (action)
 BMK.aboutDialog = function ()
 {
   var aboutDiv = $('aboutDiv');
-  if (aboutDiv) {OAT.Dom.unlink(aboutDiv);}
-  aboutDiv = OAT.Dom.create('div', {
-    width:'430px',
-    height: '170px',
-    overflow: 'hidden'
-  });
+  if (aboutDiv)
+    OAT.Dom.unlink(aboutDiv);
+
+  aboutDiv = OAT.Dom.create('div', {height: '160px', overflow: 'hidden'});
   aboutDiv.id = 'aboutDiv';
   aboutDialog = new OAT.Dialog('About ODS Booomarks', aboutDiv, {width:445, buttons: 0, resize:0, modal:1});
 	aboutDialog.cancel = aboutDialog.hide;
diff --git a/appsrc/ODS-Bookmark/www/message.vspx b/appsrc/ODS-Bookmark/www/message.vspx
index f6d68a6..cd1ed83 100644
--- a/appsrc/ODS-Bookmark/www/message.vspx
+++ b/appsrc/ODS-Bookmark/www/message.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: message.vspx,v 1.1.2.1 2010/09/20 10:14:55 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Bookmark/www/search.vspx b/appsrc/ODS-Bookmark/www/search.vspx
index 2d159fc..93e5411 100644
--- a/appsrc/ODS-Bookmark/www/search.vspx
+++ b/appsrc/ODS-Bookmark/www/search.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: search.vspx,v 1.30.2.12 2011/05/02 14:16:26 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -138,7 +138,7 @@
         if (maxRows <> '')
           maxRows := 'TOP ' || maxRows;
         sql := replace(sql, '<MAX>', maxRows);
-      sqlParams := vector (self.domain_id, self.account_id, self.account_rights, data, self.v_max);
+      sqlParams := vector (self.domain_id, self.account_id, self.person_rights, data, self.v_max);
       sql := concat(sql, 'order by ', self.v_order, ' ', self.v_direction);
       exec(sql, state, msg, sqlParams, 0, meta, result);
       if (state = '00000')
@@ -668,7 +668,7 @@
               ]]>
             </v:on-post>
           </v:button>
-          <v:button action="simple" value="Save" enabled="-- case when self.account_rights = 'W' then 1 else 0 end" xhtml_class="form-button">
+          <v:button action="simple" value="Save" enabled="-- case when self.person_rights = 'W' then 1 else 0 end" xhtml_class="form-button">
             <v:on-post>
               <![CDATA[
                 self.update_params();
diff --git a/appsrc/ODS-Bookmark/www/settings.vspx b/appsrc/ODS-Bookmark/www/settings.vspx
index 46c1018..87803f2 100644
--- a/appsrc/ODS-Bookmark/www/settings.vspx
+++ b/appsrc/ODS-Bookmark/www/settings.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: settings.vspx,v 1.19.2.10 2011/05/17 22:59:35 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -90,11 +90,11 @@
         <tr>
           <td id="LC">
             <div class="lc lc_close">
-              <vm:if test="self.account_rights = 'W'">
+              <vm:if test="self.person_rights = 'W'">
               <span onclick="javascript: vspxPost('command', 'action', 'settings', 'mode', '');" title="Settings" class="gems2">Settings</span>
               </vm:if>
               <span onclick="javascript: vspxPost('command', 'action', 'settings', 'mode', 'bookmarklet');" title="Bookmarklet" class="gems2">Bookmarklet</span>
-              <vm:if test="self.account_rights = 'W'">
+              <vm:if test="self.person_rights = 'W'">
               <span onclick="javascript: vspxPost('command', 'action', 'settings', 'mode', 'publishBrowse');" title="Publications" class="gems2">Publications</span>
               <span onclick="javascript: vspxPost('command', 'action', 'settings', 'mode', 'subscribeBrowse');" title="Subscriptions" class="gems2">Subscriptions</span>
               </vm:if>
@@ -424,12 +424,13 @@
       	    ]]>
       	  </v:on-post>
         </v:button>
-        <v:button action="simple" value="Clear" xhtml_class="form-button">
+                <v:button action="simple" value="Clear" xhtml_onclick="javascript: return confirm (\'Do you want to reset settings to default?\');" xhtml_class="form-button">
           <v:on-post>
             <![CDATA[
               delete from BMK.WA.SETTINGS where S_ACCOUNT_ID = self.account_id;
                       BMK.WA.nntp_update (self.domain_id, null, null, 1, 0);
 
+                      self.settings := vector_concat (vector ('app', DB.DBA.WA_USER_APP_ENABLE (self.account_id)), BMK.WA.settings (self.domain_id));
                       self.vc_data_bind(e);
       	    ]]>
       	  </v:on-post>
diff --git a/appsrc/ODS-Bookmark/www/tags.vspx b/appsrc/ODS-Bookmark/www/tags.vspx
index d50feb8..fdc5d7f 100644
--- a/appsrc/ODS-Bookmark/www/tags.vspx
+++ b/appsrc/ODS-Bookmark/www/tags.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: tags.vspx,v 1.4.2.3 2011/05/02 14:16:26 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Bookmark/www/template/popup.vspx b/appsrc/ODS-Bookmark/www/template/popup.vspx
index 821a860..ea603e7 100644
--- a/appsrc/ODS-Bookmark/www/template/popup.vspx
+++ b/appsrc/ODS-Bookmark/www/template/popup.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
-  -  $Id: popup.vspx,v 1.7.2.9 2011/07/04 10:04:01 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -83,6 +83,7 @@
         <v:variable persist="0" name="domain_id" type="integer" default="-1"/>
         <v:variable persist="0" name="account_id" type="integer" default="-1"/>
         <v:variable persist="0" name="account_rights" type="varchar" default="''"/>
+      <v:variable persist="0" name="person_rights" type="varchar" default="''" />
         <v:variable persist="0" name="settings" type="any" />
       <v:variable persist="0" name="rdf_iri" type="varchar" default="null" />
       <v:on-init>
@@ -96,7 +97,8 @@
           aSessInfo := BMK.WA.session_restore (params);
           self.domain_id := cast(get_keyword('domain_id', aSessInfo, '-1') as integer);
           self.account_id := cast (get_keyword ('account_id', aSessInfo, '-1') as integer);
-          self.account_rights := get_keyword ('account_rights', aSessInfo, '');
+          self.account_rights := get_keyword ('account_rights', aSessInfo);
+          self.person_rights := get_keyword ('person_rights', aSessInfo);
           self.settings := BMK.WA.settings (self.domain_id);
         ]]>
       </v:on-init>
diff --git a/appsrc/ODS-Bookmark/www/template/template.vspx b/appsrc/ODS-Bookmark/www/template/template.vspx
index c8a5bc6..ec6e519 100644
--- a/appsrc/ODS-Bookmark/www/template/template.vspx
+++ b/appsrc/ODS-Bookmark/www/template/template.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: template.vspx,v 1.33.2.15 2011/07/04 10:04:01 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -66,11 +66,6 @@
           connectionHeaders: {Authorization: '<?V BMK.WA.account_basicAuthorization (self.account_id) ?>'}
         };
 
-      	/* load stylesheets */
-      	OAT.Style.include("grid.css");
-      	OAT.Style.include("webdav.css");
-      	OAT.Style.include("winms.css");
-        
         var featureList=["ajax", "json", "anchor", "dialog", "tree", "calendar"];
         OAT.Loader.load(featureList);
       </script>
@@ -116,6 +111,7 @@
         <v:variable persist="0" name="domain_id" type="integer" default="-1"/>
         <v:variable persist="0" name="account_id" type="integer" default="-1"/>
       <v:variable persist="0" name="account_rights" type="varchar" default="''" />
+      <v:variable persist="0" name="person_rights" type="varchar" default="''" />
         <v:variable persist="0" name="settings" type="any" />
       <v:variable persist="0" name="rdf_iri" type="varchar" default="null" />
       <v:on-init>
@@ -124,12 +120,13 @@
           set http_charset = 'utf-8';
 
           -- Initialize variables
-          declare sessionData any;
+          declare aSessInfo any;
 
-          sessionData := BMK.WA.session_restore (params);
-          self.domain_id := cast (get_keyword('domain_id', sessionData, '-1') as integer);
-          self.account_id := cast (get_keyword('account_id', sessionData, '-1') as integer);
-          self.account_rights := get_keyword ('account_rights', sessionData, '');
+          aSessInfo := BMK.WA.session_restore (params);
+          self.domain_id := cast (get_keyword('domain_id', aSessInfo, '-1') as integer);
+          self.account_id := cast (get_keyword('account_id', aSessInfo, '-1') as integer);
+          self.account_rights := get_keyword ('account_rights', aSessInfo);
+          self.person_rights := get_keyword ('person_rights', aSessInfo);
           self.settings := vector_concat (vector ('app', DB.DBA.WA_USER_APP_ENABLE (self.account_id)), BMK.WA.settings (self.domain_id));
 
           self.vc_add_attribute ('xmlns:foaf', 'http://xmlns.com/foaf/0.1/');
diff --git a/appsrc/ODS-Bookmark/www/template/template.xsl b/appsrc/ODS-Bookmark/www/template/template.xsl
index 903f6c7..231f634 100644
--- a/appsrc/ODS-Bookmark/www/template/template.xsl
+++ b/appsrc/ODS-Bookmark/www/template/template.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: template.xsl,v 1.29.2.7 2011/05/02 14:16:26 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -181,7 +181,7 @@
             <?vsp http (BMK.WA.utf2wide (BMK.WA.banner_links (self.domain_id, self.sid, self.realm))); ?>
           </div>
           <div style="float: right; padding-right: 0.5em;">
-            <vm:if test="self.account_rights = 'W'">
+            <vm:if test="self.person_rights = 'W'">
               <a href="<?vsp http (BMK.WA.utf2wide (BMK.WA.page_url (self.domain_id, 'settings.vspx', self.sid, self.realm))); ?>" title="Preferences">Preferences</a>
               |
             </vm:if>
@@ -203,7 +203,7 @@
         <div id="FT" style="display: <?V case when get_keyword ('interface', C, '') = 'js' then 'none' else '' end ?>">
         <div id="FT_L">
           <a href="http://www.openlinksw.com/virtuoso">
-            <img alt="Powered by OpenLink Virtuoso Universal Server" src="image/virt_power_no_border.png" border="0" />
+              <img alt="Powered by OpenLink Virtuoso Universal Server" src="/ods/images/virt_power_no_border.png" border="0" />
           </a>
     </div>
         <div id="FT_R">
diff --git a/appsrc/ODS-Bookmark/xslt/Netscape.xsl b/appsrc/ODS-Bookmark/xslt/Netscape.xsl
index d7cf727..bdc801f 100644
--- a/appsrc/ODS-Bookmark/xslt/Netscape.xsl
+++ b/appsrc/ODS-Bookmark/xslt/Netscape.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?> 
 <!--  
  -
- -  $Id: Netscape.xsl,v 1.4.2.1 2010/09/20 10:14:56 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Bookmark/xslt/XBEL.xsl b/appsrc/ODS-Bookmark/xslt/XBEL.xsl
index b4b5f39..78e249d 100644
--- a/appsrc/ODS-Bookmark/xslt/XBEL.xsl
+++ b/appsrc/ODS-Bookmark/xslt/XBEL.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?> 
 <!--  
  -
- -  $Id: XBEL.xsl,v 1.2.2.1 2010/09/20 10:14:56 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Bookmark/xslt/rss2atom.xsl b/appsrc/ODS-Bookmark/xslt/rss2atom.xsl
index a8f5bee..2390919 100644
--- a/appsrc/ODS-Bookmark/xslt/rss2atom.xsl
+++ b/appsrc/ODS-Bookmark/xslt/rss2atom.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom.xsl,v 1.4.2.2 2010/09/20 10:14:56 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Bookmark/xslt/rss2atom03.xsl b/appsrc/ODS-Bookmark/xslt/rss2atom03.xsl
index 53f03df..bd79434 100644
--- a/appsrc/ODS-Bookmark/xslt/rss2atom03.xsl
+++ b/appsrc/ODS-Bookmark/xslt/rss2atom03.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom03.xsl,v 1.4.2.1 2010/09/20 10:14:56 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Bookmark/xslt/rss2rdf.xsl b/appsrc/ODS-Bookmark/xslt/rss2rdf.xsl
index 032e4d8..5276e3b 100644
--- a/appsrc/ODS-Bookmark/xslt/rss2rdf.xsl
+++ b/appsrc/ODS-Bookmark/xslt/rss2rdf.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2rdf.xsl,v 1.5.2.1 2010/09/20 10:14:56 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Bookmark/xslt/rss2xbel.xsl b/appsrc/ODS-Bookmark/xslt/rss2xbel.xsl
index 3ac603e..4fc1d71 100644
--- a/appsrc/ODS-Bookmark/xslt/rss2xbel.xsl
+++ b/appsrc/ODS-Bookmark/xslt/rss2xbel.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2xbel.xsl,v 1.2.2.1 2010/09/20 10:14:56 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/Makefile.am b/appsrc/ODS-Briefcase/Makefile.am
index 5ea20c0..538470d 100644
--- a/appsrc/ODS-Briefcase/Makefile.am
+++ b/appsrc/ODS-Briefcase/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -44,9 +44,11 @@ clean-local:
 	-rm -rf vad
 
 EXTRA_DIST = \
+	*.dox \
 	make_vad.sh \
 	new/*.sql \
 	schemas/*.rdf \
+	vad_version \
 	www/*.vsp \
 	www/*.vspx \
 	www/css/*.css \
diff --git a/appsrc/ODS-Briefcase/Makefile.in b/appsrc/ODS-Briefcase/Makefile.in
index 74dab77..3dee93e 100644
--- a/appsrc/ODS-Briefcase/Makefile.in
+++ b/appsrc/ODS-Briefcase/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -38,9 +37,8 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -70,7 +68,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -78,23 +75,9 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(vaddir)"
+nodist_vadDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(nodist_vad_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -184,7 +167,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -268,7 +250,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -289,7 +270,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -307,9 +287,11 @@ CLEANFILES = \
 	virtuoso.trx
 
 EXTRA_DIST = \
+	*.dox \
 	make_vad.sh \
 	new/*.sql \
 	schemas/*.rdf \
+	vad_version \
 	www/*.vsp \
 	www/*.vspx \
 	www/css/*.css \
@@ -330,14 +312,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu appsrc/ODS-Briefcase/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu appsrc/ODS-Briefcase/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  appsrc/ODS-Briefcase/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  appsrc/ODS-Briefcase/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -355,7 +337,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -365,23 +346,20 @@ clean-libtool:
 install-nodist_vadDATA: $(nodist_vad_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(vaddir)" || $(MKDIR_P) "$(DESTDIR)$(vaddir)"
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	for p in $$list; do \
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vaddir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(vaddir)" || exit $$?; \
+	  f=$(am__strip_dir) \
+	  echo " $(nodist_vadDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(vaddir)/$$f'"; \
+	  $(nodist_vadDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(vaddir)/$$f"; \
 	done
 
 uninstall-nodist_vadDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(vaddir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(vaddir)" && rm -f $$files
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(vaddir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(vaddir)/$$f"; \
+	done
 tags: TAGS
 TAGS:
 
@@ -405,17 +383,13 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
@@ -447,7 +421,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -466,8 +439,6 @@ dvi-am:
 
 html: html-am
 
-html-am:
-
 info: info-am
 
 info-am:
@@ -476,28 +447,18 @@ install-data-am: install-nodist_vadDATA
 
 install-dvi: install-dvi-am
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-am
 
-install-html-am:
-
 install-info: install-info-am
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-am
 
-install-pdf-am:
-
 install-ps: install-ps-am
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -538,7 +499,6 @@ ods_briefcase_dav.vad: $(EXTRA_DIST)
 
 clean-local:
 	-rm -rf vad
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/appsrc/ODS-Briefcase/ODS-Briefcase.dox b/appsrc/ODS-Briefcase/ODS-Briefcase.dox
new file mode 100644
index 0000000..67d9bdf
--- /dev/null
+++ b/appsrc/ODS-Briefcase/ODS-Briefcase.dox
@@ -0,0 +1,74 @@
+/**
+\defgroup ods_module_briefcase ODS Briefcase (WebDAV File Management) API
+
+The ODS Briefcase is a WebDAV-compliant platform that offers file-sharing functionality via a "Briefcase Data Space".
+Its standards-compliance enables the exploitation of File Server functionality via the following methods:
+
+- Web Browser-based interactions
+- Web Services - direct use of the HTTP based WebDAV protocol
+- Semantic Web's SPARQL Query Language - all WebDAV resources are exposed as SIOC Ontology instance data (RDF Data Sets)
+
+\section ods_briefcase_features Key Features
+
+- Automatic Metadata Management - ODS automatically extracts file metadata from a wide array of file formats at file
+  upload time. The metadata is available in two forms:
+  - Pure WebDAV and
+  - RDF-XML or N3/Turtle, optionally synchronized with the underlying Virtuoso Triple Store.
+- Automatic metadata-extraction from many known file types - MS Office, Open Office, Open Document Format, Content
+  Syndication Formats (RSS 1.0, RSS 2.0, Atom, OPML, OCS), (X)HTML, Web Services Contract Files (BPEL, WSDL), XBRL,
+  XBEL, FOAF, iCalendar, hCalendar, vCARD, Google Base Items, and other formats.
+- Powerful Full-Text Search - including WebDAV metadata, physical properties such as path, filename, content words,
+  individual and group ownership, mime type, date range, and tags
+- Flexible Data Access - all Briefcase data is accessible via SPARQL, GData, and Briefcase Service-specific Web Services
+- Open Data Access - transparent integration with any WebDAV-compliant environment, e.g., Mac OS X Finder, Windows
+  Network Places, Linux DAV Mount, and others
+- Security - UNIX-like file-permission system or Access Control Lists (ACLs)
+- Unified Storage - a central storage and access point for all ODS application data
+- Virtual WebDAV Resources - even when the actual data in question isn't a physical WebDAV resource it can still be
+  viewed in the Briefcase via Virtual WebDAV VIEWs
+- Smart Folders for custom association of resource types with virtual folders. For example, you can navigate to, or
+  enter, the path DAV/home/[username]/Items/Graphics/Type/JPEG to list all the graphic images that are of type JPEG for
+  a given user.
+- Resource tagging - enabling the categorization of content by user-defined tags. These tags are also usable within
+  Free Text Searches of Briefcase content
+- Shared Folders View - shows all collections and resources to which the user has been granted access
+- Version Control - Versioning can be enabled for any resource using any client supporting the DeltaV core feature set.
+  Historical versions of resources will appear in a separate virtual folder. DeltaV core WebDAV methods are supported
+  for resources for which versioning has been enabled.
+
+
+\section ods_briefcase_version_control File Version Control in ODS Briefcase
+
+FIXME: document how that works from a RESTful point of view.
+
+\section ods_briefcase_resource_permissions Resource Permissions
+
+Several Briefcase methods such as briefcase.resource.store() or briefcase.collection.create() allow to specify permissions.
+The permissions are encoded as a string which consists of a 9-bit-mask mapping to standard UNIX file permissions
+
+- read, write, and execute for the owner
+- read, write, and execute for the group
+- read, write, and execute for everyone else
+
+and two additional flags indicating that indicate whether resources should be indexed for free-text search and whether
+they should be parsed to extract metadata:
+
+- Free-Text indexing:
+  - \p 'N' will disable free-text indexing.
+  - \p 'T' will enable free-text indexing for a resource or a collection's direct children.
+  - \p 'R' will enable free-text indexing recursively.
+- Metadata extraction:
+  - \p 'N' will disable metadata extraction.
+  - \p 'M' will enable metadata extraction for a resource or a collection's direct children.
+  - \p 'R' will enable metadata extraction recursively.
+
+Thus, a permissions string \p '111110100RM' maps to UNIX permissions \p 'rwxrw-r--' and enables recursive full-text indexing
+and non-recursive metadata extraction.
+
+For more details see <a href="http://docs.openlinksw.com/virtuoso/webdavserver.html#accesspermofwebres">Access Right
+Permissions of Web Resources</a> in the Virtuoso server documentation.
+
+\subsection ods_permissions_acl ODS Access Control Lists (ACL)
+
+FIXME: explain how that works in ODS including WebID and so on.
+*/
diff --git a/appsrc/ODS-Briefcase/make_vad.sh b/appsrc/ODS-Briefcase/make_vad.sh
index 1fec14c..89e01ea 100755
--- a/appsrc/ODS-Briefcase/make_vad.sh
+++ b/appsrc/ODS-Briefcase/make_vad.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: make_vad.sh,v 1.49.2.42 2011/08/01 14:14:42 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -30,7 +30,7 @@ export LANG LC_ALL
 
 MODE=$1
 LOGDIR=`pwd`
-VERSION="1.3.311"
+VERSION="1.0.0"
 LOGFILE="${LOGDIR}/vad_make.log"
 STICKER_DAV="vad_dav.xml"
 STICKER_FS="vad_filesystem.xml"
@@ -63,16 +63,6 @@ else
   LN="ln -fs"
   RM="rm -f"
 fi
-VOS=0
-if [ -f ../../autogen.sh ]
-then
-    VOS=1
-fi
-VOS=0
-if [ -f ../../autogen.sh ]
-then
-    VOS=1
-fi
 
 if [ "z$SERVER" = "z" ]  
 then
@@ -107,6 +97,57 @@ else
   myrm=$RM
 fi
 
+
+VOS=0
+if [ -f ../../autogen.sh ]
+then
+    VOS=1
+fi
+
+version_init()
+{
+  if [ $VOS -eq 1 ]
+  then
+      if [ -f vad_version ]
+      then
+	  VERSION=`cat vad_version`
+      else
+        LOG "The vad_version does not exist, please verify your checkout"
+	exit 1
+      fi
+  else
+      rm -f version.tmp
+      for i in `find . -name 'Entries' | grep -v "vad/" | grep -v "/tests/"`; do
+	  cat "$i" | grep -v "version\."| grep "^[^D].*" | cut -f 3 -d "/" | sed -e "s/1\.//g" >> version.tmp
+      done
+      LANG=POSIX
+      export LANG
+
+      BASE="0"
+#      echo $BASE
+      if [ -f version.base ] ; then
+	  BASE=`cat version.base`
+      fi
+
+      VERSION=`cat version.tmp | awk ' BEGIN { cnt=10 } { cnt = cnt + $1 } END { print cnt }'`
+
+      VERSION=`expr $BASE + $VERSION`
+      CURR_VERSION=$VERSION
+      if [ -f version.curr ] ; then
+	  CURR_VERSION=`cat version.curr`
+      fi
+      if [ $CURR_VERSION -gt $VERSION ] ; then
+	  BASE=`expr $CURR_VERSION - $VERSION + 1`
+	  echo $BASE > version.base
+	  VERSION=$CURR_VERSION
+      fi
+      echo $VERSION > version.curr
+      VERSION=`echo $VERSION | awk ' { printf "1.%02.02f", $1/100 }'`
+      rm -f version.tmp
+      echo "$VERSION" > vad_version
+  fi
+}
+
 virtuoso_start() {
   echo "Starting $SERVER"
   echo $BUILD
@@ -242,7 +283,7 @@ sticker_init() {
   echo "  <name package=\"Briefcase\">" >> $STICKER
   echo "    <prop name=\"Title\" value=\"ODS Briefcase\"/>" >> $STICKER
   echo "    <prop name=\"Developer\" value=\"OpenLink Software\"/>" >> $STICKER
-  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2011 OpenLink Software\"/>" >> $STICKER
+  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2012 OpenLink Software\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.com/virtuoso\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.co.uk/virtuoso\"/>" >> $STICKER
   echo "  </name>" >> $STICKER
@@ -254,8 +295,8 @@ sticker_init() {
   echo "<dependencies>" >> $STICKER
   echo "  <require>" >> $STICKER
   echo "    <name package=\"Framework\"/>" >> $STICKER
-  echo "    <versions_later package=\"1.82.62\">" >> $STICKER
-  echo "      <prop name=\"Date\" value=\"2011-07-12 12:00\" />" >> $STICKER
+  echo "    <versions_later package=\"1.86.16\">" >> $STICKER
+  echo "      <prop name=\"Date\" value=\"2012-04-18 12:00\" />" >> $STICKER
   echo "      <prop name=\"Comment\" value=\"An incompatible version of the ODS Framework\" />" >> $STICKER
   echo "    </versions_later>" >> $STICKER
   echo "  </require>" >> $STICKER
@@ -293,6 +334,11 @@ sticker_init() {
   echo "      DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"/oDrive/new/od-a-ods.sql', 1, 'report', $ISDAV);" >> $STICKER
   echo "      DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"/oDrive/new/od-a-update.sql', 1, 'report', $ISDAV);" >> $STICKER
   echo "      DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"/oDrive/new/sioc_briefcase.sql', 1, 'report', $ISDAV);" >> $STICKER
+  echo "      DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"/oDrive/new/DET_GDrive.sql', 1, 'report', $ISDAV);" >> $STICKER
+  echo "      DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"/oDrive/new/DET_Dropbox.sql', 1, 'report', $ISDAV);" >> $STICKER
+  echo "      DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"/oDrive/new/DET_SkyDrive.sql', 1, 'report', $ISDAV);" >> $STICKER
+  echo "      DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"/oDrive/new/DET_Box.sql', 1, 'report', $ISDAV);" >> $STICKER
+  echo "      DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"/oDrive/new/DET_WebDAV.sql', 1, 'report', $ISDAV);" >> $STICKER
   echo "    ]]>" >> $STICKER
   echo "  </sql>" >> $STICKER
   echo "  <sql purpose=\"pre-uninstall\">" >> $STICKER
@@ -402,6 +448,7 @@ echo '----------------------'
 
 STOP_SERVER
 directory_clean
+version_init
 directory_init
 virtuoso_init
 if [ "$MODE" = "" ] || [ "$MODE" = "1" ]
@@ -427,6 +474,7 @@ then
 	$myrm -f *.vad
 	exit 1
 fi
+
 directory_clean
 
 BANNER "COMPLETED VAD PACKAGING"
diff --git a/appsrc/ODS-Briefcase/new/DET_Box.sql b/appsrc/ODS-Briefcase/new/DET_Box.sql
new file mode 100644
index 0000000..e595f13
--- /dev/null
+++ b/appsrc/ODS-Briefcase/new/DET_Box.sql
@@ -0,0 +1,1611 @@
+--
+--  $Id: DET_Box.sql,v 1.2 2012/06/13 13:49:48 ddimitrov Exp $
+--
+--  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+--  project.
+--
+--  Copyright (C) 1998-2012 OpenLink Software
+--
+--  This project is free software; you can redistribute it and/or modify it
+--  under the terms of the GNU General Public License as published by the
+--  Free Software Foundation; only version 2 of the License, dated June 1991.
+--
+--  This program is distributed in the hope that it will be useful, but
+--  WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+--  General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License along
+--  with this program; if not, write to the Free Software Foundation, Inc.,
+--  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+--
+
+use DB
+;
+
+--| This matches DAV_AUTHENTICATE (in id any, in what char(1), in req varchar, in a_uname varchar, in a_pwd varchar, in a_uid integer := null)
+--| The difference is that the DET function should not check whether the pair of name and password is valid; the auth_uid is not a null already.
+create function "Box_DAV_AUTHENTICATE" (
+  in id any,
+  in what char(1),
+  in req varchar,
+  in auth_uname varchar,
+  in auth_pwd varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('Box_DAV_AUTHENTICATE (', id, what, req, auth_uname, auth_pwd, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_AUTHENTICATE (id[2], what, req, auth_uname, auth_pwd, auth_uid);
+
+  return retValue;
+}
+;
+
+--| This exactly matches DAV_AUTHENTICATE_HTTP (in id any, in what char(1), in req varchar, in can_write_http integer, inout a_lines any, inout a_uname varchar, inout a_pwd varchar, inout a_uid integer, inout a_gid integer, inout _perms varchar) returns integer
+--| The function should fully check access because DAV_AUTHENTICATE_HTTP do nothing with auth data either before or after calling this DET function.
+--| Unlike DAV_AUTHENTICATE, user name passed to DAV_AUTHENTICATE_HTTP header may not match real DAV user.
+--| If DET call is successful, DAV_AUTHENTICATE_HTTP checks whether the user have read permission on mount point collection.
+--| Thus even if DET function allows anonymous access, the whole request may fail if mountpoint is not readable by public.
+create function "Box_DAV_AUTHENTICATE_HTTP" (
+  in id any,
+  in what char(1),
+  in req varchar,
+  in can_write_http integer,
+  inout a_lines any,
+  inout a_uname varchar,
+  inout a_pwd varchar,
+  inout a_uid integer,
+  inout a_gid integer,
+  inout _perms varchar) returns integer
+{
+  -- dbg_obj_princ ('Box_DAV_AUTHENTICATE_HTTP (', id[2], what, req, can_write_http, a_lines, a_uname, a_pwd, a_uid, a_gid, _perms, ')');
+  declare retValue any;
+
+  retValue := DAV_AUTHENTICATE_HTTP (id[2], what, req, can_write_http, a_lines, a_uname, a_pwd, a_uid, a_gid, _perms);
+
+  return retValue;
+}
+;
+
+--| This should return ID of the collection that contains resource or collection with given ID,
+--| Possible ambiguity (such as symlinks etc.) should be resolved by using path.
+--| This matches DAV_GET_PARENT (in id any, in st char(1), in path varchar) returns any
+create function "Box_DAV_GET_PARENT" (
+  in id any,
+  in what char(1),
+  in path varchar) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_GET_PARENT (', id, what, path, ')');
+  declare retValue any;
+
+  retValue := DAV_GET_PARENT (id[2], what, path);
+  if (DAV_HIDE_ERROR (retValue) is not null)
+    retValue := vector (DB.DBA.Box__detName (), id[1], retValue, 'C');
+
+  return retValue;
+}
+;
+
+--| When DAV_COL_CREATE_INT calls DET function, authentication, check for lock and check for overwrite are passed, uid and gid are translated from strings to IDs.
+--| Check for overwrite, but the deletion of previously existing collection should be made by DET function.
+create function "Box_DAV_COL_CREATE" (
+  in detcol_id any,
+  in path_parts any,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer,
+  in extern integer := 0) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_COL_CREATE (', detcol_id, path_parts, permissions, uid, gid, auth_uid, extern, ')');
+  declare ouid, ogid integer;
+  declare title, parentListID, listID, listItem varchar;
+  declare url, body, header any;
+  declare retValue, retHeader, result, save, parentID any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  if (save is null)
+  {
+    title := path_parts[length (path_parts)-2];
+    parentListID := DB.DBA.Box__root ();
+    if (length (path_parts) > 2)
+    {
+      parentID := DB.DBA.DAV_SEARCH_ID (DB.DBA.Box__path (detcol_id, path_parts), 'P');
+      parentListID := DB.DBA.Box__paramGet (parentID, 'C', 'id', 0);
+    }
+    url := sprintf ('https://api.box.com/2.0/folders/%s', parentListID);
+    header := null;
+    body := sprintf ('{"name": "%s"}', title);
+    result := DB.DBA.Box__exec (detcol_id, retHeader, 'POST', url, header, body);
+    if (DAV_HIDE_ERROR (result) is null)
+    {
+      retValue := result;
+      goto _exit;
+    }
+    listItem := subseq (ODS..json2obj (result), 2);
+    listItem := DB.DBA.Box__removeKeyword ('item_collection', listItem);
+    listID := get_keyword ('id', listItem);
+  }
+  connection_set ('dav_store', 1);
+  DB.DBA.Box__owner (detcol_id, path_parts, DB.DBA.Box__user (uid, auth_uid), DB.DBA.Box__user (gid, auth_uid), ouid, ogid);
+  retValue := DAV_COL_CREATE_INT (DB.DBA.Box__path (detcol_id, path_parts), permissions, DB.DBA.Box__user (uid, auth_uid), DB.DBA.Box__user (gid, auth_uid), DB.DBA.Box__user (http_dav_uid ()), DB.DBA.Box__password (http_dav_uid ()), 1, 0, 1, ouid, ogid);
+
+_exit:;
+  connection_set ('dav_store', save);
+  if (DAV_HIDE_ERROR (retValue) is not null)
+  {
+    if (save is null)
+    {
+      DB.DBA.Box__paramSet (retValue, 'C', 'Entry', DB.DBA.Box__obj2xml (listItem), 0);
+      DB.DBA.Box__paramSet (retValue, 'C', 'id', listID, 0);
+    }
+    DB.DBA.Box__paramSet (retValue, 'C', 'virt:DETCOL_ID', cast (detcol_id as varchar), 0, 0);
+    retValue := vector (DB.DBA.Box__detName (), detcol_id, retValue, 'C');
+  }
+
+  return retValue;
+}
+;
+
+--| It looks like that this is redundant and should be removed at all.
+create function "Box_DAV_COL_MOUNT" (
+  in detcol_id any,
+  in path_parts any,
+  in full_mount_path varchar,
+  in mount_det varchar,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_COL_MOUNT (', detcol_id, path_parts, full_mount_path, mount_det, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| It looks like that this is redundant and should be removed at all.
+create function "Box_DAV_COL_MOUNT_HERE" (
+  in parent_id any,
+  in full_mount_path varchar,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_COL_MOUNT_HERE (', parent_id, full_mount_path, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_DELETE_INT calls DET function, authentication and check for lock are passed.
+create function "Box_DAV_DELETE" (
+  in detcol_id any,
+  in path_parts any,
+  in what char(1),
+  in silent integer,
+  in auth_uid integer) returns integer
+{
+  -- dbg_obj_princ ('Box_DAV_DELETE (', detcol_id, path_parts, what, silent, auth_uid, ')');
+  declare path, listId varchar;
+  declare retValue, save any;
+  declare id, url, header, retHeader, params any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  path := DB.DBA.Box__path (detcol_id, path_parts);
+  id := DB.DBA.DAV_SEARCH_ID (path, what);
+  if (save is null)
+  {
+    listId := DB.DBA.Box__paramGet (id, what, 'id', 0);
+    header := null;
+    url := sprintf ('https://api.box.com/2.0/%s/%s', case when what = 'R' then 'files' else 'folders' end, listId);
+    retValue := DB.DBA.Box__exec (detcol_id, retHeader, 'DELETE', url, header);
+    if (DAV_HIDE_ERROR (retValue) is null)
+      goto _exit;
+  }
+  connection_set ('dav_store', 1);
+  if (what = 'R')
+    DB.DBA.Box__rdf_delete (detcol_id, id, what);
+  retValue := DAV_DELETE_INT (path, 1, null, null, 0, 0);
+
+_exit:;
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| When DAV_RES_UPLOAD_STRSES_INT calls DET function, authentication and check for locks are performed before the call.
+--| There's a special problem, known as 'Transaction deadlock after reading from HTTP session'.
+--| The DET function should do only one INSERT of the 'content' into the table and do it as late as possible.
+--| The function should return -29 if deadlocked or otherwise broken after reading blob from HTTP.
+create function "Box_DAV_RES_UPLOAD" (
+  in detcol_id any,
+  in path_parts any,
+  inout content any,
+  in type varchar,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_RES_UPLOAD (', detcol_id, path_parts, ', [content], ', type, permissions, uid, gid, auth_uid, ')');
+  declare ouid, ogid integer;
+  declare name, path, parentListID, listID, listItem, rdf_graph varchar;
+  declare url, header, body, params any;
+  declare retValue, retHeader, result, save, parentID any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  path := DB.DBA.Box__path (detcol_id, path_parts);
+  if (save is null)
+  {
+    if (__tag (content) = 126)
+    {
+      declare real_content any;
+
+      real_content := http_body_read (1);
+      content := string_output_string (real_content);  -- check if bellow code can work with string session and if so remove this line
+    }
+    name := path_parts[length (path_parts)-1];
+    parentListID := DB.DBA.Box__root ();
+    if (length (path_parts) > 1)
+    {
+      parentID := DB.DBA.DAV_SEARCH_ID (DB.DBA.Box__path (detcol_id, path_parts), 'P');
+      parentListID := DB.DBA.Box__paramGet (parentID, 'C', 'id', 0);
+    }
+    url := 'https://api.box.com/2.0/files/data';
+    header := 'Content-Type: multipart/form-data; boundary=A300x\r\n';
+    body := sprintf (
+      '--A300x\r\n' ||
+      'content-disposition: form-data; name="folder_id"\r\n' ||
+      '\r\n' ||
+      '%s\r\n' ||
+      '--A300x\r\n' ||
+      'Content-Disposition: form-data; name="filename"; filename="%s"\r\n' ||
+      'Content-Type: application/octet-stream\r\n' ||
+      '\r\n' ||
+      '%s\r\n' ||
+      '--A300x--',
+      parentListID,
+      name,
+      blob_to_string (content)
+    );
+    result := DB.DBA.Box__exec (detcol_id, retHeader, 'POST', url, header, body);
+    if (DAV_HIDE_ERROR (result) is null)
+    {
+      retValue := result;
+      goto _exit;
+    }
+    listItem := ODS..json2obj (result);
+    listID := get_keyword ('id', listItem);
+    if (isnull (listID) and (get_keyword ('total_count', listItem) = 1))
+    {
+      listItem := get_keyword ('entries', listItem)[0];
+      listID := get_keyword ('id', listItem);
+      url := sprintf ('https://api.box.com/2.0/files/%s', listID);
+      result := DB.DBA.Box__exec (detcol_id, retHeader, 'GET', url);
+      if (DAV_HIDE_ERROR (retValue) is null)
+      {
+        retValue := result;
+        goto _exit;
+      }
+      listItem := ODS..json2obj (result);
+    }
+  }
+_skip_create:;
+  connection_set ('dav_store', 1);
+  DB.DBA.Box__owner (detcol_id, path_parts, DB.DBA.Box__user (uid, auth_uid), DB.DBA.Box__user (gid, auth_uid), ouid, ogid);
+  retValue := DAV_RES_UPLOAD_STRSES_INT (path, content, type, permissions, DB.DBA.Box__user (uid, auth_uid), DB.DBA.Box__user (gid, auth_uid), DB.DBA.Box__user (http_dav_uid ()), DB.DBA.Box__password (http_dav_uid ()), 0, ouid=>ouid, ogid=>ogid, check_locks=>0);
+
+_exit:;
+  connection_set ('dav_store', save);
+  if (DAV_HIDE_ERROR (retValue) is not null)
+  {
+    rdf_graph := DB.DBA.Box__paramGet (detcol_id, 'C', 'graph', 0);
+    if (not DB.DBA.is_empty_or_null (rdf_graph))
+      DB.DBA.Box__rdf (detcol_id, retValue, 'R');
+
+    if (save is null)
+    {
+      DB.DBA.Box__paramSet (retValue, 'R', 'Entry', DB.DBA.Box__obj2xml (listItem), 0);
+      DB.DBA.Box__paramSet (retValue, 'R', 'id', listID, 0);
+    }
+    DB.DBA.Box__paramSet (retValue, 'R', 'virt:DETCOL_ID', cast (detcol_id as varchar), 0, 0);
+    retValue := vector (DB.DBA.Box__detName (), detcol_id, retValue, 'R');
+  }
+  return retValue;
+}
+;
+
+--| When DAV_PROP_REMOVE_INT calls DET function, authentication and check for locks are performed before the call.
+--| The check whether it's a system name or not (when an error in returned if name is system) is _not_ permitted.
+--| It should delete any dead property even if the name looks like system name.
+create function "Box_DAV_PROP_REMOVE" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in silent integer,
+  in auth_uid integer) returns integer
+{
+  -- dbg_obj_princ ('Box_DAV_PROP_REMOVE (', id, what, propname, silent, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_PROP_REMOVE_RAW (id[2], what, propname, silent, auth_uid);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_SET_INT calls DET function, authentication and check for locks are performed before the call.
+--| The check whether it's a system property or not is _not_ permitted and the function should return -16 for live system properties.
+create function "Box_DAV_PROP_SET" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in propvalue any,
+  in overwrite integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_PROP_SET (', id, what, propname, propvalue, overwrite, auth_uid, ')');
+  declare retValue any;
+
+  id := id[2];
+  retValue := DB.DBA.DAV_PROP_SET_RAW (id, what, propname, propvalue, 1, http_dav_uid ());
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_GET_INT calls DET function, authentication and check whether it's a system property are performed before the call.
+create function "Box_DAV_PROP_GET" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('Box_DAV_PROP_GET (', id, what, propname, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_PROP_GET_INT (id[2], what, propname, 0);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_LIST_INT calls DET function, authentication is performed before the call.
+--| The returned list should contain only user properties.
+create function "Box_DAV_PROP_LIST" (
+  in id any,
+  in what char(0),
+  in propmask varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('Box_DAV_PROP_LIST (', id, what, propmask, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_PROP_LIST_INT (id[2], what, propmask, 0);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "Box_DAV_DIR_SINGLE" (
+  in id any,
+  in what char(0),
+  in path any,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_DIR_SINGLE (', id, what, path, auth_uid, ')');
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  retValue := DAV_DIR_SINGLE_INT (id[2], what, null, DB.DBA.Box__user (http_dav_uid ()), DB.DBA.Box__password (http_dav_uid ()), http_dav_uid ());
+  connection_set ('dav_store', save);
+  if ((DAV_HIDE_ERROR (retValue) is not null) and (save is null))
+    retValue[4] := vector (DB.DBA.Box__detName (), id[1], retValue[4], what);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "Box_DAV_DIR_LIST" (
+  in detcol_id any,
+  in subPath_parts any,
+  in detcol_parts varchar,
+  in name_mask varchar,
+  in recursive integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_DIR_LIST (', detcol_id, subPath_parts, detcol_parts, name_mask, recursive, auth_uid, ')');
+  declare colId integer;
+  declare what, colPath, movePath varchar;
+  declare boxItem, boxEntry any;
+  declare retValue, save, downloads, listItems, davItems, colEntry, xmlItems, davEntry, listIds, listId any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', null);
+  what := case when ((length (subPath_parts) = 0) or (subPath_parts[length (subPath_parts) - 1] = '')) then 'C' else 'R' end;
+  if ((what = 'R') or (recursive = -1))
+    return DB.DBA.Box_DAV_DIR_SINGLE (detcol_id, what, null, auth_uid);
+
+  colPath := DB.DBA.DAV_CONCAT_PATH (detcol_parts, subPath_parts);
+  colId := DB.DBA.DAV_SEARCH_ID (colPath, 'C');
+
+  downloads := vector ();
+  listItems := DB.DBA.Box__list (detcol_id, detcol_parts, subPath_parts);
+  if (DAV_HIDE_ERROR (listItems) is null)
+    goto _exit;
+
+  if (isinteger (listItems))
+    goto _exit;
+
+  DB.DBA.Box__activity (detcol_id, 'Sync started');
+  {
+    declare _id, _what, _type, _content any;
+    declare title varchar;
+    {
+      declare exit handler for sqlstate '*'
+      {
+        DB.DBA.Box__activity (detcol_id, 'Exec error: ' || __SQL_MESSAGE);
+        goto _exitSync;
+      };
+
+      connection_set ('dav_store', 1);
+      colEntry := DB.DBA.DAV_DIR_SINGLE_INT (colId, 'C', '', null, null, http_dav_uid ());
+      listItems := subseq (ODS..json2obj (listItems), 2);
+      boxItem := DB.DBA.Box__removeKeyword ('item_collection', listItems);
+      boxEntry := DB.DBA.Box__paramGet (colId, 'C', 'Entry', 0);
+      if (not isnull (boxEntry))
+        boxEntry := xtree_doc (boxEntry);
+
+      if (
+          isnull (boxEntry) or
+          isnull (get_keyword ('modified_at', boxItem)) or
+          (get_keyword ('modified_at', boxItem) <> DB.DBA.Box__entryXPath (boxEntry, '/modified_at', 1))
+         )
+      {
+        listItems := get_keyword ('item_collection', listItems, vector ());
+        listItems := get_keyword ('entries', listItems, vector ());
+        listIds := vector ();
+        davItems := DB.DBA.Box__davList (detcol_id, colId);
+        foreach (any davItem in davItems) do
+        {
+          connection_set ('dav_store', 1);
+          listID := DB.DBA.Box__paramGet (davItem[4], davItem[1], 'id', 0);
+          foreach (any listItem in listItems) do
+          {
+            listItem := subseq (listItem, 2);
+            title := get_keyword ('name', listItem);
+            if ((listID = get_keyword ('id', listItem)) and (title = davItem[10]))
+            {
+              listIds := vector_concat (listIds, vector (listID));
+              if (davItem[1] = 'R')
+              {
+                declare downloaded integer;
+
+                downloaded := DB.DBA.Box__paramGet (davItem[4], davItem[1], 'download', 0);
+                if (downloaded is not null)
+                {
+                  downloaded := cast (downloaded as integer);
+                  if (downloaded <= 5)
+                    downloads := vector_concat (downloads, vector (vector (davItem[4], davItem[1])));
+                }
+                else
+                {
+                  DB.DBA.Box__paramSet (davItem[4], davItem[1], 'download', '0', 0);
+                  downloads := vector_concat (downloads, vector (vector (davItem[4], davItem[1])));
+                }
+              }
+              goto _continue;
+            }
+          }
+          if (davItem[1] = 'R')
+            DB.DBA.Box__rdf_delete (detcol_id, davItem[4], davItem[1]);
+          DAV_DELETE_INT (davItem[0], 1, null, null, 0, 0);
+
+        _continue:;
+          commit work;
+        }
+        foreach (any listItem in listItems) do
+        {
+          connection_set ('dav_store', 1);
+          listItem := subseq (listItem, 2);
+          listID := get_keyword ('id', listItem);
+          if (not position (listID, listIDs))
+          {
+            title := get_keyword ('name', listItem);
+            connection_set ('dav_store', 1);
+            if (get_keyword ('type', listItem) = 'folder')
+            {
+              _id := DB.DBA.DAV_COL_CREATE (colPath || title || '/',  colEntry[5], colEntry[7], colEntry[6], DB.DBA.Box__user (http_dav_uid ()), DB.DBA.Box__password (http_dav_uid ()));
+              _what := 'C';
+            }
+            else
+            {
+              _content := '';
+              _type := http_mime_type (title);
+              _id := DB.DBA.DAV_RES_UPLOAD (colPath || title,  _content, _type, colEntry[5], colEntry[7], colEntry[6], DB.DBA.Box__user (http_dav_uid ()), DB.DBA.Box__password (http_dav_uid ()));
+              _what := 'R';
+            }
+            if (DAV_HIDE_ERROR (_id) is not null)
+            {
+              DB.DBA.Box__paramSet (_id, _what, 'id', listID, 0);
+              DB.DBA.Box__paramSet (_id, _what, 'virt:DETCOL_ID', cast (detcol_id as varchar), 0, 0);
+              if (_what = 'R')
+              {
+                DB.DBA.Box__paramSet (_id, _what, 'download', '0', 0);
+                downloads := vector_concat (downloads, vector (vector (_id, _what)));
+              }
+            }
+            commit work;
+          }
+        }
+        -- save colItem
+        DB.DBA.Box__paramSet (colId, 'C', 'Entry', DB.DBA.Box__obj2xml (boxItem), 0);
+        if (not isinteger (colId))
+        {
+        set triggers off;
+        DB.DBA.Box__paramSet (colId, 'C', ':creationdate', DB.DBA.Box__stringdate (get_keyword ('created_at', boxItem)), 0, 0);
+        DB.DBA.Box__paramSet (colId, 'C', ':getlastmodified', DB.DBA.Box__stringdate (get_keyword ('modified_at', boxItem)), 0, 0);
+        set triggers on;
+      }
+    }
+    }
+  _exitSync:
+    connection_set ('dav_store', save);
+  }
+  DB.DBA.Box__activity (detcol_id, 'Sync ended');
+
+_exit:;
+  retValue := DB.DBA.Box__davList (detcol_id, colId);
+  DB.DBA.Box__downloads (detcol_id, downloads);
+
+  return retValue;
+}
+;
+
+--| When DAV_DIR_FILTER_INT calls DET function, authentication is performed before the call and compilation is initialized.
+create function "Box_DAV_DIR_FILTER" (
+  in detcol_id any,
+  in subPath_parts any,
+  in detcol_parts varchar,
+  inout compilation any,
+  in recursive integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_DIR_FILTER (', detcol_id, subPath_parts, detcol_parts, compilation, recursive, auth_uid, ')');
+  return vector();
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "Box_DAV_SEARCH_ID" (
+  in detcol_id any,
+  in path_parts any,
+  in what char(1)) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_SEARCH_ID (', detcol_id, path_parts, what, ')');
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  retValue := DAV_SEARCH_ID (DB.DBA.Box__path (detcol_id, path_parts), what);
+  -- dbg_obj_print ('retValue', retValue);
+  connection_set ('dav_store', save);
+  if ((DAV_HIDE_ERROR (retValue) is not null))
+  {
+    if (isinteger (retValue) and (save is null))
+      retValue := vector (DB.DBA.Box__detName (), detcol_id, retValue, what);
+
+    else if (isarray (retValue) and (save = 1))
+      retValue := retValue[2];
+  }
+  return retValue;
+}
+;
+
+create function "Box_DAV_MAKE_ID" (
+  in detcol_id any,
+  in id any,
+  in what char(1)) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_MAKE_ID (', id, what, ')');
+  declare retValue any;
+
+  retValue := vector (DB.DBA.Box__detName (), detcol_id, id, what);
+
+  return retValue;
+}
+;
+
+--| When DAV_SEARCH_PATH_INT calls DET function, authentication is performed before the call.
+create function "Box_DAV_SEARCH_PATH" (
+  in id any,
+  in what char(1)) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_SEARCH_PATH (', id, what, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DB.DBA.DAV_SEARCH_PATH (davId, what);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| When DAV_COPY_INT calls DET function, authentication and check for locks are performed before the call, but no check for existing/overwrite.
+create function "Box_DAV_RES_UPLOAD_COPY" (
+  in detcol_id any,
+  in path_parts any,
+  in source_id any,
+  in what char(1),
+  in overwrite_flags integer,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_RES_UPLOAD_COPY (', detcol_id, path_parts, source_id, what, overwrite_flags, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_COPY_INT calls DET function, authentication and check for locks are performed before the call, but no check for existing/overwrite.
+create function "Box_DAV_RES_UPLOAD_MOVE" (
+  in detcol_id any,
+  in path_parts any,
+  in source_id any,
+  in what char(1),
+  in overwrite_flags integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_RES_UPLOAD_MOVE (', detcol_id, path_parts, source_id, what, overwrite_flags, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_RES_CONTENT or DAV_RES_COPY_INT or DAV_RES_MOVE_INT calls DET function, authentication is made.
+--| If content_mode is 1 then content is a valid output stream before the call.
+create function "Box_DAV_RES_CONTENT" (
+  in id any,
+  inout content any,
+  out type varchar,
+  in content_mode integer) returns integer
+{
+  -- dbg_obj_princ ('Box_DAV_RES_CONTENT (', id, ', [content], [type], ', content_mode, ')');
+  declare retValue any;
+
+  retValue := DAV_RES_CONTENT_INT (id[2], content, type, content_mode, 0);
+
+  return retValue;
+}
+;
+
+--| This adds an extra access path to the existing resource or collection.
+create function "Box_DAV_SYMLINK" (
+  in detcol_id any,
+  in path_parts any,
+  in source_id any,
+  in what char(1),
+  in overwrite integer,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_SYMLINK (', detcol_id, path_parts, source_id, overwrite, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| This gets a list of resources and/or collections as it is returned by DAV_DIR_LIST and and writes the list of quads (old_id, 'what', old_full_path, dereferenced_id, dereferenced_full_path).
+create function "Box_DAV_DEREFERENCE_LIST" (
+  in detcol_id any,
+  inout report_array any) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_DEREFERENCE_LIST (', detcol_id, report_array, ')');
+  return -20;
+}
+;
+
+--| This gets one of reference quads returned by ..._DAV_REREFERENCE_LIST() and returns a record (new_full_path, new_dereferenced_full_path, name_may_vary).
+create function "Box_DAV_RESOLVE_PATH" (
+  in detcol_id any,
+  inout reference_item any,
+  inout old_base varchar,
+  inout new_base varchar) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_RESOLVE_PATH (', detcol_id, reference_item, old_base, new_base, ')');
+  return -20;
+}
+;
+
+--| There's no API function to lock for a while (do we need such?) The "LOCK" DAV method checks that all parameters are valid but does not check for existing locks.
+create function "Box_DAV_LOCK" (
+  in path any,
+  in id any,
+  in what char(1),
+  inout locktype varchar,
+  inout scope varchar,
+  in token varchar,
+  inout owner_name varchar,
+  inout owned_tokens varchar,
+  in depth varchar,
+  in timeout_sec integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_LOCK (', path, id, what, locktype, scope, token, owner_name, owned_tokens, depth, timeout_sec, auth_uid, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_LOCK_INT (path, davId, what, locktype, scope, token, owner_name, owned_tokens, depth, timeout_sec, DB.DBA.Box__user (auth_uid), DB.DBA.Box__password (auth_uid), auth_uid);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| There's no API function to unlock for a while (do we need such?) The "UNLOCK" DAV method checks that all parameters are valid but does not check for existing locks.
+create function "Box_DAV_UNLOCK" (
+  in id any,
+  in what char(1),
+  in token varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('Box_DAV_UNLOCK (', id, what, token, auth_uid, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_UNLOCK_INT (davId, what, token, DB.DBA.Box__user (auth_uid), DB.DBA.Box__password (auth_uid), auth_uid);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| The caller does not check if id is valid.
+--| This returns -1 if id is not valid, 0 if all existing locks are listed in owned_tokens whitespace-delimited list, 1 for soft 2 for hard lock.
+create function "Box_DAV_IS_LOCKED" (
+  inout id any,
+  inout what char(1),
+  in owned_tokens varchar) returns integer
+{
+  -- dbg_obj_princ ('Box_DAV_IS_LOCKED (', id, what, owned_tokens, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_IS_LOCKED_INT (davId, what, owned_tokens);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| The caller does not check if id is valid.
+--| This returns -1 if id is not valid, list of tuples (LOCK_TYPE, LOCK_SCOPE, LOCK_TOKEN, LOCK_TIMEOUT, LOCK_OWNER, LOCK_OWNER_INFO) otherwise.
+create function "Box_DAV_LIST_LOCKS" (
+  in id any,
+  in what char(1),
+  in recursive integer) returns any
+{
+  -- dbg_obj_princ ('Box_DAV_LIST_LOCKS" (', id, what, recursive);
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_LIST_LOCKS_INT (davId, what, recursive);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__root ()
+{
+  return '0';
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__fileDebug (
+  in value any,
+  in mode integer := -1)
+{
+  string_to_file ('box.txt', cast (value as varchar) || '\r\n', mode);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__detcolId (
+  in id any)
+{
+  if (isinteger (id))
+    return id;
+
+  return id[1];
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__davId (
+  in id any)
+{
+  if (isinteger (id))
+    return id;
+
+  return id[2];
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__stringdate (
+  in dt varchar)
+{
+	declare N integer;
+	declare rs, tzone, tzone_z, tzone_h, tzone_m any;
+
+	rs := stringdate (subseq (dt, 0, 19));
+	if (length (dt) > 19)
+	{
+		tzone   := subseq (dt, 19);
+		tzone_z := substring (tzone, 1, 1);
+		tzone_h := atoi (substring (tzone, 2, 2));
+		tzone_m := atoi (substring (tzone, 4, 2));
+	  if (tzone_z = '+')
+	  {
+	    tzone_h := tzone_h - 2 * tzone_h;
+	    tzone_m := tzone_m - 2 * tzone_m;
+		}
+	  rs := dateadd ('hour',   tzone_h, rs);
+	  rs := dateadd ('minute', tzone_m, rs);
+	}
+	return rs;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__user (
+  in user_id integer,
+  in default_id integer := null)
+{
+  return coalesce ((select U_NAME from DB.DBA.SYS_USERS where U_ID = coalesce (user_id, default_id)), '');
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__password (
+  in user_id integer)
+{
+  return coalesce ((select pwd_magic_calc(U_NAME, U_PWD, 1) from WS.WS.SYS_DAV_USER where U_ID = user_id), '');
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__detName ()
+{
+  return UNAME'Box';
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__owner (
+  in detcol_id any,
+  in subPath_parts any,
+  in uid any,
+  in gid any,
+  inout ouid integer,
+  inout ogid integer)
+{
+  declare id any;
+  declare path varchar;
+
+  DB.DBA.DAV_OWNER_ID (uid, gid, ouid, ogid);
+  if ((ouid = -12) or (ouid = 5))
+  {
+    path := DB.DBA.Box__path (detcol_id, subPath_parts);
+    id := DB.DBA.DAV_SEARCH_ID (path, 'P');
+    if (DAV_HIDE_ERROR (id))
+    {
+      select COL_OWNER, COL_GROUP
+        into ouid, ogid
+        from WS.WS.SYS_DAV_COL
+       where COL_ID = id;
+    }
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__xml2string (
+  in _xml any)
+{
+  declare stream any;
+
+  stream := string_output ();
+  http_value (_xml, null, stream);
+  return string_output_string (stream);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__path (
+  in detcol_id any,
+  in subPath_parts any)
+{
+  declare N integer;
+  declare path varchar;
+
+  path := rtrim (DB.DBA.DAV_SEARCH_PATH (detcol_id, 'C'), '/');
+  for (N := 0; N < length (subPath_parts); N := N + 1)
+    path := path  || '/' || subPath_parts[N];
+
+  return path;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__params (
+  in colId integer)
+{
+  declare tmp, params any;
+
+  colId := DB.DBA.Box__detcolId (colId);
+  tmp := DB.DBA.Box__paramGet (colId, 'C', 'Authentication', 0);
+  if (tmp = 'Yes')
+  {
+    params := vector (
+      'authentication', tmp,
+      'auth_token',     DB.DBA.Box__paramGet (colId, 'C', 'auth_token', 0, 1, 1),
+      'api_key',        (select a_key from OAUTH..APP_REG where a_name = 'Box Net API' and a_owner = 0),
+      'graph',          DB.DBA.Box__paramGet (colId, 'C', 'graph', 0)
+    );
+  }
+  else
+  {
+    params := vector ('authentication', 'No');
+  }
+  return params;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__paramSet (
+  in _id any,
+  in _what varchar,
+  in _propName varchar,
+  in _propValue any,
+  in _serialized integer := 1,
+  in _prefixed integer := 1,
+  in _encrypt integer := 0)
+{
+  -- dbg_obj_princ ('DB.DBA.Box__paramSet', _propName, _propValue, ')');
+  declare retValue any;
+
+  if (_serialized)
+    _propValue := serialize (_propValue);
+
+  if (_encrypt)
+    _propValue := pwd_magic_calc ('box', _propValue);
+
+  if (_prefixed)
+    _propName := 'virt:Box-' || _propName;
+
+  _id := DB.DBA.Box__davId (_id);
+  retValue := DB.DBA.DAV_PROP_SET_RAW (_id, _what, _propName, _propValue, 1, http_dav_uid ());
+
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__paramGet (
+  in _id any,
+  in _what varchar,
+  in _propName varchar,
+  in _serialized integer := 1,
+  in _prefixed integer := 1,
+  in _decrypt integer := 0)
+{
+  -- dbg_obj_princ ('DB.DBA.Box__paramGet (', _id, _what, _propName, ')');
+  declare propValue any;
+
+  if (_prefixed)
+    _propName := 'virt:Box-' || _propName;
+
+  propValue := DB.DBA.DAV_PROP_GET_INT (DB.DBA.Box__davId (_id), _what, _propName, 0, DB.DBA.Box__user (http_dav_uid ()), DB.DBA.Box__password (http_dav_uid ()), http_dav_uid ());
+  if (isinteger (propValue))
+    propValue := null;
+
+  if (_serialized and not isnull (propValue))
+    propValue := deserialize (propValue);
+
+  if (_decrypt and not isnull (propValue))
+    propValue := pwd_magic_calc ('box', propValue, 1);
+
+  return propValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__paramRemove (
+  in _id any,
+  in _what varchar,
+  in _propName varchar,
+  in _prefixed integer := 1)
+{
+  -- dbg_obj_princ ('DB.DBA.Box__paramRemove (', _id, _what, _propName, ')');
+  if (_prefixed)
+    _propName := 'virt:Box-' || _propName;
+
+  DB.DBA.DAV_PROP_REMOVE_RAW (DB.DBA.Box__davId (_id), _what, _propName, 1, http_dav_uid());
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__obj2xml (
+  in item any)
+{
+  return '<entry>' || ODS..obj2xml (item, 10) || '</entry>';
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__entryXPath (
+  in _xml any,
+  in _xpath varchar,
+  in _cast integer := 0)
+{
+  declare retValue any;
+
+  if (_cast)
+  {
+    retValue := serialize_to_UTF8_xml (xpath_eval (sprintf ('[ xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005" ] string (//entry%s)', _xpath), _xml, 1));
+  } else {
+    retValue := xpath_eval ('[ xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005" ] //entry' || _xpath, _xml, 1);
+  }
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__removeKeyword (
+  in    name   varchar,
+  inout params any)
+{
+  declare N integer;
+  declare retValue any;
+
+  retValue := vector ();
+  for (N := 0; N < length (params); N := N + 2)
+    if (params[N] <> name)
+      retValue := vector_concat (retValue, vector (params[N], params[N+1]));
+
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__exec_error (
+  in _header any,
+  in _silent integer := 0)
+{
+  if ((_header[0] like 'HTTP/1._ 4__ %') or (_header[0] like 'HTTP/1._ 5__ %'))
+  {
+    if (not _silent)
+      signal ('22023', trim (_header[0], '\r\n'));
+
+    return 0;
+  }
+  return 1;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__exec_code (
+  in _header any)
+{
+  return subseq (_header[0], 9, 12);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__exec (
+  inout detcol_id integer,
+  inout retHeader varchar,
+  in method varchar,
+  in url varchar,
+  in header varchar := '',
+  in content varchar := '')
+{
+  -- dbg_obj_princ ('DB.DBA.Box__exec (', detcol_id, method, url, header, ')');
+  declare retValue, params any;
+  declare _client_id, _client_secret, _return_url varchar;
+  declare _expires_in, _access_timestamp, _token_type, _refresh_token any;
+  declare tmp, _json, _prefix, _reqHeader, _resHeader, _body any;
+  declare exit handler for sqlstate '*'
+  {
+    DB.DBA.Box__activity (detcol_id, 'Exec error: ' || __SQL_MESSAGE);
+    return -28;
+  };
+
+  params := DB.DBA.Box__params (detcol_id);
+  if (get_keyword ('authentication', params) <> 'Yes')
+  {
+    DB.DBA.Box__activity (detcol_id, 'Error: Not authenticated');
+    return -28;
+  }
+
+  _reqHeader := sprintf ('Authorization: BoxAuth api_key=%s&auth_token=%s\r\n', get_keyword ('api_key', params), get_keyword ('auth_token', params));
+  if (header <> '')
+    _reqHeader :=  _reqHeader || header;
+
+  retHeader := null;
+  retValue := http_client_ext (url=>url, http_method=>method, http_headers=>_reqHeader, headers =>retHeader, body=>content, n_redirects=>15);
+  -- dbg_obj_print ('retValue', DB.DBA.Box__exec_code (retHeader), url, method, _reqHeader, content);
+  if (not DB.DBA.Box__exec_error (retHeader, 1))
+  {
+    DB.DBA.Box__activity (detcol_id, 'HTTP error: ' || retValue);
+    return -28;
+  }
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__davList (
+  inout detcol_id integer,
+  inout colId integer)
+{
+  declare retValue any;
+
+  vectorbld_init (retValue);
+  for (select vector (RES_FULL_PATH,
+                      'R',
+                      length (RES_CONTENT),
+                      RES_MOD_TIME,
+                      vector (DB.DBA.Box__detName (), detcol_id, RES_ID, 'R'),
+                      RES_PERMS,
+                      RES_GROUP,
+                      RES_OWNER,
+                      RES_CR_TIME,
+                      RES_TYPE,
+                      RES_NAME ) as I
+         from WS.WS.SYS_DAV_RES
+        where RES_COL = DB.DBA.Box__davId (colId)) do
+  {
+    vectorbld_acc (retValue, i);
+  }
+
+  for (select vector (WS.WS.COL_PATH (COL_ID),
+                      'C',
+                      0,
+                      COL_MOD_TIME,
+                      vector (DB.DBA.Box__detName (), detcol_id, COL_ID, 'C'),
+                      COL_PERMS,
+                      COL_GROUP,
+                      COL_OWNER,
+                      COL_CR_TIME,
+                      'dav/unix-directory',
+                      COL_NAME) as I
+        from WS.WS.SYS_DAV_COL
+       where COL_PARENT = DB.DBA.Box__davId (colId)) do
+  {
+    vectorbld_acc (retValue, i);
+  }
+
+  vectorbld_final (retValue);
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__list (
+  inout detcol_id any,
+  inout detcol_parts varchar,
+  inout subPath_parts varchar)
+{
+  -- dbg_obj_princ ('DB.DBA.Box__list (', detcol_id, detcol_parts, subPath_parts, ')');
+  declare colId integer;
+  declare colPath, listId varchar;
+  declare syncTime datetime;
+  declare retValue, retHeader, value, entry any;
+
+  colPath := DB.DBA.DAV_CONCAT_PATH (detcol_parts, subPath_parts);
+  colId := DB.DBA.Box__davId (DB.DBA.DAV_SEARCH_ID (colPath, 'C'));
+  if (DAV_HIDE_ERROR (colId) is null)
+    return -28;
+
+  syncTime := DB.DBA.Box__paramGet (colId, 'C', 'syncTime');
+  if (not isnull (syncTime) and (datediff ('second', syncTime, now ()) < 30))
+    return 0;
+
+  if (length (subPath_parts) = 1)
+  {
+    listId := DB.DBA.Box__root ();
+  }
+  else
+  {
+    listId := DB.DBA.Box__paramGet (colId, 'C', 'id', 0);
+    if (isnull (listId))
+      return -28;
+  }
+  retValue := DB.DBA.Box__exec (detcol_id, retHeader, 'GET', sprintf ('https://api.box.com/2.0/folders/%s', listId));
+  -- dbg_obj_print ('retValue', retValue);
+  if (not isinteger (retValue))
+    DB.DBA.Box__paramSet (colId, 'C', 'syncTime', now ());
+
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__activity (
+  in detcol_id integer,
+  in text varchar)
+{
+  -- dbg_obj_princ ('DB.DBA.Box__activity (', detcol_id, text, ')');
+  declare parentId integer;
+  declare parentPath varchar;
+  declare activity_id integer;
+  declare activity, activityName, activityPath, activityContent, activityType varchar;
+  declare davEntry any;
+  declare _errorCount integer;
+  declare exit handler for sqlstate '*'
+  {
+    if (__SQL_STATE = '40001')
+    {
+      rollback work;
+      if (_errorCount > 5)
+        resignal;
+
+      delay (1);
+      _errorCount := _errorCount + 1;
+      goto _start;
+    }
+    return;
+  };
+
+  _errorCount := 0;
+
+_start:;
+  activity := DB.DBA.Box__paramGet (detcol_id, 'C', 'activity', 0);
+  if (activity is null)
+    return;
+
+  if (activity <> 'on')
+    return;
+
+  davEntry := DB.DBA.DAV_DIR_SINGLE_INT (detcol_id, 'C', '', null, null, http_dav_uid ());
+  if (DB.DBA.DAV_HIDE_ERROR (davEntry) is null)
+    return;
+
+  parentId := DB.DBA.DAV_SEARCH_ID (davEntry[0], 'P');
+  if (DB.DBA.DAV_HIDE_ERROR (parentId) is null)
+    return;
+
+  parentPath := DB.DBA.DAV_SEARCH_PATH (parentId, 'C');
+  if (DB.DBA.DAV_HIDE_ERROR (parentPath) is null)
+    return;
+
+  activityContent := '';
+  activityName := davEntry[10] || '_activity.log';
+  activityPath := parentPath || activityName;
+  activity_id := DB.DBA.DAV_SEARCH_ID (activityPath, 'R');
+  if (DB.DBA.DAV_HIDE_ERROR (activity_id) is not null)
+  {
+    DB.DBA.DAV_RES_CONTENT_INT (activity_id, activityContent, activityType, 0, 0);
+    if (activityType <> 'text/plain')
+      return;
+
+    activityContent := cast (activityContent as varchar);
+  }
+  activityContent := activityContent || sprintf ('%s %s\r\n', subseq (datestring (now ()), 0, 19), text);
+  activityType := 'text/plain';
+  DB.DBA.DAV_RES_UPLOAD_STRSES_INT (activityPath, activityContent, activityType, '110100000RR', DB.DBA.Box__user (davEntry[6]), DB.DBA.Box__user (davEntry[7]), extern=>0, check_locks=>0);
+  commit work;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__downloads (
+  in detcol_id integer,
+  in downloads any)
+{
+  declare aq any;
+
+  if (length (downloads) = 0)
+    return;
+
+  set_user_id ('dba');
+  aq := async_queue (1);
+  aq_request (aq, 'DB.DBA.Box__downloads_aq', vector (detcol_id, downloads));
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__downloads_aq (
+  in detcol_id integer,
+  in downloads any)
+{
+  -- dbg_obj_princ ('DB.DBA.Box__downloads_aq (', detcol_id, downloads, ')');
+  declare N, downloaded integer;
+  declare url, listID varchar;
+  declare items, boxItem, listEntry any;
+  declare retValue, retHeader any;
+
+  set_user_id ('dba');
+  N := 0;
+  items := vector ();
+  DB.DBA.Box__activity (detcol_id, sprintf ('Downloading %d file(s)', length (downloads)));
+  foreach (any download in downloads) do
+  {
+    downloaded := DB.DBA.Box__paramGet (download[0], download[1], 'download', 0);
+    if (downloaded is null)
+      goto _continue;
+
+    downloaded := cast (downloaded as integer);
+    if (downloaded > 5)
+      goto _continue;
+
+    listID := DB.DBA.Box__paramGet (download[0], download[1], 'id', 0);
+    if (listID is null)
+      goto _continue;
+
+    url := sprintf ('https://api.box.com/2.0/files/%s', listID);
+    retValue := DB.DBA.Box__exec (detcol_id, retHeader, 'GET', url);
+    if (DAV_HIDE_ERROR (retValue) is null)
+    {
+      downloaded := downloaded + 1;
+      DB.DBA.Box__paramSet (download[0], download[1], 'download', cast (downloaded as varchar), 0);
+    }
+    else
+    {
+      boxItem := ODS..json2obj (retValue);
+      listEntry := DB.DBA.Box__paramGet (download[0], download[1], 'Entry', 0);
+
+      if (listEntry is not null)
+        listEntry := xtree_doc (listEntry);
+
+      if (isnull (listEntry) or (get_keyword ('sha1', boxItem) <> DB.DBA.Box__entryXPath (listEntry, '/sha1', 1)))
+      {
+        DB.DBA.Box__paramSet (download[0], download[1], 'Entry', DB.DBA.Box__obj2xml (boxItem), 0);
+        set triggers off;
+        DB.DBA.Box__paramSet (download[0], download[1], ':creationdate', DB.DBA.Box__stringdate (get_keyword ('created_at', boxItem)), 0, 0);
+        DB.DBA.Box__paramSet (download[0], download[1], ':getlastmodified', DB.DBA.Box__stringdate (get_keyword ('modified_at', boxItem)), 0, 0);
+        set triggers on;
+
+        url := sprintf ('https://api.box.com/2.0/files/%s/data', listID);
+        retValue := DB.DBA.Box__exec (detcol_id, retHeader, 'GET', url);
+        if (DAV_HIDE_ERROR (retValue) is not null)
+        {
+          update WS.WS.SYS_DAV_RES set RES_CONTENT = retValue where RES_ID = DB.DBA.Box__davId (download[0]);
+          DB.DBA.Box__paramRemove (download[0], download[1], 'download');
+          items := vector_concat (items, vector (download));
+          N := N + 1;
+        }
+      }
+    }
+    commit work;
+
+  _continue:;
+  }
+  DB.DBA.Box__activity (detcol_id, sprintf ('Downloaded %d file(s)', N));
+  foreach (any item in items) do
+  {
+    DB.DBA.Box__rdf_delete (detcol_id, item[0], item[1]);
+    DB.DBA.Box__rdf_insert (detcol_id, item[0], item[1]);
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__rdf (
+  in detcol_id integer,
+  in id any,
+  in what varchar)
+{
+  declare aq any;
+
+  set_user_id ('dba');
+  aq := async_queue (1);
+  aq_request (aq, 'DB.DBA.Box__rdf_aq', vector (detcol_id, id, what));
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__rdf_aq (
+  in detcol_id integer,
+  in id any,
+  in what varchar)
+{
+  set_user_id ('dba');
+  DB.DBA.Box__rdf_delete (detcol_id, id, what);
+  DB.DBA.Box__rdf_insert (detcol_id, id, what);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__rdf_insert (
+  in detcol_id integer,
+  in id any,
+  in what varchar,
+  in rdf_graph varchar := null)
+{
+  -- dbg_obj_princ ('DB.DBA.Box__rdf_insert (', detcol_id, id, what, rdf_graph, ')');
+  declare permissions, rdf_graph2 varchar;
+  declare rdf_sponger, rdf_cartridges, rdf_metaCartridges any;
+  declare path, content, type any;
+  declare exit handler for sqlstate '*'
+  {
+    return;
+  };
+
+  if (isnull (rdf_graph))
+    rdf_graph := DB.DBA.Box__paramGet (detcol_id, 'C', 'graph', 0);
+
+  if (DB.DBA.is_empty_or_null (rdf_graph))
+    return;
+
+  permissions := DB.DBA.Box__paramGet (detcol_id, 'C', ':virtpermissions', 0, 0);
+  if (permissions[6] = ascii('0'))
+  {
+    -- add to private graphs
+    if (not SIOC..private_graph_check (rdf_graph))
+      return;
+  }
+
+  id := DB.DBA.Box__davId (id);
+  path := DB.DBA.DAV_SEARCH_PATH (id, what);
+  content := (select RES_CONTENT from WS.WS.SYS_DAV_RES where RES_ID = id);
+  type := (select RES_TYPE from WS.WS.SYS_DAV_RES where RES_ID = id);
+  rdf_sponger := coalesce (DB.DBA.Box__paramGet (detcol_id, 'C', 'sponger', 0), 'on');
+  rdf_cartridges := coalesce (DB.DBA.Box__paramGet (detcol_id, 'C', 'cartridges', 0), '');
+  rdf_metaCartridges := coalesce (DB.DBA.Box__paramGet (detcol_id, 'C', 'metaCartridges', 0), '');
+
+  RDF_SINK_UPLOAD (path, content, type, rdf_graph, rdf_sponger, rdf_cartridges, rdf_metaCartridges);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__rdf_delete (
+  in detcol_id integer,
+  in id any,
+  in what varchar,
+  in rdf_graph varchar := null)
+{
+  -- dbg_obj_princ ('DB.DBA.Box__rdf_delete (', detcol_id, id, what, rdf_graph, ')');
+  declare rdf_graph2 varchar;
+  declare path varchar;
+
+  if (isnull (rdf_graph))
+    rdf_graph := DB.DBA.Box__paramGet (detcol_id, 'C', 'graph', 0);
+
+  if (DB.DBA.is_empty_or_null (rdf_graph))
+    return;
+
+  path := DB.DBA.DAV_SEARCH_PATH (id, what);
+  if (path like '%.gz')
+    path := regexp_replace (path, '\.gz\x24', '');
+
+  rdf_graph2 := 'http://local.virt' || path;
+  SPARQL delete from graph ?:rdf_graph { ?s ?p ?o } where { graph `iri(?:rdf_graph2)` { ?s ?p ?o } };
+  SPARQL clear graph ?:rdf_graph2;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Box__refresh (
+  in path varchar)
+{
+  -- dbg_obj_princ ('DB.DBA.Box__refresh (', path, ')');
+  declare colId any;
+
+  colId := DB.DBA.DAV_SEARCH_ID (path, 'C');
+  if (DAV_HIDE_ERROR (colId) is not null)
+    DB.DBA.Box__paramRemove (colId, 'C', 'syncTime');
+}
+;
diff --git a/appsrc/ODS-Briefcase/new/DET_Dropbox.sql b/appsrc/ODS-Briefcase/new/DET_Dropbox.sql
new file mode 100644
index 0000000..900b729
--- /dev/null
+++ b/appsrc/ODS-Briefcase/new/DET_Dropbox.sql
@@ -0,0 +1,1594 @@
+--
+--  $Id: DET_Dropbox.sql,v 1.2 2012/05/22 05:50:57 ddimitrov Exp $
+--
+--  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+--  project.
+--
+--  Copyright (C) 1998-2012 OpenLink Software
+--
+--  This project is free software; you can redistribute it and/or modify it
+--  under the terms of the GNU General Public License as published by the
+--  Free Software Foundation; only version 2 of the License, dated June 1991.
+--
+--  This program is distributed in the hope that it will be useful, but
+--  WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+--  General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License along
+--  with this program; if not, write to the Free Software Foundation, Inc.,
+--  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+--
+
+use DB
+;
+
+--| This matches DAV_AUTHENTICATE (in id any, in what char(1), in req varchar, in a_uname varchar, in a_pwd varchar, in a_uid integer := null)
+--| The difference is that the DET function should not check whether the pair of name and password is valid; the auth_uid is not a null already.
+create function "Dropbox_DAV_AUTHENTICATE" (
+  in id any,
+  in what char(1),
+  in req varchar,
+  in auth_uname varchar,
+  in auth_pwd varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('Dropbox_DAV_AUTHENTICATE (', id, what, req, auth_uname, auth_pwd, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_AUTHENTICATE (id[2], what, req, auth_uname, auth_pwd, auth_uid);
+
+  return retValue;
+}
+;
+
+--| This exactly matches DAV_AUTHENTICATE_HTTP (in id any, in what char(1), in req varchar, in can_write_http integer, inout a_lines any, inout a_uname varchar, inout a_pwd varchar, inout a_uid integer, inout a_gid integer, inout _perms varchar) returns integer
+--| The function should fully check access because DAV_AUTHENTICATE_HTTP do nothing with auth data either before or after calling this DET function.
+--| Unlike DAV_AUTHENTICATE, user name passed to DAV_AUTHENTICATE_HTTP header may not match real DAV user.
+--| If DET call is successful, DAV_AUTHENTICATE_HTTP checks whether the user have read permission on mount point collection.
+--| Thus even if DET function allows anonymous access, the whole request may fail if mountpoint is not readable by public.
+create function "Dropbox_DAV_AUTHENTICATE_HTTP" (
+  in id any,
+  in what char(1),
+  in req varchar,
+  in can_write_http integer,
+  inout a_lines any,
+  inout a_uname varchar,
+  inout a_pwd varchar,
+  inout a_uid integer,
+  inout a_gid integer,
+  inout _perms varchar) returns integer
+{
+  -- dbg_obj_princ ('Dropbox_DAV_AUTHENTICATE_HTTP (', id[2], what, req, can_write_http, a_lines, a_uname, a_pwd, a_uid, a_gid, _perms, ')');
+  declare retValue any;
+
+  retValue := DAV_AUTHENTICATE_HTTP (id[2], what, req, can_write_http, a_lines, a_uname, a_pwd, a_uid, a_gid, _perms);
+
+  return retValue;
+}
+;
+
+--| This should return ID of the collection that contains resource or collection with given ID,
+--| Possible ambiguity (such as symlinks etc.) should be resolved by using path.
+--| This matches DAV_GET_PARENT (in id any, in st char(1), in path varchar) returns any
+create function "Dropbox_DAV_GET_PARENT" (
+  in id any,
+  in what char(1),
+  in path varchar) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_GET_PARENT (', id, what, path, ')');
+  declare retValue any;
+
+  retValue := DAV_GET_PARENT (id[2], what, path);
+  if (DAV_HIDE_ERROR (retValue) is not null)
+    retValue := vector (DB.DBA.Dropbox__detName (), id[1], retValue, 'C');
+
+  return retValue;
+}
+;
+
+--| When DAV_COL_CREATE_INT calls DET function, authentication, check for lock and check for overwrite are passed, uid and gid are translated from strings to IDs.
+--| Check for overwrite, but the deletion of previously existing collection should be made by DET function.
+create function "Dropbox_DAV_COL_CREATE" (
+  in detcol_id any,
+  in path_parts any,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer,
+  in extern integer := 0) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_COL_CREATE (', detcol_id, path_parts, permissions, uid, gid, auth_uid, extern, ')');
+  declare ouid, ogid integer;
+  declare path, listPath, listItem varchar;
+  declare url, urlParams any;
+  declare retValue, retHeader, result, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  path := DB.DBA.Dropbox__path (detcol_id, path_parts);
+  if (save is null)
+  {
+    listPath := '/' || DB.DBA.DAV_CONCAT_PATH (null, subseq (path_parts, 0, length (path_parts)-1));
+    url := 'https://api.dropbox.com/1/fileops/create_folder';
+    urlParams := sprintf ('root=%U&path=%U', DB.DBA.Dropbox__root (), listPath);
+    result := DB.DBA.Dropbox__exec (detcol_id, retHeader, 'GET', url, urlParams);
+    if (DAV_HIDE_ERROR (result) is null)
+    {
+      retValue := result;
+      goto _exit;
+    }
+    listItem := ODS..json2obj (result);
+    listPath := get_keyword ('path', listItem);
+  }
+  connection_set ('dav_store', 1);
+  DB.DBA.Dropbox__owner (detcol_id, path_parts, DB.DBA.Dropbox__user (uid, auth_uid), DB.DBA.Dropbox__user (gid, auth_uid), ouid, ogid);
+  retValue := DAV_COL_CREATE_INT (path, permissions, DB.DBA.Dropbox__user (uid, auth_uid), DB.DBA.Dropbox__user (gid, auth_uid), DB.DBA.Dropbox__user (http_dav_uid ()), DB.DBA.Dropbox__password (http_dav_uid ()), 1, 0, 1, ouid, ogid);
+
+_exit:;
+  connection_set ('dav_store', save);
+  if (DAV_HIDE_ERROR (retValue) is not null)
+  {
+    if (save is null)
+    {
+      DB.DBA.Dropbox__paramSet (retValue, 'C', 'Entry', DB.DBA.Dropbox__obj2xml (listItem), 0);
+      DB.DBA.Dropbox__paramSet (retValue, 'C', 'path', listPath, 0);
+    }
+    DB.DBA.Dropbox__paramSet (retValue, 'C', 'virt:DETCOL_ID', cast (detcol_id as varchar), 0, 0);
+    retValue := vector (DB.DBA.Dropbox__detName (), detcol_id, retValue, 'C');
+  }
+
+  return retValue;
+}
+;
+
+--| It looks like that this is redundant and should be removed at all.
+create function "Dropbox_DAV_COL_MOUNT" (
+  in detcol_id any,
+  in path_parts any,
+  in full_mount_path varchar,
+  in mount_det varchar,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_COL_MOUNT (', detcol_id, path_parts, full_mount_path, mount_det, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| It looks like that this is redundant and should be removed at all.
+create function "Dropbox_DAV_COL_MOUNT_HERE" (
+  in parent_id any,
+  in full_mount_path varchar,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_COL_MOUNT_HERE (', parent_id, full_mount_path, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_DELETE_INT calls DET function, authentication and check for lock are passed.
+create function "Dropbox_DAV_DELETE" (
+  in detcol_id any,
+  in path_parts any,
+  in what char(1),
+  in silent integer,
+  in auth_uid integer) returns integer
+{
+  -- dbg_obj_princ ('Dropbox_DAV_DELETE (', detcol_id, path_parts, what, silent, auth_uid, ')');
+  declare path, listPath varchar;
+  declare retValue, save any;
+  declare id, url, urlParams, retHeader any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  path := DB.DBA.Dropbox__path (detcol_id, path_parts);
+  id := DB.DBA.DAV_SEARCH_ID (path, what);
+  if (save is null)
+  {
+    listPath := DB.DBA.Dropbox__paramGet (id, what, 'path', 0);
+    url := 'https://api.dropbox.com/1/fileops/delete';
+    urlParams := sprintf ('root=%U&path=%U', DB.DBA.Dropbox__root (), listPath);
+    retValue := DB.DBA.Dropbox__exec (detcol_id, retHeader, 'GET', url, urlParams);
+    if (DAV_HIDE_ERROR (retValue) is null)
+      goto _exit;
+  }
+  connection_set ('dav_store', 1);
+  if (what = 'R')
+    DB.DBA.Dropbox__rdf_delete (detcol_id, id, what);
+  retValue := DAV_DELETE_INT (path, 1, null, null, 0, 0);
+
+_exit:;
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| When DAV_RES_UPLOAD_STRSES_INT calls DET function, authentication and check for locks are performed before the call.
+--| There's a special problem, known as 'Transaction deadlock after reading from HTTP session'.
+--| The DET function should do only one INSERT of the 'content' into the table and do it as late as possible.
+--| The function should return -29 if deadlocked or otherwise broken after reading blob from HTTP.
+create function "Dropbox_DAV_RES_UPLOAD" (
+  in detcol_id any,
+  in path_parts any,
+  inout content any,
+  in type varchar,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_RES_UPLOAD (', detcol_id, path_parts, ', [content], ', type, permissions, uid, gid, auth_uid, ')');
+  declare L integer;
+  declare ouid, ogid integer;
+  declare name, path, listPath, rdf_graph varchar;
+  declare id any;
+  declare url, urlParams any;
+  declare retValue, retHeader, result, save, listItem any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  path := DB.DBA.Dropbox__path (detcol_id, path_parts);
+  id := DB.DBA.DAV_SEARCH_ID (path, 'R');
+  if (save is null)
+  {
+    if (__tag (content) = 126)
+    {
+      declare real_content any;
+
+      real_content := http_body_read (1);
+      content := string_output_string (real_content);  -- check if bellow code can work with string session and if so remove this line
+    }
+    listPath := '/' || DB.DBA.DAV_CONCAT_PATH (null, path_parts);
+    url := sprintf ('https://api-content.dropbox.com/1/files_put/%s%s', DB.DBA.Dropbox__root (), DB.DBA.Dropbox__pathU (listPath));
+    urlParams := 'override=true';
+    result := DB.DBA.Dropbox__exec (detcol_id, retHeader, 'PUT', url, urlParams, '', blob_to_string (content));
+    if (DAV_HIDE_ERROR (result) is null)
+    {
+      retValue := result;
+      goto _exit;
+    }
+    listItem := ODS..json2obj (result);
+    listPath := get_keyword ('path', listItem);
+  }
+  connection_set ('dav_store', 1);
+  DB.DBA.Dropbox__owner (detcol_id, path_parts, DB.DBA.Dropbox__user (uid, auth_uid), DB.DBA.Dropbox__user (gid, auth_uid), ouid, ogid);
+  retValue := DAV_RES_UPLOAD_STRSES_INT (path, content, type, permissions, DB.DBA.Dropbox__user (uid, auth_uid), DB.DBA.Dropbox__user (gid, auth_uid), DB.DBA.Dropbox__user (http_dav_uid ()), DB.DBA.Dropbox__password (http_dav_uid ()), 0, ouid=>ouid, ogid=>ogid, check_locks=>0);
+
+_exit:;
+  connection_set ('dav_store', save);
+  if (DAV_HIDE_ERROR (retValue) is not null)
+  {
+    rdf_graph := DB.DBA.Dropbox__paramGet (detcol_id, 'C', 'graph', 0);
+    if (not DB.DBA.is_empty_or_null (rdf_graph))
+      DB.DBA.Dropbox__rdf (detcol_id, retValue, 'R');
+
+    if (save is null)
+    {
+      DB.DBA.Dropbox__paramSet (retValue, 'R', 'Entry', DB.DBA.Dropbox__obj2xml (listItem), 0);
+      DB.DBA.Dropbox__paramSet (retValue, 'R', 'path', listPath, 0);
+    }
+    DB.DBA.Dropbox__paramSet (retValue, 'R', 'virt:DETCOL_ID', cast (detcol_id as varchar), 0, 0);
+    retValue := vector (DB.DBA.Dropbox__detName (), detcol_id, retValue, 'R');
+  }
+  return retValue;
+}
+;
+
+--| When DAV_PROP_REMOVE_INT calls DET function, authentication and check for locks are performed before the call.
+--| The check whether it's a system name or not (when an error in returned if name is system) is _not_ permitted.
+--| It should delete any dead property even if the name looks like system name.
+create function "Dropbox_DAV_PROP_REMOVE" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in silent integer,
+  in auth_uid integer) returns integer
+{
+  -- dbg_obj_princ ('Dropbox_DAV_PROP_REMOVE (', id, what, propname, silent, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_PROP_REMOVE_RAW (id[2], what, propname, silent, auth_uid);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_SET_INT calls DET function, authentication and check for locks are performed before the call.
+--| The check whether it's a system property or not is _not_ permitted and the function should return -16 for live system properties.
+create function "Dropbox_DAV_PROP_SET" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in propvalue any,
+  in overwrite integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_PROP_SET (', id, what, propname, propvalue, overwrite, auth_uid, ')');
+  declare retValue any;
+
+  id := id[2];
+  retValue := DB.DBA.DAV_PROP_SET_RAW (id, what, propname, propvalue, 1, http_dav_uid ());
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_GET_INT calls DET function, authentication and check whether it's a system property are performed before the call.
+create function "Dropbox_DAV_PROP_GET" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('Dropbox_DAV_PROP_GET (', id, what, propname, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_PROP_GET_INT (id[2], what, propname, 0);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_LIST_INT calls DET function, authentication is performed before the call.
+--| The returned list should contain only user properties.
+create function "Dropbox_DAV_PROP_LIST" (
+  in id any,
+  in what char(0),
+  in propmask varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('Dropbox_DAV_PROP_LIST (', id, what, propmask, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_PROP_LIST_INT (id[2], what, propmask, 0);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "Dropbox_DAV_DIR_SINGLE" (
+  in id any,
+  in what char(0),
+  in path any,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_DIR_SINGLE (', id, what, path, auth_uid, ')');
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  retValue := DAV_DIR_SINGLE_INT (id[2], what, null, DB.DBA.Dropbox__user (http_dav_uid ()), DB.DBA.Dropbox__password (http_dav_uid ()), http_dav_uid ());
+  connection_set ('dav_store', save);
+  if ((DAV_HIDE_ERROR (retValue) is not null) and (save is null))
+    retValue[4] := vector (DB.DBA.Dropbox__detName (), id[1], retValue[4], what);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "Dropbox_DAV_DIR_LIST" (
+  in detcol_id any,
+  in subPath_parts any,
+  in detcol_parts varchar,
+  in name_mask varchar,
+  in recursive integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_DIR_LIST (', detcol_id, subPath_parts, detcol_parts, name_mask, recursive, auth_uid, ')');
+  declare colId integer;
+  declare what, colPath varchar;
+  declare retValue, save, colEntry, davPaths any;
+  declare downloads, listItems, davItems, davDropbox any;
+  declare _id, _what, _type, _content any;
+  declare path, hashValue, title varchar;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', null);
+  what := case when ((length (subPath_parts) = 0) or (subPath_parts[length (subPath_parts) - 1] = '')) then 'C' else 'R' end;
+  if ((what = 'R') or (recursive = -1))
+    return DB.DBA.Dropbox_DAV_DIR_SINGLE (detcol_id, what, null, auth_uid);
+
+  downloads := vector ();
+  colPath := DB.DBA.DAV_CONCAT_PATH (detcol_parts, subPath_parts);
+  colId := DB.DBA.DAV_SEARCH_ID (colPath, 'C');
+  listItems := DB.DBA.Dropbox__list (detcol_id, detcol_parts, subPath_parts);
+  if (DAV_HIDE_ERROR (listItems) is null)
+    goto _exit;
+
+  if (isinteger (listItems))
+    goto _exit;
+
+  DB.DBA.Dropbox__activity (detcol_id, 'Sync started');
+  {
+    declare exit handler for sqlstate '*'
+    {
+      -- dbg_obj_print ('DB.DBA.Dropbox_DAV_DIR_LIST', __SQL_STATE, __SQL_MESSAGE);
+      goto _exit;
+    };
+
+    connection_set ('dav_store', 1);
+    davPaths := vector ();
+    colEntry := DB.DBA.DAV_DIR_SINGLE_INT (colId, 'C', '', null, null, http_dav_uid ());
+    listItems := subseq (ODS..json2obj (listItems), 2);
+    hashValue := get_keyword ('hash', listItems);
+    DB.DBA.Dropbox__paramSet (colId, 'C', 'hash', hashValue, 0);
+    listItems := get_keyword ('contents', listItems);
+    davItems := DB.DBA.Dropbox__davList (detcol_id, colId);
+    foreach (any davItem in davItems) do
+    {
+      path := DB.DBA.Dropbox__paramGet (davItem[4], davItem[1], 'path', 0);
+      foreach (any listItem in listItems) do
+      {
+        if (path = get_keyword ('path', listItem))
+        {
+          davDropbox := DB.DBA.Dropbox__paramGet (davItem[4], davItem[1], 'Entry', 0);
+          if (davDropbox is not null)
+          {
+            davPaths := vector_concat (davPaths, vector (path));
+            davDropbox := xtree_doc (davDropbox);
+            if (DB.DBA.Dropbox__entryXPath (davDropbox, '/rev', 1) <> get_keyword ('rev', listItem))
+            {
+              set triggers off;
+              DB.DBA.Dropbox__paramSet (davItem[4], davItem[1], ':getlastmodified', DB.DBA.Dropbox__stringdate (get_keyword ('modified', listItem)), 0, 0);
+              set triggers on;
+              DB.DBA.Dropbox__paramSet (davItem[4], davItem[1], 'Entry', DB.DBA.Dropbox__obj2xml (listItem), 0);
+              if (davItem[1] = 'R')
+              {
+                DB.DBA.Dropbox__paramSet (davItem[4], davItem[1], 'download', '0', 0);
+                downloads := vector_concat (downloads, vector (vector (davItem[4], davItem[1])));
+              }
+            }
+            else
+            {
+              declare downloaded integer;
+
+              downloaded := DB.DBA.Dropbox__paramGet (davItem[4], davItem[1], 'download', 0);
+              if (downloaded is not null)
+              {
+                downloaded := cast (downloaded as integer);
+                if (downloaded <= 5)
+                  downloads := vector_concat (downloads, vector (vector (davItem[4], davItem[1])));
+              }
+            }
+            goto _continue;
+          }
+        }
+      }
+      if (davItem[1] = 'R')
+        DB.DBA.Dropbox__rdf_delete (detcol_id, davItem[4], davItem[1]);
+
+      DAV_DELETE_INT (davItem[0], 1, null, null, 0, 0);
+
+    _continue:;
+      commit work;
+    }
+    foreach (any listItem in listItems) do
+    {
+      path := get_keyword ('path', listItem);
+      if (not position (path, davPaths))
+      {
+        title := DB.DBA.Dropbox__title (path);
+        connection_set ('dav_store', 1);
+        if (get_keyword ('is_dir', listItem) = 1)
+        {
+          _id := DB.DBA.DAV_COL_CREATE (colPath || title || '/',  colEntry[5], colEntry[7], colEntry[6], DB.DBA.Dropbox__user (http_dav_uid ()), DB.DBA.Dropbox__password (http_dav_uid ()));
+          _what := 'C';
+        }
+        else
+        {
+          _content := '';
+          _type := get_keyword ('mime_type', listItem);
+          _id := DB.DBA.DAV_RES_UPLOAD (colPath || title,  _content, _type, colEntry[5], colEntry[7], colEntry[6], DB.DBA.Dropbox__user (http_dav_uid ()), DB.DBA.Dropbox__password (http_dav_uid ()));
+          _what := 'R';
+        }
+        if (DAV_HIDE_ERROR (_id) is not null)
+        {
+          set triggers off;
+          DB.DBA.Dropbox__paramSet (_id, _what, ':creationdate', DB.DBA.Dropbox__stringdate (get_keyword ('client_mtime', listItem)), 0, 0);
+          DB.DBA.Dropbox__paramSet (_id, _what, ':getlastmodified', DB.DBA.Dropbox__stringdate (get_keyword ('modified', listItem)), 0, 0);
+          set triggers on;
+          DB.DBA.Dropbox__paramSet (_id, _what, 'virt:DETCOL_ID', cast (detcol_id as varchar), 0, 0);
+          DB.DBA.Dropbox__paramSet (_id, _what, 'path', path, 0);
+          DB.DBA.Dropbox__paramSet (_id, _what, 'Entry', DB.DBA.Dropbox__obj2xml (listItem), 0);
+          if (_what = 'R')
+          {
+            DB.DBA.Dropbox__paramSet (_id, _what, 'download', '0', 0);
+            downloads := vector_concat (downloads, vector (vector (_id, _what)));
+        }
+      }
+        commit work;
+    }
+  }
+  }
+  DB.DBA.Dropbox__activity (detcol_id, 'Sync ended');
+
+_exit:
+  connection_set ('dav_store', save);
+
+  retValue := DB.DBA.Dropbox__davList (detcol_id, colId);
+  DB.DBA.Dropbox__downloads (detcol_id, downloads);
+
+  return retValue;
+}
+;
+
+--| When DAV_DIR_FILTER_INT calls DET function, authentication is performed before the call and compilation is initialized.
+create function "Dropbox_DAV_DIR_FILTER" (
+  in detcol_id any,
+  in subPath_parts any,
+  in detcol_parts varchar,
+  inout compilation any,
+  in recursive integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_DIR_FILTER (', detcol_id, subPath_parts, detcol_parts, compilation, recursive, auth_uid, ')');
+  return vector();
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "Dropbox_DAV_SEARCH_ID" (
+  in detcol_id any,
+  in path_parts any,
+  in what char(1)) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_SEARCH_ID (', detcol_id, path_parts, what, ')');
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  retValue := DAV_SEARCH_ID (DB.DBA.Dropbox__path (detcol_id, path_parts), what);
+  connection_set ('dav_store', save);
+  if ((DAV_HIDE_ERROR (retValue) is not null))
+  {
+    if (isinteger (retValue) and (save is null))
+      retValue := vector (DB.DBA.Dropbox__detName (), detcol_id, retValue, what);
+
+    else if (isarray (retValue) and (save = 1))
+      retValue := retValue[2];
+  }
+  return retValue;
+}
+;
+
+create function "Dropbox_DAV_MAKE_ID" (
+  in detcol_id any,
+  in id any,
+  in what char(1)) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_MAKE_ID (', id, what, ')');
+  declare retValue any;
+
+  retValue := vector (DB.DBA.Dropbox__detName (), detcol_id, id, what);
+
+  return retValue;
+}
+;
+
+--| When DAV_SEARCH_PATH_INT calls DET function, authentication is performed before the call.
+create function "Dropbox_DAV_SEARCH_PATH" (
+  in id any,
+  in what char(1)) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_SEARCH_PATH (', id, what, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DB.DBA.DAV_SEARCH_PATH (davId, what);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| When DAV_COPY_INT calls DET function, authentication and check for locks are performed before the call, but no check for existing/overwrite.
+create function "Dropbox_DAV_RES_UPLOAD_COPY" (
+  in detcol_id any,
+  in path_parts any,
+  in source_id any,
+  in what char(1),
+  in overwrite_flags integer,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_RES_UPLOAD_COPY (', detcol_id, path_parts, source_id, what, overwrite_flags, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_COPY_INT calls DET function, authentication and check for locks are performed before the call, but no check for existing/overwrite.
+create function "Dropbox_DAV_RES_UPLOAD_MOVE" (
+  in detcol_id any,
+  in path_parts any,
+  in source_id any,
+  in what char(1),
+  in overwrite_flags integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_RES_UPLOAD_MOVE (', detcol_id, path_parts, source_id, what, overwrite_flags, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_RES_CONTENT or DAV_RES_COPY_INT or DAV_RES_MOVE_INT calls DET function, authentication is made.
+--| If content_mode is 1 then content is a valid output stream before the call.
+create function "Dropbox_DAV_RES_CONTENT" (
+  in id any,
+  inout content any,
+  out type varchar,
+  in content_mode integer) returns integer
+{
+  -- dbg_obj_princ ('Dropbox_DAV_RES_CONTENT (', id, ', [content], [type], ', content_mode, ')');
+  declare retValue any;
+
+  retValue := DAV_RES_CONTENT_INT (id[2], content, type, content_mode, 0);
+
+  return retValue;
+}
+;
+
+--| This adds an extra access path to the existing resource or collection.
+create function "Dropbox_DAV_SYMLINK" (
+  in detcol_id any,
+  in path_parts any,
+  in source_id any,
+  in what char(1),
+  in overwrite integer,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_SYMLINK (', detcol_id, path_parts, source_id, overwrite, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| This gets a list of resources and/or collections as it is returned by DAV_DIR_LIST and and writes the list of quads (old_id, 'what', old_full_path, dereferenced_id, dereferenced_full_path).
+create function "Dropbox_DAV_DEREFERENCE_LIST" (
+  in detcol_id any,
+  inout report_array any) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_DEREFERENCE_LIST (', detcol_id, report_array, ')');
+  return -20;
+}
+;
+
+--| This gets one of reference quads returned by ..._DAV_REREFERENCE_LIST() and returns a record (new_full_path, new_dereferenced_full_path, name_may_vary).
+create function "Dropbox_DAV_RESOLVE_PATH" (
+  in detcol_id any,
+  inout reference_item any,
+  inout old_base varchar,
+  inout new_base varchar) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_RESOLVE_PATH (', detcol_id, reference_item, old_base, new_base, ')');
+  return -20;
+}
+;
+
+--| There's no API function to lock for a while (do we need such?) The "LOCK" DAV method checks that all parameters are valid but does not check for existing locks.
+create function "Dropbox_DAV_LOCK" (
+  in path any,
+  in id any,
+  in what char(1),
+  inout locktype varchar,
+  inout scope varchar,
+  in token varchar,
+  inout owner_name varchar,
+  inout owned_tokens varchar,
+  in depth varchar,
+  in timeout_sec integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_LOCK (', path, id, what, locktype, scope, token, owner_name, owned_tokens, depth, timeout_sec, auth_uid, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_LOCK_INT (path, davId, what, locktype, scope, token, owner_name, owned_tokens, depth, timeout_sec, DB.DBA.Dropbox__user (auth_uid), DB.DBA.Dropbox__password (auth_uid), auth_uid);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| There's no API function to unlock for a while (do we need such?) The "UNLOCK" DAV method checks that all parameters are valid but does not check for existing locks.
+create function "Dropbox_DAV_UNLOCK" (
+  in id any,
+  in what char(1),
+  in token varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('Dropbox_DAV_UNLOCK (', id, what, token, auth_uid, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_UNLOCK_INT (davId, what, token, DB.DBA.Dropbox__user (auth_uid), DB.DBA.Dropbox__password (auth_uid), auth_uid);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| The caller does not check if id is valid.
+--| This returns -1 if id is not valid, 0 if all existing locks are listed in owned_tokens whitespace-delimited list, 1 for soft 2 for hard lock.
+create function "Dropbox_DAV_IS_LOCKED" (
+  inout id any,
+  inout what char(1),
+  in owned_tokens varchar) returns integer
+{
+  -- dbg_obj_princ ('Dropbox_DAV_IS_LOCKED (', id, what, owned_tokens, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_IS_LOCKED_INT (davId, what, owned_tokens);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| The caller does not check if id is valid.
+--| This returns -1 if id is not valid, list of tuples (LOCK_TYPE, LOCK_SCOPE, LOCK_TOKEN, LOCK_TIMEOUT, LOCK_OWNER, LOCK_OWNER_INFO) otherwise.
+create function "Dropbox_DAV_LIST_LOCKS" (
+  in id any,
+  in what char(1),
+  in recursive integer) returns any
+{
+  -- dbg_obj_princ ('Dropbox_DAV_LIST_LOCKS" (', id, what, recursive);
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_LIST_LOCKS_INT (davId, what, recursive);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__root ()
+{
+  return 'dropbox';
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__pathU (
+  in path varchar)
+{
+  return replace (sprintf ('%U', ODRIVE.WA.utf2wide (path)), '%2F', '/');
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__stringdate (
+  in dt varchar)
+{
+	declare _arr, months, rs, tzone_z, tzone_h, tzone_m any;
+	declare d, m, y, hms, tzone varchar;
+
+	_arr := split_and_decode (trim (dt), 0, '\0\0 ');
+	if (length(_arr) = 5)
+	  _arr := vector_concat (vector (''), _arr);
+
+	if (length(_arr) = 6)
+	{
+	  months := vector ('JAN', '01', 'FEB', '02', 'MAR', '03', 'APR', '04', 'MAY', '05', 'JUN', '06', 'JUL', '07', 'AUG', '08', 'SEP', '09', 'OCT', '10', 'NOV', '11', 'DEC', '12');
+		d   := _arr[1];
+		m   := get_keyword (upper(_arr[2]), months);
+		y   := _arr[3];
+		hms := _arr[4];
+		tzone   := _arr[5];
+		tzone_z := substring (tzone, 1, 1);
+		tzone_h := atoi (substring (tzone, 2, 2));
+		tzone_m := atoi (substring (tzone, 4, 2));
+	  if (tzone_z = '+')
+	  {
+	    tzone_h := tzone_h - 2 * tzone_h;
+	    tzone_m := tzone_m - 2 * tzone_m;
+		}
+	  rs := stringdate (sprintf ('%s.%s.%s %s', m, d, y, hms));
+	  rs := dateadd ('hour',   tzone_h, rs);
+	  rs := dateadd ('minute', tzone_m, rs);
+	}
+	else
+	{
+	  rs := stringdate ('1900.01.01 00:00:00'); -- set system date
+	}
+	return rs;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__datestring (
+  in dt datetime)
+{
+  declare z integer;
+  declare d, e, h, m, y, s, k, zh, zm, zz varchar;
+  declare days, months any;
+
+  if (is_empty_or_null (dt))
+    return '';
+
+  days := vector ('01','SUN','02','Mon','03','Thu','04','Wed','05','Thu','06','Fri','07','Sat');
+  months := vector ('01','Jan','02','Feb','03','Mar','04','Apr','05','May','06','Jun','07','Jul','08','Aug','09','Sep','10','Oct','11','Nov','12','Dec');
+
+  d  := xslt_format_number (dayofmonth (dt), '00');
+  m  := xslt_format_number (month (dt), '00');
+  h  := xslt_format_number (hour (dt), '00');
+  e  := xslt_format_number (minute (dt), '00');
+  s  := xslt_format_number (second (dt), '00');
+  k  := xslt_format_number (dayofweek (dt), '00');
+  y  := cast (year (dt) as varchar);
+  z  := timezone (dt);
+  if (z < 0)
+  {
+    zz := '-';
+    z := z-(2*z);
+  } else {
+    zz := '+';
+  }
+  zh := xslt_format_number (z/60, '00');
+  zm := xslt_format_number (mod (z, 60), '00');
+
+  return sprintf ('%s, %s %s %s %s:%s:%s %s%s%s', get_keyword (k, days), d, get_keyword (m, months), y, h, e, s, zz, zh, zm);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__fileDebug (
+  in value any,
+  in mode integer := -1)
+{
+  string_to_file ('dropbox.txt', cast (value as varchar) || '\r\n', mode);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__detcolId (
+  in id any)
+{
+  if (isinteger (id))
+    return id;
+
+  return id[1];
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__davId (
+  in id any)
+{
+  if (isinteger (id))
+    return id;
+
+  return id[2];
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__user (
+  in user_id integer,
+  in default_id integer := null)
+{
+  return coalesce ((select U_NAME from DB.DBA.SYS_USERS where U_ID = coalesce (user_id, default_id)), '');
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__password (
+  in user_id integer)
+{
+  return coalesce ((select pwd_magic_calc(U_NAME, U_PWD, 1) from WS.WS.SYS_DAV_USER where U_ID = user_id), '');
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__owner (
+  in detcol_id any,
+  in subPath_parts any,
+  in uid any,
+  in gid any,
+  inout ouid integer,
+  inout ogid integer)
+{
+  declare id any;
+  declare path varchar;
+
+  DB.DBA.DAV_OWNER_ID (uid, gid, ouid, ogid);
+  if ((ouid = -12) or (ouid = 5))
+  {
+    path := DB.DBA.Dropbox__path (detcol_id, subPath_parts);
+    id := DB.DBA.DAV_SEARCH_ID (path, 'P');
+    if (DAV_HIDE_ERROR (id))
+    {
+      select COL_OWNER, COL_GROUP
+        into ouid, ogid
+        from WS.WS.SYS_DAV_COL
+       where COL_ID = id;
+    }
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__detName ()
+{
+  return UNAME'Dropbox';
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__xml2string (
+  in _xml any)
+{
+  declare stream any;
+
+  stream := string_output ();
+  http_value (_xml, null, stream);
+  return string_output_string (stream);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__path (
+  in detcol_id any,
+  in subPath_parts any)
+{
+  declare N integer;
+  declare path varchar;
+
+  path := rtrim (DB.DBA.DAV_SEARCH_PATH (detcol_id, 'C'), '/');
+  for (N := 0; N < length (subPath_parts); N := N + 1)
+    path := path  || '/' || subPath_parts[N];
+
+  return path;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__params (
+  in colId integer)
+{
+  declare tmp, params any;
+
+  colId := DB.DBA.Dropbox__detcolId (colId);
+  tmp := DB.DBA.Dropbox__paramGet (colId, 'C', 'Authentication', 0);
+  if (tmp = 'Yes')
+  {
+  params := vector (
+      'authentication', tmp,
+      'sid', DB.DBA.Dropbox__paramGet (colId, 'C', 'sid', 0),
+      'graph', DB.DBA.Dropbox__paramGet (colId, 'C', 'graph', 0)
+  );
+  }
+  else
+  {
+    params := vector ('authentication', 'No');
+  }
+  return params;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__paramSet (
+  in _id any,
+  in _what varchar,
+  in _propName varchar,
+  in _propValue any,
+  in _serialized integer := 1,
+  in _prefixed integer := 1,
+  in _encrypt integer := 0)
+{
+  -- dbg_obj_princ ('DB.DBA.Dropbox__paramSet', _propName, _propValue, ')');
+  declare retValue any;
+
+  if (_serialized)
+    _propValue := serialize (_propValue);
+
+  if (_encrypt)
+    _propValue := pwd_magic_calc ('dropbox2012', _propValue);
+
+  if (_prefixed)
+    _propName := 'virt:Dropbox-' || _propName;
+
+  _id := DB.DBA.Dropbox__davId (_id);
+  retValue := DB.DBA.DAV_PROP_SET_RAW (_id, _what, _propName, _propValue, 1, http_dav_uid ());
+
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__paramGet (
+  in _id any,
+  in _what varchar,
+  in _propName varchar,
+  in _serialized integer := 1,
+  in _prefixed integer := 1,
+  in _decrypt integer := 0)
+{
+  -- dbg_obj_princ ('DB.DBA.Dropbox__paramGet (', _id, _what, _propName, ')');
+  declare propValue any;
+
+  if (_prefixed)
+    _propName := 'virt:Dropbox-' || _propName;
+
+  propValue := DB.DBA.DAV_PROP_GET_INT (DB.DBA.Dropbox__davId (_id), _what, _propName, 0, DB.DBA.Dropbox__user (http_dav_uid ()), DB.DBA.Dropbox__password (http_dav_uid ()), http_dav_uid ());
+  if (isinteger (propValue))
+    propValue := null;
+
+  if (_serialized and not isnull (propValue))
+    propValue := deserialize (propValue);
+
+  if (_decrypt and not isnull (propValue))
+    propValue := pwd_magic_calc ('dropbox2012', propValue, 1);
+
+  return propValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__paramRemove (
+  in _id integer,
+  in _what varchar,
+  in _propName varchar,
+  in _prefixed integer := 1)
+{
+  -- dbg_obj_princ ('DB.DBA.Dropbox__paramRemove (', _id, _what, _propName, ')');
+  if (_prefixed)
+    _propName := 'virt:Dropbox-' || _propName;
+
+  DB.DBA.DAV_PROP_REMOVE_RAW (DB.DBA.Dropbox__davId (_id), _what, _propName, 1, http_dav_uid());
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__title (
+  in path varchar)
+{
+  return subseq (path, strrchr (path, '/')+1);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__entryXPath (
+  in _xml any,
+  in _xpath varchar,
+  in _cast integer := 0)
+{
+  declare retValue any;
+
+  if (_cast)
+  {
+    retValue := serialize_to_UTF8_xml (xpath_eval (sprintf ('[ xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005" ] string (//entry%s)', _xpath), _xml, 1));
+  } else {
+    retValue := xpath_eval ('[ xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005" ] //entry' || _xpath, _xml, 1);
+  }
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__obj2xml (
+  in item any)
+{
+  return '<entry>' || ODS..obj2xml (item, 10) || '</entry>';
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__exec_error (
+  in _header any,
+  in _silent integer := 0)
+{
+  if ((_header[0] like 'HTTP/1._ 4__ %') or (_header[0] like 'HTTP/1._ 5__ %'))
+  {
+    if (not _silent)
+      signal ('22023', trim (_header[0], '\r\n'));
+
+    return 0;
+  }
+  return 1;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__exec_code (
+  in _header any)
+{
+  return subseq (_header[0], 9, 12);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__exec (
+  inout detcol_id integer,
+  inout retHeader varchar,
+  in method varchar,
+  in url varchar,
+  in urlParams varchar := '',
+  in header varchar := '',
+  in content varchar := '')
+{
+  -- dbg_obj_princ ('DB.DBA.Dropbox__exec', colId, method, url, urlParams, header, ')');
+  declare callUrl, token, sid varchar;
+  declare retValue, params any;
+  declare exit handler for sqlstate '*'
+  {
+    DB.DBA.Dropbox__activity (detcol_id, 'Exec error: ' || __SQL_MESSAGE);
+    return -28;
+  };
+
+  params := DB.DBA.Dropbox__params (detcol_id);
+  if (get_keyword ('authentication', params) <> 'Yes')
+  {
+    DB.DBA.Dropbox__activity (detcol_id, 'Error: Not authenticated');
+    return -28;
+  }
+
+  sid := get_keyword ('sid', params);
+  token := ODS.ODS_API.get_oauth_tok ('Dropbox API');
+  callUrl := OAUTH..sign_request (method, url, urlParams, token, sid, 1);
+  if (method <> 'GET')
+    callUrl := url || '?' || callUrl;
+
+  retHeader := null;
+  retValue := http_client_ext (url=>callUrl, http_method=>method, http_headers=>header, headers =>retHeader, body=>content, n_redirects=>15);
+  -- dbg_obj_print ('retValue', DB.DBA.Dropbox__exec_code (retHeader), url, method);
+  if (not DB.DBA.Dropbox__exec_error (retHeader, 1))
+  {
+    DB.DBA.Dropbox__activity (detcol_id, 'HTTP error: ' || retValue);
+    return -28;
+  }
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__davList (
+  inout detcol_id integer,
+  inout colId integer)
+{
+  declare retValue any;
+
+  vectorbld_init (retValue);
+  for (select vector (RES_FULL_PATH,
+                      'R',
+                      length (RES_CONTENT),
+                      RES_MOD_TIME,
+                      vector (DB.DBA.Dropbox__detName (), detcol_id, RES_ID, 'R'),
+                      RES_PERMS,
+                      RES_GROUP,
+                      RES_OWNER,
+                      RES_CR_TIME,
+                      RES_TYPE,
+                      RES_NAME ) as I
+         from WS.WS.SYS_DAV_RES
+        where RES_COL = DB.DBA.Dropbox__davId (colId)) do
+  {
+    vectorbld_acc (retValue, i);
+  }
+
+  for (select vector (WS.WS.COL_PATH (COL_ID),
+                      'C',
+                      0,
+                      COL_MOD_TIME,
+                      vector (DB.DBA.Dropbox__detName (), detcol_id, COL_ID, 'C'),
+                      COL_PERMS,
+                      COL_GROUP,
+                      COL_OWNER,
+                      COL_CR_TIME,
+                      'dav/unix-directory',
+                      COL_NAME) as I
+        from WS.WS.SYS_DAV_COL
+       where COL_PARENT = DB.DBA.Dropbox__davId (colId)) do
+  {
+    vectorbld_acc (retValue, i);
+  }
+
+  vectorbld_final (retValue);
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__list (
+  inout detcol_id any,
+  inout detcol_parts varchar,
+  inout subPath_parts varchar)
+{
+  -- dbg_obj_princ ('DB.DBA.Dropbox__list (', detcol_id, detcol_parts, subPath_parts, ')');
+  declare colId integer;
+  declare colPath, path, hashValue varchar;
+  declare syncTime datetime;
+  declare retValue, url, urlParams, retHeader, value, entry any;
+
+  colPath := DB.DBA.DAV_CONCAT_PATH (detcol_parts, subPath_parts);
+  colId := DB.DBA.Dropbox__davId (DB.DBA.DAV_SEARCH_ID (colPath, 'C'));
+  if (DAV_HIDE_ERROR (colId) is null)
+    return -28;
+
+  syncTime := DB.DBA.Dropbox__paramGet (colId, 'C', 'syncTime');
+  if (not isnull (syncTime) and (datediff ('second', syncTime, now ()) < 300))
+    return 0;
+
+  path := '/';
+  if (length (subPath_parts) > 1)
+  {
+    path := DB.DBA.Dropbox__paramGet (colId, 'C', 'path', 0);
+    if (isnull (path))
+      return -28;
+  }
+  urlParams := '';
+  hashValue := DB.DBA.Dropbox__paramGet (colId, 'C', 'hash', 0);
+  if (not isnull (hashValue))
+    urlParams := sprintf ('hash=%U', hashValue);
+
+  url := sprintf ('https://api.dropbox.com/1/metadata/%s%s', DB.DBA.Dropbox__root (), DB.DBA.Dropbox__pathU (path));
+  retValue := DB.DBA.Dropbox__exec (detcol_id, retHeader, 'GET', url, urlParams);
+  -- dbg_obj_print ('retValue', retValue);
+  if (not isinteger (retValue))
+  {
+    DB.DBA.Dropbox__paramSet (colId, 'C', 'syncTime', now ());
+    if (DB.DBA.Dropbox__exec_code (retHeader) = '304')
+      retValue := null;
+  }
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__activity (
+  in detcol_id integer,
+  in text varchar)
+{
+  -- dbg_obj_princ ('DB.DBA.Dropbox__activity (', detcol_id, text, ')');
+  declare parent_id integer;
+  declare parentPath varchar;
+  declare activity_id integer;
+  declare activity, activityName, activityPath, activityContent, activityType varchar;
+  declare davEntry any;
+  declare _errorCount integer;
+  declare exit handler for sqlstate '*'
+  {
+    if (__SQL_STATE = '40001')
+    {
+      rollback work;
+      if (_errorCount > 5)
+        resignal;
+
+      delay (1);
+      _errorCount := _errorCount + 1;
+      goto _start;
+    }
+    return;
+  };
+
+  _errorCount := 0;
+
+_start:;
+  activity := DB.DBA.Dropbox__paramGet (detcol_id, 'C', 'activity', 0);
+  if (activity is null)
+    return;
+
+  if (activity <> 'on')
+    return;
+
+  davEntry := DB.DBA.DAV_DIR_SINGLE_INT (detcol_id, 'C', '', null, null, http_dav_uid ());
+  if (DB.DBA.DAV_HIDE_ERROR (davEntry) is null)
+    return;
+
+  parent_id := DB.DBA.DAV_SEARCH_ID (davEntry[0], 'P');
+  if (DB.DBA.DAV_HIDE_ERROR (parent_id) is null)
+    return;
+
+  parentPath := DB.DBA.DAV_SEARCH_PATH (parent_id, 'C');
+  if (DB.DBA.DAV_HIDE_ERROR (parentPath) is null)
+    return;
+
+  activityContent := '';
+  activityName := davEntry[10] || '_activity.log';
+  activityPath := parentPath || activityName;
+  activity_id := DB.DBA.DAV_SEARCH_ID (activityPath, 'R');
+  if (DB.DBA.DAV_HIDE_ERROR (activity_id) is not null)
+{
+    DB.DBA.DAV_RES_CONTENT_INT (activity_id, activityContent, activityType, 0, 0);
+    if (activityType <> 'text/plain')
+    return;
+
+    activityContent := cast (activityContent as varchar);
+  }
+  activityContent := activityContent || sprintf ('%s %s\r\n', subseq (datestring (now ()), 0, 19), text);
+  activityType := 'text/plain';
+  DB.DBA.DAV_RES_UPLOAD_STRSES_INT (activityPath, activityContent, activityType, '110100000RR', DB.DBA.Dropbox__user (davEntry[6]), DB.DBA.Dropbox__user (davEntry[7]), extern=>0, check_locks=>0);
+  commit work;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__downloads (
+  in detcol_id integer,
+  in downloads any)
+{
+  declare aq any;
+
+  if (length (downloads) = 0)
+    return;
+
+  set_user_id ('dba');
+  aq := async_queue (1);
+  aq_request (aq, 'DB.DBA.Dropbox__downloads_aq', vector (detcol_id, downloads));
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__downloads_aq (
+  in detcol_id integer,
+  in downloads any)
+{
+  declare N, downloaded integer;
+  declare url varchar;
+  declare items, listPath any;
+  declare retValue, retHeader any;
+
+  set_user_id ('dba');
+  N := 0;
+  items := vector ();
+  DB.DBA.Dropbox__activity (detcol_id, sprintf ('Downloading %d file(s)', length (downloads)));
+  foreach (any download in downloads) do
+  {
+    downloaded := DB.DBA.Dropbox__paramGet (download[0], download[1], 'download', 0);
+    if (downloaded is null)
+      goto _continue;
+
+    downloaded := cast (downloaded as integer);
+    if (downloaded > 5)
+      goto _continue;
+
+    listPath := DB.DBA.Dropbox__paramGet (download[0], download[1], 'path', 0);
+    if (listPath is null)
+      goto _continue;
+
+    url := sprintf ('https://api-content.dropbox.com/1/files/%s%s', DB.DBA.Dropbox__root (), DB.DBA.Dropbox__pathU (listPath));
+    retValue := DB.DBA.Dropbox__exec (detcol_id, retHeader, 'GET', url);
+    if (DAV_HIDE_ERROR (retValue) is null)
+    {
+      downloaded := downloaded + 1;
+      DB.DBA.Dropbox__paramSet (download[0], download[1], 'download', cast (downloaded as varchar), 0);
+      goto _continue;
+  }
+    update WS.WS.SYS_DAV_RES set RES_CONTENT = retValue where RES_ID = DB.DBA.Dropbox__davId (download[0]);
+    DB.DBA.Dropbox__paramRemove (download[0], download[1], 'download');
+    commit work;
+    items := vector_concat (items, vector (download));
+    N := N + 1;
+
+  _continue:;
+  }
+  DB.DBA.Dropbox__activity (detcol_id, sprintf ('Downloaded %d file(s)', N));
+  foreach (any item in items) do
+  {
+    DB.DBA.Dropbox__rdf_delete (detcol_id, item[0], item[1]);
+    DB.DBA.Dropbox__rdf_insert (detcol_id, item[0], item[1]);
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__rdf (
+  in detcol_id integer,
+  in id any,
+  in what varchar)
+{
+  declare aq any;
+
+  set_user_id ('dba');
+  aq := async_queue (1);
+  aq_request (aq, 'DB.DBA.Dropbox__rdf_aq', vector (detcol_id, id, what));
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__rdf_aq (
+  in detcol_id integer,
+  in id any,
+  in what varchar)
+{
+  set_user_id ('dba');
+  DB.DBA.Dropbox__rdf_delete (detcol_id, id, what);
+  DB.DBA.Dropbox__rdf_insert (detcol_id, id, what);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__rdf_insert (
+  in detcol_id integer,
+  in id any,
+  in what varchar,
+  in rdf_graph varchar := null)
+{
+  -- dbg_obj_princ ('DB.DBA.Dropbox__rdf_insert (', detcol_id, id, what, rdf_graph, ')');
+  declare permissions, rdf_graph2 varchar;
+  declare rdf_sponger, rdf_cartridges, rdf_metaCartridges any;
+  declare path, content, type any;
+  declare exit handler for sqlstate '*'
+  {
+    return;
+  };
+
+  if (isnull (rdf_graph))
+    rdf_graph := DB.DBA.Dropbox__paramGet (detcol_id, 'C', 'graph', 0);
+
+  if (DB.DBA.is_empty_or_null (rdf_graph))
+    return;
+
+  permissions := DB.DBA.Dropbox__paramGet (detcol_id, 'C', ':virtpermissions', 0, 0);
+  if (permissions[6] = ascii('0'))
+  {
+    -- add to private graphs
+    if (not SIOC..private_graph_check (rdf_graph))
+      return;
+  }
+
+  id := DB.DBA.Dropbox__davId (id);
+  path := DB.DBA.DAV_SEARCH_PATH (id, what);
+  content := (select RES_CONTENT from WS.WS.SYS_DAV_RES where RES_ID = id);
+  type := (select RES_TYPE from WS.WS.SYS_DAV_RES where RES_ID = id);
+  rdf_sponger := coalesce (DB.DBA.Dropbox__paramGet (detcol_id, 'C', 'sponger', 0), 'on');
+  rdf_cartridges := coalesce (DB.DBA.Dropbox__paramGet (detcol_id, 'C', 'cartridges', 0), '');
+  rdf_metaCartridges := coalesce (DB.DBA.Dropbox__paramGet (detcol_id, 'C', 'metaCartridges', 0), '');
+
+  RDF_SINK_UPLOAD (path, content, type, rdf_graph, rdf_sponger, rdf_cartridges, rdf_metaCartridges);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__rdf_delete (
+  in detcol_id integer,
+  in id any,
+  in what varchar,
+  in rdf_graph varchar := null)
+{
+  -- dbg_obj_princ ('DB.DBA.Dropbox__rdf_delete (', detcol_id, id, what, rdf_graph, ')');
+  declare rdf_graph2 any;
+  declare path varchar;
+
+  if (isnull (rdf_graph))
+    rdf_graph := DB.DBA.Dropbox__paramGet (detcol_id, 'C', 'graph', 0);
+
+  if (DB.DBA.is_empty_or_null (rdf_graph))
+    return;
+
+  path := DB.DBA.DAV_SEARCH_PATH (id, what);
+  if (path like '%.gz')
+    path := regexp_replace (path, '\.gz\x24', '');
+
+  rdf_graph2 := 'http://local.virt' || path;
+  SPARQL delete from graph ?:rdf_graph { ?s ?p ?o } where { graph `iri(?:rdf_graph2)` { ?s ?p ?o } };
+  SPARQL clear graph ?:rdf_graph2;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.Dropbox__refresh (
+  in path varchar)
+{
+  -- dbg_obj_princ ('DB.DBA.Dropbox__refresh (', path, ')');
+  declare colId any;
+
+  colId := DB.DBA.DAV_SEARCH_ID (path, 'C');
+  if (DAV_HIDE_ERROR (colId) is not null)
+    DB.DBA.Dropbox__paramRemove (colId, 'C', 'syncTime');
+}
+;
diff --git a/appsrc/ODS-Briefcase/new/DET_GDrive.sql b/appsrc/ODS-Briefcase/new/DET_GDrive.sql
new file mode 100644
index 0000000..f43727c
--- /dev/null
+++ b/appsrc/ODS-Briefcase/new/DET_GDrive.sql
@@ -0,0 +1,1680 @@
+--
+--  $Id: DET_GDrive.sql,v 1.1 2012/05/12 05:50:30 ddimitrov Exp $
+--
+--  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+--  project.
+--
+--  Copyright (C) 1998-2012 OpenLink Software
+--
+--  This project is free software; you can redistribute it and/or modify it
+--  under the terms of the GNU General Public License as published by the
+--  Free Software Foundation; only version 2 of the License, dated June 1991.
+--
+--  This program is distributed in the hope that it will be useful, but
+--  WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+--  General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License along
+--  with this program; if not, write to the Free Software Foundation, Inc.,
+--  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+--
+
+use DB
+;
+
+--| This matches DAV_AUTHENTICATE (in id any, in what char(1), in req varchar, in a_uname varchar, in a_pwd varchar, in a_uid integer := null)
+--| The difference is that the DET function should not check whether the pair of name and password is valid; the auth_uid is not a null already.
+create function "GDrive_DAV_AUTHENTICATE" (
+  in id any,
+  in what char(1),
+  in req varchar,
+  in auth_uname varchar,
+  in auth_pwd varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('GDrive_DAV_AUTHENTICATE (', id, what, req, auth_uname, auth_pwd, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_AUTHENTICATE (id[2], what, req, auth_uname, auth_pwd, auth_uid);
+
+  return retValue;
+}
+;
+
+--| This exactly matches DAV_AUTHENTICATE_HTTP (in id any, in what char(1), in req varchar, in can_write_http integer, inout a_lines any, inout a_uname varchar, inout a_pwd varchar, inout a_uid integer, inout a_gid integer, inout _perms varchar) returns integer
+--| The function should fully check access because DAV_AUTHENTICATE_HTTP do nothing with auth data either before or after calling this DET function.
+--| Unlike DAV_AUTHENTICATE, user name passed to DAV_AUTHENTICATE_HTTP header may not match real DAV user.
+--| If DET call is successful, DAV_AUTHENTICATE_HTTP checks whether the user have read permission on mount point collection.
+--| Thus even if DET function allows anonymous access, the whole request may fail if mountpoint is not readable by public.
+create function "GDrive_DAV_AUTHENTICATE_HTTP" (
+  in id any,
+  in what char(1),
+  in req varchar,
+  in can_write_http integer,
+  inout a_lines any,
+  inout a_uname varchar,
+  inout a_pwd varchar,
+  inout a_uid integer,
+  inout a_gid integer,
+  inout _perms varchar) returns integer
+{
+  -- dbg_obj_princ ('GDrive_DAV_AUTHENTICATE_HTTP (', id[2], what, req, can_write_http, a_lines, a_uname, a_pwd, a_uid, a_gid, _perms, ')');
+  declare retValue any;
+
+  retValue := DAV_AUTHENTICATE_HTTP (id[2], what, req, can_write_http, a_lines, a_uname, a_pwd, a_uid, a_gid, _perms);
+
+  return retValue;
+}
+;
+
+--| This should return ID of the collection that contains resource or collection with given ID,
+--| Possible ambiguity (such as symlinks etc.) should be resolved by using path.
+--| This matches DAV_GET_PARENT (in id any, in st char(1), in path varchar) returns any
+create function "GDrive_DAV_GET_PARENT" (
+  in id any,
+  in what char(1),
+  in path varchar) returns any
+{
+  -- dbg_obj_princ ('GDrive_DAV_GET_PARENT (', id, what, path, ')');
+  declare retValue any;
+
+  retValue := DAV_GET_PARENT (id[2], what, path);
+  if (DAV_HIDE_ERROR (retValue) is not null)
+    retValue := vector (DB.DBA.GDrive__detName (), id[1], retValue, 'C');
+
+  return retValue;
+}
+;
+
+--| When DAV_COL_CREATE_INT calls DET function, authentication, check for lock and check for overwrite are passed, uid and gid are translated from strings to IDs.
+--| Check for overwrite, but the deletion of previously existing collection should be made by DET function.
+create function "GDrive_DAV_COL_CREATE" (
+  in detcol_id any,
+  in path_parts any,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer,
+  in extern integer := 0) returns any
+{
+  -- dbg_obj_princ ('GDrive_DAV_COL_CREATE (', detcol_id, path_parts, permissions, uid, gid, auth_uid, extern, ')');
+  declare ouid, ogid integer;
+  declare parent_id, parent_path any;
+  declare name, parentResourceId, resourceId varchar;
+  declare url, header, body, params any;
+  declare retValue, retHeader, result, save, xmlEntry any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  if (save is null)
+  {
+    name := path_parts[length (path_parts)-2];
+    parentResourceId := 'folder:root';
+    if (length (path_parts) > 2)
+    {
+      parent_id := DB.DBA.DAV_SEARCH_ID (DB.DBA.GDrive__path (detcol_id, path_parts), 'P');
+      parentResourceId := DB.DBA.GDrive__paramGet (parent_id, 'C', 'resourceId', 0);
+    }
+    url := sprintf ('https://docs.google.com/feeds/default/private/full/%U/contents', parentResourceId);
+    body := sprintf (
+      '<?xml version="1.0" encoding="UTF-8"?>' ||
+      '<entry xmlns="http://www.w3.org/2005/Atom">' ||
+      '  <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/docs/2007#folder"/>' ||
+      '  <title>%V</title>' ||
+      '</entry>',
+      name);
+    header := sprintf (
+      'Content-Length: %d\r\n' ||
+      'Content-Type: application/atom+xml\r\n',
+      length (body));
+    result := DB.DBA.GDrive__exec (detcol_id, retHeader, 'POST', url, header, body);
+    if (DAV_HIDE_ERROR (result) is null)
+    {
+      retValue := result;
+      goto _exit;
+    }
+    xmlEntry := xtree_doc (result);
+    resourceId := DB.DBA.GDrive__entryXPath (xmlEntry, '/gd:resourceId', 1);
+  }
+  connection_set ('dav_store', 1);
+  DB.DBA.GDrive__owner (detcol_id, path_parts, DB.DBA.GDrive__user (uid, auth_uid), DB.DBA.GDrive__user (gid, auth_uid), ouid, ogid);
+  retValue := DAV_COL_CREATE_INT (DB.DBA.GDrive__path (detcol_id, path_parts), permissions, DB.DBA.GDrive__user (uid, auth_uid), DB.DBA.GDrive__user (gid, auth_uid), DB.DBA.GDrive__user (http_dav_uid ()), DB.DBA.GDrive__password (http_dav_uid ()), 1, 0, 1, ouid, ogid);
+
+_exit:;
+  connection_set ('dav_store', save);
+  if (DAV_HIDE_ERROR (retValue) is not null)
+  {
+    if (save is null)
+    {
+      DB.DBA.GDrive__paramSet (retValue, 'C', 'Entry', DB.DBA.GDrive__xml2string (xmlEntry), 0);
+      DB.DBA.GDrive__paramSet (retValue, 'C', 'resourceId', resourceId, 0);
+    }
+    DB.DBA.GDrive__paramSet (retValue, 'C', 'virt:DETCOL_ID', cast (detcol_id as varchar), 0, 0);
+    retValue := vector (DB.DBA.GDrive__detName (), detcol_id, retValue, 'C');
+  }
+
+  return retValue;
+}
+;
+
+--| It looks like that this is redundant and should be removed at all.
+create function "GDrive_DAV_COL_MOUNT" (
+  in detcol_id any,
+  in path_parts any,
+  in full_mount_path varchar,
+  in mount_det varchar,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('GDrive_DAV_COL_MOUNT (', detcol_id, path_parts, full_mount_path, mount_det, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| It looks like that this is redundant and should be removed at all.
+create function "GDrive_DAV_COL_MOUNT_HERE" (
+  in parent_id any,
+  in full_mount_path varchar,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('GDrive_DAV_COL_MOUNT_HERE (', parent_id, full_mount_path, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_DELETE_INT calls DET function, authentication and check for lock are passed.
+create function "GDrive_DAV_DELETE" (
+  in detcol_id any,
+  in path_parts any,
+  in what char(1),
+  in silent integer,
+  in auth_uid integer) returns integer
+{
+  -- dbg_obj_princ ('GDrive_DAV_DELETE (', detcol_id, path_parts, what, silent, auth_uid, ')');
+  declare path, resourceId varchar;
+  declare retValue, save any;
+  declare id, url, header, retHeader, params any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  path := DB.DBA.GDrive__path (detcol_id, path_parts);
+  id := DB.DBA.DAV_SEARCH_ID (path, what);
+  if (save is null)
+  {
+    resourceId := DB.DBA.GDrive__paramGet (id, what, 'resourceId', 0);
+    url := sprintf ('https://docs.google.com/feeds/default/private/full/%U', resourceId);
+    header := 'If-Match: *\n\r';
+    retValue := DB.DBA.GDrive__exec (detcol_id, retHeader, 'DELETE', url, header);
+    if (DAV_HIDE_ERROR (retValue) is null)
+      goto _exit;
+  }
+  connection_set ('dav_store', 1);
+  if (what = 'R')
+    DB.DBA.GDrive__rdf_delete (detcol_id, id, what);
+  retValue := DAV_DELETE_INT (path, 1, null, null, 0, 0);
+
+_exit:;
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| When DAV_RES_UPLOAD_STRSES_INT calls DET function, authentication and check for locks are performed before the call.
+--| There's a special problem, known as 'Transaction deadlock after reading from HTTP session'.
+--| The DET function should do only one INSERT of the 'content' into the table and do it as late as possible.
+--| The function should return -29 if deadlocked or otherwise broken after reading blob from HTTP.
+create function "GDrive_DAV_RES_UPLOAD" (
+  in detcol_id any,
+  in path_parts any,
+  inout content any,
+  in type varchar,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('GDrive_DAV_RES_UPLOAD (', detcol_id, path_parts, ', [content], ', type, permissions, uid, gid, auth_uid, ')');
+  declare L integer;
+  declare ouid, ogid integer;
+  declare name, path, rdf_graph varchar;
+  declare id any;
+  declare url, header, body, params any;
+  declare retValue, retHeader, retCode, result, save, xmlEntry any;
+  declare resourceId, parent_id any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  path := DB.DBA.GDrive__path (detcol_id, path_parts);
+  id := DB.DBA.DAV_SEARCH_ID (path, 'R');
+  if (save is null)
+  {
+    if (__tag (content) = 126)
+    {
+      declare real_content any;
+
+      real_content := http_body_read (1);
+      content := string_output_string (real_content);  -- check if bellow code can work with string session and if so remove this line
+    }
+    content := blob_to_string (content);
+    if (content = '')
+      content := ' ';
+
+    L := length (content);
+    if (DAV_HIDE_ERROR (id) is not null)
+    {
+      resourceId := DB.DBA.GDrive__paramGet (id, 'R', 'resourceId', 0);
+      if (DAV_HIDE_ERROR (retValue) is null)
+        goto _create;
+
+      url := sprintf ('https://docs.google.com/feeds/default/private/full/%U', resourceId);
+      result := DB.DBA.GDrive__exec (detcol_id, retHeader, 'GET', url);
+      if (DAV_HIDE_ERROR (result) is null)
+        goto _create;
+
+      xmlEntry := xtree_doc (result);
+
+      -- update resource
+
+      -- meatdata
+      url := DB.DBA.GDrive__entryXPath (xmlEntry, '/link[@rel="edit"]/@href', 1);
+
+      -- update content
+      -- new session
+      url := DB.DBA.GDrive__entryXPath (xmlEntry, '/link[@rel="http://schemas.google.com/g/2005#resumable-edit-media"]/@href', 1);
+      if (isnull (url))
+        goto _exit_1;
+
+      url := url || '?convert=false';
+      header := sprintf (
+        'If-Match: *\r\n' ||
+        'Content-Length: 0\r\n' ||
+        'Content-Type: %s\r\n' ||
+        'X-Upload-Content-Length: %d\r\n' ||
+        'X-Upload-Content-Type: %s\r\n',
+        type,
+        L,
+        type);
+      result := DB.DBA.GDrive__exec (detcol_id, retHeader, 'PUT', url, header);
+      if (DAV_HIDE_ERROR (result) is null)
+        goto _exit_1;
+
+      retCode := DB.DBA.GDrive__exec_code (retHeader);
+      if (retCode <> '200')
+        goto _exit_1;
+
+      -- content (with resumable protocol)
+      url := http_request_header (retHeader, 'Location');
+      if (isnull (url))
+        goto _exit_1;
+
+      header := sprintf (
+        'Content-Type: %s\r\n' ||
+        'Content-Length: %d\r\n' ||
+        'Content-Range: bytes 0-%d/%d',
+        type,
+        L,
+        L-1,
+        L);
+      result := DB.DBA.GDrive__exec (detcol_id, retHeader, 'PUT', url, header, content);
+      if (DAV_HIDE_ERROR (result) is null)
+        goto _exit_1;
+
+      goto _skip_create;
+    }
+    -- create resource metadata
+    --
+  _create:;
+    name := path_parts[length (path_parts)-1];
+
+    -- get parent edit-media link and next get new session
+    url := 'https://docs.google.com/feeds/upload/create-session/default/private/full';
+    if (length (path_parts) > 1)
+    {
+      parent_id := DB.DBA.DAV_SEARCH_ID (DB.DBA.GDrive__path (detcol_id, path_parts), 'P');
+      xmlEntry := DB.DBA.GDrive__paramGet (parent_id, 'C', 'Entry', 0);
+      if (DAV_HIDE_ERROR (xmlEntry) is null)
+        goto _exit_1;
+
+      xmlEntry := xtree_doc (xmlEntry);
+      url := DB.DBA.GDrive__entryXPath (xmlEntry, '/link[@rel="http://schemas.google.com/g/2005#resumable-create-media"]/@href', 1);
+      if (isnull (url))
+        goto _exit_1;
+    }
+    url := url || '?convert=false';
+    body := sprintf (
+      '<?xml version="1.0" encoding="UTF-8"?>' ||
+      '<entry xmlns="http://www.w3.org/2005/Atom" xmlns:docs="http://schemas.google.com/docs/2007">' ||
+      '  <category scheme="http://schemas.google.com/g/2005#kind"' ||
+      '    term="http://schemas.google.com/docs/2007#file"' ||
+      '    label="file" />' ||
+      '  <title>%V</title>' ||
+      '</entry>',
+      name);
+    header := sprintf (
+      'Content-Length: %d\r\n' ||
+      'Content-Type: application/atom+xml\r\n' ||
+      'X-Upload-Content-Length: %d\r\n' ||
+      'X-Upload-Content-Type: %s\r\n',
+      length (body),
+      L,
+      type);
+    result := DB.DBA.GDrive__exec (detcol_id, retHeader, 'POST', url, header, body);
+    if (DAV_HIDE_ERROR (result) is null)
+      goto _exit_1;
+
+    retCode := DB.DBA.GDrive__exec_code (retHeader);
+    if (retCode <> '200')
+      goto _exit_1;
+
+    -- upload resource content (with resumable protocol)
+    url := http_request_header (retHeader, 'Location');
+    if (isnull (url))
+      goto _exit_1;
+
+    header := sprintf (
+      'Content-Length: %d\r\n' ||
+      'Content-Type: %s\r\n' ||
+      'Content-Range: bytes 0-%d/%d',
+      L,
+      type,
+      L-1,
+      L);
+    result := DB.DBA.GDrive__exec (detcol_id, retHeader, 'PUT', url, header, content);
+    if (DAV_HIDE_ERROR (result) is null)
+      goto _exit_1;
+
+    retCode := DB.DBA.GDrive__exec_code (retHeader);
+    if (retCode <> '201')
+      goto _exit_1;
+
+    xmlEntry := xtree_doc (result);
+    resourceId := DB.DBA.GDrive__entryXPath (xmlEntry, '/gd:resourceId', 1);
+  }
+_skip_create:;
+  connection_set ('dav_store', 1);
+  DB.DBA.GDrive__owner (detcol_id, path_parts, DB.DBA.GDrive__user (uid, auth_uid), DB.DBA.GDrive__user (gid, auth_uid), ouid, ogid);
+  retValue := DAV_RES_UPLOAD_STRSES_INT (path, content, type, permissions, DB.DBA.GDrive__user (uid, auth_uid), DB.DBA.GDrive__user (gid, auth_uid), DB.DBA.GDrive__user (http_dav_uid ()), DB.DBA.GDrive__password (http_dav_uid ()), 0, ouid=>ouid, ogid=>ogid, check_locks=>0);
+
+_exit:;
+  connection_set ('dav_store', save);
+  if (DAV_HIDE_ERROR (retValue) is not null)
+  {
+    rdf_graph := DB.DBA.GDrive__paramGet (detcol_id, 'C', 'graph', 0);
+    if (not DB.DBA.is_empty_or_null (rdf_graph))
+      DB.DBA.GDrive__rdf (detcol_id, retValue, 'R');
+
+    if (save is null)
+    {
+      DB.DBA.GDrive__paramSet (retValue, 'R', 'Entry', DB.DBA.GDrive__xml2string (xmlEntry), 0);
+      DB.DBA.GDrive__paramSet (retValue, 'R', ':creationdate', DB.DBA.GDrive__entryXPath (xmlEntry, sprintf ('/published', resourceId), 1), 0, 0);
+      DB.DBA.GDrive__paramSet (retValue, 'R', ':getlastmodified', DB.DBA.GDrive__entryXPath (xmlEntry, sprintf ('/updated', resourceId), 1), 0, 0);
+      DB.DBA.GDrive__paramSet (retValue, 'R', 'resourceId', resourceId, 0);
+    }
+    DB.DBA.GDrive__paramSet (retValue, 'R', 'virt:DETCOL_ID', cast (detcol_id as varchar), 0, 0);
+    retValue := vector (DB.DBA.GDrive__detName (), detcol_id, retValue, 'R');
+  }
+
+  return retValue;
+
+_exit_1:;
+  retValue := -28;
+  goto _exit;
+}
+;
+
+--| When DAV_PROP_REMOVE_INT calls DET function, authentication and check for locks are performed before the call.
+--| The check whether it's a system name or not (when an error in returned if name is system) is _not_ permitted.
+--| It should delete any dead property even if the name looks like system name.
+create function "GDrive_DAV_PROP_REMOVE" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in silent integer,
+  in auth_uid integer) returns integer
+{
+  -- dbg_obj_princ ('GDrive_DAV_PROP_REMOVE (', id, what, propname, silent, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_PROP_REMOVE_RAW (id[2], what, propname, silent, auth_uid);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_SET_INT calls DET function, authentication and check for locks are performed before the call.
+--| The check whether it's a system property or not is _not_ permitted and the function should return -16 for live system properties.
+create function "GDrive_DAV_PROP_SET" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in propvalue any,
+  in overwrite integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('GDrive_DAV_PROP_SET (', id, what, propname, propvalue, overwrite, auth_uid, ')');
+  declare retValue any;
+
+  id := id[2];
+  retValue := DB.DBA.DAV_PROP_SET_RAW (id, what, propname, propvalue, 1, http_dav_uid ());
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_GET_INT calls DET function, authentication and check whether it's a system property are performed before the call.
+create function "GDrive_DAV_PROP_GET" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('GDrive_DAV_PROP_GET (', id, what, propname, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_PROP_GET_INT (id[2], what, propname, 0);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_LIST_INT calls DET function, authentication is performed before the call.
+--| The returned list should contain only user properties.
+create function "GDrive_DAV_PROP_LIST" (
+  in id any,
+  in what char(0),
+  in propmask varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('GDrive_DAV_PROP_LIST (', id, what, propmask, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_PROP_LIST_INT (id[2], what, propmask, 0);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "GDrive_DAV_DIR_SINGLE" (
+  in id any,
+  in what char(0),
+  in path any,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('GDrive_DAV_DIR_SINGLE (', id, what, path, auth_uid, ')');
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  retValue := DAV_DIR_SINGLE_INT (id[2], what, null, DB.DBA.GDrive__user (http_dav_uid ()), DB.DBA.GDrive__password (http_dav_uid ()), http_dav_uid ());
+  connection_set ('dav_store', save);
+  if ((DAV_HIDE_ERROR (retValue) is not null) and (save is null))
+    retValue[4] := vector (DB.DBA.GDrive__detName (), id[1], retValue[4], what);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "GDrive_DAV_DIR_LIST" (
+  in detcol_id any,
+  in subPath_parts any,
+  in detcol_parts varchar,
+  in name_mask varchar,
+  in recursive integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('GDrive_DAV_DIR_LIST (', detcol_id, subPath_parts, detcol_parts, name_mask, recursive, auth_uid, ')');
+  declare colId integer;
+  declare what, colPath varchar;
+  declare retValue, save, downloads, davItems, entries, colEntry, xmlItems, xmlEntries, xmlEntry, davEntry, davResouresId any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', null);
+  what := case when ((length (subPath_parts) = 0) or (subPath_parts[length (subPath_parts) - 1] = '')) then 'C' else 'R' end;
+  if ((what = 'R') or (recursive = -1))
+    return DB.DBA.GDrive_DAV_DIR_SINGLE (detcol_id, what, null, auth_uid);
+
+  colPath := DB.DBA.DAV_CONCAT_PATH (detcol_parts, subPath_parts);
+  colId := DB.DBA.DAV_SEARCH_ID (colPath, 'C');
+
+  downloads := vector ();
+  entries := DB.DBA.GDrive__list (detcol_id, detcol_parts, subPath_parts);
+  if (DAV_HIDE_ERROR (entries) is null)
+    goto _exit;
+
+  if (isinteger (entries))
+    goto _exit;
+
+  DB.DBA.GDrive__activity (detcol_id, 'Sync started');
+  {
+    declare _id, _what, _type, _content any;
+    declare resourceId, ETag, title varchar;
+    {
+      declare exit handler for sqlstate '*'
+      {
+        DB.DBA.GDrive__activity (detcol_id, 'Exec error: ' || __SQL_MESSAGE);
+        goto _exitSync;
+      };
+
+      connection_set ('dav_store', 1);
+      colEntry := DB.DBA.DAV_DIR_SINGLE_INT (colId, 'C', '', null, null, http_dav_uid ());
+      davResouresId := vector ();
+      xmlEntries := xtree_doc (entries);
+      davItems := DB.DBA.GDrive__davList (detcol_id, colId);
+      foreach (any davItem in davItems) do
+      {
+        connection_set ('dav_store', 1);
+        resourceId := DB.DBA.GDrive__paramGet (davItem[4], davItem[1], 'resourceId', 0);
+        if (resourceId is not null)
+        {
+          xmlEntry := DB.DBA.GDrive__entryXPath (xmlEntries, sprintf ('[gd:resourceId = "%s"]', resourceId));
+          if (xmlEntry is not null)
+          {
+            xmlEntry := xml_cut (xmlEntry);
+            ETag := DB.DBA.GDrive__entryXPath (xmlEntries, sprintf ('[gd:resourceId = "%s"]/@gd:etag', resourceId), 1);
+            davEntry := DB.DBA.GDrive__paramGet (davItem[4], davItem[1], 'Entry', 0);
+            if (DAV_HIDE_ERROR (davEntry) is not null)
+            {
+              davResouresId := vector_concat (davResouresId, vector (resourceId));
+              davEntry := xtree_doc (davEntry);
+              if (ETag <> DB.DBA.GDrive__entryXPath (davEntry, '/@gd:etag', 1))
+              {
+                set triggers off;
+                DB.DBA.GDrive__paramSet (davItem[4], davItem[1], ':getlastmodified', DB.DBA.GDrive__entryXPath (xmlEntry, sprintf ('/updated', resourceId), 1), 0, 0);
+                set triggers on;
+                DB.DBA.GDrive__paramSet (davItem[4], davItem[1], 'Entry', DB.DBA.GDrive__xml2string (xmlEntry), 0);
+                if (davItem[1] = 'R')
+                {
+                  DB.DBA.GDrive__paramSet (davItem[4], davItem[1], 'download', '0', 0);
+                  downloads := vector_concat (downloads, vector (vector (davItem[4], davItem[1])));
+                }
+              }
+              else
+              {
+                declare downloaded integer;
+
+                downloaded := DB.DBA.GDrive__paramGet (davItem[4], davItem[1], 'download', 0);
+                if (downloaded is not null)
+                {
+                  downloaded := cast (downloaded as integer);
+                  if (downloaded <= 5)
+                    downloads := vector_concat (downloads, vector (vector (davItem[4], davItem[1])));
+                }
+              }
+              goto _continue;
+            }
+          }
+        }
+        if (davItem[1] = 'R')
+          DB.DBA.GDrive__rdf_delete (detcol_id, davItem[4], davItem[1]);
+        DAV_DELETE_INT (davItem[0], 1, null, null, 0, 0);
+
+      _continue:;
+        commit work;
+      }
+      xmlItems := xpath_eval ('/feed/entry', xmlEntries, 0);
+      foreach (any xmlItem in xmlItems) do
+      {
+        xmlItem := xml_cut(xmlItem);
+        resourceId := DB.DBA.GDrive__entryXPath (xmlItem, '/gd:resourceId', 1);
+        if (not position (resourceId, davResouresId))
+        {
+          title := DB.DBA.GDrive__entryXPath (xmlItem, '/title', 1);
+          connection_set ('dav_store', 1);
+          if (resourceId like 'folder%')
+          {
+            _id := DB.DBA.DAV_COL_CREATE (colPath || title || '/',  colEntry[5], colEntry[7], colEntry[6], DB.DBA.GDrive__user (http_dav_uid ()), DB.DBA.GDrive__password (http_dav_uid ()));
+            _what := 'C';
+          }
+          else
+          {
+            if (DAV_HIDE_ERROR (DB.DBA.DAV_SEARCH_ID (colPath || title, 'R')) is not null)
+              title := sprintf ('%s - %s', title, DB.DBA.GDrive__cleanResourceId (resourceId));
+
+            _content := '';
+            _type := DB.DBA.GDrive__entryXPath (xmlItem, '/content/@type', 1);
+            _id := DB.DBA.DAV_RES_UPLOAD (colPath || title,  _content, _type, colEntry[5], colEntry[7], colEntry[6], DB.DBA.GDrive__user (http_dav_uid ()), DB.DBA.GDrive__password (http_dav_uid ()));
+            _what := 'R';
+          }
+          if (DAV_HIDE_ERROR (_id) is not null)
+          {
+            set triggers off;
+            DB.DBA.GDrive__paramSet (_id, _what, ':creationdate', DB.DBA.GDrive__entryXPath (xmlItem, sprintf ('/published', resourceId), 1), 0, 0);
+            DB.DBA.GDrive__paramSet (_id, _what, ':getlastmodified', DB.DBA.GDrive__entryXPath (xmlItem, sprintf ('/updated', resourceId), 1), 0, 0);
+            set triggers on;
+            DB.DBA.GDrive__paramSet (_id, _what, 'virt:DETCOL_ID', cast (detcol_id as varchar), 0, 0);
+            DB.DBA.GDrive__paramSet (_id, _what, 'resourceId', resourceId, 0);
+            DB.DBA.GDrive__paramSet (_id, _what, 'Entry', DB.DBA.GDrive__xml2string (xmlItem), 0);
+            if (_what = 'R')
+            {
+              DB.DBA.GDrive__paramSet (_id, _what, 'download', '0', 0);
+              downloads := vector_concat (downloads, vector (vector (_id, _what)));
+          }
+        }
+          commit work;
+        }
+      }
+    }
+  _exitSync:
+    connection_set ('dav_store', save);
+  }
+  DB.DBA.GDrive__activity (detcol_id, 'Sync ended');
+
+_exit:;
+  retValue := DB.DBA.GDrive__davList (detcol_id, colId);
+  DB.DBA.GDrive__downloads (detcol_id, downloads);
+
+  return retValue;
+}
+;
+
+--| When DAV_DIR_FILTER_INT calls DET function, authentication is performed before the call and compilation is initialized.
+create function "GDrive_DAV_DIR_FILTER" (
+  in detcol_id any,
+  in subPath_parts any,
+  in detcol_parts varchar,
+  inout compilation any,
+  in recursive integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('GDrive_DAV_DIR_FILTER (', detcol_id, subPath_parts, detcol_parts, compilation, recursive, auth_uid, ')');
+  return vector();
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "GDrive_DAV_SEARCH_ID" (
+  in detcol_id any,
+  in path_parts any,
+  in what char(1)) returns any
+{
+  -- dbg_obj_princ ('GDrive_DAV_SEARCH_ID (', detcol_id, path_parts, what, ')');
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  retValue := DAV_SEARCH_ID (DB.DBA.GDrive__path (detcol_id, path_parts), what);
+  connection_set ('dav_store', save);
+  if ((DAV_HIDE_ERROR (retValue) is not null))
+  {
+    if (isinteger (retValue) and (save is null))
+      retValue := vector (DB.DBA.GDrive__detName (), detcol_id, retValue, what);
+
+    else if (isarray (retValue) and (save = 1))
+      retValue := retValue[2];
+  }
+  return retValue;
+}
+;
+
+create function "GDrive_DAV_MAKE_ID" (
+  in detcol_id any,
+  in id any,
+  in what char(1)) returns any
+{
+  -- dbg_obj_princ ('GDrive_DAV_MAKE_ID (', id, what, ')');
+  declare retValue any;
+
+  retValue := vector (DB.DBA.GDrive__detName (), detcol_id, id, what);
+
+  return retValue;
+}
+;
+
+--| When DAV_SEARCH_PATH_INT calls DET function, authentication is performed before the call.
+create function "GDrive_DAV_SEARCH_PATH" (
+  in id any,
+  in what char(1)) returns any
+{
+  -- dbg_obj_princ ('Gdrive_DAV_SEARCH_PATH (', id, what, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DB.DBA.DAV_SEARCH_PATH (davId, what);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| When DAV_COPY_INT calls DET function, authentication and check for locks are performed before the call, but no check for existing/overwrite.
+create function "GDrive_DAV_RES_UPLOAD_COPY" (
+  in detcol_id any,
+  in path_parts any,
+  in source_id any,
+  in what char(1),
+  in overwrite_flags integer,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('GDrive_DAV_RES_UPLOAD_COPY (', detcol_id, path_parts, source_id, what, overwrite_flags, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_COPY_INT calls DET function, authentication and check for locks are performed before the call, but no check for existing/overwrite.
+create function "GDrive_DAV_RES_UPLOAD_MOVE" (
+  in detcol_id any,
+  in path_parts any,
+  in source_id any,
+  in what char(1),
+  in overwrite_flags integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('GDrive_DAV_RES_UPLOAD_MOVE (', detcol_id, path_parts, source_id, what, overwrite_flags, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_RES_CONTENT or DAV_RES_COPY_INT or DAV_RES_MOVE_INT calls DET function, authentication is made.
+--| If content_mode is 1 then content is a valid output stream before the call.
+create function "GDrive_DAV_RES_CONTENT" (
+  in id any,
+  inout content any,
+  out type varchar,
+  in content_mode integer) returns integer
+{
+  -- dbg_obj_princ ('GDrive_DAV_RES_CONTENT (', id, ', [content], [type], ', content_mode, ')');
+  declare retValue any;
+
+  retValue := DAV_RES_CONTENT_INT (id[2], content, type, content_mode, 0);
+
+  return retValue;
+}
+;
+
+--| This adds an extra access path to the existing resource or collection.
+create function "GDrive_DAV_SYMLINK" (
+  in detcol_id any,
+  in path_parts any,
+  in source_id any,
+  in what char(1),
+  in overwrite integer,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('GDrive_DAV_SYMLINK (', detcol_id, path_parts, source_id, overwrite, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| This gets a list of resources and/or collections as it is returned by DAV_DIR_LIST and and writes the list of quads (old_id, 'what', old_full_path, dereferenced_id, dereferenced_full_path).
+create function "GDrive_DAV_DEREFERENCE_LIST" (
+  in detcol_id any,
+  inout report_array any) returns any
+{
+  -- dbg_obj_princ ('GDrive_DAV_DEREFERENCE_LIST (', detcol_id, report_array, ')');
+  return -20;
+}
+;
+
+--| This gets one of reference quads returned by ..._DAV_REREFERENCE_LIST() and returns a record (new_full_path, new_dereferenced_full_path, name_may_vary).
+create function "GDrive_DAV_RESOLVE_PATH" (
+  in detcol_id any,
+  inout reference_item any,
+  inout old_base varchar,
+  inout new_base varchar) returns any
+{
+  -- dbg_obj_princ ('GDrive_DAV_RESOLVE_PATH (', detcol_id, reference_item, old_base, new_base, ')');
+  return -20;
+}
+;
+
+--| There's no API function to lock for a while (do we need such?) The "LOCK" DAV method checks that all parameters are valid but does not check for existing locks.
+create function "GDrive_DAV_LOCK" (
+  in path any,
+  in id any,
+  in what char(1),
+  inout locktype varchar,
+  inout scope varchar,
+  in token varchar,
+  inout owner_name varchar,
+  inout owned_tokens varchar,
+  in depth varchar,
+  in timeout_sec integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('GDrive_DAV_LOCK (', path, id, what, locktype, scope, token, owner_name, owned_tokens, depth, timeout_sec, auth_uid, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_LOCK_INT (path, davId, what, locktype, scope, token, owner_name, owned_tokens, depth, timeout_sec, DB.DBA.GDrive__user (auth_uid), DB.DBA.GDrive__password (auth_uid), auth_uid);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+
+--| There's no API function to unlock for a while (do we need such?) The "UNLOCK" DAV method checks that all parameters are valid but does not check for existing locks.
+create function "GDrive_DAV_UNLOCK" (
+  in id any,
+  in what char(1),
+  in token varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('GDrive_DAV_UNLOCK (', id, what, token, auth_uid, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_UNLOCK_INT (davId, what, token, DB.DBA.GDrive__user (auth_uid), DB.DBA.GDrive__password (auth_uid), auth_uid);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| The caller does not check if id is valid.
+--| This returns -1 if id is not valid, 0 if all existing locks are listed in owned_tokens whitespace-delimited list, 1 for soft 2 for hard lock.
+create function "GDrive_DAV_IS_LOCKED" (
+  inout id any,
+  inout what char(1),
+  in owned_tokens varchar) returns integer
+{
+  -- dbg_obj_princ ('GDrive_DAV_IS_LOCKED (', id, what, owned_tokens, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_IS_LOCKED_INT (davId, what, owned_tokens);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| The caller does not check if id is valid.
+--| This returns -1 if id is not valid, list of tuples (LOCK_TYPE, LOCK_SCOPE, LOCK_TOKEN, LOCK_TIMEOUT, LOCK_OWNER, LOCK_OWNER_INFO) otherwise.
+create function "GDrive_DAV_LIST_LOCKS" (
+  in id any,
+  in what char(1),
+  in recursive integer) returns any
+{
+  -- dbg_obj_princ ('GDrive_DAV_LIST_LOCKS" (', id, what, recursive);
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_LIST_LOCKS_INT (davId, what, recursive);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__fileDebug (
+  in value any,
+  in mode integer := -1)
+{
+  string_to_file ('gdrive.txt', cast (value as varchar) || '\r\n', mode);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__detcolId (
+  in id any)
+{
+  if (isinteger (id))
+    return id;
+
+  return id[1];
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__davId (
+  in id any)
+{
+  if (isinteger (id))
+    return id;
+
+  return id[2];
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__cleanResourceId (
+  in resourceId varchar)
+{
+  return subseq (resourceId, strstr (resourceId, ':')+1);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__user (
+  in user_id integer,
+  in default_id integer := null)
+{
+  return coalesce ((select U_NAME from DB.DBA.SYS_USERS where U_ID = coalesce (user_id, default_id)), '');
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__password (
+  in user_id integer)
+{
+  return coalesce ((select pwd_magic_calc(U_NAME, U_PWD, 1) from WS.WS.SYS_DAV_USER where U_ID = user_id), '');
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__owner (
+  in detcol_id any,
+  in subPath_parts any,
+  in uid any,
+  in gid any,
+  inout ouid integer,
+  inout ogid integer)
+{
+  declare id any;
+  declare path varchar;
+
+  DB.DBA.DAV_OWNER_ID (uid, gid, ouid, ogid);
+  if ((ouid = -12) or (ouid = 5))
+  {
+    path := DB.DBA.GDrive__path (detcol_id, subPath_parts);
+    id := DB.DBA.DAV_SEARCH_ID (path, 'P');
+    if (DAV_HIDE_ERROR (id))
+    {
+      select COL_OWNER, COL_GROUP
+        into ouid, ogid
+        from WS.WS.SYS_DAV_COL
+       where COL_ID = id;
+    }
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__detName ()
+{
+  return UNAME'GDrive';
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__xml2string (
+  in _xml any)
+{
+  declare stream any;
+
+  stream := string_output ();
+  http_value (_xml, null, stream);
+  return string_output_string (stream);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__path (
+  in detcol_id any,
+  in subPath_parts any)
+{
+  declare N integer;
+  declare path varchar;
+
+  path := rtrim (DB.DBA.DAV_SEARCH_PATH (detcol_id, 'C'), '/');
+  for (N := 0; N < length (subPath_parts); N := N + 1)
+    path := path  || '/' || subPath_parts[N];
+
+  return path;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__params (
+  in colId integer)
+{
+  declare tmp, params any;
+
+  colId := DB.DBA.GDrive__detcolId (colId);
+  tmp := DB.DBA.GDrive__paramGet (colId, 'C', 'Authentication', 0);
+  if (tmp = 'Yes')
+  {
+  params := vector (
+      'authentication',   tmp,
+    'access_timestamp', stringdate (DB.DBA.GDrive__paramGet (colId, 'C', 'access_timestamp', 0)),
+    'access_token',     DB.DBA.GDrive__paramGet (colId, 'C', 'access_token', 0),
+    'token_type',       DB.DBA.GDrive__paramGet (colId, 'C', 'token_type', 0),
+    'expires_in',       cast (DB.DBA.GDrive__paramGet (colId, 'C', 'expires_in', 0) as integer),
+      'refresh_token',    DB.DBA.GDrive__paramGet (colId, 'C', 'refresh_token', 0),
+      'graph',            DB.DBA.GDrive__paramGet (colId, 'C', 'graph', 0)
+  );
+  }
+  else
+  {
+    params := vector ('authentication', 'No');
+  }
+  return params;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__paramSet (
+  in _id any,
+  in _what varchar,
+  in _propName varchar,
+  in _propValue any,
+  in _serialized integer := 1,
+  in _prefixed integer := 1,
+  in _encrypt integer := 0)
+{
+  -- dbg_obj_princ ('DB.DBA.GDrive__paramSet', _propName, _propValue, ')');
+  declare retValue any;
+
+  if (_serialized)
+    _propValue := serialize (_propValue);
+
+  if (_encrypt)
+    _propValue := pwd_magic_calc ('gdrive', _propValue);
+
+  if (_prefixed)
+    _propName := 'virt:GDrive-' || _propName;
+
+  _id := DB.DBA.GDrive__davId (_id);
+  retValue := DB.DBA.DAV_PROP_SET_RAW (_id, _what, _propName, _propValue, 1, http_dav_uid ());
+
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__paramGet (
+  in _id integer,
+  in _what varchar,
+  in _propName varchar,
+  in _serialized integer := 1,
+  in _prefixed integer := 1,
+  in _decrypt integer := 0)
+{
+  -- dbg_obj_princ ('DB.DBA.GDrive__paramGet (', _id, _what, _propName, ')');
+  declare propValue any;
+
+  if (_prefixed)
+    _propName := 'virt:GDrive-' || _propName;
+
+  propValue := DB.DBA.DAV_PROP_GET_INT (DB.DBA.GDrive__davId (_id), _what, _propName, 0, DB.DBA.Dropbox__user (http_dav_uid ()), DB.DBA.Dropbox__password (http_dav_uid ()), http_dav_uid ());
+  if (isinteger (propValue))
+    propValue := null;
+
+  if (_serialized and not isnull (propValue))
+    propValue := deserialize (propValue);
+
+  if (_decrypt and not isnull (propValue))
+    propValue := pwd_magic_calc ('gdrive', propValue, 1);
+
+  return propValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__paramRemove (
+  in _id integer,
+  in _what varchar,
+  in _propName varchar,
+  in _prefixed integer := 1)
+{
+  -- dbg_obj_princ ('DB.DBA.GDrive__paramRemove (', _id, _what, _propName, ')');
+  if (_prefixed)
+    _propName := 'virt:GDrive-' || _propName;
+
+  DB.DBA.DAV_PROP_REMOVE_RAW (DB.DBA.GDrive__davId (_id), _what, _propName, 1, http_dav_uid());
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__entryXPath (
+  in _xml any,
+  in _xpath varchar,
+  in _cast integer := 0)
+{
+  declare retValue any;
+
+  if (_cast)
+  {
+    retValue := serialize_to_UTF8_xml (xpath_eval (sprintf ('[ xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005" ] string (//entry%s)', _xpath), _xml, 1));
+  } else {
+    retValue := xpath_eval ('[ xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005" ] //entry' || _xpath, _xml, 1);
+  }
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__exec_error (
+  in _header any,
+  in _silent integer := 0)
+{
+  if ((_header[0] like 'HTTP/1._ 4__ %') or (_header[0] like 'HTTP/1._ 5__ %'))
+  {
+    if (not _silent)
+      signal ('22023', trim (_header[0], '\r\n'));
+
+    return 0;
+  }
+  return 1;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__exec_code (
+  in _header any)
+{
+  return subseq (_header[0], 9, 12);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__exec (
+  inout detcol_id integer,
+  inout retHeader varchar,
+  in method varchar,
+  in url varchar,
+  in header varchar := '',
+  in content varchar := '')
+{
+  -- dbg_obj_princ ('DB.DBA.GDrive__exec', detcol_id, method, url, header, ')');
+  declare retValue, params any;
+  declare _client_id, _client_secret varchar;
+  declare _expires_in, _access_timestamp, _token_type, _refresh_token any;
+  declare tmp, _json, _reqHeader, _resHeader, _body any;
+  declare exit handler for sqlstate '*'
+  {
+    DB.DBA.GDrive__activity (detcol_id, 'Exec error: ' || __SQL_MESSAGE);
+    return -28;
+  };
+
+  params := DB.DBA.GDrive__params (detcol_id);
+  if (get_keyword ('authentication', params) <> 'Yes')
+  {
+    DB.DBA.GDrive__activity (detcol_id, 'Error: Not authenticated');
+    return -28;
+  }
+
+  _expires_in := get_keyword ('expires_in', params);
+  _access_timestamp := get_keyword ('access_timestamp', params);
+  _token_type := get_keyword ('token_type', params);
+  if (dateadd ('second', _expires_in, _access_timestamp) < now ())
+  {
+    -- refresh token first
+
+    _client_id := (select a_key from OAUTH..APP_REG where a_name = 'Google API' and a_owner = 0);
+    _client_secret := (select a_secret from OAUTH..APP_REG where a_name = 'Google API' and a_owner = 0);
+    _refresh_token := get_keyword ('refresh_token', params);
+    _reqHeader := null;
+    _resHeader := null;
+    _body := sprintf ('client_id=%U&client_secret=%U&refresh_token=%U&grant_type=%U', _client_id, _client_secret, _refresh_token, 'refresh_token');
+    _json := http_client_ext (url=>'https://accounts.google.com/o/oauth2/token', http_method=>'POST', http_headers=>_reqHeader, headers =>_resHeader, body=>_body, n_redirects=>15);
+    if (not DB.DBA.GDrive__exec_error (_resHeader, 1))
+      return -28;
+
+    tmp := subseq (ODS..json2obj(_json), 2);
+    DB.DBA.GDrive__paramSet (detcol_id, 'C', 'access_timestamp', datestring (now ()), 0);
+    DB.DBA.GDrive__paramSet (detcol_id, 'C', 'access_token', get_keyword ('access_token', tmp), 0);
+    DB.DBA.GDrive__paramSet (detcol_id, 'C', 'token_type', get_keyword ('token_type', tmp), 0);
+    DB.DBA.GDrive__paramSet (detcol_id, 'C', 'expires_in', cast (get_keyword ('expires_in', tmp) as varchar), 0);
+    params := DB.DBA.GDrive__params (detcol_id);
+  }
+
+  _reqHeader := sprintf ('GData-Version: 3.0\r\nAuthorization: %s %s\r\n', get_keyword ('token_type', params), get_keyword ('access_token', params));
+  if (header <> '')
+    _reqHeader :=  _reqHeader || header;
+
+  retHeader := null;
+  retValue := http_client_ext (url=>url, http_method=>method, http_headers=>_reqHeader, headers =>retHeader, body=>content, n_redirects=>15);
+  -- dbg_obj_print ('retValue', DB.DBA.GDrive__exec_code (retHeader), url, method);
+  if (not DB.DBA.GDrive__exec_error (retHeader, 1))
+  {
+    DB.DBA.GDrive__activity (detcol_id, 'HTTP error: ' || retValue);
+    return -28;
+  }
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__davList (
+  inout detcol_id integer,
+  inout colId integer)
+{
+  declare retValue any;
+
+  vectorbld_init (retValue);
+  for (select vector (RES_FULL_PATH,
+                      'R',
+                      length (RES_CONTENT),
+                      RES_MOD_TIME,
+                      vector (DB.DBA.GDrive__detName (), detcol_id, RES_ID, 'R'),
+                      RES_PERMS,
+                      RES_GROUP,
+                      RES_OWNER,
+                      RES_CR_TIME,
+                      RES_TYPE,
+                      RES_NAME ) as I
+         from WS.WS.SYS_DAV_RES
+        where RES_COL = DB.DBA.GDrive__davId (colId)) do
+  {
+    vectorbld_acc (retValue, i);
+  }
+
+  for (select vector (WS.WS.COL_PATH (COL_ID),
+                      'C',
+                      0,
+                      COL_MOD_TIME,
+                      vector (DB.DBA.GDrive__detName (), detcol_id, COL_ID, 'C'),
+                      COL_PERMS,
+                      COL_GROUP,
+                      COL_OWNER,
+                      COL_CR_TIME,
+                      'dav/unix-directory',
+                      COL_NAME) as I
+        from WS.WS.SYS_DAV_COL
+       where COL_PARENT = DB.DBA.GDrive__davId (colId)) do
+  {
+    vectorbld_acc (retValue, i);
+  }
+
+  vectorbld_final (retValue);
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__list (
+  inout detcol_id any,
+  inout detcol_parts varchar,
+  inout subPath_parts varchar)
+{
+  -- dbg_obj_princ ('DB.DBA.GDrive__list (', detcol_id, detcol_parts, subPath_parts, ')');
+  declare colId integer;
+  declare colPath, resourceId varchar;
+  declare syncTime datetime;
+  declare retValue, retHeader, value, entry any;
+
+  colPath := DB.DBA.DAV_CONCAT_PATH (detcol_parts, subPath_parts);
+  colId := DB.DBA.GDrive__davId (DB.DBA.DAV_SEARCH_ID (colPath, 'C'));
+  if (DAV_HIDE_ERROR (colId) is null)
+    return -28;
+
+  syncTime := DB.DBA.GDrive__paramGet (colId, 'C', 'syncTime');
+  if (not isnull (syncTime) and (datediff ('second', syncTime, now ()) < 300))
+    return 0;
+
+  if (length (subPath_parts) = 1)
+  {
+    resourceId := 'folder:root';
+  }
+  else
+  {
+    resourceId := DB.DBA.GDrive__paramGet (colId, 'C', 'resourceId', 0);
+    if (isnull (resourceId))
+      return -28;
+  }
+  retValue := DB.DBA.GDrive__exec (detcol_id, retHeader, 'GET', sprintf ('https://docs.google.com/feeds/default/private/full/%U/contents', resourceId));
+  --DB.DBA.GDrive__activity (detcol_id, retValue);
+  -- dbg_obj_print ('retValue', retValue);
+  if (not isinteger (retValue))
+    DB.DBA.GDrive__paramSet (colId, 'C', 'syncTime', now ());
+
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__activity (
+  in detcol_id integer,
+  in text varchar)
+{
+  -- dbg_obj_princ ('DB.DBA.GDrive__activity (', detcol_id, text, ')');
+  declare parent_id integer;
+  declare parentPath varchar;
+  declare activity_id integer;
+  declare activity, activityName, activityPath, activityContent, activityType varchar;
+  declare davEntry any;
+  declare _errorCount integer;
+  declare exit handler for sqlstate '*'
+  {
+    if (__SQL_STATE = '40001')
+{
+      rollback work;
+      if (_errorCount > 5)
+        resignal;
+
+      delay (1);
+      _errorCount := _errorCount + 1;
+      goto _start;
+    }
+    return;
+  };
+
+  _errorCount := 0;
+
+_start:;
+  activity := DB.DBA.GDrive__paramGet (detcol_id, 'C', 'activity', 0);
+  if (activity is null)
+    return;
+
+  if (activity <> 'on')
+    return;
+
+  davEntry := DB.DBA.DAV_DIR_SINGLE_INT (detcol_id, 'C', '', null, null, http_dav_uid ());
+  if (DB.DBA.DAV_HIDE_ERROR (davEntry) is null)
+    return;
+
+  parent_id := DB.DBA.DAV_SEARCH_ID (davEntry[0], 'P');
+  if (DB.DBA.DAV_HIDE_ERROR (parent_id) is null)
+    return;
+
+  parentPath := DB.DBA.DAV_SEARCH_PATH (parent_id, 'C');
+  if (DB.DBA.DAV_HIDE_ERROR (parentPath) is null)
+    return;
+
+  activityContent := '';
+  activityName := davEntry[10] || '_activity.log';
+  activityPath := parentPath || activityName;
+  activity_id := DB.DBA.DAV_SEARCH_ID (activityPath, 'R');
+  if (DB.DBA.DAV_HIDE_ERROR (activity_id) is not null)
+  {
+    DB.DBA.DAV_RES_CONTENT_INT (activity_id, activityContent, activityType, 0, 0);
+    if (activityType <> 'text/plain')
+      return;
+
+    activityContent := cast (activityContent as varchar);
+  }
+  activityContent := activityContent || sprintf ('%s %s\r\n', subseq (datestring (now ()), 0, 19), text);
+  activityType := 'text/plain';
+  DB.DBA.DAV_RES_UPLOAD_STRSES_INT (activityPath, activityContent, activityType, '110100000RR', DB.DBA.GDrive__user (davEntry[6]), DB.DBA.GDrive__user (davEntry[7]), extern=>0, check_locks=>0);
+  commit work;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__downloads (
+  in detcol_id integer,
+  in downloads any)
+{
+  declare aq any;
+
+  if (length (downloads) = 0)
+    return;
+
+  set_user_id ('dba');
+  aq := async_queue (1);
+  aq_request (aq, 'DB.DBA.GDrive__downloads_aq', vector (detcol_id, downloads));
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__downloads_aq (
+  in detcol_id integer,
+  in downloads any)
+{
+  -- dbg_obj_princ ('DB.DBA.GDrive__downloads_aq (', detcol_id, downloads, ')');
+  declare N, downloaded integer;
+  declare url, path varchar;
+  declare items, davEntry any;
+  declare retValue, retHeader any;
+
+  set_user_id ('dba');
+  N := 0;
+  items := vector ();
+  DB.DBA.GDrive__activity (detcol_id, sprintf ('Downloading %d file(s)', length (downloads)));
+  foreach (any download in downloads) do
+  {
+    downloaded := DB.DBA.GDrive__paramGet (download[0], download[1], 'download', 0);
+    if (downloaded is null)
+      goto _continue;
+
+    downloaded := cast (downloaded as integer);
+    if (downloaded > 5)
+      goto _continue;
+
+    davEntry := DB.DBA.GDrive__paramGet (download[0], download[1], 'Entry', 0);
+    if (davEntry is null)
+      goto _continue;
+
+    davEntry := xtree_doc (davEntry);
+    url := DB.DBA.GDrive__entryXPath (davEntry, '/content/@src', 1);
+    if (DB.DBA.is_empty_or_null (url))
+      url := DB.DBA.GDrive__entryXPath (davEntry, '/link[@rel="alternate"]/@href', 1);
+
+    if (isnull (url))
+      goto _continue;
+
+      retValue := DB.DBA.GDrive__exec (detcol_id, retHeader, 'GET', url);
+    if (DAV_HIDE_ERROR (retValue) is null)
+    {
+      downloaded := downloaded + 1;
+      DB.DBA.GDrive__paramSet (download[0], download[1], 'download', cast (downloaded as varchar), 0);
+    }
+    else
+    {
+      update WS.WS.SYS_DAV_RES set RES_CONTENT = retValue where RES_ID = DB.DBA.GDrive__davId (download[0]);
+      DB.DBA.GDrive__paramRemove (download[0], download[1], 'download');
+      items := vector_concat (items, vector (download));
+      N := N + 1;
+    }
+    commit work;
+
+  _continue:;
+  }
+  DB.DBA.GDrive__activity (detcol_id, sprintf ('Downloaded %d file(s)', N));
+  foreach (any item in items) do
+  {
+    DB.DBA.GDrive__rdf_delete (detcol_id, item[0], item[1]);
+    DB.DBA.GDrive__rdf_insert (detcol_id, item[0], item[1]);
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__rdf (
+  in detcol_id integer,
+  in id any,
+  in what varchar)
+{
+  declare aq any;
+
+  set_user_id ('dba');
+  aq := async_queue (1);
+  aq_request (aq, 'DB.DBA.GDrive__rdf_aq', vector (detcol_id, id, what));
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__rdf_aq (
+  in detcol_id integer,
+  in id any,
+  in what varchar)
+{
+  set_user_id ('dba');
+  DB.DBA.GDrive__rdf_delete (detcol_id, id, what);
+  DB.DBA.GDrive__rdf_insert (detcol_id, id, what);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__rdf_insert (
+  in detcol_id integer,
+  in id any,
+  in what varchar,
+  in rdf_graph varchar := null)
+{
+  -- dbg_obj_princ ('DB.DBA.GDrive__rdf_insert (', detcol_id, id, what, rdf_graph, ')');
+  declare permissions, rdf_graph2 varchar;
+  declare rdf_sponger, rdf_cartridges, rdf_metaCartridges any;
+  declare path, content, type any;
+  declare exit handler for sqlstate '*'
+  {
+    return;
+  };
+
+  if (isnull (rdf_graph))
+    rdf_graph := DB.DBA.GDrive__paramGet (detcol_id, 'C', 'graph', 0);
+
+  if (DB.DBA.is_empty_or_null (rdf_graph))
+    return;
+
+  permissions := DB.DBA.GDrive__paramGet (detcol_id, 'C', ':virtpermissions', 0, 0);
+  if (permissions[6] = ascii('0'))
+  {
+    -- add to private graphs
+    if (not SIOC..private_graph_check (rdf_graph))
+      return;
+  }
+
+  id := DB.DBA.GDrive__davId (id);
+  path := DB.DBA.DAV_SEARCH_PATH (id, what);
+  content := (select RES_CONTENT from WS.WS.SYS_DAV_RES where RES_ID = id);
+  type := (select RES_TYPE from WS.WS.SYS_DAV_RES where RES_ID = id);
+  rdf_sponger := coalesce (DB.DBA.GDrive__paramGet (detcol_id, 'C', 'sponger', 0), 'on');
+  rdf_cartridges := coalesce (DB.DBA.GDrive__paramGet (detcol_id, 'C', 'cartridges', 0), '');
+  rdf_metaCartridges := coalesce (DB.DBA.GDrive__paramGet (detcol_id, 'C', 'metaCartridges', 0), '');
+
+  RDF_SINK_UPLOAD (path, content, type, rdf_graph, rdf_sponger, rdf_cartridges, rdf_metaCartridges);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__rdf_delete (
+  in detcol_id integer,
+  in id any,
+  in what varchar,
+  in rdf_graph varchar := null)
+{
+  -- dbg_obj_princ ('DB.DBA.GDrive__rdf_delete (', detcol_id, id, what, rdf_graph, ')');
+  declare rdf_graph2 varchar;
+  declare path varchar;
+
+  if (isnull (rdf_graph))
+    rdf_graph := DB.DBA.GDrive__paramGet (detcol_id, 'C', 'graph', 0);
+
+  if (DB.DBA.is_empty_or_null (rdf_graph))
+    return;
+
+  path := DB.DBA.DAV_SEARCH_PATH (id, what);
+  if (path like '%.gz')
+    path := regexp_replace (path, '\.gz\x24', '');
+
+  rdf_graph2 := 'http://local.virt' || path;
+  SPARQL delete from graph ?:rdf_graph { ?s ?p ?o } where { graph `iri(?:rdf_graph2)` { ?s ?p ?o } };
+  SPARQL clear graph ?:rdf_graph2;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.GDrive__refresh (
+  in path varchar)
+{
+  -- dbg_obj_princ ('DB.DBA.GDrive__refresh (', path, ')');
+  declare colId any;
+
+  colId := DB.DBA.DAV_SEARCH_ID (path, 'C');
+  if (DAV_HIDE_ERROR (colId) is not null)
+    DB.DBA.GDrive__paramRemove (colId, 'C', 'syncTime');
+}
+;
diff --git a/appsrc/ODS-Briefcase/new/DET_SkyDrive.sql b/appsrc/ODS-Briefcase/new/DET_SkyDrive.sql
new file mode 100644
index 0000000..5f3de37
--- /dev/null
+++ b/appsrc/ODS-Briefcase/new/DET_SkyDrive.sql
@@ -0,0 +1,1565 @@
+--
+--  $Id: DET_SkyDrive.sql,v 1.1 2012/06/04 16:33:18 ddimitrov Exp $
+--
+--  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+--  project.
+--
+--  Copyright (C) 1998-2012 OpenLink Software
+--
+--  This project is free software; you can redistribute it and/or modify it
+--  under the terms of the GNU General Public License as published by the
+--  Free Software Foundation; only version 2 of the License, dated June 1991.
+--
+--  This program is distributed in the hope that it will be useful, but
+--  WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+--  General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License along
+--  with this program; if not, write to the Free Software Foundation, Inc.,
+--  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+--
+
+use DB
+;
+
+--| This matches DAV_AUTHENTICATE (in id any, in what char(1), in req varchar, in a_uname varchar, in a_pwd varchar, in a_uid integer := null)
+--| The difference is that the DET function should not check whether the pair of name and password is valid; the auth_uid is not a null already.
+create function "SkyDrive_DAV_AUTHENTICATE" (
+  in id any,
+  in what char(1),
+  in req varchar,
+  in auth_uname varchar,
+  in auth_pwd varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_AUTHENTICATE (', id, what, req, auth_uname, auth_pwd, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_AUTHENTICATE (id[2], what, req, auth_uname, auth_pwd, auth_uid);
+
+  return retValue;
+}
+;
+
+--| This exactly matches DAV_AUTHENTICATE_HTTP (in id any, in what char(1), in req varchar, in can_write_http integer, inout a_lines any, inout a_uname varchar, inout a_pwd varchar, inout a_uid integer, inout a_gid integer, inout _perms varchar) returns integer
+--| The function should fully check access because DAV_AUTHENTICATE_HTTP do nothing with auth data either before or after calling this DET function.
+--| Unlike DAV_AUTHENTICATE, user name passed to DAV_AUTHENTICATE_HTTP header may not match real DAV user.
+--| If DET call is successful, DAV_AUTHENTICATE_HTTP checks whether the user have read permission on mount point collection.
+--| Thus even if DET function allows anonymous access, the whole request may fail if mountpoint is not readable by public.
+create function "SkyDrive_DAV_AUTHENTICATE_HTTP" (
+  in id any,
+  in what char(1),
+  in req varchar,
+  in can_write_http integer,
+  inout a_lines any,
+  inout a_uname varchar,
+  inout a_pwd varchar,
+  inout a_uid integer,
+  inout a_gid integer,
+  inout _perms varchar) returns integer
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_AUTHENTICATE_HTTP (', id[2], what, req, can_write_http, a_lines, a_uname, a_pwd, a_uid, a_gid, _perms, ')');
+  declare retValue any;
+
+  retValue := DAV_AUTHENTICATE_HTTP (id[2], what, req, can_write_http, a_lines, a_uname, a_pwd, a_uid, a_gid, _perms);
+
+  return retValue;
+}
+;
+
+--| This should return ID of the collection that contains resource or collection with given ID,
+--| Possible ambiguity (such as symlinks etc.) should be resolved by using path.
+--| This matches DAV_GET_PARENT (in id any, in st char(1), in path varchar) returns any
+create function "SkyDrive_DAV_GET_PARENT" (
+  in id any,
+  in what char(1),
+  in path varchar) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_GET_PARENT (', id, what, path, ')');
+  declare retValue any;
+
+  retValue := DAV_GET_PARENT (id[2], what, path);
+  if (DAV_HIDE_ERROR (retValue) is not null)
+    retValue := vector (DB.DBA.SkyDrive__detName (), id[1], retValue, 'C');
+
+  return retValue;
+}
+;
+
+--| When DAV_COL_CREATE_INT calls DET function, authentication, check for lock and check for overwrite are passed, uid and gid are translated from strings to IDs.
+--| Check for overwrite, but the deletion of previously existing collection should be made by DET function.
+create function "SkyDrive_DAV_COL_CREATE" (
+  in detcol_id any,
+  in path_parts any,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer,
+  in extern integer := 0) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_COL_CREATE (', detcol_id, path_parts, permissions, uid, gid, auth_uid, extern, ')');
+  declare ouid, ogid integer;
+  declare title, parentID, parentListID, listID, listItem varchar;
+  declare url, body, header any;
+  declare retValue, retHeader, result, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  if (save is null)
+  {
+    title := path_parts[length (path_parts)-2];
+    parentListID := DB.DBA.SkyDrive__root ();
+    if (length (path_parts) > 2)
+    {
+      parentID := DB.DBA.DAV_SEARCH_ID (DB.DBA.SkyDrive__path (detcol_id, path_parts), 'P');
+      parentListID := DB.DBA.SkyDrive__paramGet (parentID, 'C', 'id', 0);
+    }
+    body := sprintf ('{name: "%s"}', title);
+    header := sprintf (
+      'Content-Length: %d\r\n' ||
+      'Content-Type: application/json\r\n',
+      length (body));
+    url := sprintf ('https://apis.live.net/v5.0/%U', parentListID);
+    result := DB.DBA.SkyDrive__exec (detcol_id, retHeader, 'POST', url, header, body);
+    if (DAV_HIDE_ERROR (result) is null)
+    {
+      retValue := result;
+      goto _exit;
+    }
+    listItem := ODS..json2obj (result);
+    listID := get_keyword ('id', listItem);
+  }
+  connection_set ('dav_store', 1);
+  DB.DBA.SkyDrive__owner (detcol_id, path_parts, DB.DBA.SkyDrive__user (uid, auth_uid), DB.DBA.SkyDrive__user (gid, auth_uid), ouid, ogid);
+  retValue := DAV_COL_CREATE_INT (DB.DBA.SkyDrive__path (detcol_id, path_parts), permissions, DB.DBA.SkyDrive__user (uid, auth_uid), DB.DBA.SkyDrive__user (gid, auth_uid), DB.DBA.SkyDrive__user (http_dav_uid ()), DB.DBA.SkyDrive__password (http_dav_uid ()), 1, 0, 1, ouid, ogid);
+
+_exit:;
+  connection_set ('dav_store', save);
+  if (DAV_HIDE_ERROR (retValue) is not null)
+  {
+    if (save is null)
+    {
+      DB.DBA.SkyDrive__paramSet (retValue, 'C', 'Entry', DB.DBA.SkyDrive__obj2xml (listItem), 0);
+      DB.DBA.SkyDrive__paramSet (retValue, 'C', 'id', listID, 0);
+    }
+    DB.DBA.SkyDrive__paramSet (retValue, 'C', 'virt:DETCOL_ID', cast (detcol_id as varchar), 0, 0);
+    retValue := vector (DB.DBA.SkyDrive__detName (), detcol_id, retValue, 'C');
+  }
+
+  return retValue;
+}
+;
+
+--| It looks like that this is redundant and should be removed at all.
+create function "SkyDrive_DAV_COL_MOUNT" (
+  in detcol_id any,
+  in path_parts any,
+  in full_mount_path varchar,
+  in mount_det varchar,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_COL_MOUNT (', detcol_id, path_parts, full_mount_path, mount_det, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| It looks like that this is redundant and should be removed at all.
+create function "SkyDrive_DAV_COL_MOUNT_HERE" (
+  in parent_id any,
+  in full_mount_path varchar,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_COL_MOUNT_HERE (', parent_id, full_mount_path, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_DELETE_INT calls DET function, authentication and check for lock are passed.
+create function "SkyDrive_DAV_DELETE" (
+  in detcol_id any,
+  in path_parts any,
+  in what char(1),
+  in silent integer,
+  in auth_uid integer) returns integer
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_DELETE (', detcol_id, path_parts, what, silent, auth_uid, ')');
+  declare path, listId varchar;
+  declare retValue, save any;
+  declare id, url, header, retHeader, params any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  path := DB.DBA.SkyDrive__path (detcol_id, path_parts);
+  id := DB.DBA.DAV_SEARCH_ID (path, what);
+  if (save is null)
+  {
+    listId := DB.DBA.SkyDrive__paramGet (id, what, 'id', 0);
+    header := null;
+    url := sprintf ('https://apis.live.net/v5.0/%s', listId);
+    retValue := DB.DBA.SkyDrive__exec (detcol_id, retHeader, 'DELETE', url, header);
+    if (DAV_HIDE_ERROR (retValue) is null)
+      goto _exit;
+  }
+  connection_set ('dav_store', 1);
+  if (what = 'R')
+    DB.DBA.SkyDrive__rdf_delete (detcol_id, id, what);
+  retValue := DAV_DELETE_INT (path, 1, null, null, 0, 0);
+
+_exit:;
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| When DAV_RES_UPLOAD_STRSES_INT calls DET function, authentication and check for locks are performed before the call.
+--| There's a special problem, known as 'Transaction deadlock after reading from HTTP session'.
+--| The DET function should do only one INSERT of the 'content' into the table and do it as late as possible.
+--| The function should return -29 if deadlocked or otherwise broken after reading blob from HTTP.
+create function "SkyDrive_DAV_RES_UPLOAD" (
+  in detcol_id any,
+  in path_parts any,
+  inout content any,
+  in type varchar,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_RES_UPLOAD (', detcol_id, path_parts, ', [content], ', type, permissions, uid, gid, auth_uid, ')');
+  declare ouid, ogid integer;
+  declare name, path, parentID, parentListID, listID, listItem, rdf_graph varchar;
+  declare url, body, header any;
+  declare url, header, body, params any;
+  declare retValue, retHeader, result, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  path := DB.DBA.SkyDrive__path (detcol_id, path_parts);
+  if (save is null)
+  {
+    if (__tag (content) = 126)
+    {
+      declare real_content any;
+
+      real_content := http_body_read (1);
+      content := string_output_string (real_content);  -- check if bellow code can work with string session and if so remove this line
+    }
+    name := path_parts[length (path_parts)-1];
+    parentListID := DB.DBA.SkyDrive__root ();
+    if (length (path_parts) > 2)
+    {
+      parentID := DB.DBA.DAV_SEARCH_ID (DB.DBA.SkyDrive__path (detcol_id, path_parts), 'P');
+      parentListID := DB.DBA.SkyDrive__paramGet (parentID, 'C', 'id', 0);
+    }
+    url := sprintf ('https://apis.live.net/v5.0/%s/files/%U', parentListID, name);
+    result := DB.DBA.SkyDrive__exec (detcol_id, retHeader, 'PUT', url, null, blob_to_string (content));
+    if (DAV_HIDE_ERROR (result) is null)
+    {
+      retValue := result;
+      goto _exit;
+    }
+    listItem := ODS..json2obj (result);
+    listID := get_keyword ('id', listItem);
+  }
+_skip_create:;
+  connection_set ('dav_store', 1);
+  DB.DBA.SkyDrive__owner (detcol_id, path_parts, DB.DBA.SkyDrive__user (uid, auth_uid), DB.DBA.SkyDrive__user (gid, auth_uid), ouid, ogid);
+  retValue := DAV_RES_UPLOAD_STRSES_INT (path, content, type, permissions, DB.DBA.SkyDrive__user (uid, auth_uid), DB.DBA.SkyDrive__user (gid, auth_uid), DB.DBA.SkyDrive__user (http_dav_uid ()), DB.DBA.SkyDrive__password (http_dav_uid ()), 0, ouid=>ouid, ogid=>ogid, check_locks=>0);
+
+_exit:;
+  connection_set ('dav_store', save);
+  if (DAV_HIDE_ERROR (retValue) is not null)
+  {
+    rdf_graph := DB.DBA.SkyDrive__paramGet (detcol_id, 'C', 'graph', 0);
+    if (not DB.DBA.is_empty_or_null (rdf_graph))
+      DB.DBA.SkyDrive__rdf (detcol_id, retValue, 'R');
+
+    if (save is null)
+    {
+      DB.DBA.SkyDrive__paramSet (retValue, 'R', 'Entry', DB.DBA.SkyDrive__obj2xml (listItem), 0);
+      DB.DBA.SkyDrive__paramSet (retValue, 'R', 'id', listID, 0);
+    }
+    DB.DBA.SkyDrive__paramSet (retValue, 'R', 'virt:DETCOL_ID', cast (detcol_id as varchar), 0, 0);
+    retValue := vector (DB.DBA.SkyDrive__detName (), detcol_id, retValue, 'R');
+  }
+  return retValue;
+}
+;
+
+--| When DAV_PROP_REMOVE_INT calls DET function, authentication and check for locks are performed before the call.
+--| The check whether it's a system name or not (when an error in returned if name is system) is _not_ permitted.
+--| It should delete any dead property even if the name looks like system name.
+create function "SkyDrive_DAV_PROP_REMOVE" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in silent integer,
+  in auth_uid integer) returns integer
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_PROP_REMOVE (', id, what, propname, silent, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_PROP_REMOVE_RAW (id[2], what, propname, silent, auth_uid);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_SET_INT calls DET function, authentication and check for locks are performed before the call.
+--| The check whether it's a system property or not is _not_ permitted and the function should return -16 for live system properties.
+create function "SkyDrive_DAV_PROP_SET" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in propvalue any,
+  in overwrite integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_PROP_SET (', id, what, propname, propvalue, overwrite, auth_uid, ')');
+  declare retValue any;
+
+  id := id[2];
+  retValue := DB.DBA.DAV_PROP_SET_RAW (id, what, propname, propvalue, 1, http_dav_uid ());
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_GET_INT calls DET function, authentication and check whether it's a system property are performed before the call.
+create function "SkyDrive_DAV_PROP_GET" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_PROP_GET (', id, what, propname, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_PROP_GET_INT (id[2], what, propname, 0);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_LIST_INT calls DET function, authentication is performed before the call.
+--| The returned list should contain only user properties.
+create function "SkyDrive_DAV_PROP_LIST" (
+  in id any,
+  in what char(0),
+  in propmask varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_PROP_LIST (', id, what, propmask, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_PROP_LIST_INT (id[2], what, propmask, 0);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "SkyDrive_DAV_DIR_SINGLE" (
+  in id any,
+  in what char(0),
+  in path any,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_DIR_SINGLE (', id, what, path, auth_uid, ')');
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  retValue := DAV_DIR_SINGLE_INT (id[2], what, null, DB.DBA.SkyDrive__user (http_dav_uid ()), DB.DBA.SkyDrive__password (http_dav_uid ()), http_dav_uid ());
+  connection_set ('dav_store', save);
+  if ((DAV_HIDE_ERROR (retValue) is not null) and (save is null))
+    retValue[4] := vector (DB.DBA.SkyDrive__detName (), id[1], retValue[4], what);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "SkyDrive_DAV_DIR_LIST" (
+  in detcol_id any,
+  in subPath_parts any,
+  in detcol_parts varchar,
+  in name_mask varchar,
+  in recursive integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_DIR_LIST (', detcol_id, subPath_parts, detcol_parts, name_mask, recursive, auth_uid, ')');
+  declare colId integer;
+  declare what, colPath varchar;
+  declare retValue, save, downloads, listItems, davItems, colEntry, xmlItems, davEntry, listIds, listId any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', null);
+  what := case when ((length (subPath_parts) = 0) or (subPath_parts[length (subPath_parts) - 1] = '')) then 'C' else 'R' end;
+  if ((what = 'R') or (recursive = -1))
+    return DB.DBA.SkyDrive_DAV_DIR_SINGLE (detcol_id, what, null, auth_uid);
+
+  colPath := DB.DBA.DAV_CONCAT_PATH (detcol_parts, subPath_parts);
+  colId := DB.DBA.DAV_SEARCH_ID (colPath, 'C');
+
+  downloads := vector ();
+  listItems := DB.DBA.SkyDrive__list (detcol_id, detcol_parts, subPath_parts);
+  if (DAV_HIDE_ERROR (listItems) is null)
+    goto _exit;
+
+  if (isinteger (listItems))
+    goto _exit;
+
+  DB.DBA.SkyDrive__activity (detcol_id, 'Sync started');
+  {
+    declare _id, _what, _type, _content any;
+    declare title varchar;
+    {
+      declare exit handler for sqlstate '*'
+      {
+        DB.DBA.SkyDrive__activity (detcol_id, 'Exec error: ' || __SQL_MESSAGE);
+        goto _exitSync;
+      };
+
+      connection_set ('dav_store', 1);
+      colEntry := DB.DBA.DAV_DIR_SINGLE_INT (colId, 'C', '', null, null, http_dav_uid ());
+      listItems := subseq (ODS..json2obj (listItems), 2);
+      listItems := get_keyword ('data', listItems);
+      listIds := vector ();
+      davItems := DB.DBA.SkyDrive__davList (detcol_id, colId);
+      foreach (any davItem in davItems) do
+      {
+        listID := DB.DBA.SkyDrive__paramGet (davItem[4], davItem[1], 'id', 0);
+        foreach (any listItem in listItems) do
+        {
+          title := get_keyword ('name', listItem);
+          if ((listID = get_keyword ('id', listItem)) and (title = davItem[10]))
+          {
+            davEntry := DB.DBA.SkyDrive__paramGet (davItem[4], davItem[1], 'Entry', 0);
+            if (davEntry is not null)
+            {
+              listIds := vector_concat (listIds, vector (listID));
+              davEntry := xtree_doc (davEntry);
+              if (DB.DBA.SkyDrive__entryXPath (davEntry, '/updated_time', 1) <> get_keyword ('updated_time', listItem))
+              {
+                set triggers off;
+                DB.DBA.SkyDrive__paramSet (davItem[4], davItem[1], ':getlastmodified', DB.DBA.SkyDrive__stringdate (get_keyword ('updated_time', listItem)), 0, 0);
+                set triggers on;
+                DB.DBA.SkyDrive__paramSet (davItem[4], davItem[1], 'Entry', DB.DBA.SkyDrive__obj2xml (listItem), 0);
+                if (davItem[1] = 'R')
+                {
+                  DB.DBA.SkyDrive__paramSet (davItem[4], davItem[1], 'download', '0', 0);
+                  downloads := vector_concat (downloads, vector (vector (davItem[4], davItem[1])));
+                }
+              }
+              else
+              {
+                declare downloaded integer;
+
+                downloaded := DB.DBA.SkyDrive__paramGet (davItem[4], davItem[1], 'download', 0);
+                if (downloaded is not null)
+                {
+                  downloaded := cast (downloaded as integer);
+                  if (downloaded <= 5)
+                    downloads := vector_concat (downloads, vector (vector (davItem[4], davItem[1])));
+                }
+              }
+              goto _continue;
+            }
+          }
+        }
+        if (davItem[1] = 'R')
+          DB.DBA.SkyDrive__rdf_delete (detcol_id, davItem[4], davItem[1]);
+        DAV_DELETE_INT (davItem[0], 1, null, null, 0, 0);
+
+      _continue:;
+        commit work;
+      }
+      foreach (any listItem in listItems) do
+      {
+        listID := get_keyword ('id', listItem);
+        if (not position (listID, listIDs))
+        {
+          title := get_keyword ('name', listItem);
+          connection_set ('dav_store', 1);
+          if (get_keyword ('type', listItem) in ('folder', 'album'))
+          {
+            _id := DB.DBA.DAV_COL_CREATE (colPath || title || '/',  colEntry[5], colEntry[7], colEntry[6], DB.DBA.SkyDrive__user (http_dav_uid ()), DB.DBA.SkyDrive__password (http_dav_uid ()));
+            _what := 'C';
+          }
+          else
+          {
+            _content := '';
+            _type := http_mime_type (title);
+            _id := DB.DBA.DAV_RES_UPLOAD (colPath || title,  _content, _type, colEntry[5], colEntry[7], colEntry[6], DB.DBA.SkyDrive__user (http_dav_uid ()), DB.DBA.SkyDrive__password (http_dav_uid ()));
+            _what := 'R';
+          }
+          if (DAV_HIDE_ERROR (_id) is not null)
+          {
+            set triggers off;
+            DB.DBA.SkyDrive__paramSet (_id, _what, ':creationdate', DB.DBA.SkyDrive__stringdate (get_keyword ('created_time', listItem)), 0, 0);
+            DB.DBA.SkyDrive__paramSet (_id, _what, ':getlastmodified', DB.DBA.SkyDrive__stringdate (get_keyword ('updated_time', listItem)), 0, 0);
+            set triggers on;
+            DB.DBA.SkyDrive__paramSet (_id, _what, 'virt:DETCOL_ID', cast (detcol_id as varchar), 0, 0);
+            DB.DBA.SkyDrive__paramSet (_id, _what, 'id', listID, 0);
+            DB.DBA.SkyDrive__paramSet (_id, _what, 'Entry', DB.DBA.SkyDrive__obj2xml (listItem), 0);
+            if (_what = 'R')
+            {
+              DB.DBA.SkyDrive__paramSet (_id, _what, 'download', '0', 0);
+              downloads := vector_concat (downloads, vector (vector (_id, _what)));
+            }
+          }
+          commit work;
+        }
+      }
+    }
+  _exitSync:
+    connection_set ('dav_store', save);
+  }
+  DB.DBA.SkyDrive__activity (detcol_id, 'Sync ended');
+
+_exit:;
+  retValue := DB.DBA.SkyDrive__davList (detcol_id, colId);
+  DB.DBA.SkyDrive__downloads (detcol_id, downloads);
+
+  return retValue;
+}
+;
+
+--| When DAV_DIR_FILTER_INT calls DET function, authentication is performed before the call and compilation is initialized.
+create function "SkyDrive_DAV_DIR_FILTER" (
+  in detcol_id any,
+  in subPath_parts any,
+  in detcol_parts varchar,
+  inout compilation any,
+  in recursive integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_DIR_FILTER (', detcol_id, subPath_parts, detcol_parts, compilation, recursive, auth_uid, ')');
+  return vector();
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "SkyDrive_DAV_SEARCH_ID" (
+  in detcol_id any,
+  in path_parts any,
+  in what char(1)) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_SEARCH_ID (', detcol_id, path_parts, what, ')');
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  retValue := DAV_SEARCH_ID (DB.DBA.SkyDrive__path (detcol_id, path_parts), what);
+  connection_set ('dav_store', save);
+  if ((DAV_HIDE_ERROR (retValue) is not null))
+  {
+    if (isinteger (retValue) and (save is null))
+      retValue := vector (DB.DBA.SkyDrive__detName (), detcol_id, retValue, what);
+
+    else if (isarray (retValue) and (save = 1))
+      retValue := retValue[2];
+  }
+  return retValue;
+}
+;
+
+create function "SkyDrive_DAV_MAKE_ID" (
+  in detcol_id any,
+  in id any,
+  in what char(1)) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_MAKE_ID (', id, what, ')');
+  declare retValue any;
+
+  retValue := vector (DB.DBA.SkyDrive__detName (), detcol_id, id, what);
+
+  return retValue;
+}
+;
+
+--| When DAV_SEARCH_PATH_INT calls DET function, authentication is performed before the call.
+create function "SkyDrive_DAV_SEARCH_PATH" (
+  in id any,
+  in what char(1)) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_SEARCH_PATH (', id, what, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DB.DBA.DAV_SEARCH_PATH (davId, what);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| When DAV_COPY_INT calls DET function, authentication and check for locks are performed before the call, but no check for existing/overwrite.
+create function "SkyDrive_DAV_RES_UPLOAD_COPY" (
+  in detcol_id any,
+  in path_parts any,
+  in source_id any,
+  in what char(1),
+  in overwrite_flags integer,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_RES_UPLOAD_COPY (', detcol_id, path_parts, source_id, what, overwrite_flags, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_COPY_INT calls DET function, authentication and check for locks are performed before the call, but no check for existing/overwrite.
+create function "SkyDrive_DAV_RES_UPLOAD_MOVE" (
+  in detcol_id any,
+  in path_parts any,
+  in source_id any,
+  in what char(1),
+  in overwrite_flags integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_RES_UPLOAD_MOVE (', detcol_id, path_parts, source_id, what, overwrite_flags, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_RES_CONTENT or DAV_RES_COPY_INT or DAV_RES_MOVE_INT calls DET function, authentication is made.
+--| If content_mode is 1 then content is a valid output stream before the call.
+create function "SkyDrive_DAV_RES_CONTENT" (
+  in id any,
+  inout content any,
+  out type varchar,
+  in content_mode integer) returns integer
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_RES_CONTENT (', id, ', [content], [type], ', content_mode, ')');
+  declare retValue any;
+
+  retValue := DAV_RES_CONTENT_INT (id[2], content, type, content_mode, 0);
+
+  return retValue;
+}
+;
+
+--| This adds an extra access path to the existing resource or collection.
+create function "SkyDrive_DAV_SYMLINK" (
+  in detcol_id any,
+  in path_parts any,
+  in source_id any,
+  in what char(1),
+  in overwrite integer,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_SYMLINK (', detcol_id, path_parts, source_id, overwrite, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| This gets a list of resources and/or collections as it is returned by DAV_DIR_LIST and and writes the list of quads (old_id, 'what', old_full_path, dereferenced_id, dereferenced_full_path).
+create function "SkyDrive_DAV_DEREFERENCE_LIST" (
+  in detcol_id any,
+  inout report_array any) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_DEREFERENCE_LIST (', detcol_id, report_array, ')');
+  return -20;
+}
+;
+
+--| This gets one of reference quads returned by ..._DAV_REREFERENCE_LIST() and returns a record (new_full_path, new_dereferenced_full_path, name_may_vary).
+create function "SkyDrive_DAV_RESOLVE_PATH" (
+  in detcol_id any,
+  inout reference_item any,
+  inout old_base varchar,
+  inout new_base varchar) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_RESOLVE_PATH (', detcol_id, reference_item, old_base, new_base, ')');
+  return -20;
+}
+;
+
+--| There's no API function to lock for a while (do we need such?) The "LOCK" DAV method checks that all parameters are valid but does not check for existing locks.
+create function "SkyDrive_DAV_LOCK" (
+  in path any,
+  in id any,
+  in what char(1),
+  inout locktype varchar,
+  inout scope varchar,
+  in token varchar,
+  inout owner_name varchar,
+  inout owned_tokens varchar,
+  in depth varchar,
+  in timeout_sec integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_LOCK (', path, id, what, locktype, scope, token, owner_name, owned_tokens, depth, timeout_sec, auth_uid, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_LOCK_INT (path, davId, what, locktype, scope, token, owner_name, owned_tokens, depth, timeout_sec, DB.DBA.SkyDrive__user (auth_uid), DB.DBA.SkyDrive__password (auth_uid), auth_uid);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| There's no API function to unlock for a while (do we need such?) The "UNLOCK" DAV method checks that all parameters are valid but does not check for existing locks.
+create function "SkyDrive_DAV_UNLOCK" (
+  in id any,
+  in what char(1),
+  in token varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_UNLOCK (', id, what, token, auth_uid, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_UNLOCK_INT (davId, what, token, DB.DBA.SkyDrive__user (auth_uid), DB.DBA.SkyDrive__password (auth_uid), auth_uid);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| The caller does not check if id is valid.
+--| This returns -1 if id is not valid, 0 if all existing locks are listed in owned_tokens whitespace-delimited list, 1 for soft 2 for hard lock.
+create function "SkyDrive_DAV_IS_LOCKED" (
+  inout id any,
+  inout what char(1),
+  in owned_tokens varchar) returns integer
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_IS_LOCKED (', id, what, owned_tokens, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_IS_LOCKED_INT (davId, what, owned_tokens);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| The caller does not check if id is valid.
+--| This returns -1 if id is not valid, list of tuples (LOCK_TYPE, LOCK_SCOPE, LOCK_TOKEN, LOCK_TIMEOUT, LOCK_OWNER, LOCK_OWNER_INFO) otherwise.
+create function "SkyDrive_DAV_LIST_LOCKS" (
+  in id any,
+  in what char(1),
+  in recursive integer) returns any
+{
+  -- dbg_obj_princ ('SkyDrive_DAV_LIST_LOCKS" (', id, what, recursive);
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_LIST_LOCKS_INT (davId, what, recursive);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__root ()
+{
+  return 'me/skydrive';
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__fileDebug (
+  in value any,
+  in mode integer := -1)
+{
+  string_to_file ('skydrive.txt', cast (value as varchar) || '\r\n', mode);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__detcolId (
+  in id any)
+{
+  if (isinteger (id))
+    return id;
+
+  return id[1];
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__davId (
+  in id any)
+{
+  if (isinteger (id))
+    return id;
+
+  return id[2];
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__stringdate (
+  in dt varchar)
+{
+	declare N integer;
+	declare rs, tzone, tzone_z, tzone_h, tzone_m any;
+
+	rs := stringdate (subseq (dt, 0, 19));
+	if (length (dt) > 19)
+	{
+		tzone   := subseq (dt, 19);
+		tzone_z := substring (tzone, 1, 1);
+		tzone_h := atoi (substring (tzone, 2, 2));
+		tzone_m := atoi (substring (tzone, 4, 2));
+	  if (tzone_z = '+')
+	  {
+	    tzone_h := tzone_h - 2 * tzone_h;
+	    tzone_m := tzone_m - 2 * tzone_m;
+		}
+	  rs := dateadd ('hour',   tzone_h, rs);
+	  rs := dateadd ('minute', tzone_m, rs);
+	}
+	return rs;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__user (
+  in user_id integer,
+  in default_id integer := null)
+{
+  return coalesce ((select U_NAME from DB.DBA.SYS_USERS where U_ID = coalesce (user_id, default_id)), '');
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__password (
+  in user_id integer)
+{
+  return coalesce ((select pwd_magic_calc(U_NAME, U_PWD, 1) from WS.WS.SYS_DAV_USER where U_ID = user_id), '');
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__owner (
+  in detcol_id any,
+  in subPath_parts any,
+  in uid any,
+  in gid any,
+  inout ouid integer,
+  inout ogid integer)
+{
+  declare id any;
+  declare path varchar;
+
+  DB.DBA.DAV_OWNER_ID (uid, gid, ouid, ogid);
+  if ((ouid = -12) or (ouid = 5))
+  {
+    path := DB.DBA.SkyDrive__path (detcol_id, subPath_parts);
+    id := DB.DBA.DAV_SEARCH_ID (path, 'P');
+    if (DAV_HIDE_ERROR (id))
+    {
+      select COL_OWNER, COL_GROUP
+        into ouid, ogid
+        from WS.WS.SYS_DAV_COL
+       where COL_ID = id;
+    }
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__detName ()
+{
+  return UNAME'SkyDrive';
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__xml2string (
+  in _xml any)
+{
+  declare stream any;
+
+  stream := string_output ();
+  http_value (_xml, null, stream);
+  return string_output_string (stream);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__path (
+  in detcol_id any,
+  in subPath_parts any)
+{
+  declare N integer;
+  declare path varchar;
+
+  path := rtrim (DB.DBA.DAV_SEARCH_PATH (detcol_id, 'C'), '/');
+  for (N := 0; N < length (subPath_parts); N := N + 1)
+    path := path  || '/' || subPath_parts[N];
+
+  return path;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__params (
+  in colId integer)
+{
+  declare tmp, params any;
+
+  colId := DB.DBA.SkyDrive__detcolId (colId);
+  tmp := DB.DBA.SkyDrive__paramGet (colId, 'C', 'Authentication', 0);
+  if (tmp = 'Yes')
+  {
+    params := vector (
+      'authentication',       tmp,
+      'access_timestamp',     stringdate (DB.DBA.SkyDrive__paramGet (colId, 'C', 'access_timestamp', 0)),
+      'access_token',         DB.DBA.SkyDrive__paramGet (colId, 'C', 'access_token', 0, 1, 1),
+      'token_type',           DB.DBA.SkyDrive__paramGet (colId, 'C', 'token_type', 0),
+      'expires_in',           cast (DB.DBA.SkyDrive__paramGet (colId, 'C', 'expires_in', 0) as integer),
+      'refresh_token',        DB.DBA.SkyDrive__paramGet (colId, 'C', 'refresh_token', 0, 1, 1),
+      'authentication_token', DB.DBA.SkyDrive__paramGet (colId, 'C', 'authentication_token', 0, 1, 1),
+      'graph',                DB.DBA.SkyDrive__paramGet (colId, 'C', 'graph', 0)
+    );
+  }
+  else
+  {
+    params := vector ('authentication', 'No');
+  }
+  return params;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__paramSet (
+  in _id any,
+  in _what varchar,
+  in _propName varchar,
+  in _propValue any,
+  in _serialized integer := 1,
+  in _prefixed integer := 1,
+  in _encrypt integer := 0)
+{
+  -- dbg_obj_princ ('DB.DBA.SkyDrive__paramSet', _propName, _propValue, ')');
+  declare retValue any;
+
+  if (_serialized)
+    _propValue := serialize (_propValue);
+
+  if (_encrypt)
+    _propValue := pwd_magic_calc ('skydrive', _propValue);
+
+  if (_prefixed)
+    _propName := 'virt:SkyDrive-' || _propName;
+
+  _id := DB.DBA.SkyDrive__davId (_id);
+  retValue := DB.DBA.DAV_PROP_SET_RAW (_id, _what, _propName, _propValue, 1, http_dav_uid ());
+
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__paramGet (
+  in _id integer,
+  in _what varchar,
+  in _propName varchar,
+  in _serialized integer := 1,
+  in _prefixed integer := 1,
+  in _decrypt integer := 0)
+{
+  -- dbg_obj_princ ('DB.DBA.SkyDrive__paramGet (', _id, _what, _propName, ')');
+  declare propValue any;
+
+  if (_prefixed)
+    _propName := 'virt:SkyDrive-' || _propName;
+
+  propValue := DB.DBA.DAV_PROP_GET_INT (DB.DBA.SkyDrive__davId (_id), _what, _propName, 0, DB.DBA.Dropbox__user (http_dav_uid ()), DB.DBA.Dropbox__password (http_dav_uid ()), http_dav_uid ());
+  if (isinteger (propValue))
+    propValue := null;
+
+  if (_serialized and not isnull (propValue))
+    propValue := deserialize (propValue);
+
+  if (_decrypt and not isnull (propValue))
+    propValue := pwd_magic_calc ('skydrive', propValue, 1);
+
+  return propValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__paramRemove (
+  in _id integer,
+  in _what varchar,
+  in _propName varchar,
+  in _prefixed integer := 1)
+{
+  -- dbg_obj_princ ('DB.DBA.SkyDrive__paramRemove (', _id, _what, _propName, ')');
+  if (_prefixed)
+    _propName := 'virt:SkyDrive-' || _propName;
+
+  DB.DBA.DAV_PROP_REMOVE_RAW (DB.DBA.SkyDrive__davId (_id), _what, _propName, 1, http_dav_uid());
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__obj2xml (
+  in item any)
+{
+  return '<entry>' || ODS..obj2xml (item, 10) || '</entry>';
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__entryXPath (
+  in _xml any,
+  in _xpath varchar,
+  in _cast integer := 0)
+{
+  declare retValue any;
+
+  if (_cast)
+  {
+    retValue := serialize_to_UTF8_xml (xpath_eval (sprintf ('[ xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005" ] string (//entry%s)', _xpath), _xml, 1));
+  } else {
+    retValue := xpath_eval ('[ xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005" ] //entry' || _xpath, _xml, 1);
+  }
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__exec_error (
+  in _header any,
+  in _silent integer := 0)
+{
+  if ((_header[0] like 'HTTP/1._ 4__ %') or (_header[0] like 'HTTP/1._ 5__ %'))
+  {
+    if (not _silent)
+      signal ('22023', trim (_header[0], '\r\n'));
+
+    return 0;
+  }
+  return 1;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__exec_code (
+  in _header any)
+{
+  return subseq (_header[0], 9, 12);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__exec (
+  inout detcol_id integer,
+  inout retHeader varchar,
+  in method varchar,
+  in url varchar,
+  in header varchar := '',
+  in content varchar := '')
+{
+  -- dbg_obj_princ ('DB.DBA.SkyDrive__exec', detcol_id, method, url, header, ')');
+  declare retValue, params any;
+  declare _client_id, _client_secret, _return_url varchar;
+  declare _expires_in, _access_timestamp, _token_type, _refresh_token any;
+  declare tmp, _json, _prefix, _reqHeader, _resHeader, _body any;
+  declare exit handler for sqlstate '*'
+  {
+    DB.DBA.SkyDrive__activity (detcol_id, 'Exec error: ' || __SQL_MESSAGE);
+    return -28;
+  };
+
+  params := DB.DBA.SkyDrive__params (detcol_id);
+  if (get_keyword ('authentication', params) <> 'Yes')
+  {
+    DB.DBA.SkyDrive__activity (detcol_id, 'Error: Not authenticated');
+    return -28;
+  }
+
+  _expires_in := get_keyword ('expires_in', params);
+  _access_timestamp := get_keyword ('access_timestamp', params);
+  if (dateadd ('second', _expires_in, _access_timestamp) < now ())
+  {
+    -- refresh token first
+
+    _client_id := (select a_key from OAUTH..APP_REG where a_name = 'SkyDrive API' and a_owner = 0);
+    _client_secret := (select a_secret from OAUTH..APP_REG where a_name = 'SkyDrive API' and a_owner = 0);
+    _return_url := sprintf ('http://%{WSHost}s/ods/access_skydrive.vsp', http_path());
+    _refresh_token := get_keyword ('refresh_token', params);
+    _reqHeader := null;
+    _resHeader := null;
+    _body := sprintf ('client_id=%U&client_secret=%U&redirect_uri=%U&refresh_token=%U&grant_type=%U', _client_id, _client_secret, _return_url, _refresh_token, 'refresh_token');
+    _json := http_client_ext (url=>'https://login.live.com/oauth20_token.srf', http_method=>'POST', http_headers=>_reqHeader, headers =>_resHeader, body=>_body, n_redirects=>15);
+    if (not DB.DBA.SkyDrive__exec_error (_resHeader, 1))
+      return -28;
+
+    tmp := subseq (ODS..json2obj(_json), 2);
+    DB.DBA.SkyDrive__paramSet (detcol_id, 'C', 'access_timestamp', datestring (now ()), 0);
+    DB.DBA.SkyDrive__paramSet (detcol_id, 'C', 'access_token', get_keyword ('access_token', tmp), 0, 1, 1);
+    DB.DBA.SkyDrive__paramSet (detcol_id, 'C', 'token_type', get_keyword ('token_type', tmp), 0);
+    DB.DBA.SkyDrive__paramSet (detcol_id, 'C', 'expires_in', cast (get_keyword ('expires_in', tmp) as varchar), 0);
+    params := DB.DBA.SkyDrive__params (detcol_id);
+  }
+
+  _reqHeader := sprintf ('Authorization: %s %s\r\n', initcap (get_keyword ('token_type', params, 'bearer')), get_keyword ('access_token', params));
+  if (header <> '')
+    _reqHeader :=  _reqHeader || header;
+
+  retHeader := null;
+  retValue := http_client_ext (url=>url, http_method=>method, http_headers=>_reqHeader, headers =>retHeader, body=>content, n_redirects=>15);
+  -- dbg_obj_print ('retValue', DB.DBA.SkyDrive__exec_code (retHeader), url, method);
+  if (not DB.DBA.SkyDrive__exec_error (retHeader, 1))
+  {
+    DB.DBA.SkyDrive__activity (detcol_id, 'HTTP error: ' || retValue);
+    return -28;
+  }
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__davList (
+  inout detcol_id integer,
+  inout colId integer)
+{
+  declare retValue any;
+
+  vectorbld_init (retValue);
+  for (select vector (RES_FULL_PATH,
+                      'R',
+                      length (RES_CONTENT),
+                      RES_MOD_TIME,
+                      vector (DB.DBA.SkyDrive__detName (), detcol_id, RES_ID, 'R'),
+                      RES_PERMS,
+                      RES_GROUP,
+                      RES_OWNER,
+                      RES_CR_TIME,
+                      RES_TYPE,
+                      RES_NAME ) as I
+         from WS.WS.SYS_DAV_RES
+        where RES_COL = DB.DBA.SkyDrive__davId (colId)) do
+  {
+    vectorbld_acc (retValue, i);
+  }
+
+  for (select vector (WS.WS.COL_PATH (COL_ID),
+                      'C',
+                      0,
+                      COL_MOD_TIME,
+                      vector (DB.DBA.SkyDrive__detName (), detcol_id, COL_ID, 'C'),
+                      COL_PERMS,
+                      COL_GROUP,
+                      COL_OWNER,
+                      COL_CR_TIME,
+                      'dav/unix-directory',
+                      COL_NAME) as I
+        from WS.WS.SYS_DAV_COL
+       where COL_PARENT = DB.DBA.SkyDrive__davId (colId)) do
+  {
+    vectorbld_acc (retValue, i);
+  }
+
+  vectorbld_final (retValue);
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__list (
+  inout detcol_id any,
+  inout detcol_parts varchar,
+  inout subPath_parts varchar)
+{
+  -- dbg_obj_princ ('DB.DBA.SkyDrive__list (', detcol_id, detcol_parts, subPath_parts, ')');
+  declare colId integer;
+  declare colPath, listId varchar;
+  declare syncTime datetime;
+  declare retValue, retHeader, value, entry any;
+
+  colPath := DB.DBA.DAV_CONCAT_PATH (detcol_parts, subPath_parts);
+  colId := DB.DBA.SkyDrive__davId (DB.DBA.DAV_SEARCH_ID (colPath, 'C'));
+  if (DAV_HIDE_ERROR (colId) is null)
+    return -28;
+
+  syncTime := DB.DBA.SkyDrive__paramGet (colId, 'C', 'syncTime');
+  if (not isnull (syncTime) and (datediff ('second', syncTime, now ()) < 300))
+    return 0;
+
+  if (length (subPath_parts) = 1)
+  {
+    listId := DB.DBA.SkyDrive__root ();
+  }
+  else
+  {
+    listId := DB.DBA.SkyDrive__paramGet (colId, 'C', 'id', 0);
+    if (isnull (listId))
+      return -28;
+  }
+  retValue := DB.DBA.SkyDrive__exec (detcol_id, retHeader, 'GET', sprintf ('https://apis.live.net/v5.0/%s/files', listId));
+  -- dbg_obj_print ('retValue', retValue);
+  if (not isinteger (retValue))
+    DB.DBA.SkyDrive__paramSet (colId, 'C', 'syncTime', now ());
+
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__activity (
+  in detcol_id integer,
+  in text varchar)
+{
+  -- dbg_obj_princ ('DB.DBA.SkyDrive__activity (', detcol_id, text, ')');
+  declare parentId integer;
+  declare parentPath varchar;
+  declare activity_id integer;
+  declare activity, activityName, activityPath, activityContent, activityType varchar;
+  declare davEntry any;
+  declare _errorCount integer;
+  declare exit handler for sqlstate '*'
+  {
+    if (__SQL_STATE = '40001')
+    {
+      rollback work;
+      if (_errorCount > 5)
+        resignal;
+
+      delay (1);
+      _errorCount := _errorCount + 1;
+      goto _start;
+    }
+    return;
+  };
+
+  _errorCount := 0;
+
+_start:;
+  activity := DB.DBA.SkyDrive__paramGet (detcol_id, 'C', 'activity', 0);
+  if (activity is null)
+    return;
+
+  if (activity <> 'on')
+    return;
+
+  davEntry := DB.DBA.DAV_DIR_SINGLE_INT (detcol_id, 'C', '', null, null, http_dav_uid ());
+  if (DB.DBA.DAV_HIDE_ERROR (davEntry) is null)
+    return;
+
+  parentId := DB.DBA.DAV_SEARCH_ID (davEntry[0], 'P');
+  if (DB.DBA.DAV_HIDE_ERROR (parentId) is null)
+    return;
+
+  parentPath := DB.DBA.DAV_SEARCH_PATH (parentId, 'C');
+  if (DB.DBA.DAV_HIDE_ERROR (parentPath) is null)
+    return;
+
+  activityContent := '';
+  activityName := davEntry[10] || '_activity.log';
+  activityPath := parentPath || activityName;
+  activity_id := DB.DBA.DAV_SEARCH_ID (activityPath, 'R');
+  if (DB.DBA.DAV_HIDE_ERROR (activity_id) is not null)
+  {
+    DB.DBA.DAV_RES_CONTENT_INT (activity_id, activityContent, activityType, 0, 0);
+    if (activityType <> 'text/plain')
+      return;
+
+    activityContent := cast (activityContent as varchar);
+  }
+  activityContent := activityContent || sprintf ('%s %s\r\n', subseq (datestring (now ()), 0, 19), text);
+  activityType := 'text/plain';
+  DB.DBA.DAV_RES_UPLOAD_STRSES_INT (activityPath, activityContent, activityType, '110100000RR', DB.DBA.SkyDrive__user (davEntry[6]), DB.DBA.SkyDrive__user (davEntry[7]), extern=>0, check_locks=>0);
+  commit work;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__downloads (
+  in detcol_id integer,
+  in downloads any)
+{
+  declare aq any;
+
+  if (length (downloads) = 0)
+    return;
+
+  set_user_id ('dba');
+  aq := async_queue (1);
+  aq_request (aq, 'DB.DBA.SkyDrive__downloads_aq', vector (detcol_id, downloads));
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__downloads_aq (
+  in detcol_id integer,
+  in downloads any)
+{
+  -- dbg_obj_princ ('DB.DBA.SkyDrive__downloads_aq (', detcol_id, downloads, ')');
+  declare N, downloaded integer;
+  declare url, listID varchar;
+  declare items any;
+  declare retValue, retHeader any;
+
+  set_user_id ('dba');
+  N := 0;
+  items := vector ();
+  DB.DBA.SkyDrive__activity (detcol_id, sprintf ('Downloading %d file(s)', length (downloads)));
+  foreach (any download in downloads) do
+  {
+    downloaded := DB.DBA.SkyDrive__paramGet (download[0], download[1], 'download', 0);
+    if (downloaded is null)
+      goto _continue;
+
+    downloaded := cast (downloaded as integer);
+    if (downloaded > 5)
+      goto _continue;
+
+    listID := DB.DBA.SkyDrive__paramGet (download[0], download[1], 'id', 0);
+    if (listID is null)
+      goto _continue;
+
+    url := sprintf ('https://apis.live.net/v5.0/%s/content', listID);
+    retValue := DB.DBA.SkyDrive__exec (detcol_id, retHeader, 'GET', url);
+    if (DAV_HIDE_ERROR (retValue) is null)
+    {
+      downloaded := downloaded + 1;
+      DB.DBA.SkyDrive__paramSet (download[0], download[1], 'download', cast (downloaded as varchar), 0);
+    }
+    else
+    {
+      update WS.WS.SYS_DAV_RES set RES_CONTENT = retValue where RES_ID = DB.DBA.SkyDrive__davId (download[0]);
+      DB.DBA.SkyDrive__paramRemove (download[0], download[1], 'download');
+      items := vector_concat (items, vector (download));
+      N := N + 1;
+    }
+    commit work;
+
+  _continue:;
+  }
+  DB.DBA.SkyDrive__activity (detcol_id, sprintf ('Downloaded %d file(s)', N));
+  foreach (any item in items) do
+  {
+    DB.DBA.SkyDrive__rdf_delete (detcol_id, item[0], item[1]);
+    DB.DBA.SkyDrive__rdf_insert (detcol_id, item[0], item[1]);
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__rdf (
+  in detcol_id integer,
+  in id any,
+  in what varchar)
+{
+  declare aq any;
+
+  set_user_id ('dba');
+  aq := async_queue (1);
+  aq_request (aq, 'DB.DBA.SkyDrive__rdf_aq', vector (detcol_id, id, what));
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__rdf_aq (
+  in detcol_id integer,
+  in id any,
+  in what varchar)
+{
+  set_user_id ('dba');
+  DB.DBA.SkyDrive__rdf_delete (detcol_id, id, what);
+  DB.DBA.SkyDrive__rdf_insert (detcol_id, id, what);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__rdf_insert (
+  in detcol_id integer,
+  in id any,
+  in what varchar,
+  in rdf_graph varchar := null)
+{
+  -- dbg_obj_princ ('DB.DBA.SkyDrive__rdf_insert (', detcol_id, id, what, rdf_graph, ')');
+  declare permissions, rdf_graph2 varchar;
+  declare rdf_sponger, rdf_cartridges, rdf_metaCartridges any;
+  declare path, content, type any;
+  declare exit handler for sqlstate '*'
+  {
+    return;
+  };
+
+  if (isnull (rdf_graph))
+    rdf_graph := DB.DBA.SkyDrive__paramGet (detcol_id, 'C', 'graph', 0);
+
+  if (DB.DBA.is_empty_or_null (rdf_graph))
+    return;
+
+  permissions := DB.DBA.SkyDrive__paramGet (detcol_id, 'C', ':virtpermissions', 0, 0);
+  if (permissions[6] = ascii('0'))
+  {
+    -- add to private graphs
+    if (not SIOC..private_graph_check (rdf_graph))
+      return;
+  }
+
+  id := DB.DBA.SkyDrive__davId (id);
+  path := DB.DBA.DAV_SEARCH_PATH (id, what);
+  content := (select RES_CONTENT from WS.WS.SYS_DAV_RES where RES_ID = id);
+  type := (select RES_TYPE from WS.WS.SYS_DAV_RES where RES_ID = id);
+  rdf_sponger := coalesce (DB.DBA.SkyDrive__paramGet (detcol_id, 'C', 'sponger', 0), 'on');
+  rdf_cartridges := coalesce (DB.DBA.SkyDrive__paramGet (detcol_id, 'C', 'cartridges', 0), '');
+  rdf_metaCartridges := coalesce (DB.DBA.SkyDrive__paramGet (detcol_id, 'C', 'metaCartridges', 0), '');
+
+  RDF_SINK_UPLOAD (path, content, type, rdf_graph, rdf_sponger, rdf_cartridges, rdf_metaCartridges);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__rdf_delete (
+  in detcol_id integer,
+  in id any,
+  in what varchar,
+  in rdf_graph varchar := null)
+{
+  -- dbg_obj_princ ('DB.DBA.SkyDrive__rdf_delete (', detcol_id, id, what, rdf_graph, ')');
+  declare rdf_graph2 varchar;
+  declare path varchar;
+
+  if (isnull (rdf_graph))
+    rdf_graph := DB.DBA.SkyDrive__paramGet (detcol_id, 'C', 'graph', 0);
+
+  if (DB.DBA.is_empty_or_null (rdf_graph))
+    return;
+
+  path := DB.DBA.DAV_SEARCH_PATH (id, what);
+  if (path like '%.gz')
+    path := regexp_replace (path, '\.gz\x24', '');
+
+  rdf_graph2 := 'http://local.virt' || path;
+  SPARQL delete from graph ?:rdf_graph { ?s ?p ?o } where { graph `iri(?:rdf_graph2)` { ?s ?p ?o } };
+  SPARQL clear graph ?:rdf_graph2;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SkyDrive__refresh (
+  in path varchar)
+{
+  -- dbg_obj_princ ('DB.DBA.SkyDrive__refresh (', path, ')');
+  declare colId any;
+
+  colId := DB.DBA.DAV_SEARCH_ID (path, 'C');
+  if (DAV_HIDE_ERROR (colId) is not null)
+    DB.DBA.SkyDrive__paramRemove (colId, 'C', 'syncTime');
+}
+;
diff --git a/appsrc/ODS-Briefcase/new/DET_WebDAV.sql b/appsrc/ODS-Briefcase/new/DET_WebDAV.sql
new file mode 100755
index 0000000..0d3b2b0
--- /dev/null
+++ b/appsrc/ODS-Briefcase/new/DET_WebDAV.sql
@@ -0,0 +1,1668 @@
+--
+--  $Id: DET_WebDAV.sql,v 1.1 2012/07/18 12:45:29 ddimitrov Exp $
+--
+--  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+--  project.
+--
+--  Copyright (C) 1998-2012 OpenLink Software
+--
+--  This project is free software; you can redistribute it and/or modify it
+--  under the terms of the GNU General Public License as published by the
+--  Free Software Foundation; only version 2 of the License, dated June 1991.
+--
+--  This program is distributed in the hope that it will be useful, but
+--  WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+--  General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License along
+--  with this program; if not, write to the Free Software Foundation, Inc.,
+--  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+--
+
+use DB
+;
+
+--| This matches DAV_AUTHENTICATE (in id any, in what char(1), in req varchar, in a_uname varchar, in a_pwd varchar, in a_uid integer := null)
+--| The difference is that the DET function should not check whether the pair of name and password is valid; the auth_uid is not a null already.
+create function "WebDAV_DAV_AUTHENTICATE" (
+  in id any,
+  in what char(1),
+  in req varchar,
+  in auth_uname varchar,
+  in auth_pwd varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('WebDAV_DAV_AUTHENTICATE (', id, what, req, auth_uname, auth_pwd, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_AUTHENTICATE (id[2], what, req, auth_uname, auth_pwd, auth_uid);
+
+  return retValue;
+}
+;
+
+--| This exactly matches DAV_AUTHENTICATE_HTTP (in id any, in what char(1), in req varchar, in can_write_http integer, inout a_lines any, inout a_uname varchar, inout a_pwd varchar, inout a_uid integer, inout a_gid integer, inout _perms varchar) returns integer
+--| The function should fully check access because DAV_AUTHENTICATE_HTTP do nothing with auth data either before or after calling this DET function.
+--| Unlike DAV_AUTHENTICATE, user name passed to DAV_AUTHENTICATE_HTTP header may not match real DAV user.
+--| If DET call is successful, DAV_AUTHENTICATE_HTTP checks whether the user have read permission on mount point collection.
+--| Thus even if DET function allows anonymous access, the whole request may fail if mountpoint is not readable by public.
+create function "WebDAV_DAV_AUTHENTICATE_HTTP" (
+  in id any,
+  in what char(1),
+  in req varchar,
+  in can_write_http integer,
+  inout a_lines any,
+  inout a_uname varchar,
+  inout a_pwd varchar,
+  inout a_uid integer,
+  inout a_gid integer,
+  inout _perms varchar) returns integer
+{
+  -- dbg_obj_princ ('WebDAV_DAV_AUTHENTICATE_HTTP (', id[2], what, req, can_write_http, a_lines, a_uname, a_pwd, a_uid, a_gid, _perms, ')');
+  declare retValue any;
+
+  retValue := DAV_AUTHENTICATE_HTTP (id[2], what, req, can_write_http, a_lines, a_uname, a_pwd, a_uid, a_gid, _perms);
+
+  return retValue;
+}
+;
+
+--| This should return ID of the collection that contains resource or collection with given ID,
+--| Possible ambiguity (such as symlinks etc.) should be resolved by using path.
+--| This matches DAV_GET_PARENT (in id any, in st char(1), in path varchar) returns any
+create function "WebDAV_DAV_GET_PARENT" (
+  in id any,
+  in what char(1),
+  in path varchar) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_GET_PARENT (', id, what, path, ')');
+  declare retValue any;
+
+  retValue := DAV_GET_PARENT (id[2], what, path);
+  if (DAV_HIDE_ERROR (retValue) is not null)
+    retValue := vector (DB.DBA.WebDAV__detName (), id[1], retValue, 'C');
+
+  return retValue;
+}
+;
+
+--| When DAV_COL_CREATE_INT calls DET function, authentication, check for lock and check for overwrite are passed, uid and gid are translated from strings to IDs.
+--| Check for overwrite, but the deletion of previously existing collection should be made by DET function.
+create function "WebDAV_DAV_COL_CREATE" (
+  in detcol_id any,
+  in path_parts any,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer,
+  in extern integer := 0) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_COL_CREATE (', detcol_id, path_parts, permissions, uid, gid, auth_uid, extern, ')');
+  declare ouid, ogid integer;
+  declare path, title, parentID, parentListHref, listHref, listItem varchar;
+  declare url any;
+  declare V, retValue, retHeader, result, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  path := DB.DBA.WebDAV__path (detcol_id, path_parts);
+  if (save is null)
+  {
+    title := path_parts[length (path_parts)-2];
+    url := DB.DBA.WebDAV__paramGet (detcol_id, 'C', 'path', 0);
+    listHref := '/' || title;
+    if (length (path_parts) > 2)
+    {
+      parentID := DB.DBA.DAV_SEARCH_ID (path, 'P');
+      parentListHref := DB.DBA.WebDAV__paramGet (parentID, 'C', 'href', 0);
+      if (isnull (parentListHref))
+        return -28;
+
+      V := rfc1808_parse_uri (url);
+      V[2] := parentListHref;
+      url := DB.DBA.vspx_uri_compose (V);
+      listHref := rtrim (V[2], '/') || listHref;
+    }
+    url := rtrim (url) || '/' || sprintf ('%U', title) || '/';
+    result := DB.DBA.WebDAV__exec (detcol_id, retHeader, 'MKCOL', url);
+    if (DAV_HIDE_ERROR (result) is null)
+    {
+      retValue := result;
+      goto _exit;
+    }
+    listItem := DB.DBA.WebDAV__resource (detcol_id, url);
+    if (DAV_HIDE_ERROR (listItem) is null)
+    {
+      retValue := listItem;
+      goto _exit;
+    }
+  }
+  connection_set ('dav_store', 1);
+  DB.DBA.WebDAV__owner (detcol_id, path_parts, DB.DBA.WebDAV__user (uid, auth_uid), DB.DBA.WebDAV__user (gid, auth_uid), ouid, ogid);
+  retValue := DAV_COL_CREATE_INT (path, permissions, DB.DBA.WebDAV__user (uid, auth_uid), DB.DBA.WebDAV__user (gid, auth_uid), DB.DBA.WebDAV__user (http_dav_uid ()), DB.DBA.WebDAV__password (http_dav_uid ()), 1, 0, 1, ouid, ogid);
+
+_exit:;
+  connection_set ('dav_store', save);
+  if (DAV_HIDE_ERROR (retValue) is not null)
+  {
+    if (save is null)
+    {
+      DB.DBA.WebDAV__paramSet (retValue, 'C', 'Entry', listItem, 0);
+      DB.DBA.WebDAV__paramSet (retValue, 'C', 'href', listHref, 0);
+    }
+    DB.DBA.WebDAV__paramSet (retValue, 'C', 'virt:DETCOL_ID', cast (detcol_id as varchar), 0, 0);
+    retValue := vector (DB.DBA.WebDAV__detName (), detcol_id, retValue, 'C');
+  }
+
+  return retValue;
+}
+;
+
+--| It looks like that this is redundant and should be removed at all.
+create function "WebDAV_DAV_COL_MOUNT" (
+  in detcol_id any,
+  in path_parts any,
+  in full_mount_path varchar,
+  in mount_det varchar,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_COL_MOUNT (', detcol_id, path_parts, full_mount_path, mount_det, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| It looks like that this is redundant and should be removed at all.
+create function "WebDAV_DAV_COL_MOUNT_HERE" (
+  in parent_id any,
+  in full_mount_path varchar,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_COL_MOUNT_HERE (', parent_id, full_mount_path, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_DELETE_INT calls DET function, authentication and check for lock are passed.
+create function "WebDAV_DAV_DELETE" (
+  in detcol_id any,
+  in path_parts any,
+  in what char(1),
+  in silent integer,
+  in auth_uid integer) returns integer
+{
+  -- dbg_obj_princ ('WebDAV_DAV_DELETE (', detcol_id, path_parts, what, silent, auth_uid, ')');
+  declare path, listHref varchar;
+  declare V, retValue, save any;
+  declare id, url, header, retHeader, params any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  path := DB.DBA.WebDAV__path (detcol_id, path_parts);
+  id := DB.DBA.DAV_SEARCH_ID (path, what);
+  if (save is null)
+  {
+    listHref := DB.DBA.WebDAV__paramGet (id, what, 'href', 0);
+    if (listHref is null)
+      goto _exit;
+
+    url := DB.DBA.WebDAV__paramGet (detcol_id, 'C', 'path', 0);
+    V := rfc1808_parse_uri (url);
+    V[2] := listHref;
+    url := DB.DBA.vspx_uri_compose (V);
+
+    retValue := DB.DBA.WebDAV__exec (detcol_id, retHeader, 'DELETE', url);
+    if (DAV_HIDE_ERROR (retValue) is null)
+      goto _exit;
+  }
+  connection_set ('dav_store', 1);
+  if (what = 'R')
+    DB.DBA.WebDAV__rdf_delete (detcol_id, id, what);
+  retValue := DAV_DELETE_INT (path, 1, null, null, 0, 0);
+
+_exit:;
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| When DAV_RES_UPLOAD_STRSES_INT calls DET function, authentication and check for locks are performed before the call.
+--| There's a special problem, known as 'Transaction deadlock after reading from HTTP session'.
+--| The DET function should do only one INSERT of the 'content' into the table and do it as late as possible.
+--| The function should return -29 if deadlocked or otherwise broken after reading blob from HTTP.
+create function "WebDAV_DAV_RES_UPLOAD" (
+  in detcol_id any,
+  in path_parts any,
+  inout content any,
+  in type varchar,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_RES_UPLOAD (', detcol_id, path_parts, ', [content], ', type, permissions, uid, gid, auth_uid, ')');
+  declare ouid, ogid integer;
+  declare title, path, parentID, parentListHref, listHref, listItem, rdf_graph varchar;
+  declare url, body, header any;
+  declare url, header, body, params any;
+  declare V, retValue, retHeader, result, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  path := DB.DBA.WebDAV__path (detcol_id, path_parts);
+  if (save is null)
+  {
+    if (__tag (content) = 126)
+    {
+      declare real_content any;
+
+      real_content := http_body_read (1);
+      content := string_output_string (real_content);  -- check if bellow code can work with string session and if so remove this line
+    }
+    title := path_parts[length (path_parts)-1];
+    url := DB.DBA.WebDAV__paramGet (detcol_id, 'C', 'path', 0);
+    listHref := '/' || title;
+    if (length (path_parts) > 1)
+    {
+      parentID := DB.DBA.DAV_SEARCH_ID (path, 'P');
+      parentListHref := DB.DBA.WebDAV__paramGet (parentID, 'C', 'href', 0);
+      if (isnull (parentListHref))
+        return -28;
+
+      V := rfc1808_parse_uri (url);
+      V[2] := parentListHref;
+      url := DB.DBA.vspx_uri_compose (V);
+      listHref := rtrim (V[2], '/') || listHref;
+    }
+    header := sprintf (
+      'Content-Length: %d\r\n' ||
+      'Content-Type: %s\r\n',
+      length (content),
+      type);
+    url := rtrim (url) || '/' || sprintf ('%U', title);
+    result := DB.DBA.WebDAV__exec (detcol_id, retHeader, 'PUT', url, header, blob_to_string (content));
+    if (DAV_HIDE_ERROR (result) is null)
+    {
+      retValue := result;
+      goto _exit;
+    }
+    listItem := DB.DBA.WebDAV__resource (detcol_id, url);
+    if (DAV_HIDE_ERROR (listItem) is null)
+    {
+      retValue := listItem;
+      goto _exit;
+    }
+  }
+_skip_create:;
+  connection_set ('dav_store', 1);
+  DB.DBA.WebDAV__owner (detcol_id, path_parts, DB.DBA.WebDAV__user (uid, auth_uid), DB.DBA.WebDAV__user (gid, auth_uid), ouid, ogid);
+  retValue := DAV_RES_UPLOAD_STRSES_INT (path, content, type, permissions, DB.DBA.WebDAV__user (uid, auth_uid), DB.DBA.WebDAV__user (gid, auth_uid), DB.DBA.WebDAV__user (http_dav_uid ()), DB.DBA.WebDAV__password (http_dav_uid ()), 0, ouid=>ouid, ogid=>ogid, check_locks=>0);
+
+_exit:;
+  connection_set ('dav_store', save);
+  if (DAV_HIDE_ERROR (retValue) is not null)
+  {
+    rdf_graph := DB.DBA.WebDAV__paramGet (detcol_id, 'C', 'graph', 0);
+    if (not DB.DBA.is_empty_or_null (rdf_graph))
+      DB.DBA.WebDAV__rdf (detcol_id, retValue, 'R');
+
+    if (save is null)
+    {
+      DB.DBA.WebDAV__paramSet (retValue, 'R', 'Entry', DB.DBA.WebDAV__obj2xml (listItem), 0);
+      DB.DBA.WebDAV__paramSet (retValue, 'R', 'href', listHref, 0);
+    }
+    DB.DBA.WebDAV__paramSet (retValue, 'R', 'virt:DETCOL_ID', cast (detcol_id as varchar), 0, 0);
+    retValue := vector (DB.DBA.WebDAV__detName (), detcol_id, retValue, 'R');
+  }
+  return retValue;
+}
+;
+
+--| When DAV_PROP_REMOVE_INT calls DET function, authentication and check for locks are performed before the call.
+--| The check whether it's a system name or not (when an error in returned if name is system) is _not_ permitted.
+--| It should delete any dead property even if the name looks like system name.
+create function "WebDAV_DAV_PROP_REMOVE" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in silent integer,
+  in auth_uid integer) returns integer
+{
+  -- dbg_obj_princ ('WebDAV_DAV_PROP_REMOVE (', id, what, propname, silent, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_PROP_REMOVE_RAW (id[2], what, propname, silent, auth_uid);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_SET_INT calls DET function, authentication and check for locks are performed before the call.
+--| The check whether it's a system property or not is _not_ permitted and the function should return -16 for live system properties.
+create function "WebDAV_DAV_PROP_SET" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in propvalue any,
+  in overwrite integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_PROP_SET (', id, what, propname, propvalue, overwrite, auth_uid, ')');
+  declare retValue any;
+
+  id := id[2];
+  retValue := DB.DBA.DAV_PROP_SET_RAW (id, what, propname, propvalue, 1, http_dav_uid ());
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_GET_INT calls DET function, authentication and check whether it's a system property are performed before the call.
+create function "WebDAV_DAV_PROP_GET" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('WebDAV_DAV_PROP_GET (', id, what, propname, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_PROP_GET_INT (id[2], what, propname, 0);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_LIST_INT calls DET function, authentication is performed before the call.
+--| The returned list should contain only user properties.
+create function "WebDAV_DAV_PROP_LIST" (
+  in id any,
+  in what char(0),
+  in propmask varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('WebDAV_DAV_PROP_LIST (', id, what, propmask, auth_uid, ')');
+  declare retValue any;
+
+  retValue := DAV_PROP_LIST_INT (id[2], what, propmask, 0);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "WebDAV_DAV_DIR_SINGLE" (
+  in id any,
+  in what char(0),
+  in path any,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_DIR_SINGLE (', id, what, path, auth_uid, ')');
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  retValue := DAV_DIR_SINGLE_INT (id[2], what, null, DB.DBA.WebDAV__user (http_dav_uid ()), DB.DBA.WebDAV__password (http_dav_uid ()), http_dav_uid ());
+  connection_set ('dav_store', save);
+  if ((DAV_HIDE_ERROR (retValue) is not null) and (save is null))
+    retValue[4] := vector (DB.DBA.WebDAV__detName (), id[1], retValue[4], what);
+
+  return retValue;
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "WebDAV_DAV_DIR_LIST" (
+  in detcol_id any,
+  in subPath_parts any,
+  in detcol_parts varchar,
+  in name_mask varchar,
+  in recursive integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_DIR_LIST (', detcol_id, subPath_parts, detcol_parts, name_mask, recursive, auth_uid, ')');
+  declare colId integer;
+  declare what, colPath, colHref varchar;
+  declare tmp, retValue, save, downloads, listItems, listItem, davItems, colEntry, xmlItems, davEntry, listHrefs, listHref any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', null);
+  what := case when ((length (subPath_parts) = 0) or (subPath_parts[length (subPath_parts) - 1] = '')) then 'C' else 'R' end;
+  if ((what = 'R') or (recursive = -1))
+    return DB.DBA.WebDAV_DAV_DIR_SINGLE (detcol_id, what, null, auth_uid);
+
+  colPath := DB.DBA.DAV_CONCAT_PATH (detcol_parts, subPath_parts);
+  colId := DB.DBA.DAV_SEARCH_ID (colPath, 'C');
+
+  downloads := vector ();
+  listItems := DB.DBA.WebDAV__list (detcol_id, detcol_parts, subPath_parts);
+  if (DAV_HIDE_ERROR (listItems) is null)
+    goto _exit;
+
+  if (isinteger (listItems))
+    goto _exit;
+
+  DB.DBA.WebDAV__activity (detcol_id, 'Sync started');
+  {
+    declare _id, _what, _type, _content any;
+    declare title varchar;
+    {
+      declare exit handler for sqlstate '*'
+      {
+        DB.DBA.WebDAV__activity (detcol_id, 'Exec error: ' || __SQL_MESSAGE);
+        goto _exitSync;
+      };
+
+      connection_set ('dav_store', 1);
+      colEntry := DB.DBA.DAV_DIR_SINGLE_INT (colId, 'C', '', null, null, http_dav_uid ());
+      colHref := null;
+      if (length (subPath_parts) = 1)
+      {
+        tmp := DB.DBA.WebDAV__paramGet (detcol_id, 'C', 'path', 0);
+        tmp := rfc1808_parse_uri (tmp);
+        colHRef := tmp[2];
+      }
+      else
+      {
+        colHref := DB.DBA.WebDAV__paramGet (colId, 'C', 'href', 0);
+      }
+      if (colHref is null)
+        goto _exit;
+
+      connection_set ('dav_store', 1);
+      listItems := xml_tree_doc (xml_expand_refs (xml_tree (listItems)));
+      listHrefs := vector ();
+      davItems := DB.DBA.WebDAV__davList (detcol_id, colId);
+      foreach (any davItem in davItems) do
+      {
+        listHref := DB.DBA.WebDAV__paramGet (davItem[4], davItem[1], 'href', 0);
+        if ((listHref <> colHref) and not position (listHref, listHrefs))
+        {
+          listItem := DB.DBA.WebDAV__entryXPath (listItems, sprintf ('[D:href = "%s"]', listHref), 0);
+          if (listItem is not null)
+          {
+            listItem := xml_cut (listItem);
+            davEntry := DB.DBA.WebDAV__paramGet (davItem[4], davItem[1], 'Entry', 0);
+            if ((davEntry is not null) and (DB.DBA.WebDAV__title (listHref) = davItem[10]))
+            {
+              listHrefs := vector_concat (listHrefs, vector (listHref));
+              davEntry := xtree_doc (davEntry);
+              if (
+                  (DB.DBA.WebDAV__propertyXPath (davEntry, '/D:getlastmodified', 1) <> DB.DBA.WebDAV__propertyXPath (listItem, '/D:getlastmodified', 1)) or
+                  (DB.DBA.WebDAV__propertyXPath (davEntry, '/D:getetag', 1) <> DB.DBA.WebDAV__propertyXPath (listItem, '/D:getetag', 1))
+                 )
+              {
+                set triggers off;
+                DB.DBA.WebDAV__paramSet (davItem[4], davItem[1], ':getlastmodified', DB.DBA.WebDAV__stringdate (DB.DBA.WebDAV__propertyXPath (listItem, '/D:getlastmodified', 1)), 0, 0);
+                set triggers on;
+                DB.DBA.WebDAV__paramSet (davItem[4], davItem[1], 'Entry', DB.DBA.WebDAV__xml2string (listItem), 0);
+                if (davItem[1] = 'R')
+                {
+                  DB.DBA.WebDAV__paramSet (davItem[4], davItem[1], 'download', '0', 0);
+                  downloads := vector_concat (downloads, vector (vector (davItem[4], davItem[1])));
+                }
+              }
+              else
+              {
+                declare downloaded integer;
+
+                downloaded := DB.DBA.WebDAV__paramGet (davItem[4], davItem[1], 'download', 0);
+                if (downloaded is not null)
+                {
+                  downloaded := cast (downloaded as integer);
+                  if (downloaded <= 5)
+                    downloads := vector_concat (downloads, vector (vector (davItem[4], davItem[1])));
+                }
+              }
+              goto _continue;
+            }
+          }
+        }
+        if (davItem[1] = 'R')
+          DB.DBA.WebDAV__rdf_delete (detcol_id, davItem[4], davItem[1]);
+        DAV_DELETE_INT (davItem[0], 1, null, null, 0, 0);
+
+      _continue:;
+        commit work;
+      }
+      listItems := xpath_eval ('[xmlns:D="DAV:"] /D:multistatus/D:response', listItems, 0);
+      foreach (any listItem in listItems) do
+      {
+        listItem := xml_cut(listItem);
+        listHref := DB.DBA.WebDAV__entryXPath (listItem, '/D:href', 1);
+        if ((listHref <> colHref) and not position (listHref, listHrefs))
+        {
+          title := DB.DBA.WebDAV__title (listHref);
+          connection_set ('dav_store', 1);
+          if (not isnull (DB.DBA.WebDAV__propertyXPath (listItem, '/D:resourcetype/D:collection', 0)))
+          {
+            _id := DB.DBA.DAV_COL_CREATE (colPath || title || '/',  colEntry[5], colEntry[7], colEntry[6], DB.DBA.WebDAV__user (http_dav_uid ()), DB.DBA.WebDAV__password (http_dav_uid ()));
+            _what := 'C';
+          }
+          else
+          {
+            _content := '';
+            _type := DB.DBA.WebDAV__propertyXPath (listItem, '/D:getcontenttype', 1);
+            if (DB.DBA.is_empty_or_null (_type))
+              _type := http_mime_type (title);
+            _id := DB.DBA.DAV_RES_UPLOAD (colPath || title,  _content, _type, colEntry[5], colEntry[7], colEntry[6], DB.DBA.WebDAV__user (http_dav_uid ()), DB.DBA.WebDAV__password (http_dav_uid ()));
+            _what := 'R';
+          }
+          if (DAV_HIDE_ERROR (_id) is not null)
+          {
+            set triggers off;
+            DB.DBA.WebDAV__paramSet (_id, _what, ':creationdate', stringdate (DB.DBA.WebDAV__propertyXPath (listItem, '/D:creationdate', 1)), 0, 0);
+            DB.DBA.WebDAV__paramSet (_id, _what, ':getlastmodified', DB.DBA.WebDAV__stringdate (DB.DBA.WebDAV__propertyXPath (listItem, '/D:getlastmodified', 1)), 0, 0);
+            set triggers on;
+            DB.DBA.WebDAV__paramSet (_id, _what, 'virt:DETCOL_ID', cast (detcol_id as varchar), 0, 0);
+            DB.DBA.WebDAV__paramSet (_id, _what, 'href', listHref, 0);
+            DB.DBA.WebDAV__paramSet (_id, _what, 'Entry', DB.DBA.WebDAV__xml2string (listItem), 0);
+            if (_what = 'R')
+            {
+              DB.DBA.WebDAV__paramSet (_id, _what, 'download', '0', 0);
+              downloads := vector_concat (downloads, vector (vector (_id, _what)));
+            }
+          }
+          commit work;
+        }
+      }
+    }
+  _exitSync:
+    connection_set ('dav_store', save);
+  }
+  DB.DBA.WebDAV__activity (detcol_id, 'Sync ended');
+
+_exit:;
+  retValue := DB.DBA.WebDAV__davList (detcol_id, colId);
+  DB.DBA.WebDAV__downloads (detcol_id, downloads);
+
+  return retValue;
+}
+;
+
+--| When DAV_DIR_FILTER_INT calls DET function, authentication is performed before the call and compilation is initialized.
+create function "WebDAV_DAV_DIR_FILTER" (
+  in detcol_id any,
+  in subPath_parts any,
+  in detcol_parts varchar,
+  inout compilation any,
+  in recursive integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_DIR_FILTER (', detcol_id, subPath_parts, detcol_parts, compilation, recursive, auth_uid, ')');
+  return vector();
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "WebDAV_DAV_SEARCH_ID" (
+  in detcol_id any,
+  in path_parts any,
+  in what char(1)) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_SEARCH_ID (', detcol_id, path_parts, what, ')');
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  retValue := DAV_SEARCH_ID (DB.DBA.WebDAV__path (detcol_id, path_parts), what);
+  connection_set ('dav_store', save);
+  if ((DAV_HIDE_ERROR (retValue) is not null))
+  {
+    if (isinteger (retValue) and (save is null))
+      retValue := vector (DB.DBA.WebDAV__detName (), detcol_id, retValue, what);
+
+    else if (isarray (retValue) and (save = 1))
+      retValue := retValue[2];
+  }
+  return retValue;
+}
+;
+
+create function "WebDAV_DAV_MAKE_ID" (
+  in detcol_id any,
+  in id any,
+  in what char(1)) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_MAKE_ID (', id, what, ')');
+  declare retValue any;
+
+  retValue := vector (DB.DBA.WebDAV__detName (), detcol_id, id, what);
+
+  return retValue;
+}
+;
+
+--| When DAV_SEARCH_PATH_INT calls DET function, authentication is performed before the call.
+create function "WebDAV_DAV_SEARCH_PATH" (
+  in id any,
+  in what char(1)) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_SEARCH_PATH (', id, what, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DB.DBA.DAV_SEARCH_PATH (davId, what);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| When DAV_COPY_INT calls DET function, authentication and check for locks are performed before the call, but no check for existing/overwrite.
+create function "WebDAV_DAV_RES_UPLOAD_COPY" (
+  in detcol_id any,
+  in path_parts any,
+  in source_id any,
+  in what char(1),
+  in overwrite_flags integer,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_RES_UPLOAD_COPY (', detcol_id, path_parts, source_id, what, overwrite_flags, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_COPY_INT calls DET function, authentication and check for locks are performed before the call, but no check for existing/overwrite.
+create function "WebDAV_DAV_RES_UPLOAD_MOVE" (
+  in detcol_id any,
+  in path_parts any,
+  in source_id any,
+  in what char(1),
+  in overwrite_flags integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_RES_UPLOAD_MOVE (', detcol_id, path_parts, source_id, what, overwrite_flags, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_RES_CONTENT or DAV_RES_COPY_INT or DAV_RES_MOVE_INT calls DET function, authentication is made.
+--| If content_mode is 1 then content is a valid output stream before the call.
+create function "WebDAV_DAV_RES_CONTENT" (
+  in id any,
+  inout content any,
+  out type varchar,
+  in content_mode integer) returns integer
+{
+  -- dbg_obj_princ ('WebDAV_DAV_RES_CONTENT (', id, ', [content], [type], ', content_mode, ')');
+  declare retValue any;
+
+  retValue := DAV_RES_CONTENT_INT (id[2], content, type, content_mode, 0);
+
+  return retValue;
+}
+;
+
+--| This adds an extra access path to the existing resource or collection.
+create function "WebDAV_DAV_SYMLINK" (
+  in detcol_id any,
+  in path_parts any,
+  in source_id any,
+  in what char(1),
+  in overwrite integer,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_SYMLINK (', detcol_id, path_parts, source_id, overwrite, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| This gets a list of resources and/or collections as it is returned by DAV_DIR_LIST and and writes the list of quads (old_id, 'what', old_full_path, dereferenced_id, dereferenced_full_path).
+create function "WebDAV_DAV_DEREFERENCE_LIST" (
+  in detcol_id any,
+  inout report_array any) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_DEREFERENCE_LIST (', detcol_id, report_array, ')');
+  return -20;
+}
+;
+
+--| This gets one of reference quads returned by ..._DAV_REREFERENCE_LIST() and returns a record (new_full_path, new_dereferenced_full_path, name_may_vary).
+create function "WebDAV_DAV_RESOLVE_PATH" (
+  in detcol_id any,
+  inout reference_item any,
+  inout old_base varchar,
+  inout new_base varchar) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_RESOLVE_PATH (', detcol_id, reference_item, old_base, new_base, ')');
+  return -20;
+}
+;
+
+--| There's no API function to lock for a while (do we need such?) The "LOCK" DAV method checks that all parameters are valid but does not check for existing locks.
+create function "WebDAV_DAV_LOCK" (
+  in path any,
+  in id any,
+  in what char(1),
+  inout locktype varchar,
+  inout scope varchar,
+  in token varchar,
+  inout owner_name varchar,
+  inout owned_tokens varchar,
+  in depth varchar,
+  in timeout_sec integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_LOCK (', path, id, what, locktype, scope, token, owner_name, owned_tokens, depth, timeout_sec, auth_uid, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_LOCK_INT (path, davId, what, locktype, scope, token, owner_name, owned_tokens, depth, timeout_sec, DB.DBA.WebDAV__user (auth_uid), DB.DBA.WebDAV__password (auth_uid), auth_uid);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| There's no API function to unlock for a while (do we need such?) The "UNLOCK" DAV method checks that all parameters are valid but does not check for existing locks.
+create function "WebDAV_DAV_UNLOCK" (
+  in id any,
+  in what char(1),
+  in token varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('WebDAV_DAV_UNLOCK (', id, what, token, auth_uid, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_UNLOCK_INT (davId, what, token, DB.DBA.WebDAV__user (auth_uid), DB.DBA.WebDAV__password (auth_uid), auth_uid);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| The caller does not check if id is valid.
+--| This returns -1 if id is not valid, 0 if all existing locks are listed in owned_tokens whitespace-delimited list, 1 for soft 2 for hard lock.
+create function "WebDAV_DAV_IS_LOCKED" (
+  inout id any,
+  inout what char(1),
+  in owned_tokens varchar) returns integer
+{
+  -- dbg_obj_princ ('WebDAV_DAV_IS_LOCKED (', id, what, owned_tokens, ')');
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_IS_LOCKED_INT (davId, what, owned_tokens);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+--| The caller does not check if id is valid.
+--| This returns -1 if id is not valid, list of tuples (LOCK_TYPE, LOCK_SCOPE, LOCK_TOKEN, LOCK_TIMEOUT, LOCK_OWNER, LOCK_OWNER_INFO) otherwise.
+create function "WebDAV_DAV_LIST_LOCKS" (
+  in id any,
+  in what char(1),
+  in recursive integer) returns any
+{
+  -- dbg_obj_princ ('WebDAV_DAV_LIST_LOCKS" (', id, what, recursive);
+  declare davId integer;
+  declare retValue, save any;
+  declare exit handler for sqlstate '*'
+  {
+    connection_set ('dav_store', save);
+    resignal;
+  };
+
+  save := connection_get ('dav_store');
+  connection_set ('dav_store', 1);
+  davId := id[2];
+  retValue := DAV_LIST_LOCKS_INT (davId, what, recursive);
+  connection_set ('dav_store', save);
+
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__root ()
+{
+  return 'me/webdav';
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__fileDebug (
+  in value any,
+  in mode integer := -1)
+{
+  string_to_file ('webdav.txt', cast (value as varchar) || '\r\n', mode);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__detcolId (
+  in id any)
+{
+  if (isinteger (id))
+    return id;
+
+  return id[1];
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__davId (
+  in id any)
+{
+  if (isinteger (id))
+    return id;
+
+  return id[2];
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__stringdate (
+  in dt varchar)
+{
+	declare _arr, months, rs, tzone_z, tzone_h, tzone_m any;
+	declare d, m, y, hms, tzone varchar;
+
+	_arr := split_and_decode (trim (dt), 0, '\0\0 ');
+	if (length(_arr) = 5)
+	  _arr := vector_concat (vector (''), _arr);
+
+	if (length(_arr) = 6)
+	{
+	  months := vector ('JAN', '01', 'FEB', '02', 'MAR', '03', 'APR', '04', 'MAY', '05', 'JUN', '06', 'JUL', '07', 'AUG', '08', 'SEP', '09', 'OCT', '10', 'NOV', '11', 'DEC', '12');
+		d   := _arr[1];
+		m   := get_keyword (upper(_arr[2]), months);
+		y   := _arr[3];
+		hms := _arr[4];
+		tzone   := _arr[5];
+		tzone_z := substring (tzone, 1, 1);
+		tzone_h := atoi (substring (tzone, 2, 2));
+		tzone_m := atoi (substring (tzone, 4, 2));
+	  if (tzone_z = '+')
+	  {
+	    tzone_h := tzone_h - 2 * tzone_h;
+	    tzone_m := tzone_m - 2 * tzone_m;
+		}
+	  rs := stringdate (sprintf ('%s.%s.%s %s', m, d, y, hms));
+	  rs := dateadd ('hour',   tzone_h, rs);
+	  rs := dateadd ('minute', tzone_m, rs);
+	}
+	else
+	{
+	  rs := stringdate ('1900.01.01 00:00:00'); -- set system date
+	}
+	return rs;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__user (
+  in user_id integer,
+  in default_id integer := null)
+{
+  return coalesce ((select U_NAME from DB.DBA.SYS_USERS where U_ID = coalesce (user_id, default_id)), '');
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__password (
+  in user_id integer)
+{
+  return coalesce ((select pwd_magic_calc(U_NAME, U_PWD, 1) from WS.WS.SYS_DAV_USER where U_ID = user_id), '');
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__owner (
+  in detcol_id any,
+  in subPath_parts any,
+  in uid any,
+  in gid any,
+  inout ouid integer,
+  inout ogid integer)
+{
+  declare id any;
+  declare path varchar;
+
+  DB.DBA.DAV_OWNER_ID (uid, gid, ouid, ogid);
+  if ((ouid = -12) or (ouid = 5))
+  {
+    path := DB.DBA.WebDAV__path (detcol_id, subPath_parts);
+    id := DB.DBA.DAV_SEARCH_ID (path, 'P');
+    if (DAV_HIDE_ERROR (id))
+    {
+      select COL_OWNER, COL_GROUP
+        into ouid, ogid
+        from WS.WS.SYS_DAV_COL
+       where COL_ID = id;
+    }
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__detName ()
+{
+  return UNAME'WebDAV';
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__xml2string (
+  in _xml any)
+{
+  declare stream any;
+
+  stream := string_output ();
+  http_value (_xml, null, stream);
+  return string_output_string (stream);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__path (
+  in detcol_id any,
+  in subPath_parts any)
+{
+  declare N integer;
+  declare path varchar;
+
+  path := rtrim (DB.DBA.DAV_SEARCH_PATH (detcol_id, 'C'), '/');
+  for (N := 0; N < length (subPath_parts); N := N + 1)
+    path := path  || '/' || subPath_parts[N];
+
+  return path;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__title (
+  in path varchar)
+{
+  path := trim (path, '/');
+  return subseq (path, strrchr (path, '/')+1);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__params (
+  in colId integer)
+{
+  declare params any;
+
+  colId := DB.DBA.WebDAV__detcolId (colId);
+  params := vector (
+    'authentication', 'Yes',
+    'path',           DB.DBA.WebDAV__paramGet (colId, 'C', 'path', 0),
+    'user',           DB.DBA.WebDAV__paramGet (colId, 'C', 'user', 0),
+    'password',       DB.DBA.WebDAV__paramGet (colId, 'C', 'password', 0, 1, 1),
+    'graph',          DB.DBA.WebDAV__paramGet (colId, 'C', 'graph', 0)
+  );
+  return params;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__paramSet (
+  in _id any,
+  in _what varchar,
+  in _propName varchar,
+  in _propValue any,
+  in _serialized integer := 1,
+  in _prefixed integer := 1,
+  in _encrypt integer := 0)
+{
+  -- dbg_obj_princ ('DB.DBA.WebDAV__paramSet', _propName, _propValue, ')');
+  declare retValue any;
+
+  if (_serialized)
+    _propValue := serialize (_propValue);
+
+  if (_encrypt)
+    _propValue := pwd_magic_calc ('webdav', _propValue);
+
+  if (_prefixed)
+    _propName := 'virt:WebDAV-' || _propName;
+
+  _id := DB.DBA.WebDAV__davId (_id);
+  retValue := DB.DBA.DAV_PROP_SET_RAW (_id, _what, _propName, _propValue, 1, http_dav_uid ());
+
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__paramGet (
+  in _id integer,
+  in _what varchar,
+  in _propName varchar,
+  in _serialized integer := 1,
+  in _prefixed integer := 1,
+  in _decrypt integer := 0)
+{
+  -- dbg_obj_princ ('DB.DBA.WebDAV__paramGet (', _id, _what, _propName, ')');
+  declare propValue any;
+
+  if (_prefixed)
+    _propName := 'virt:WebDAV-' || _propName;
+
+  propValue := DB.DBA.DAV_PROP_GET_INT (DB.DBA.WebDAV__davId (_id), _what, _propName, 0, DB.DBA.Dropbox__user (http_dav_uid ()), DB.DBA.Dropbox__password (http_dav_uid ()), http_dav_uid ());
+  if (isinteger (propValue))
+    propValue := null;
+
+  if (_serialized and not isnull (propValue))
+    propValue := deserialize (propValue);
+
+  if (_decrypt and not isnull (propValue))
+    propValue := pwd_magic_calc ('webdav', propValue, 1);
+
+  return propValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__paramRemove (
+  in _id integer,
+  in _what varchar,
+  in _propName varchar,
+  in _prefixed integer := 1)
+{
+  -- dbg_obj_princ ('DB.DBA.WebDAV__paramRemove (', _id, _what, _propName, ')');
+  if (_prefixed)
+    _propName := 'virt:WebDAV-' || _propName;
+
+  DB.DBA.DAV_PROP_REMOVE_RAW (DB.DBA.WebDAV__davId (_id), _what, _propName, 1, http_dav_uid());
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__obj2xml (
+  in item any)
+{
+  return '<entry>' || ODS..obj2xml (item, 10) || '</entry>';
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__entryXPath (
+  in _xml any,
+  in _xpath varchar,
+  in _cast integer := 0)
+{
+  declare retValue any;
+
+  if (_cast)
+  {
+    retValue := serialize_to_UTF8_xml (xpath_eval (sprintf ('[__enc "UTF-8" xmlns:D="DAV:"] string (//D:response/%s)', _xpath), _xml, 1));
+  } else {
+    retValue := xpath_eval ('[__enc "UTF-8" xmlns:D="DAV:"] //D:response' || _xpath, _xml, 1);
+  }
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__propertyXPath (
+  in _xml any,
+  in _xpath varchar,
+  in _cast integer := 0)
+{
+  declare retValue any;
+
+  if (_cast)
+  {
+    retValue := serialize_to_UTF8_xml (xpath_eval (sprintf ('[__enc "UTF-8" xmlns:D="DAV:"] string (//D:response/D:propstat[D:status = "HTTP/1.1 200 OK"]/D:prop/%s)', _xpath), _xml, 1));
+  } else {
+    retValue := xpath_eval ('[__enc "UTF-8" xmlns:D="DAV:"] //D:response/D:propstat[D:status = "HTTP/1.1 200 OK"]/D:prop' || _xpath, _xml, 1);
+  }
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__exec_error (
+  in _header any,
+  in _silent integer := 0)
+{
+  if ((_header[0] like 'HTTP/1._ 4__ %') or (_header[0] like 'HTTP/1._ 5__ %'))
+  {
+    if (not _silent)
+      signal ('22023', trim (_header[0], '\r\n'));
+
+    return 0;
+  }
+  return 1;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__exec_code (
+  in _header any)
+{
+  return subseq (_header[0], 9, 12);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__exec (
+  inout detcol_id integer,
+  inout retHeader varchar,
+  in method varchar,
+  in url varchar,
+  in header varchar := '',
+  in content varchar := '')
+{
+  -- dbg_obj_princ ('DB.DBA.WebDAV__exec', detcol_id, method, url, header, ')');
+  declare retValue, params any;
+  declare _reqHeader, _resHeader any;
+  declare exit handler for sqlstate '*'
+  {
+    DB.DBA.WebDAV__activity (detcol_id, 'Exec error: ' || __SQL_MESSAGE);
+    return -28;
+  };
+
+  params := DB.DBA.WebDAV__params (detcol_id);
+  if (get_keyword ('authentication', params) <> 'Yes')
+  {
+    DB.DBA.WebDAV__activity (detcol_id, 'Error: Not authenticated');
+    return -28;
+  }
+
+  _reqHeader := sprintf ('Authorization: Basic %s\r\n', encode_base64 (get_keyword ('user', params) || ':' || get_keyword ('password', params)));
+  if (header <> '')
+    _reqHeader :=  _reqHeader || header;
+
+  retHeader := null;
+  retValue := http_client_ext (url=>url, http_method=>method, http_headers=>_reqHeader, headers =>retHeader, body=>content, n_redirects=>15);
+  -- dbg_obj_print ('retValue', DB.DBA.WebDAV__exec_code (retHeader), url, method);
+  if (not DB.DBA.WebDAV__exec_error (retHeader, 1))
+  {
+    DB.DBA.WebDAV__activity (detcol_id, 'HTTP error: ' || retValue);
+    return -28;
+  }
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__davList (
+  inout detcol_id integer,
+  inout colId integer)
+{
+  declare retValue any;
+
+  vectorbld_init (retValue);
+  for (select vector (RES_FULL_PATH,
+                      'R',
+                      length (RES_CONTENT),
+                      RES_MOD_TIME,
+                      vector (DB.DBA.WebDAV__detName (), detcol_id, RES_ID, 'R'),
+                      RES_PERMS,
+                      RES_GROUP,
+                      RES_OWNER,
+                      RES_CR_TIME,
+                      RES_TYPE,
+                      RES_NAME ) as I
+         from WS.WS.SYS_DAV_RES
+        where RES_COL = DB.DBA.WebDAV__davId (colId)) do
+  {
+    vectorbld_acc (retValue, i);
+  }
+
+  for (select vector (WS.WS.COL_PATH (COL_ID),
+                      'C',
+                      0,
+                      COL_MOD_TIME,
+                      vector (DB.DBA.WebDAV__detName (), detcol_id, COL_ID, 'C'),
+                      COL_PERMS,
+                      COL_GROUP,
+                      COL_OWNER,
+                      COL_CR_TIME,
+                      'dav/unix-directory',
+                      COL_NAME) as I
+        from WS.WS.SYS_DAV_COL
+       where COL_PARENT = DB.DBA.WebDAV__davId (colId)) do
+  {
+    vectorbld_acc (retValue, i);
+  }
+
+  vectorbld_final (retValue);
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__list (
+  inout detcol_id any,
+  inout detcol_parts varchar,
+  inout subPath_parts varchar)
+{
+  -- dbg_obj_princ ('DB.DBA.WebDAV__list (', detcol_id, detcol_parts, subPath_parts, ')');
+  declare colId integer;
+  declare colPath varchar;
+  declare url, href, header, body varchar;
+  declare syncTime datetime;
+  declare V, retValue, retHeader any;
+
+  colPath := DB.DBA.DAV_CONCAT_PATH (detcol_parts, subPath_parts);
+  colId := DB.DBA.WebDAV__davId (DB.DBA.DAV_SEARCH_ID (colPath, 'C'));
+  if (DAV_HIDE_ERROR (colId) is null)
+    return -28;
+
+  syncTime := DB.DBA.WebDAV__paramGet (colId, 'C', 'syncTime');
+  if (not isnull (syncTime) and (datediff ('second', syncTime, now ()) < 15))
+    return 0;
+
+  url := DB.DBA.WebDAV__paramGet (detcol_id, 'C', 'path', 0);
+  if (length (subPath_parts) <> 1)
+  {
+    href := DB.DBA.WebDAV__paramGet (colId, 'C', 'href', 0);
+    if (isnull (href))
+      return -28;
+
+    V := rfc1808_parse_uri (url);
+    V[2] := href;
+    url := DB.DBA.vspx_uri_compose (V);
+  }
+  body :=
+    '<?xml version="1.0" encoding="utf-8" ?>' ||
+    '<D:propfind xmlns:D="DAV:">' ||
+    '  <D:prop>' ||
+    '    <D:getlastmodified />' ||
+    '    <D:creationdate />' ||
+    '    <D:getetag />' ||
+    '    <D:getcontenttype />' ||
+    '    <D:getcontentlength />' ||
+    '    <D:resourcetype />' ||
+    '  </D:prop>' ||
+    '</D:propfind>';
+  header := sprintf ('Depth: 1\r\nContent-Type: application/xml; charset="utf-8"\r\nContent-Length: %d\r\n', length (body));
+  retValue := DB.DBA.WebDAV__exec (detcol_id, retHeader, 'PROPFIND', url, header, body);
+  -- dbg_obj_print ('retValue', retValue);
+  if (not isinteger (retValue))
+    DB.DBA.WebDAV__paramSet (colId, 'C', 'syncTime', now ());
+
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__resource (
+  inout detcol_id any,
+  inout url any)
+{
+  -- dbg_obj_princ ('DB.DBA.WebDAV__resource (', detcol_id, path, ')');
+  declare header, body, retValue, retHeader any;
+
+  body :=
+    '<?xml version="1.0" encoding="utf-8" ?>' ||
+    '<D:propfind xmlns:D="DAV:">' ||
+    '  <D:prop>' ||
+    '    <D:getlastmodified />' ||
+    '    <D:creationdate />' ||
+    '    <D:getetag />' ||
+    '    <D:getcontenttype />' ||
+    '    <D:getcontentlength />' ||
+    '    <D:resourcetype />' ||
+    '  </D:prop>' ||
+    '</D:propfind>';
+  header := sprintf ('Depth: 0\r\nContent-Type: application/xml; charset="utf-8"\r\nContent-Length: %d\r\n', length (body));
+  retValue := DB.DBA.WebDAV__exec (detcol_id, retHeader, 'PROPFIND', url, header, body);
+
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__activity (
+  in detcol_id integer,
+  in text varchar)
+{
+  -- dbg_obj_princ ('DB.DBA.WebDAV__activity (', detcol_id, text, ')');
+  declare parentId integer;
+  declare parentPath varchar;
+  declare activity_id integer;
+  declare activity, activityName, activityPath, activityContent, activityType varchar;
+  declare davEntry any;
+  declare _errorCount integer;
+  declare exit handler for sqlstate '*'
+  {
+    if (__SQL_STATE = '40001')
+    {
+      rollback work;
+      if (_errorCount > 5)
+        resignal;
+
+      delay (1);
+      _errorCount := _errorCount + 1;
+      goto _start;
+    }
+    return;
+  };
+
+  _errorCount := 0;
+
+_start:;
+  activity := DB.DBA.WebDAV__paramGet (detcol_id, 'C', 'activity', 0);
+  if (activity is null)
+    return;
+
+  if (activity <> 'on')
+    return;
+
+  davEntry := DB.DBA.DAV_DIR_SINGLE_INT (detcol_id, 'C', '', null, null, http_dav_uid ());
+  if (DB.DBA.DAV_HIDE_ERROR (davEntry) is null)
+    return;
+
+  parentId := DB.DBA.DAV_SEARCH_ID (davEntry[0], 'P');
+  if (DB.DBA.DAV_HIDE_ERROR (parentId) is null)
+    return;
+
+  parentPath := DB.DBA.DAV_SEARCH_PATH (parentId, 'C');
+  if (DB.DBA.DAV_HIDE_ERROR (parentPath) is null)
+    return;
+
+  activityContent := '';
+  activityName := davEntry[10] || '_activity.log';
+  activityPath := parentPath || activityName;
+  activity_id := DB.DBA.DAV_SEARCH_ID (activityPath, 'R');
+  if (DB.DBA.DAV_HIDE_ERROR (activity_id) is not null)
+  {
+    DB.DBA.DAV_RES_CONTENT_INT (activity_id, activityContent, activityType, 0, 0);
+    if (activityType <> 'text/plain')
+      return;
+
+    activityContent := cast (activityContent as varchar);
+  }
+  activityContent := activityContent || sprintf ('%s %s\r\n', subseq (datestring (now ()), 0, 19), text);
+  activityType := 'text/plain';
+  DB.DBA.DAV_RES_UPLOAD_STRSES_INT (activityPath, activityContent, activityType, '110100000RR', DB.DBA.WebDAV__user (davEntry[6]), DB.DBA.WebDAV__user (davEntry[7]), extern=>0, check_locks=>0);
+  commit work;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__downloads (
+  in detcol_id integer,
+  in downloads any)
+{
+  declare aq any;
+
+  if (length (downloads) = 0)
+    return;
+
+  set_user_id ('dba');
+  aq := async_queue (1);
+  aq_request (aq, 'DB.DBA.WebDAV__downloads_aq', vector (detcol_id, downloads));
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__downloads_aq (
+  in detcol_id integer,
+  in downloads any)
+{
+  -- dbg_obj_princ ('DB.DBA.WebDAV__downloads_aq (', detcol_id, downloads, ')');
+  declare N, downloaded integer;
+  declare url, listHref varchar;
+  declare items any;
+  declare V, retValue, retHeader any;
+
+  set_user_id ('dba');
+  N := 0;
+  items := vector ();
+  DB.DBA.WebDAV__activity (detcol_id, sprintf ('Downloading %d file(s)', length (downloads)));
+  foreach (any download in downloads) do
+  {
+    downloaded := DB.DBA.WebDAV__paramGet (download[0], download[1], 'download', 0);
+    if (downloaded is null)
+      goto _continue;
+
+    downloaded := cast (downloaded as integer);
+    if (downloaded > 5)
+      goto _continue;
+
+    listHref := DB.DBA.WebDAV__paramGet (download[0], download[1], 'href', 0);
+    if (listHref is null)
+      goto _continue;
+
+    url := DB.DBA.WebDAV__paramGet (detcol_id, 'C', 'path', 0);
+    V := rfc1808_parse_uri (url);
+    V[2] := listHref;
+    url := DB.DBA.vspx_uri_compose (V);
+    retValue := DB.DBA.WebDAV__exec (detcol_id, retHeader, 'GET', url);
+    if (DAV_HIDE_ERROR (retValue) is null)
+    {
+      downloaded := downloaded + 1;
+      DB.DBA.WebDAV__paramSet (download[0], download[1], 'download', cast (downloaded as varchar), 0);
+    }
+    else
+    {
+      update WS.WS.SYS_DAV_RES set RES_CONTENT = retValue where RES_ID = DB.DBA.WebDAV__davId (download[0]);
+      DB.DBA.WebDAV__paramRemove (download[0], download[1], 'download');
+      items := vector_concat (items, vector (download));
+      N := N + 1;
+    }
+    commit work;
+
+  _continue:;
+  }
+  DB.DBA.WebDAV__activity (detcol_id, sprintf ('Downloaded %d file(s)', N));
+  foreach (any item in items) do
+  {
+    DB.DBA.WebDAV__rdf_delete (detcol_id, item[0], item[1]);
+    DB.DBA.WebDAV__rdf_insert (detcol_id, item[0], item[1]);
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__rdf (
+  in detcol_id integer,
+  in id any,
+  in what varchar)
+{
+  declare aq any;
+
+  set_user_id ('dba');
+  aq := async_queue (1);
+  aq_request (aq, 'DB.DBA.WebDAV__rdf_aq', vector (detcol_id, id, what));
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__rdf_aq (
+  in detcol_id integer,
+  in id any,
+  in what varchar)
+{
+  set_user_id ('dba');
+  DB.DBA.WebDAV__rdf_delete (detcol_id, id, what);
+  DB.DBA.WebDAV__rdf_insert (detcol_id, id, what);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__rdf_insert (
+  in detcol_id integer,
+  in id any,
+  in what varchar,
+  in rdf_graph varchar := null)
+{
+  -- dbg_obj_princ ('DB.DBA.WebDAV__rdf_insert (', detcol_id, id, what, rdf_graph, ')');
+  declare permissions, rdf_graph2 varchar;
+  declare rdf_sponger, rdf_cartridges, rdf_metaCartridges any;
+  declare path, content, type any;
+  declare exit handler for sqlstate '*'
+  {
+    return;
+  };
+
+  if (isnull (rdf_graph))
+    rdf_graph := DB.DBA.WebDAV__paramGet (detcol_id, 'C', 'graph', 0);
+
+  if (DB.DBA.is_empty_or_null (rdf_graph))
+    return;
+
+  permissions := DB.DBA.WebDAV__paramGet (detcol_id, 'C', ':virtpermissions', 0, 0);
+  if (permissions[6] = ascii('0'))
+  {
+    -- add to private graphs
+    if (not SIOC..private_graph_check (rdf_graph))
+      return;
+  }
+
+  id := DB.DBA.WebDAV__davId (id);
+  path := DB.DBA.DAV_SEARCH_PATH (id, what);
+  content := (select RES_CONTENT from WS.WS.SYS_DAV_RES where RES_ID = id);
+  type := (select RES_TYPE from WS.WS.SYS_DAV_RES where RES_ID = id);
+  rdf_sponger := coalesce (DB.DBA.WebDAV__paramGet (detcol_id, 'C', 'sponger', 0), 'on');
+  rdf_cartridges := coalesce (DB.DBA.WebDAV__paramGet (detcol_id, 'C', 'cartridges', 0), '');
+  rdf_metaCartridges := coalesce (DB.DBA.WebDAV__paramGet (detcol_id, 'C', 'metaCartridges', 0), '');
+
+  RDF_SINK_UPLOAD (path, content, type, rdf_graph, rdf_sponger, rdf_cartridges, rdf_metaCartridges);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__rdf_delete (
+  in detcol_id integer,
+  in id any,
+  in what varchar,
+  in rdf_graph varchar := null)
+{
+  -- dbg_obj_princ ('DB.DBA.WebDAV__rdf_delete (', detcol_id, id, what, rdf_graph, ')');
+  declare rdf_graph2 varchar;
+  declare path varchar;
+
+  if (isnull (rdf_graph))
+    rdf_graph := DB.DBA.WebDAV__paramGet (detcol_id, 'C', 'graph', 0);
+
+  if (DB.DBA.is_empty_or_null (rdf_graph))
+    return;
+
+  path := DB.DBA.DAV_SEARCH_PATH (id, what);
+  if (path like '%.gz')
+    path := regexp_replace (path, '\.gz\x24', '');
+
+  rdf_graph2 := 'http://local.virt' || path;
+  SPARQL delete from graph ?:rdf_graph { ?s ?p ?o } where { graph `iri(?:rdf_graph2)` { ?s ?p ?o } };
+  SPARQL clear graph ?:rdf_graph2;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.WebDAV__refresh (
+  in path varchar)
+{
+  -- dbg_obj_princ ('DB.DBA.WebDAV__refresh (', path, ')');
+  declare colId any;
+
+  colId := DB.DBA.DAV_SEARCH_ID (path, 'C');
+  if (DAV_HIDE_ERROR (colId) is not null)
+    DB.DBA.WebDAV__paramRemove (colId, 'C', 'syncTime');
+}
+;
diff --git a/appsrc/ODS-Briefcase/new/od-a-api.sql b/appsrc/ODS-Briefcase/new/od-a-api.sql
index d61a16e..7a9752f 100644
--- a/appsrc/ODS-Briefcase/new/od-a-api.sql
+++ b/appsrc/ODS-Briefcase/new/od-a-api.sql
@@ -1,10 +1,10 @@
 --
---  $Id: od-a-api.sql,v 1.1.2.7 2011/08/01 14:14:42 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -124,6 +124,40 @@ create procedure ODS.ODS_API.inheritance2string (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Get items list
+--
+-- Retrieve a list of items in a path.
+--
+-- \param path The path to the WebDAV folder to list.
+--
+-- \return An XML representation of the contents of the path. FIXME: link to the schema or a documentation of
+-- the XML format.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.list?path=/DAV/home/demo/Public&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 11:32:52 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 322
+-- <items>
+--   <item path="/DAV/home/demo/Public/demo.xml">
+--     <name>demo.xml</name>
+--     <mimeType>text/xml</mimeType>
+--     <size>2277</size>
+--     <owner>demo</owner>
+--     <group>demo</group>
+--     <permissions>rw-r-----</permissions>
+--     <modification>2010-12-30</modification>
+--   </item>
+-- <items>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.list" (
   in path varchar) __soap_http 'text/xml'
 {
@@ -228,6 +262,41 @@ create procedure ODS.ODS_API."briefcase.info" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Get information about a resource.
+--
+-- Retrieve detailed information about a WebDAV resource.
+--
+-- \param path The path to the resource in question.
+--
+-- \return An XML document detailing the resource in question. FIXME: document schema.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.resource.info?path=/DAV/home/demo/demo.xml&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 11:32:52 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 322
+--
+-- <item path="/DAV/home/demo/demo.xml">
+--   <name>demo.xml</name>
+--   <mimeType>text/xml</mimeType>
+--   <size>2277</size>
+--   <owner>demo</owner>
+--   <group>demo</group>
+--   <permissions>rw-r-----</permissions>
+--   <modification>2010-12-30</modification>
+--   <creation>2010-12-30</creation>
+--   <properties></properties>
+--   <shares></shares>
+-- </item>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.resource.info" (
   in path varchar) __soap_http 'text/xml'
 {
@@ -237,6 +306,35 @@ create procedure ODS.ODS_API."briefcase.resource.info" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Change the state of version control on a resource.
+--
+-- ODS supports version control for files as discussed in \ref ods_briefcase_version_control. This
+-- method allows to enable or disable version control on single resources.
+--
+-- \param path The path to the resource in question.
+-- \param state Value indicating whether version control should be enabled ("on") or disabled ("off").
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $  curl -i "http://demo.openlinksw.com/ods/api/briefcase.resource.vc.set?path=/DAV/home/demo/demo.xml&state=on&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 11:51:49 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.resource.vc.set" (
   in path varchar,
   in state varchar := 'on') __soap_http 'text/xml'
@@ -280,6 +378,56 @@ create procedure ODS.ODS_API."briefcase.resource.vc.set" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Get a specific version of a version controlled resource.
+--
+-- If a resource has version control enabled this method allows to retrieve all versions that have
+-- been checked in.
+--
+-- \param path The path of the resource to get.
+-- \param version The version to get. This can either be an exact numerical version to get or the special version 'last'
+--                which will fetch the last version that has been checked in. FIXME: is this correct?
+--
+-- \return The content of the resource at the time it was checked in with the requested version.
+--
+-- \sa briefcase.resource.vc.set, briefcase.resource.vc.checkin
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.resource.vc.get?path=/DAV/home/demo/demo.xml&version=last&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 12:01:38 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml
+-- Content-Length: 2277
+--
+-- <?xml version="1.0" ?>
+-- <?xml-stylesheet type="text/xsl" href="/DAV/JS/xslt/formview.xsl"?>
+-- <form showajax="1" >
+--         <ds name="new datasource" type="1" pagesize="30">
+--                 <connection type="1" endpoint="/XMLA" dsn="DSN=ora10ma-hr" nocred="0" uid="0"/>
+--                 <options table="" limit="30" cursortype="0"/>
+--                 <query><![CDATA[]]></query>
+--                 <outputFields>
+--                 </outputFields>
+--                 <inputFields>
+--                 </inputFields>
+--                 <selfFields>
+--                 </selfFields>
+--                 <masterFields>
+--                 </masterFields>
+--                 <masterDSs>
+--                 </masterDSs>
+--                 <types>
+--                 </types>
+--         </ds>
+-- [...]
+-- </form>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.resource.vc.get" (
   in path varchar,
   in version varchar := 'last') __soap_http 'text/xml'
@@ -316,6 +464,33 @@ create procedure ODS.ODS_API."briefcase.resource.vc.get" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Check-in resource.
+--
+-- FIXME: what does this do?
+--
+-- \param path The path to the resource to check in.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.resource.vc.checkin?path=/DAV/home/demo/demo.xml&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 11:57:47 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.resource.vc.checkin" (
   in path varchar) __soap_http 'text/xml'
 {
@@ -348,6 +523,33 @@ create procedure ODS.ODS_API."briefcase.resource.vc.checkin" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Check-out a resource.
+--
+-- FIXME: What does this do?
+--
+-- \param path The path to the resource to check out.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.resource.vc.checkout?path=/DAV/home/demo/demo.xml&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 11:56:28 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.resource.vc.checkout" (
   in path varchar) __soap_http 'text/xml'
 {
@@ -380,6 +582,33 @@ create procedure ODS.ODS_API."briefcase.resource.vc.checkout" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Lock a resource.
+--
+-- FIXME: explain what locking is.
+--
+-- \param path The path to the resource to lock or unlock.
+-- \param state Can be 'on' or 'off' to either lock or unlock the resource.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.resource.vc.lock?path=/DAV/home/demo/demo.xml&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 11:58:44 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>\endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.resource.vc.lock" (
   in path varchar,
   in state varchar := 'on') __soap_http 'text/xml'
@@ -451,6 +680,38 @@ create procedure ODS.ODS_API."briefcase.resource.vc.info.internal" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Get resource version control details
+--
+-- ODS supports version control for files as discussed in \ref ods_briefcase_version_control. This method
+-- allows to retrieve information about the version control status of a resource.
+--
+-- \param path Path to the resource in question.
+--
+-- \return The state of version control for the given file. FIXME: document the XML schema that is used.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.resource.vc.info?path=/DAV/home/demo/demo.xml&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 11:53:56 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 173
+--
+-- <item path="/DAV/home/demo/demo.xml">
+--   <versionControl>
+--     <enabled>ON</enabled>
+--     <autoVersioning>OFF</autoVersioning>
+--     <state>Check-In</state>
+--     <lock>OFF</lock>
+--   </versionControl>
+-- </item>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.resource.vc.info" (
   in path varchar) __soap_http 'text/xml'
 {
@@ -519,6 +780,38 @@ create procedure ODS.ODS_API."briefcase.resource.vc.versions.internal" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Get information on the available versions of a resource.
+--
+-- Retrieve details on the available versions of a resource in the WebDAV. The resource
+-- must be version controlled.
+--
+-- \param path The path to the versioned resource.
+--
+-- \return A listing of all available versions encoded as XML. FIXME: describe the scheme
+--
+-- \sa briefcase.resource.vc.set
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.resource.vc.versions?path=/DAV/home/demo/demo.xml&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 11:59:49 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 259
+--
+-- <item path="/DAV/home/demo/demo.xml">
+--   <versions>
+--     <version path="/DAV/home/demo/VVC/demo.xml/1" number="1" size="2277" modification="2011-05-10" />
+--     <version path="/DAV/home/demo/VVC/demo.xml/2" number="2" size="2277" modification="2011-05-10" />
+--   </versions>
+-- </item>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.resource.vc.versions" (
   in path varchar) __soap_http 'text/xml'
 {
@@ -552,6 +845,42 @@ create procedure ODS.ODS_API."briefcase.resource.vc.versions" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Get the contents of a resource.
+--
+-- Retrieve the actual resource from WebDAV, ie. download the file.
+--
+-- \param path The path to the resource to retrieve.
+--
+-- \return The contents of the file.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.resource.get?path=/DAV/home/demo/demo.xml&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 11:45:08 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml
+-- Content-Length: 2277
+--
+-- <?xml version="1.0" ?>
+-- <?xml-stylesheet type="text/xsl" href="/DAV/JS/xslt/formview.xsl"?>
+-- <form showajax="1" >
+--         <ds name="new datasource" type="1" pagesize="30">
+--                 <connection type="1" endpoint="/XMLA" dsn="DSN=ora10ma-hr" nocred="0" uid="0"/>
+--                 <options table="" limit="30" cursortype="0"/>
+--                 <query><![CDATA[]]></query>
+--                 <outputFields>
+--                 </outputFields>
+--
+-- [...]
+--
+-- </form>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.resource.get" (
   in path varchar) __soap_http 'text/xml'
 {
@@ -585,6 +914,38 @@ create procedure ODS.ODS_API."briefcase.resource.get" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Store/upload a resource.
+--
+-- Store a resource/file in the WebDAV system.
+--
+-- FIXME: I suppose using magic folders we can also upload RDF content and maybe more. This should be detailed here.
+--
+-- \param path The target path of the newly created resource.
+-- \param content The content of the resource. FIXME: byte64 encoded for binary files?
+-- \param type The type of the resource. FIXME: what does this mean? mimetype?
+-- \param permissions The permissions of the newly created resource as detailed in \ref ods_briefcase_resource_permissions.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.resource.store?path=/DAV/home/demo/mysimpletext.xml&content=test&type=xml&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 11:47:16 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 61
+--
+-- <result>
+--   <code>16795</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.resource.store" (
 	in path varchar,
 	in content varchar,
@@ -617,6 +978,31 @@ ret:
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Delete a WebDAV resource.
+--
+-- \param path The path to the resource to be deleted.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.resource.delete?path=/DAV/home/demo/mysimpletext.xml&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 11:48:52 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.resource.delete" (
   in path varchar) __soap_http 'text/xml'
 {
@@ -643,6 +1029,38 @@ create procedure ODS.ODS_API."briefcase.resource.delete" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Get details about a WebDAV collection.
+--
+-- \param path The path to the collection.
+--
+-- \return The details of the collection encoded as XML.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.collection.info?path=/DAV/home/demo/mytest&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 12:08:13 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 309
+--
+-- <item path="/DAV/home/demo/mytest/">
+--   <name>mytest</name>
+--   <mimeType>dav/unix-directory</mimeType>
+--   <owner>demo</owner>
+--   <group>demo</group>
+--   <permissions>rw-r--r--</permissions>
+--   <modification>2011-05-10</modification>
+--   <creation>2011-05-10</creation>
+--   <properties></properties>
+--   <shares></shares>
+-- </item>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.collection.info" (
   in path varchar) __soap_http 'text/xml'
 {
@@ -652,6 +1070,33 @@ create procedure ODS.ODS_API."briefcase.collection.info" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Create a new WebDAV collection/folder.
+--
+-- \param path The path of the collection to create.
+-- \param permissions The permissions of the newly created collection as detailed in \ref ods_briefcase_resource_permissions
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \sa briefcase.collection.delete
+--
+-- \b Example:
+-- \verbatim
+-- $  curl -i "http://demo.openlinksw.com/ods/api/briefcase.collection.create?path=/DAV/home/demo/mytest&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 12:07:07 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 60
+--
+-- <result>
+--   <code>1317</code>
+--   <message>Success</message>
+-- </result>\endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.collection.create" (
   in path varchar,
   in permissions varchar := '110100100RM') __soap_http 'text/xml'
@@ -682,6 +1127,33 @@ ret:
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Delete a WebDAV collection.
+--
+-- \param path The path to the collection to be deleted.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \sa briefcase.collection.create
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.collection.delete?path=/DAV/home/demo/mytest&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 12:09:31 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.collection.delete" (
   in path varchar) __soap_http 'text/xml'
 {
@@ -708,6 +1180,37 @@ create procedure ODS.ODS_API."briefcase.collection.delete" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Copy a WebDAV resource.
+--
+-- Copies a resource or a collection to a new path. Collections are copied recursively.
+--
+-- \param from_path The resource path.
+-- \param to_path The target path. FIXME: is this like in UNIX shells or is this the new full path of the resource?
+-- \param overwrite Flag to indicate if an already existing resource at \p to_path should be overwritten. If 0 then then
+--                  call will fail in case that a resource exists.
+-- \param permissions The permissions of the newly created resource as detailed in \ref ods_briefcase_resource_permissions.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.copy?from_path=/DAV/home/demo/t1/&to_path=/DAV/home/demo/t2/&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 12:13:41 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.copy" (
   in from_path varchar,
   in to_path varchar,
@@ -757,6 +1260,36 @@ ret:
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Move a WebDAV resource.
+--
+-- Move a resource or collection within the WebDAV tree.
+--
+-- \param from_path The resource path.
+-- \param to_path The target path. FIXME: is this like in UNIX shells or is this the new full path of the resource?
+-- \param overwrite Flag to indicate if an already existing resource at \p to_path should be overwritten. If 0 then then
+--                  call will fail in case that a resource exists.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.move?from_path=/DAV/home/demo/t1/&to_path=/DAV/home/demo/t2/&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 12:15:33 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.move" (
   in from_path varchar,
   in to_path varchar,
@@ -828,6 +1361,34 @@ create procedure ODS.ODS_API."briefcase.property.list.internal" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief List all WebDAV properties of a resource.
+--
+-- \param path The path of the resource to list properties for.
+-- \param mask FIXME: what is he mask?
+--
+-- \return All properties for the given resource path encoded as XML. FIXME: explain the schema
+--
+-- \sa briefcase.property.set, briefcase.property.get, briefcase.property.remove
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.property.list?path=/DAV/home/demo/tmp1/&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 12:44:46 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 100
+--
+-- <item path="/DAV/home/demo/tmp1/">
+--   <properties>
+--     <property name="test">1</property>
+--   </prop
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.property.list" (
   in path varchar,
   in mask varchar := '%') __soap_http 'text/xml'
@@ -862,6 +1423,35 @@ create procedure ODS.ODS_API."briefcase.property.list" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Create a new WebDAV property or update an existing one.
+--
+-- \param path The path of the resource which should be modified.
+-- \param name The name of the property to change.
+-- \param value The value of the property to change.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \sa briefcase.property.list, briefcase.property.get, briefcase.property.remove
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.property.set?path=/DAV/home/demo/tmp1/&name=test&value=1&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 12:42:46 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.property.set" (
   in path varchar,
   in "name" varchar,
@@ -892,6 +1482,34 @@ create procedure ODS.ODS_API."briefcase.property.set" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Remove a WebDAV property.
+--
+-- \param path The path of the resource.
+-- \param name The name of the property to remove.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \sa briefcase.property.list, briefcase.property.get, briefcase.property.set
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.property.remove?path=/DAV/home/demo/tmp1/&name=test&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 12:54:12 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.property.remove" (
   in path varchar,
   in "name" varchar) __soap_http 'text/xml'
@@ -921,6 +1539,31 @@ create procedure ODS.ODS_API."briefcase.property.remove" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Get the value of a WebDAV property
+--
+-- \param path The path of the resource.
+-- \param name The name of the property to return.
+--
+-- \return The value of the requested property.
+--
+-- \sa briefcase.property.list
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.property.get?path=/DAV/home/demo/tmp1/&name=test&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 12:51:20 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 1
+--
+-- 1
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.property.get" (
   in path varchar,
   in name varchar := null) __soap_http 'text/xml'
@@ -950,6 +1593,45 @@ create procedure ODS.ODS_API."briefcase.property.get" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Share a WebDAV resource with a user.
+--
+-- \param path The path to the resource to share.
+-- \param user The user to share the resource with.
+-- \param inheritance The way the given rights should be propagated to children of the given path (in case of a collection).
+--                    - \p 'object' will only change the permissions on the resource itself
+--                    - \p 'all' will recursively update permissions on all children
+--                    - \p 'children' will only update permissions on direct children. FIXME: is this correct?
+-- \param allow The actions the \p user should be allowed to perform. This is a UNIX style permission mask string consisting
+--              of three chars \p "rwx", referring to read, write, and execute permissions respectively. Each of these
+--              permissions can be granted by writing the character or not granted by writing a dash \p - instead. Example:
+--              \p "r--" would grant only read rights while it does not make any changes to the write and execute rights.
+-- \param deny The permissions to deny the user. The value is the same as with \p allow except that the given rights are
+--             revoked instead of granted. Thus, specifying \p "r--" would revoke read rights while leaving the write and
+--             execute rights untouched.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \sa briefcase.share.remove, briefcase.share.list
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.share.add?path=/DAV/home/demo/tmp1/&user=test1&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 17 May 2011 11:49:52 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.share.add" (
   in path varchar,
   in "user" varchar,
@@ -1018,6 +1700,40 @@ create procedure ODS.ODS_API."briefcase.share.add" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Remove a share from a resource.
+--
+-- Remove a previously created share for a specific resource and user.
+--
+-- \param path The path to the resource to remove the share from.
+-- \param user The user to revoke the share from.
+-- \param inheritance The way the given rights should be propagated to children of the given path (in case of a collection).
+--                    - \p 'object' will only change the permissions on the resource itself
+--                    - \p 'all' will recursively update permissions on all children
+--                    - \p 'children' will only update permissions on direct children. FIXME: is this correct?
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \sa briefcase.share.add, briefcase.share.list
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.share.remove?path=/DAV/home/demo/tmp1/&user=demo&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 13:07:45 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.share.remove" (
   in path varchar,
   in "user" varchar,
@@ -1094,6 +1810,34 @@ create procedure ODS.ODS_API."briefcase.share.list.internal" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief List all the shares on a resource.
+--
+-- \param path The path to the resource for which shares should be listed.
+--
+-- \return The list of all shares created on the given resource encoded as XML.
+--
+-- \sa briefcase.share.add
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.share.list?path=/DAV/home/demo/tmp1/&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 17 May 2011 11:50:55 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 121
+--
+-- <item path="/DAV/home/demo/tmp1/">
+--   <shares>
+--     <share user="test1" inheritance="all" allow="rw-" deny="---" />
+--   </shares>
+-- </item>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.share.list" (
   in path varchar) __soap_http 'text/xml'
 {
@@ -1127,6 +1871,40 @@ create procedure ODS.ODS_API."briefcase.share.list" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Set an option of an ODS Briefcase instance.
+--
+-- \param inst_id The id of the Briefcase instance. See \ref ods_instance_id for details.
+-- \param options A comma-separated list of \p "key=value" pairs. Supported keys are:
+-- - chars
+-- - rows
+-- - tbLabels
+-- - hiddens
+-- - atomVersion
+-- FIXME: what are these options?
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \sa briefcase.options.get
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.options.set?inst_id=6&options=rows%3D5&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 13:14:10 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.options.set" (
 	in inst_id integer := null,
 	in options any) __soap_http 'text/xml'
@@ -1170,6 +1948,36 @@ create procedure ODS.ODS_API."briefcase.options.set" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Get The option values of a ODS Briefcase instance.
+--
+-- \param inst_id The id of the Briefcase instance. See \ref ods_instance_id for details.
+--
+-- \return A list of the option values encoded as XML.
+--
+-- \sa briefcase.options.set
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/briefcase.options.get?inst_id=6&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Solaris) x86_64-pc-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 10 May 2011 13:11:48 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 125
+--
+-- <settings>
+--   <chars>60</chars>
+--   <rows>10</rows>
+--   <tbLabels>1</tbLabels>
+--   <hiddens>.</hiddens>
+--   <atomVersion>1.0</atomVersion>
+-- </settings>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."briefcase.options.get" (
 	in inst_id integer := null) __soap_http 'text/xml'
 {
diff --git a/appsrc/ODS-Briefcase/new/od-a-code.sql b/appsrc/ODS-Briefcase/new/od-a-code.sql
index 9e474ab..746c1f2 100644
--- a/appsrc/ODS-Briefcase/new/od-a-code.sql
+++ b/appsrc/ODS-Briefcase/new/od-a-code.sql
@@ -1,10 +1,10 @@
 --
---  $Id: od-a-code.sql,v 1.36.2.24 2011/08/01 14:14:42 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -377,7 +377,7 @@ create procedure ODRIVE.WA.dashboard_rs(
   in p0 integer)
 {
   declare account_id, vspxUser any;
-  declare wai_name, link varchar;
+  declare waiName, link varchar;
 
   declare c0 integer;
   declare c1 varchar;
@@ -401,8 +401,8 @@ create procedure ODRIVE.WA.dashboard_rs(
             and substring (RES_PERMS, 7, 1) = '1'
           order by RES_MOD_TIME desc) do
     {
-      wai_name := (select top 1 WAI_NAME from DB.DBA.WA_INSTANCE, DB.DBA.WA_MEMBER where WAI_TYPE_NAME = 'oDrive' and WAI_NAME = WAM_INST and WAM_MEMBER_TYPE = 1 and WAM_USER = RES_OWNER);
-      link := case when isnull (wai_name) then RES_FULL_PATH else SIOC..post_iri_ex (SIOC..briefcase_iri (wai_name), RES_ID) end;
+      waiName := (select top 1 WAI_NAME from DB.DBA.WA_INSTANCE, DB.DBA.WA_MEMBER where WAI_TYPE_NAME = 'oDrive' and WAI_NAME = WAM_INST and WAM_MEMBER_TYPE = 1 and WAM_USER = RES_OWNER);
+      link := case when isnull (waiName) then RES_FULL_PATH else SIOC..post_iri_ex (SIOC..briefcase_iri (waiName), RES_ID) end;
       result (RES_ID, RES_NAME, link, RES_MOD_TIME, RES_OWNER);
     }
   }
@@ -440,8 +440,8 @@ create procedure ODRIVE.WA.dashboard_rs(
                 ) sub
           order by RES_MOD_TIME desc) do
     {
-      wai_name := (select top 1 WAI_NAME from DB.DBA.WA_INSTANCE, DB.DBA.WA_MEMBER where WAI_TYPE_NAME = 'oDrive' and WAI_NAME = WAM_INST and WAM_MEMBER_TYPE = 1 and WAM_USER = RES_OWNER);
-      link := case when isnull (wai_name) then RES_FULL_PATH else SIOC..post_iri_ex (SIOC..briefcase_iri (wai_name), RES_ID) end;
+      waiName := (select top 1 WAI_NAME from DB.DBA.WA_INSTANCE, DB.DBA.WA_MEMBER where WAI_TYPE_NAME = 'oDrive' and WAI_NAME = WAM_INST and WAM_MEMBER_TYPE = 1 and WAM_USER = RES_OWNER);
+      link := case when isnull (waiName) then RES_FULL_PATH else SIOC..post_iri_ex (SIOC..briefcase_iri (waiName), RES_ID) end;
       result (RES_ID, RES_NAME, link, RES_MOD_TIME, RES_OWNER);
     }
   }
@@ -798,13 +798,25 @@ create procedure ODRIVE.WA.xml2string(
 ;
 
 -------------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.isVector (
+  inout aVector any)
+{
+  if (isarray (aVector) and not isstring (aVector))
+    return 1;
+
+  return 0;
+}
+;
+
+-------------------------------------------------------------------------------
 --  Returns:
 --    N -  if pAny is in pArray
 --   -1 -  otherwise
 -------------------------------------------------------------------------------
 create procedure ODRIVE.WA.vector_contains (
   inout aVector any,
-  in value varchar)
+  in value any)
 {
   declare N integer;
 
@@ -819,7 +831,7 @@ create procedure ODRIVE.WA.vector_contains (
 --
 create procedure ODRIVE.WA.vector_index (
   inout aVector any,
-  in value varchar)
+  in value any)
 {
   declare N integer;
 
@@ -1195,7 +1207,7 @@ create procedure ODRIVE.WA.odrive_proc(
   declare tmp, dirFilter, dirHiddens, dirList, sharedRoot, sharedFilter, sharedPath, sharedList any;
   declare vspx_user, user_name, group_name varchar;
   declare user_id, group_id integer;
-  declare c2 integer;
+  declare c2 any;
   declare c0, c1, c3, c4, c5, c6, c7, c8, c9 varchar;
 
   result_names(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9);
@@ -1310,15 +1322,15 @@ create procedure ODRIVE.WA.odrive_proc(
       {
         if (((item[1] = 'C') or (item[10] like dirFilter)) and (ODRIVE.WA.hiddens_check (dirHiddens, item[10]) = 0))
         {
-          if (user_id <> item[7])
+          if (user_id <> coalesce (item[7], -1))
           {
-            user_id := item[7];
-            user_name := ODRIVE.WA.odrive_user_name(user_id);
+            user_id := coalesce (item[7], -1);
+            user_name := ODRIVE.WA.odrive_user_name (user_id, '');
           }
-          if (group_id <> item[6])
+          if (group_id <> coalesce (item[6], -1))
           {
-            group_id := item[6];
-            group_name := ODRIVE.WA.odrive_user_name(group_id);
+            group_id := coalesce (item[6], -1);
+            group_name := ODRIVE.WA.odrive_user_name (group_id, '');
           }
           tmp := coalesce((select RS_CATNAME from WS.WS.SYS_RDF_SCHEMAS, WS.WS.SYS_MIME_RDFS where RS_URI = MR_RDF_URI and MR_MIME_IDENT = item[9]), '~unknown~');
           result(item[either(gte(dir_mode,2),0,10)], item[1], item[2], left(cast(item[3] as varchar), 19), item[9], user_name, group_name, adm_dav_format_perms(item[5]), item[0], tmp);
@@ -1336,8 +1348,9 @@ create procedure ODRIVE.WA.odrive_effective_permissions (
   in permission varchar := '1__')
 {
   declare N, I, nPermission integer;
-  declare rc, id, type, item any;
+  declare rc, id, what, item any;
   declare lines, name, pwd, uid, gid, permissions any;
+  declare auth_name varchar;
 
   if (isstring(permission))
     permission := vector(permission);
@@ -1345,10 +1358,11 @@ create procedure ODRIVE.WA.odrive_effective_permissions (
   name := null;
   uid := null;
   gid := null;
-  id := ODRIVE.WA.DAV_SEARCH_ID (path, type);
+  what := case when (path[length (path)-1] <> ascii('/')) then 'R' else 'C' end;
+  id := DB.DBA.DAV_SEARCH_ID (path, what);
   for (N := 0; N < length (permission); N := N + 1)
   {
-    if (DB.DBA.DAV_AUTHENTICATE (id, type, permission[N], name, uid, gid))
+    if (DB.DBA.DAV_AUTHENTICATE (id, what, permission[N], name, uid, gid))
       return 1;
   }
   
@@ -1356,9 +1370,6 @@ create procedure ODRIVE.WA.odrive_effective_permissions (
   if (isinteger(item))
     return 0;
 
-  declare uid, gid integer;
-  declare auth_name varchar;
-
   auth_name := ODRIVE.WA.account();
   uid := (select U_ID from DB.DBA.SYS_USERS where U_NAME = auth_name);
   gid := (select U_GROUP from DB.DBA.SYS_USERS where U_NAME = auth_name);
@@ -1622,7 +1633,7 @@ create procedure ODRIVE.WA.account_iri (
 -------------------------------------------------------------------------------
 --
 create procedure ODRIVE.WA.account_inverse_iri (
-  in account_iri integer)
+  in account_iri varchar)
 {
   declare params any;
 
@@ -1775,6 +1786,7 @@ create procedure ODRIVE.WA.host_url ()
 
       hp := sys_connected_server_address ();
       hpa := split_and_decode ( hp , 0 , '\0\0:');
+      if (hpa [1] <> '80')
       host := host || ':' || hpa [1];
     }
     goto _exit;
@@ -2253,9 +2265,9 @@ create procedure ODRIVE.WA.acl_params (
   }
   for (I := 0; I < length (params); I := I + 2)
   {
-    if (params[I] like 's_fld_1_%')
+    if (params[I] like 'f_fld_1_%')
     {
-      acl_seq := replace (params[I], 's_fld_1_', '');
+      acl_seq := replace (params[I], 'f_fld_1_', '');
       acl_users := split_and_decode (trim (params[I+1]), 0, '\0\0,');
       for (N := 0; N < length (acl_users); N := N + 1)
       {
@@ -2264,21 +2276,21 @@ create procedure ODRIVE.WA.acl_params (
         acl_user := ODRIVE.WA.odrive_user_id (trim (acl_users[N]));
         if (acl_user <> -1)
         {
-          acl_inheritance := atoi (get_keyword ('s_fld_2_' || acl_seq, params));
+          acl_inheritance := atoi (get_keyword ('f_fld_2_' || acl_seq, params));
           if (acl_inheritance <> 3)
           {
           WS.WS.ACL_ADD_ENTRY (acl_value,
                                acl_user,
-                                 bit_shift (atoi (get_keyword ('s_fld_3_' || acl_seq || '_r_grant', params, '0')), 2) +
-                                 bit_shift (atoi (get_keyword ('s_fld_3_' || acl_seq || '_w_grant', params, '0')), 1) +
-                                 atoi (get_keyword ('s_fld_3_' || acl_seq || '_x_grant', params, '0')),
+                                 bit_shift (atoi (get_keyword ('f_fld_3_' || acl_seq || '_r_grant', params, '0')), 2) +
+                                 bit_shift (atoi (get_keyword ('f_fld_3_' || acl_seq || '_w_grant', params, '0')), 1) +
+                                 atoi (get_keyword ('f_fld_3_' || acl_seq || '_x_grant', params, '0')),
                                1,
                                acl_inheritance);
           WS.WS.ACL_ADD_ENTRY (acl_value,
                                acl_user,
-                                 bit_shift (atoi (get_keyword ('s_fld_4_' || acl_seq || '_r_deny', params, '0')), 2) +
-                                 bit_shift (atoi (get_keyword ('s_fld_4_' || acl_seq || '_w_deny', params, '0')), 1) +
-                                 atoi (get_keyword ('s_fld_4_' || acl_seq || '_x_deny', params, '0')),
+                                 bit_shift (atoi (get_keyword ('f_fld_4_' || acl_seq || '_r_deny', params, '0')), 2) +
+                                 bit_shift (atoi (get_keyword ('f_fld_4_' || acl_seq || '_w_deny', params, '0')), 1) +
+                                 atoi (get_keyword ('f_fld_4_' || acl_seq || '_x_deny', params, '0')),
                                0,
                                acl_inheritance);
         }
@@ -2331,6 +2343,35 @@ create procedure ODRIVE.WA.acl_vector (
 }
 ;
 
+-----------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.acl_vector_unique (
+  in acl any)
+{
+  declare N integer;
+  declare retValue any;
+
+  retValue := vector ();
+  for (N := 0; N < length (acl); N := N + 1)
+  {
+    if (exists (select 1 from DB.DBA.SYS_USERS where U_ID = acl[N][0] and U_IS_ROLE = 1))
+    {
+      for (select UG_UID from DB.DBA.SYS_USER_GROUP, DB.DBA.SYS_USERS where UG_GID = acl[N][0] and U_ID = UG_UID and U_IS_ROLE = 0 and U_ACCOUNT_DISABLED = 0) do
+      {
+        if (not ODRIVE.WA.vector_contains (retValue, UG_UID))
+          retValue := vector_concat (retValue, vector (UG_UID));
+      }
+    }
+    else
+    {
+      if (not ODRIVE.WA.vector_contains (retValue, acl[N][0]))
+        retValue := vector_concat (retValue, vector (acl[N][0]));
+    }
+  }
+  return retValue;
+}
+;
+
 -------------------------------------------------------------------------------
 --
 create procedure ODRIVE.WA.odrive_ace_grantee(
@@ -2505,8 +2546,6 @@ create procedure ODRIVE.WA.odrive_sharing_dir_list (
         exec (S, st, msg, vector (), vector ('use_cache', 1), meta, data);
         if (st = '00000' and length (data))
         {
-          declare V any;
-
           for (N := 0; N < length (data); N := N + 1)
           {
             name := '';
@@ -2752,13 +2791,31 @@ create procedure ODRIVE.WA.auto_version_short (
 
 -------------------------------------------------------------------------------
 --
+create procedure ODRIVE.WA.det_type (
+  in path varchar,
+  in what varchar := 'C') returns varchar
+{
+  declare id any;
+
+  id := DB.DBA.DAV_SEARCH_ID (path, what);
+  if (ODRIVE.WA.DAV_ERROR (id))
+    return '';
+  return cast (coalesce (DB.DBA.DAV_PROP_GET_INT (id, what, ':virtdet', 0), '') as varchar);
+}
+;
+
+-------------------------------------------------------------------------------
+--
 create procedure ODRIVE.WA.det_class(
   in path varchar,
-  in type varchar := 'C')
+  in what varchar := null) returns varchar
 {
   declare id any;
 
-  id := ODRIVE.WA.DAV_SEARCH_ID (path);
+  if (isnull (what))
+    what := case when (path[length (path)-1] <> ascii('/')) then 'R' else 'C' end;
+
+  id := DB.DBA.DAV_SEARCH_ID (path, what);
   if (not ODRIVE.WA.DAV_ERROR (id) and isarray (id))
       return cast (id[0] as varchar);
   return '';
@@ -2784,41 +2841,6 @@ create procedure ODRIVE.WA.det_category(
 
 -------------------------------------------------------------------------------
 --
-create procedure ODRIVE.WA.det_action_enable(
-  in path varchar,
-  in action varchar)
-{
-  declare retValue integer;
-  declare det_category varchar;
-
-  retValue := 1;
-  det_category := ODRIVE.WA.det_category (path, either (equ (right (path, 1), '/'), 'C', 'R'));
-  if ((det_category <> '') and (action in ('share', 'version')))
-      {
-        retValue := 0;
-      }
-  else if ((det_category = 'Versioning') and (action in ('new', 'upload', 'edit', 'rename', 'version', 'share')))
-      {
-        retValue := 0;
-      }
-  else if ((det_category = 'S3') and (action in ('version', 'rename', 'tag', 'share')))
-      {
-        retValue := 0;
-      }
-  else if ((det_category = 'HostFs') and (action in ('version', 'tag', 'share')))
-    {
-          retValue := 0;
-      }
-  else if ((lcase(det_category) in ('blog', 'omail', 'news3', 'bookmark', 'calendar', 'nntp')) and (action in ('new', 'upload', 'delete', 'rename', 'move', 'version', 'share')))
-      {
-          retValue := 0;
-      }
-  return retValue;
-}
-;
-
--------------------------------------------------------------------------------
---
 create procedure ODRIVE.WA.DAV_GET_INFO(
   in path varchar,
   in info varchar,
@@ -3001,7 +3023,7 @@ create procedure ODRIVE.WA.DAV_GET_VERSION_CONTROL (
 -------------------------------------------------------------------------------
 --
 create procedure ODRIVE.WA.path_parent (
-  in path value)
+  in path varchar)
 {
   path := trim(path, '/');
   if (isnull(strrchr(path, '/')))
@@ -3013,7 +3035,7 @@ create procedure ODRIVE.WA.path_parent (
 -------------------------------------------------------------------------------
 --
 create procedure ODRIVE.WA.path_name (
-  in path value)
+  in path varchar)
 {
   path := trim(path, '/');
   if (isnull(strrchr(path, '/')))
@@ -3183,7 +3205,8 @@ create procedure ODRIVE.WA.DAV_INIT_INT (
   in auth_pwd varchar := null)
 {
   declare uid, gid integer;
-  declare permissions, uname, gname varchar;
+  declare uname, gname varchar;
+  declare permissions any;
 
   DB.DBA.DAV_OWNER_ID(ODRIVE.WA.account (), null, uid, gid);
   ODRIVE.WA.DAV_API_PARAMS (uid, gid, uname, gname, auth_name, auth_pwd);
@@ -3231,25 +3254,6 @@ create procedure ODRIVE.WA.DAV_INIT_COLLECTION (
 
 -------------------------------------------------------------------------------
 --
-create procedure ODRIVE.WA.DAV_SEARCH_ID(
-  in path varchar,
-  out type varchar)
-{
-  declare id any;
-
-  type := 'C';
-  id := DB.DBA.DAV_SEARCH_ID (path, type);
-  if (ODRIVE.WA.DAV_ERROR(id))
-  {
-    type := 'R';
-    return DB.DBA.DAV_SEARCH_ID (path, type);
-  }
-  return id;
-}
-;
-
--------------------------------------------------------------------------------
---
 create procedure ODRIVE.WA.DAV_GET (
   inout resource any,
   in property varchar)
@@ -3267,7 +3271,7 @@ create procedure ODRIVE.WA.DAV_GET (
     return resource[2];
 
   if (property = 'modificationTime')
-    return resource[3];
+    return case when is_empty_or_null (resource[3]) then now () else resource[3] end;
 
   if (property = 'id')
     return resource[4];
@@ -3303,7 +3307,7 @@ create procedure ODRIVE.WA.DAV_GET (
     return ODRIVE.WA.odrive_user_name(resource[7]);
 
   if (property = 'creationTime')
-    return resource[8];
+    return case when is_empty_or_null (resource[8]) then now () else resource[8] end;
 
   if (property = 'mimeType')
     return coalesce(resource[9], '');
@@ -3313,9 +3317,16 @@ create procedure ODRIVE.WA.DAV_GET (
 
   if (property = 'acl')
   {
-    if (isnull(resource[0]))
+    declare path varchar;
+
+    path := resource[0];
+    if (isnull (path))
       return WS.WS.ACL_CREATE();
-    return cast(ODRIVE.WA.DAV_PROP_GET (resource[0], ':virtacl', WS.WS.ACL_CREATE()) as varbinary);
+
+    if (isstring (path) and path like '%,acl')
+      path := regexp_replace (path, ',acl\x24', '');
+
+    return cast (ODRIVE.WA.DAV_PROP_GET (path, ':virtacl', WS.WS.ACL_CREATE()) as varbinary);
   }
 
   if ((property = 'detType') and (not isnull (resource[0])))
@@ -3327,8 +3338,10 @@ create procedure ODRIVE.WA.DAV_GET (
     {
       if (ODRIVE.WA.DAV_PROP_GET (resource[0], 'virt:rdf_graph', '') <> '')
         detType := 'rdfSink';
-      if (ODRIVE.WA.DAV_PROP_GET (resource[0], 'virt:Versioning-History', '') <> '')
+      else if (ODRIVE.WA.DAV_PROP_GET (resource[0], 'virt:Versioning-History', '') <> '')
         detType := 'UnderVersioning';
+      else if (ODRIVE.WA.syncml_detect (resource[0]))
+        detType := 'SyncML';
     }  
     return detType;
   }
@@ -3366,7 +3379,7 @@ create procedure ODRIVE.WA.DAV_GET (
 
   if (property = 'permissions-inheritance')
   {
-    if ((isnull (resource[0])) or (resource[1] = 'R') or isarray(resource[1]))
+    if (isnull (resource[0]) or (resource[1] = 'R') or ODRIVE.WA.isVector (resource[1]))
       return null;
     return (select COL_INHERIT from WS.WS.SYS_DAV_COL where COL_ID = resource[4]);
   }
@@ -3650,9 +3663,28 @@ create procedure ODRIVE.WA.DAV_DELETE (
   in auth_name varchar := null,
   in auth_pwd varchar := null)
 {
-  declare uname, gname varchar;
+  declare id any;
+  declare owner, uname, gname, detType varchar;
 
   ODRIVE.WA.DAV_API_PARAMS (null, null, uname, gname, auth_name, auth_pwd);
+  if (path[length (path)-1] = ascii('/'))
+  {
+    detType := ODRIVE.WA.det_type (path, 'C');
+    if (detType = 'SyncML')
+    {
+      ODRIVE.WA.exec ('delete from DB.DBA.SYNC_COLS_TYPES where CT_COL_ID = ?', vector (DB.DBA.DAV_SEARCH_ID (path, 'C')));
+    }
+    else if (detType = 'IMAP')
+    {
+      id := DB.DBA.DAV_SEARCH_ID (path, 'C');
+      if (not ODRIVE.WA.DAV_ERROR (id) and not isarray(id))
+      {
+        owner := sprintf ('IMAP_%d', id);
+        ODRIVE.WA.exec ('delete from DB.DBA.MAIL_FOLDER where MF_OWN = ?', vector (owner));
+        ODRIVE.WA.exec ('delete from DB.DBA.MAIL_MESSAGE where MM_OWN = ?', vector (owner));
+      }
+    }
+  }
   return DB.DBA.DAV_DELETE(path, silent, auth_name, auth_pwd);
 }
 ;
@@ -3678,6 +3710,24 @@ create procedure ODRIVE.WA.DAV_RES_UPLOAD (
 
 -------------------------------------------------------------------------------
 --
+create procedure ODRIVE.WA.DAV_RDF_UPLOAD (
+  inout content any,
+  in type varchar,
+  in graph varchar)
+{
+  declare retValue integer;
+  declare graph2 varchar;
+
+  graph2 := 'http://local.virt/temp';
+  retValue := DB.DBA.RDF_SINK_UPLOAD ('/temp', content, type, graph, 'on', '', '');
+  SPARQL clear graph ?:graph2;
+
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
 create procedure ODRIVE.WA.DAV_RES_CONTENT (
   in path varchar,
   in auth_name varchar := null,
@@ -3796,13 +3846,15 @@ create procedure ODRIVE.WA.DAV_PROP_SET (
   in auth_pwd varchar := null,
   in removeBefore integer := 1)
 {
-  -- dbg_obj_princ ('ODRIVE.WA.DAV_PROP_SET (', path, propName, ')');
+  -- dbg_obj_princ ('ODRIVE.WA.DAV_PROP_SET (', path, propName, propValue, ')');
   declare uname, gname varchar;
+  declare retValue any;
 
   ODRIVE.WA.DAV_API_PARAMS (null, null, uname, gname, auth_name, auth_pwd);
   if (removeBefore)
-  DB.DBA.DAV_PROP_REMOVE(path, propname, auth_name, auth_pwd);
-  return DB.DBA.DAV_PROP_SET(path, propname, propvalue, auth_name, auth_pwd);
+    retValue := DB.DBA.DAV_PROP_REMOVE (path, propName, auth_name, auth_pwd);
+
+  return DB.DBA.DAV_PROP_SET (path, propName, propValue, auth_name, auth_pwd);
 }
 ;
 
@@ -3951,7 +4003,10 @@ create procedure ODRIVE.WA.get_rdf (
 create procedure ODRIVE.WA.test_clear (
   in S any)
 {
-  return substring(S, 1, coalesce(strstr(S, '<>'), length(S)));
+  S := substring (S, 1, coalesce (strstr (S, '<>'), length (S)));
+  S := substring (S, 1, coalesce (strstr (S, '\nin'), length (S)));
+
+  return S;
 }
 ;
 
@@ -4022,8 +4077,9 @@ create procedure ODRIVE.WA.test (
     tmp := get_keyword('maxValue', params);
     if (not isnull(tmp) and (value > tmp))
       signal('MAX', cast(tmp as varchar));
-
-  } else if (valueType = 'float') {
+  }
+  else if (valueType = 'float')
+  {
     tmp := get_keyword('minValue', params);
     if (not isnull(tmp) and (value < tmp))
       signal('MIN', cast(tmp as varchar));
@@ -4031,8 +4087,9 @@ create procedure ODRIVE.WA.test (
     tmp := get_keyword('maxValue', params);
     if (not isnull(tmp) and (value > tmp))
       signal('MAX', cast(tmp as varchar));
-
-  } else if (valueType = 'varchar') {
+  }
+  else if (valueType = 'varchar')
+  {
     tmp := get_keyword('minLength', params);
     if (not isnull(tmp) and (length(value) < tmp))
       signal('MINLENGTH', cast(tmp as varchar));
@@ -4226,63 +4283,6 @@ ODRIVE.WA.version_update()
 
 -------------------------------------------------------------------------------
 --
-create procedure ODRIVE.WA.obj2json (
-  in o any,
-  in d integer := 2)
-{
-  declare N, M integer;
-  declare R, T any;
-  declare retValue any;
-
-	if (d = 0)
-	  return '[maximum depth achieved]';
-
-  T := vector ('\b', '\\b', '\t', '\\t', '\n', '\\n', '\f', '\\f',	'\r', '\\r', '"', '\\"', '\\', '\\\\');
-	retValue := '';
-	if (isnumeric (o))
-	{
-		retValue := cast (o as varchar);
-	}
-	else if (isstring (o))
-	{
-		for (N := 0; N < length(o); N := N + 1)
-		{
-			R := chr (o[N]);
-		  for (M := 0; M < length(T); M := M + 2)
-		  {
-				if (R = T[M])
-				  R := T[M+1];
-			}
-			retValue := retValue || R;
-		}
-		retValue := '"' || retValue || '"';
-	}
-	else if (isarray (o))
-	{
-		retValue := '[';
-		for (N := 0; N < length(o); N := N + 1)
-		{
-		  retValue := retValue || ODRIVE.WA.obj2json (o[N], d-1);
-		  if (N <> length(o)-1)
-			  retValue := retValue || ',\n';
-		}
-		retValue := retValue || ']';
-	}
-	return retValue;
-}
-;
-
--------------------------------------------------------------------------------
---
-create procedure ODRIVE.WA.json2obj (
-  in o any)
-{
-  return json_parse (o);
-}
-;
-
--------------------------------------------------------------------------------
---
 create procedure ODRIVE.WA.ui_image (
   in itemPath varchar,
   in itemType varchar,
@@ -4290,19 +4290,22 @@ create procedure ODRIVE.WA.ui_image (
 {
   if (itemType = 'C')
   {
-    if (ODRIVE.WA.det_category(itemPath) = 'CatFilter')
+    declare det_type varchar;
+
+    det_type := ODRIVE.WA.det_type (itemPath, itemType);
+    if (det_type = 'CatFilter')
       return 'image/dav/category_16.png';
-    if (ODRIVE.WA.det_category(itemPath) = 'PropFilter')
+    if (det_type = 'PropFilter')
       return 'image/dav/property_16.png';
-    if (ODRIVE.WA.det_category(itemPath) = 'HostFs')
+    if (det_type = 'HostFs')
       return 'image/dav/hostfs_16.png';
-    if (ODRIVE.WA.det_category(itemPath) = 'Versioning')
+    if (det_type = 'Versioning')
       return 'image/dav/versions_16.png';
-    if (ODRIVE.WA.det_category(itemPath) = 'News3')
+    if (det_type = 'News3')
       return 'image/dav/enews_16.png';
-    if (ODRIVE.WA.det_category(itemPath) = 'Blog')
+    if (det_type = 'Blog')
       return 'image/dav/blog_16.png';
-    if (ODRIVE.WA.det_category(itemPath) = 'oMail')
+    if (det_type = 'oMail')
       return 'image/dav/omail_16.png';
     return 'image/dav/foldr_16.png';
   }
@@ -4391,12 +4394,15 @@ create procedure ODRIVE.WA.ui_date (
 create procedure ODRIVE.WA.send_mail (
   in _instance integer,
   in _from integer,
-  in _to integer,
+  in _to any,
+  in _subject varchar,
   in _body varchar,
-  in _path varchar)
+  in _path varchar,
+  in _mode integer := 1)
 {
-  declare N, _id, _what, _iri any;
-  declare _smtp_server, _from_address, _to_address, _toUsers, _toBody, _message any;
+  -- dbg_obj_princ ('ODRIVE.WA.send_mail (', _from, _to, _path, ')');
+  declare _id, _what, _iri, _data any;
+  declare _smtp_server, _from_address, _to_address, _message any;
 
   if ((select max (WS_USE_DEFAULT_SMTP) from WA_SETTINGS) = 1 or (select length (max (WS_SMTP)) from WA_SETTINGS) = 0)
   {
@@ -4408,30 +4414,34 @@ create procedure ODRIVE.WA.send_mail (
   {
      _iri := SIOC..briefcase_iri (ODRIVE.WA.domain_name (_instance));
      _what := case when (_path[length (_path)-1] <> ascii('/')) then 'R' else 'C' end;
-     _id := DB.DBA.DAV_SEARCH_ID (_path, _what);
+     if (_what = 'C')
+       _iri := _iri || '/folder';
 
-    if (exists (select 1 from SYS_USERS where U_ID = _to and U_IS_ROLE = 1))
-    {
-      _toUsers := vector ();
-      for (select UG_UID from DB.DBA.SYS_USER_GROUP, DB.DBA.SYS_USERS where UG_GID = _to and U_ID = UG_UID and U_IS_ROLE = 0 and U_ACCOUNT_DISABLED = 0) do
-        _toUsers := vector_concat (_toUsers, vector (UG_UID));
-    } else {
-      _toUsers := vector (_to);
-    }
-    _toBody := _body;
-    for (N := 0; N < length (_toUsers); N := N + 1)
-    {
-      _to := _toUsers[N];
-      _body := _toBody;
+    _id := DB.DBA.DAV_SEARCH_ID (_path, _what);
     _body := replace (_body, '%resource_path%', _path);
+    if (isarray (_id) and (cast (_id[0] as varchar) in ('IMAP', 'S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV')))
+        _id := _id[2];
+
+      if (not isarray (_id))
     _body := replace (_body, '%resource_uri%', SIOC..post_iri_ex (_iri, _id));
+
     _body := replace (_body, '%owner_uri%', SIOC..person_iri (SIOC..user_iri (_from)));
     _body := replace (_body, '%owner_name%', ODRIVE.WA.account_name (_from));
+    _from_address := (select U_E_MAIL from SYS_USERS where U_ID = _from);
+    if (_mode)
+    {
     _body := replace (_body, '%user_uri%', SIOC..person_iri (SIOC..user_iri (_to)));
     _body := replace (_body, '%user_name%', ODRIVE.WA.account_name (_to));
-    _message := 'Subject: Sharing notification\r\nContent-Type: text/plain\r\n' || _body;
-    _from_address := (select U_E_MAIL from SYS_USERS where U_ID = _from);
     _to_address := (select U_E_MAIL from SYS_USERS where U_ID = _to);
+    }
+    else
+    {
+      _data := ODS.ODS_API.getFOAFDataArray (_to);
+      _to_address := get_keyword ('mbox', _data);
+      _body := replace (_body, '%user_uri%', _to);
+      _body := replace (_body, '%user_name%', get_keyword ('name', _data, get_keyword ('nick', _data)));
+    }
+    _message := _subject || '\r\nContent-Type: text/plain\r\n' || _body;
     {
       declare exit handler for sqlstate '*'
       {
@@ -4442,7 +4452,6 @@ create procedure ODRIVE.WA.send_mail (
     }
   }
 }
-}
 ;
 
 -------------------------------------------------------------------------------
@@ -4454,34 +4463,78 @@ create procedure ODRIVE.WA.acl_send_mail (
   in _old_acl any,
   in _new_acl any)
 {
-  declare N, M integer;
-  declare oACLs, oACL, nACLs, nACL, settings, text any;
+  declare aq any;
+
+  _old_acl := ODRIVE.WA.acl_vector_unique (ODRIVE.WA.acl_vector (_old_acl));
+  _new_acl := ODRIVE.WA.acl_vector_unique (ODRIVE.WA.acl_vector (_new_acl));
+  aq := async_queue (1);
+  aq_request (aq, 'ODRIVE.WA.acl_send_mail_aq', vector (_instance, _from, _path, _old_acl, _new_acl));
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.acl_send_mail_aq (
+  in _instance integer,
+  in _from integer,
+  in _path varchar,
+  in _old_acl any,
+  in _new_acl any)
+{
+  -- dbg_obj_princ ('ODRIVE.WA.acl_send_mail_aq (', _path, _old_acl, _new_acl, ')');
+  declare N integer;
+  declare settings, subject, text any;
 
   settings := ODRIVE.WA.settings (_from);
+  subject := 'Subject: Sharing notification';
   text := ODRIVE.WA.settings_mailShare (settings);
-  oACLs := ODRIVE.WA.acl_vector (_old_acl);
-  nACLs := ODRIVE.WA.acl_vector (_new_acl);
-  for (N := 0; N < length (nACLs); N := N + 1)
+  for (N := 0; N < length (_new_acl); N := N + 1)
   {
-    for (M := 0; M < length (oACLs); M := M + 1)
+    if (not ODRIVE.WA.vector_contains (_old_acl, _new_acl[N]))
+      ODRIVE.WA.send_mail (_instance, _from, _new_acl[N], subject, text, _path);
+  }
+  subject := 'Subject: Unsharing notification';
+  text := ODRIVE.WA.settings_mailUnshare (settings);
+  for (N := 0; N < length (_old_acl); N := N + 1)
     {
-      if (nACLs[N][0] = oACLs[M][0])
-        goto _skip;
+    if (not ODRIVE.WA.vector_contains (_new_acl, _old_acl[N]))
+      ODRIVE.WA.send_mail (_instance, _from, _old_acl[N], subject, text, _path);
     }
-    ODRIVE.WA.send_mail (_instance, _from, nACLs[N][0], text, _path);
-  _skip:;
   }
-  for (N := 0; N < length (oACLs); N := N + 1)
+;
+
+-----------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.aci_vector (
+  in aci any)
   {
-    for (M := 0; M < length (nACLs); M := M + 1)
+  declare N, I integer;
+  declare retValue, webIDs any;
+
+  retValue := vector ();
+  for (N := 0; N < length (aci); N := N + 1)
+    {
+    if      (aci[N][2] = 'person')
     {
-      if (oACLs[N][0] = nACLs[M][0])
-        goto _skip2;
+      if (not ODRIVE.WA.vector_contains (retValue, aci[N][1]))
+        retValue := vector_concat (retValue, vector (aci[N][1]));
+    }
+    else if (aci[N][2] = 'group')
+    {
+      webIDs := (select WACL_WEBIDS from DB.DBA.WA_GROUPS_ACL where aci[N][1] = SIOC..acl_group_iri (WACL_USER_ID, WACL_NAME));
+      if (not isnull (webIDs))
+      {
+        webIDs := split_and_decode (webIDs, 0, '\0\0\n');
+        for (I := 0; I < length (webIDs); I := I + 1)
+        {
+          if (not ODRIVE.WA.vector_contains (retValue, webIDs[I]))
+            retValue := vector_concat (retValue, vector (webIDs[I]));
     }
-    ODRIVE.WA.send_mail (_instance, _from, oACLs[N][0], text, _path);
-  _skip2:;
   }
 }
+  }
+  return retValue;
+}
 ;
 
 -------------------------------------------------------------------------------
@@ -4509,18 +4562,30 @@ create procedure ODRIVE.WA.aci_parents (
 create procedure ODRIVE.WA.aci_load (
   in path varchar)
 {
-  declare retValue, graph any;
-  declare S, st, msg, data, meta any;
+  declare id, what, retValue, graph any;
+  declare S, st, msg, meta, rows any;
 
+  --return vector ();
+  what := case when (path[length (path)-1] <> ascii('/')) then 'R' else 'C' end;
+  id := DB.DBA.DAV_SEARCH_ID (path, what);
+  DB.DBA.DAV_AUTHENTICATE_SSL_ITEM (id, what, path);
+  if (isarray (id) and (cast (id[0] as varchar) not in ('IMAP', 'S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV')))
+  {
+    retValue := ODRIVE.WA.DAV_PROP_GET (path, 'virt:aci_meta');
+    if (ODRIVE.WA.DAV_ERROR (retValue))
+      retValue := vector ();
+  }
+  else
+  {
   retValue := vector ();
-
-  graph := WS.WS.DAV_IRI (path);
+    graph := WS.WS.WAC_GRAPH (path);
   S := sprintf (' sparql \n' ||
                 ' define input:storage "" \n' ||
                 ' prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n' ||
                 ' prefix foaf: <http://xmlns.com/foaf/0.1/> \n' ||
                 ' prefix acl: <http://www.w3.org/ns/auth/acl#> \n' ||
-                ' select ?rule ?agent ?mode \n' ||
+                  ' prefix flt: <http://www.openlinksw.com/schemas/acl/filter#> \n' ||
+                  ' select distinct ?rule ?agent ?mode ?filter ?criteria ?operand ?condition ?pattern ?statement \n' ||
                 '   from <%s> \n' ||
                 '  where { \n' ||
                 '          { \n' ||
@@ -4536,36 +4601,64 @@ create procedure ODRIVE.WA.aci_load (
                 '            acl:mode ?mode ; \n' ||
                 '            acl:agentClass ?agent. \n' ||
                 '          } \n' ||
+                  '          union \n' ||
+                  '          { \n' ||
+                  '            ?rule rdf:type acl:Authorization ; \n' ||
+                  '                  acl:accessTo <%s> ; \n' ||
+                  '                  acl:mode ?mode ; \n' ||
+                  '                  flt:hasFilter ?filter . \n' ||
+                  '            ?filter flt:hasCriteria ?criteria . \n' ||
+                  '            ?criteria flt:operand ?operand ; \n' ||
+                  '                      flt:condition ?condition ; \n' ||
+                  '                      flt:value ?pattern . \n' ||
+                  '            OPTIONAL { ?criteria flt:statement ?statement . } \n' ||
+                  '          } \n' ||
                 '        }\n' ||
-                '  order by ?rule\n',
+                  '  order by ?rule ?filter ?criteria\n',
+                  graph,
                 graph,
                 graph,
                 graph);
   commit work;
   st := '00000';
-  exec (S, st, msg, vector (), 0, meta, data);
-  if (st = '00000' and length (data))
+    exec (S, st, msg, vector (), 0, meta, rows);
+    if (st = '00000')
   {
-    declare N, aclNo, aclRule, aclMode, V any;
+      declare aclNo, aclRule, aclMode, aclCriteria, V, F any;
 
-    V := null;
     aclNo := 0;
     aclRule := '';
-    for (N := 0; N < length (data); N := N + 1)
+      V := null;
+      F := vector ();
+      aclCriteria := '';
+      foreach (any row in rows) do
     {
-      if (aclRule <> data[N][0])
+        if (aclRule <> row[0])
       {
         if (not isnull (V))
           retValue := vector_concat (retValue, vector (V));
+
         aclNo := aclNo + 1;
-        aclRule := data[N][0];
-        V := vector (aclNo, ODS.ODS_API."ontology.normalize" (data[N][1]), 'person', 0, 0, 0);
+          aclRule := row[0];
+          V := vector (aclNo, ODS.ODS_API."ontology.normalize" (row[1]), 'person', 0, 0, 0);
+          F := vector ();
+          aclCriteria := '';
       }
-      if (ODS.ODS_API."ontology.normalize" (data[N][1]) = 'foaf:Agent')
+        if (ODS.ODS_API."ontology.normalize" (row[1]) = 'foaf:Agent')
         V[2] := 'public';
-      if (data[N][1] like SIOC.DBA.get_graph () || '/%/group/%')
+        if (row[1] like SIOC.DBA.get_graph () || '/%/group/%')
         V[2] := 'group';
-      aclMode := ODS.ODS_API."ontology.normalize" (data[N][2]);
+        if (row[3] like (graph || 'filter_%'))
+        {
+          V[2] := 'advanced';
+          if (aclCriteria <> row[4])
+          {
+            F := vector_concat (F, vector (vector (1, replace (row[5], 'flt:', ''), replace (row[6], 'flt:', ''), row[7], row[8])));
+            aclCriteria := row[4];
+            V[1] := F;
+          }
+        }
+        aclMode := ODS.ODS_API."ontology.normalize" (row[2]);
       if (aclMode = 'acl:Read')
         V[3] := 1;
       if (aclMode = 'acl:Write')
@@ -4576,35 +4669,28 @@ create procedure ODRIVE.WA.aci_load (
     if (not isnull (V))
       retValue := vector_concat (retValue, vector (V));
   }
+  }
   return retValue;
 }
 ;
 
 -------------------------------------------------------------------------------
 --
-create procedure ODRIVE.WA.aci_params (
-  in params any)
+create procedure ODRIVE.WA.aci_save (
+  in path varchar,
+  inout aci any)
 {
-  declare N, M integer;
-  declare aclNo, retValue, V any;
+  declare id, what, retValue, tmp any;
 
-  M := 1;
-  retValue := vector ();
-  for (N := 0; N < length (params); N := N + 2)
+  what := case when (path[length (path)-1] <> ascii('/')) then 'R' else 'C' end;
+  id := DB.DBA.DAV_SEARCH_ID (path, what);
+  if (isarray (id) and (cast (id[0] as varchar) not in ('IMAP', 'S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV')))
   {
-    if (params[N] like 'f_fld_2_%')
-    {
-      aclNo := replace (params[N], 'f_fld_2_', '');
-      V := vector (M,
-                   trim (params[N+1]),
-                   get_keyword ('f_fld_1_' || aclNo, params, 'person'),
-                   atoi (get_keyword ('f_fld_3_' || aclNo || '_r', params, '0')),
-                   atoi (get_keyword ('f_fld_3_' || aclNo || '_w', params, '0')),
-                   atoi (get_keyword ('f_fld_3_' || aclNo || '_x', params, '0'))
-                  );
-      retValue := vector_concat (retValue, vector (V));
-      M := M + 1;
-    }
+    retValue := ODRIVE.WA.DAV_PROP_SET (path, 'virt:aci_meta', aci);
+  }
+  else
+  {
+    retValue := ODRIVE.WA.DAV_PROP_SET (path, 'virt:aci_meta_n3', ODRIVE.WA.aci_n3 (aci));
   }
   return retValue;
 }
@@ -4615,42 +4701,115 @@ create procedure ODRIVE.WA.aci_params (
 create procedure ODRIVE.WA.aci_n3 (
   in aciArray any)
 {
-  declare N integer;
-  declare retValue any;
+  declare N, M integer;
+  declare stream any;
 
   if (length (aciArray) = 0)
     return null;
 
-  retValue := ' @prefix acl: <http://www.w3.org/ns/auth/acl#> . \n' ||
-              ' @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . \n' ||
-              ' @prefix foaf: <http://xmlns.com/foaf/0.1/> . \n';
+
+  stream := string_output ();
+  http ('@prefix acl: <http://www.w3.org/ns/auth/acl#> . \n', stream);
+  http ('@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . \n', stream);
+  http ('@prefix foaf: <http://xmlns.com/foaf/0.1/> . \n', stream);
+  http ('@prefix flt: <http://www.openlinksw.com/schemas/acl/filter#> . ', stream);
   for (N := 0; N < length (aciArray); N := N + 1)
   {
     if (length (aciArray[N][1]))
     {
-      retValue := retValue || sprintf ('   <aci_%d> rdf:type acl:Authorization ;\n   acl:accessTo <>', aciArray[N][0]);
+      http (sprintf ('\n<aci_%d> rdf:type acl:Authorization ;\n        acl:accessTo <>', aciArray[N][0]), stream);
       if (aciArray[N][2] = 'person')
       {
-        retValue := retValue || sprintf (';\n   acl:agent <%s>', aciArray[N][1]);
+        http (sprintf ('; \n        acl:agent <%s>', aciArray[N][1]), stream);
       }
       else if (aciArray[N][2] = 'group')
       {
-        retValue := retValue || sprintf (';\n   acl:agentClass <%s>', aciArray[N][1]);
+        http (sprintf ('; \n        acl:agentClass <%s>', aciArray[N][1]), stream);
       }
       else if (aciArray[N][2] = 'public')
       {
-        retValue := retValue || ';\n   acl:agentClass foaf:Agent';
+        http (         '; \n        acl:agentClass foaf:Agent', stream);
+      }
+      else if (aciArray[N][2] = 'advanced')
+      {
+        http (sprintf ('; \n        flt:hasFilter <filter_%d>', aciArray[N][0]), stream);
       }
       if (aciArray[N][3])
-        retValue := retValue || ';\n   acl:mode acl:Read';
+        http ('; \n        acl:mode acl:Read', stream);
       if (aciArray[N][4])
-        retValue := retValue || ';\n   acl:mode acl:Write';
+        http ('; \n        acl:mode acl:Write', stream);
       if (aciArray[N][5])
-        retValue := retValue || ';\n   acl:mode acl:Execute';
-      retValue := retValue || '.\n';
+        http ('; \n        acl:mode acl:Execute', stream);
+
+      http ('. ', stream);
+      if (aciArray[N][2] = 'advanced')
+      {
+        http (sprintf ('\n<filter_%d> rdf:type flt:Filter .', aciArray[N][0]), stream);
+        for (M := 0; M < length (aciArray[N][1]); M := M + 1)
+        {
+          http (sprintf ('\n<filter_%d> flt:hasCriteria <criteria_%d_%d> .', aciArray[N][0], aciArray[N][0], aciArray[N][1][M][0]), stream);
+          http (sprintf ('\n<criteria_%d_%d> flt:operand <flt:%s> ;', aciArray[N][0], aciArray[N][1][M][0], aciArray[N][1][M][1]), stream);
+          http (sprintf ('\n               flt:condition <flt:%s> ;', aciArray[N][1][M][2]), stream);
+          http (         '\n               flt:value ', stream); http_nt_object (aciArray[N][1][M][3], stream);
+          if ((length (aciArray[N][1][M]) > 3) and not DB.DBA.is_empty_or_null (aciArray[N][1][M][4]))
+          {
+          http (         '; \n             flt:statement ', stream); http_nt_object (aciArray[N][1][M][4], stream);
+        }
+          http ('. \n', stream);
+      }
     }
   }
-  return retValue;
+  }
+  return string_output_string (stream);
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.aci_send_mail (
+  in _instance integer,
+  in _from integer,
+  in _path varchar,
+  in _old_acl any,
+  in _new_acl any)
+{
+  declare aq any;
+
+  _old_acl := ODRIVE.WA.aci_vector (_old_acl);
+  _new_acl := ODRIVE.WA.aci_vector (_new_acl);
+  aq := async_queue (1);
+  aq_request (aq, 'ODRIVE.WA.aci_send_mail_aq', vector (_instance, _from, _path, _old_acl, _new_acl));
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.aci_send_mail_aq (
+  in _instance integer,
+  in _from integer,
+  in _path varchar,
+  in _old_acl any,
+  in _new_acl any)
+{
+  -- dbg_obj_princ ('ODRIVE.WA.aci_send_mail_aq (', _path, _old_acl, _new_acl, ')');
+  declare N integer;
+  declare settings, subject, text any;
+
+  settings := ODRIVE.WA.settings (_from);
+  subject := 'Subject: Sharing notification';
+  text := ODRIVE.WA.settings_mailShare (settings);
+  for (N := 0; N < length (_new_acl); N := N + 1)
+  {
+    if (not ODRIVE.WA.vector_contains (_old_acl, _new_acl[N]))
+      ODRIVE.WA.send_mail (_instance, _from, _new_acl[N], subject, text, _path, 0);
+  }
+  subject := 'Subject: Unsharing notification';
+  text := ODRIVE.WA.settings_mailUnshare (settings);
+  for (N := 0; N < length (_old_acl); N := N + 1)
+  {
+    if (not ODRIVE.WA.vector_contains (_new_acl, _old_acl[N]))
+      ODRIVE.WA.send_mail (_instance, _from, _old_acl[N], subject, text, _path, 0);
+  }
 }
 ;
 
@@ -4686,3 +4845,235 @@ create procedure ODRIVE.WA.path_normalize (
   return path;
 }
 ;
+
+-------------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.path2ssl (
+  in path varchar)
+{
+  declare pos any;
+  declare V, sslData, sslPort any;
+
+  sslData := ODS.ODS_API."server.getInfo"('sslPort');
+  if (not isnull (sslData))
+  {
+    sslPort := get_keyword ('sslPort', sslData, 443);
+    V := rfc1808_parse_uri (path);
+    V[0] := 'https';
+
+    pos := strrchr (V[1], ':');
+    if (pos is not null)
+      V[1] := subseq (V[1], 0, pos);
+    V[1] := V[1] || case when sslPort <> 443 then ':' || cast (sslPort as varchar) else '' end;
+    path := DB.DBA.vspx_uri_compose (V);
+
+  }
+  return path;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.syncml_detect (
+  in path varchar)
+{
+  if (__proc_exists ('DB.DBA.yac_syncml_detect') is not null)
+    return DB.DBA.yac_syncml_detect (path);
+
+  return 0;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.syncml_versions ()
+{
+  if (__proc_exists ('DB.DBA.yac_syncml_version') is not null)
+    return DB.DBA.yac_syncml_version ();
+
+  return vector ();
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.syncml_version (
+  in path varchar)
+{
+  if (__proc_exists ('DB.DBA.yac_syncml_version_get') is not null)
+    return DB.DBA.yac_syncml_version_get (path);
+
+  return 'N';
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.syncml_types ()
+{
+  if (__proc_exists ('DB.DBA.yac_syncml_type') is not null)
+    return DB.DBA.yac_syncml_type ();
+
+  return vector ();
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.syncml_type (
+  in path varchar)
+{
+  if (__proc_exists ('DB.DBA.yac_syncml_type_get') is not null)
+    return DB.DBA.yac_syncml_type_get (path);
+
+  return 'N';
+}
+;
+
+-------------------------------------------------------------------------------
+--
+-- DB.DBA.RDF_LOAD_HTML_RESPONSE
+--
+create procedure ODRIVE.WA.cartridges_get ()
+{
+  declare selected integer;
+  declare retValue any;
+
+  retValue := vector ();
+  for (select RM_ID, RM_DESCRIPTION, RM_HOOK, ucase (cast (RM_DESCRIPTION as varchar (128))) as RM_SORT from DB.DBA.SYS_RDF_MAPPERS where RM_ENABLED = 1 order by 4) do
+  {
+    selected := 0;
+    if (RM_HOOK in ('DB.DBA.RDF_LOAD_HTML_RESPONSE'))
+      selected := 1;
+    retValue := vector_concat (retValue, vector (vector (RM_ID, RM_DESCRIPTION, selected)));
+  }
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+-- DB.DBA.RDF_LOAD_CALAIS,
+-- DB.DBA.RDF_LOAD_ZEMANTA
+-- DB.DBA.RDF_LOAD_ALCHEMY_META
+-- DB.DBA.RDF_LOAD_YAHOO_TERM_META
+-- DB.DBA.RDF_LOAD_DBPEDIA_SPOTLIGHT_META
+--
+create procedure ODRIVE.WA.metaCartridges_get ()
+{
+  declare selected integer;
+  declare items, retValue any;
+
+  retValue := vector ();
+  items := ODRIVE.WA.exec ('select MC_ID, MC_DESC, MC_HOOK, ucase (cast (MC_DESC as varchar (128))) as MC_SORT from DB.DBA.RDF_META_CARTRIDGES where MC_ENABLED = 1 order by 4');
+  foreach (any item in items) do
+  {
+    selected := 0;
+    if (item[2] in ('DB.DBA.RDF_LOAD_CALAIS', 'DB.DBA.RDF_LOAD_ZEMANTA', 'DB.DBA.RDF_LOAD_ALCHEMY_META', 'DB.DBA.RDF_LOAD_YAHOO_CONTENT_ANALYSIS_META', 'DB.DBA.RDF_LOAD_DBPEDIA_SPOTLIGHT_META'))
+      selected := 1;
+    retValue := vector_concat (retValue, vector (vector (item[0], item[1], selected)));
+  }
+  return retValue;
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.graph_private_remove (
+  in path varchar,
+  in what varchar,
+  in graph varchar)
+{
+  -- remove from private graphs
+  if (not DB.DBA.is_empty_or_null (graph))
+  {
+    SIOC..private_graph_remove (graph);
+    DB.DBA.wa_private_graph_remove (graph, 'WebDAV', path, what);
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.graph_private_add (
+  in path varchar,
+  in what varchar,
+  in permissions varchar,
+  in graph varchar)
+{
+  if (not DB.DBA.is_empty_or_null (graph))
+  {
+    if (permissions[6] = ascii('0'))
+    {
+      -- add to private graphs
+      SIOC..private_init ();
+      SIOC..private_graph_add (graph);
+      DB.DBA.wa_private_graph_add (graph, 'WebDAV', path, what);
+    }
+    else
+    {
+      -- remove from private graphs
+      SIOC..private_graph_remove (graph);
+      DB.DBA.wa_private_graph_remove (graph, 'WebDAV', path, what);
+    }
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.graph_update (
+  in path varchar,
+  in det varchar,
+  in oldGraph varchar,
+  in newGraph varchar)
+{
+  declare aq any;
+
+  aq := async_queue (1);
+  aq_request (aq, 'ODRIVE.WA.graph_update_aq', vector (path, det, oldGraph, newGraph));
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.graph_update_aq (
+  in path varchar,
+  in det varchar,
+  in oldGraph varchar,
+  in newGraph varchar)
+{
+  declare detcol_id integer;
+
+  detcol_id := DB.DBA.DAV_SEARCH_ID (path, 'C');
+  if ((coalesce (oldGraph, '') <> '') and __proc_exists ('DB.DBA.' || det || '__rdf_delete'))
+  {
+    for (select RES_ID from WS.WS.SYS_DAV_RES where RES_FULL_PATH like (path || '%')) do
+    {
+      call ('DB.DBA.' || det || '__rdf_delete') (detcol_id, RES_ID, 'R', oldGraph);
+    }
+  }
+
+  if ((coalesce (newGraph, '') <> '')  and __proc_exists ('DB.DBA.' || det || '__rdf_insert'))
+  {
+    for (select RES_ID from WS.WS.SYS_DAV_RES where RES_FULL_PATH like (path || '%')) do
+    {
+      call ('DB.DBA.' || det || '__rdf_insert') (detcol_id, RES_ID, 'R', newGraph);
+    }
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create function DB.DBA.SPARQL_GS_APP_CALLBACK_ODS (
+  in g_iid IRI_ID,
+  in app_uid varchar := null) returns integer
+{
+  dbg_obj_princ ('DB.DBA.SPARQL_GS_APP_CALLBACK_ODS (', id_to_iri (g_iid), ')');
+
+  return 255;
+}
+;
+
+grant execute on DB.DBA.SPARQL_GS_APP_CALLBACK_ODS to public;
\ No newline at end of file
diff --git a/appsrc/ODS-Briefcase/new/od-a-dc-data.sql b/appsrc/ODS-Briefcase/new/od-a-dc-data.sql
index 88f50ff..55b76db 100644
--- a/appsrc/ODS-Briefcase/new/od-a-dc-data.sql
+++ b/appsrc/ODS-Briefcase/new/od-a-dc-data.sql
@@ -1,10 +1,10 @@
 --
---  $Id: od-a-dc-data.sql,v 1.2.2.1 2010/09/20 10:14:57 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/new/od-a-dc.sql b/appsrc/ODS-Briefcase/new/od-a-dc.sql
index 7d389d6..096b080 100644
--- a/appsrc/ODS-Briefcase/new/od-a-dc.sql
+++ b/appsrc/ODS-Briefcase/new/od-a-dc.sql
@@ -1,10 +1,10 @@
 --
---  $Id: od-a-dc.sql,v 1.7.2.4 2010/09/20 10:14:57 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/new/od-a-ddk.sql b/appsrc/ODS-Briefcase/new/od-a-ddk.sql
index df5d42a..aca0b05 100644
--- a/appsrc/ODS-Briefcase/new/od-a-ddk.sql
+++ b/appsrc/ODS-Briefcase/new/od-a-ddk.sql
@@ -1,10 +1,10 @@
 --
---  $Id: od-a-ddk.sql,v 1.5.2.5 2010/11/09 20:12:19 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/new/od-a-ods.sql b/appsrc/ODS-Briefcase/new/od-a-ods.sql
index a85ed89..b3fa232 100644
--- a/appsrc/ODS-Briefcase/new/od-a-ods.sql
+++ b/appsrc/ODS-Briefcase/new/od-a-ods.sql
@@ -1,10 +1,10 @@
 --
---  $Id: od-a-ods.sql,v 1.1.2.1 2010/09/20 10:14:57 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/new/od-a-rdf-data.sql b/appsrc/ODS-Briefcase/new/od-a-rdf-data.sql
index f6f60a2..e4a364f 100644
--- a/appsrc/ODS-Briefcase/new/od-a-rdf-data.sql
+++ b/appsrc/ODS-Briefcase/new/od-a-rdf-data.sql
@@ -1,10 +1,10 @@
 --
---  $Id: od-a-rdf-data.sql,v 1.7.2.1 2010/09/20 10:14:57 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/new/od-a-rdf.sql b/appsrc/ODS-Briefcase/new/od-a-rdf.sql
index 255bfed..9e628da 100644
--- a/appsrc/ODS-Briefcase/new/od-a-rdf.sql
+++ b/appsrc/ODS-Briefcase/new/od-a-rdf.sql
@@ -1,10 +1,10 @@
 --
---  $Id: od-a-rdf.sql,v 1.6.2.1 2010/09/20 10:14:57 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/new/od-a-update.sql b/appsrc/ODS-Briefcase/new/od-a-update.sql
index 9668f5f..54570d5 100644
--- a/appsrc/ODS-Briefcase/new/od-a-update.sql
+++ b/appsrc/ODS-Briefcase/new/od-a-update.sql
@@ -1,10 +1,10 @@
 --
---  $Id: od-a-update.sql,v 1.1.2.2 2010/09/20 10:14:57 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2007 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -79,7 +79,6 @@ create procedure ODRIVE.WA.tmp_upgrade ()
 {
   if (registry_get ('odrive_items_upgrade') = '1')
     return;
-  registry_set ('odrive_items_upgrade', '1');
 
 	declare I, N, M integer;
   declare tmp, oldSearch, newSearch, aXml, aEntity any;
@@ -136,6 +135,119 @@ create procedure ODRIVE.WA.tmp_upgrade ()
 
     ODRIVE.WA.DAV_PROP_SET (COL_FULL_PATH, 'virt:Filter-Params', newSearch, 'dav');
   }
+  registry_set ('odrive_items_upgrade', '1');
+}
+;
+
+ODRIVE.WA.tmp_upgrade ();
+
+-------------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.tmp_upgrade ()
+{
+  declare path, graph any;
+
+  if (registry_get ('odrive_acl_update') = '1')
+    return;
+
+  for (select * from WS.WS.SYS_DAV_PROP where PROP_TYPE = 'R' and PROP_NAME = 'virt:aci_meta_n3') do
+  {
+    path := DB.DBA.DAV_SEARCH_PATH (PROP_PARENT_ID, PROP_TYPE);
+    graph := WS.WS.DAV_IRI (path);
+    delete from DB.DBA.RDF_QUAD where G = iri_to_id (graph);
+    graph := rtrim (WS.WS.DAV_IRI (path), '/') || '/';
+    delete from DB.DBA.RDF_QUAD where G = iri_to_id (graph);
+
+    WS.WS.WAC_INSERT (path, PROP_VALUE, null, null, 0);
+  }
+
+  registry_set ('odrive_acl_upgrade', '1');
+}
+;
+
+ODRIVE.WA.tmp_upgrade ();
+
+-------------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.tmp_upgrade (
+  in det varchar)
+{
+  declare path, graph, propName, permissions any;
+
+  if (registry_get ('odrive_graph_update') = '1')
+    return;
+
+  propName := 'virt:' || det || '-graph';
+  for (select * from WS.WS.SYS_DAV_PROP where PROP_TYPE = 'C' and PROP_NAME = propName) do
+  {
+    path := DB.DBA.DAV_SEARCH_PATH (PROP_PARENT_ID, PROP_TYPE);
+    permissions := DB.DBA.DAV_PROP_GET_INT (PROP_PARENT_ID, PROP_TYPE, ':virtpermissions', 0, ODRIVE.WA.account_name (http_dav_uid ()), ODRIVE.WA.account_password (http_dav_uid ()), http_dav_uid ());
+    ODRIVE.WA.graph_private_add (path, 'C', permissions, PROP_VALUE);
+  }
+
+  registry_set ('odrive_graph_update', '1');
+}
+;
+
+ODRIVE.WA.tmp_upgrade ('IMAP');
+ODRIVE.WA.tmp_upgrade ('GDrive');
+ODRIVE.WA.tmp_upgrade ('Dropbox');
+ODRIVE.WA.tmp_upgrade ('SkyDrive');
+
+-------------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.tmp_upgrade ()
+{
+  declare rid, ouid, ogid any;
+
+  if (registry_get ('odrive_nobody_update') = '1')
+    return;
+
+  for (select RES_ID, RES_COL from WS.WS.SYS_DAV_RES where RES_OWNER = -12) do
+  {
+    rid := RES_ID;
+
+    select COL_OWNER, COL_GROUP
+      into ouid, ogid
+      from WS.WS.SYS_DAV_COL
+     where COL_ID = RES_COL;
+
+    update WS.WS.SYS_DAV_RES
+       set RES_OWNER = ouid,
+           RES_GROUP = ogid
+     where RES_ID = rid;
+  }
+  registry_set ('odrive_nobody_update', '1');
+}
+;
+
+ODRIVE.WA.tmp_upgrade ();
+
+-------------------------------------------------------------------------------
+--
+create procedure ODRIVE.WA.tmp_upgrade ()
+{
+  declare server, property, propertyValue varchar;
+  declare V any;
+
+  if (registry_get ('odrive_imap_update') = '1')
+    return;
+
+  for (select COL_ID from WS.WS.SYS_DAV_COL where COL_DET = 'IMAP') do
+  {
+    server := DB.DBA.DAV_PROP_GET_INT (COL_ID, 'C', 'virt:IMAP-server', 0);
+    V := sprintf_inverse (server, '%s:%s', 2);
+    property := 'virt:IMAP-server';
+    propertyValue := V[0];
+    if (not isnull (propertyValue))
+      DB.DBA.DAV_PROP_SET_RAW (COL_ID, 'C', property, propertyValue, 1, http_dav_uid ());
+
+    property := 'virt:IMAP-port';
+    propertyValue := V[1];
+    if (not isnull (propertyValue))
+      DB.DBA.DAV_PROP_SET_RAW (COL_ID, 'C', property, propertyValue, 1, http_dav_uid ());
+  }
+  registry_set ('odrive_imap_update', '1');
 }
 ;
 
diff --git a/appsrc/ODS-Briefcase/new/od-a-wa.sql b/appsrc/ODS-Briefcase/new/od-a-wa.sql
index 72d7099..704fa9c 100644
--- a/appsrc/ODS-Briefcase/new/od-a-wa.sql
+++ b/appsrc/ODS-Briefcase/new/od-a-wa.sql
@@ -1,10 +1,10 @@
 --
---  $Id: od-a-wa.sql,v 1.13.2.5 2011/05/17 22:59:13 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/new/od-d.sql b/appsrc/ODS-Briefcase/new/od-d.sql
index 27fded3..9e0e969 100644
--- a/appsrc/ODS-Briefcase/new/od-d.sql
+++ b/appsrc/ODS-Briefcase/new/od-d.sql
@@ -1,10 +1,10 @@
 --
---  $Id: od-d.sql,v 1.7.2.6 2011/05/18 21:18:29 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/new/sioc_briefcase.sql b/appsrc/ODS-Briefcase/new/sioc_briefcase.sql
index c6c57a4..7372c3b 100644
--- a/appsrc/ODS-Briefcase/new/sioc_briefcase.sql
+++ b/appsrc/ODS-Briefcase/new/sioc_briefcase.sql
@@ -1,10 +1,10 @@
 --
---  $Id: sioc_briefcase.sql,v 1.16.2.13 2011/07/04 10:04:02 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/DOAP.rdf b/appsrc/ODS-Briefcase/schemas/DOAP.rdf
index 4c06515..0ea587a 100644
--- a/appsrc/ODS-Briefcase/schemas/DOAP.rdf
+++ b/appsrc/ODS-Briefcase/schemas/DOAP.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: DOAP.rdf,v 1.2.2.1 2010/09/20 10:14:57 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/EML.rdf b/appsrc/ODS-Briefcase/schemas/EML.rdf
index 47574cd..1c53b25 100644
--- a/appsrc/ODS-Briefcase/schemas/EML.rdf
+++ b/appsrc/ODS-Briefcase/schemas/EML.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: EML.rdf,v 1.2.2.1 2010/09/20 10:14:58 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/FOAF.rdf b/appsrc/ODS-Briefcase/schemas/FOAF.rdf
index df88f9f..10e5e29 100644
--- a/appsrc/ODS-Briefcase/schemas/FOAF.rdf
+++ b/appsrc/ODS-Briefcase/schemas/FOAF.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: FOAF.rdf,v 1.3.2.1 2010/09/20 10:14:58 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/ICS.rdf b/appsrc/ODS-Briefcase/schemas/ICS.rdf
index 2f17927..4eef3d5 100644
--- a/appsrc/ODS-Briefcase/schemas/ICS.rdf
+++ b/appsrc/ODS-Briefcase/schemas/ICS.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: ICS.rdf,v 1.2.2.1 2010/09/20 10:14:58 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/MODS.rdf b/appsrc/ODS-Briefcase/schemas/MODS.rdf
index a38f2ab..fb7c0e3 100644
--- a/appsrc/ODS-Briefcase/schemas/MODS.rdf
+++ b/appsrc/ODS-Briefcase/schemas/MODS.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: MODS.rdf,v 1.2.2.1 2010/09/20 10:14:58 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/OPML.rdf b/appsrc/ODS-Briefcase/schemas/OPML.rdf
index e6a4204..8480558 100644
--- a/appsrc/ODS-Briefcase/schemas/OPML.rdf
+++ b/appsrc/ODS-Briefcase/schemas/OPML.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: OPML.rdf,v 1.3.2.1 2010/09/20 10:14:58 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/Office.rdf b/appsrc/ODS-Briefcase/schemas/Office.rdf
index ccc9fd7..920d381 100644
--- a/appsrc/ODS-Briefcase/schemas/Office.rdf
+++ b/appsrc/ODS-Briefcase/schemas/Office.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: Office.rdf,v 1.3.2.1 2010/09/20 10:14:58 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/RDF.rdf b/appsrc/ODS-Briefcase/schemas/RDF.rdf
index 3de764d..b8e2468 100644
--- a/appsrc/ODS-Briefcase/schemas/RDF.rdf
+++ b/appsrc/ODS-Briefcase/schemas/RDF.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: RDF.rdf,v 1.3.2.1 2010/09/20 10:14:58 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/RSS.rdf b/appsrc/ODS-Briefcase/schemas/RSS.rdf
index 18c6bca..38bfede 100644
--- a/appsrc/ODS-Briefcase/schemas/RSS.rdf
+++ b/appsrc/ODS-Briefcase/schemas/RSS.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: RSS.rdf,v 1.3.2.1 2010/09/20 10:14:58 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/Spotlight.rdf b/appsrc/ODS-Briefcase/schemas/Spotlight.rdf
index c318369..104d4f7 100644
--- a/appsrc/ODS-Briefcase/schemas/Spotlight.rdf
+++ b/appsrc/ODS-Briefcase/schemas/Spotlight.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: Spotlight.rdf,v 1.4.2.1 2010/09/20 10:14:58 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/VAD.rdf b/appsrc/ODS-Briefcase/schemas/VAD.rdf
index a7579e5..cc2e604 100644
--- a/appsrc/ODS-Briefcase/schemas/VAD.rdf
+++ b/appsrc/ODS-Briefcase/schemas/VAD.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: VAD.rdf,v 1.2.2.1 2010/09/20 10:14:58 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/VSPX.rdf b/appsrc/ODS-Briefcase/schemas/VSPX.rdf
index d50d849..8858733 100644
--- a/appsrc/ODS-Briefcase/schemas/VSPX.rdf
+++ b/appsrc/ODS-Briefcase/schemas/VSPX.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: VSPX.rdf,v 1.2.2.1 2010/09/20 10:14:58 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/WSDL.rdf b/appsrc/ODS-Briefcase/schemas/WSDL.rdf
index e3b44f9..4af61c6 100644
--- a/appsrc/ODS-Briefcase/schemas/WSDL.rdf
+++ b/appsrc/ODS-Briefcase/schemas/WSDL.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: WSDL.rdf,v 1.2.2.1 2010/09/20 10:14:58 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/Wiki.rdf b/appsrc/ODS-Briefcase/schemas/Wiki.rdf
index 2d142f7..e7c0e76 100644
--- a/appsrc/ODS-Briefcase/schemas/Wiki.rdf
+++ b/appsrc/ODS-Briefcase/schemas/Wiki.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: Wiki.rdf,v 1.2.2.1 2010/09/20 10:14:58 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/XBEL.rdf b/appsrc/ODS-Briefcase/schemas/XBEL.rdf
index cd4c638..73c1327 100644
--- a/appsrc/ODS-Briefcase/schemas/XBEL.rdf
+++ b/appsrc/ODS-Briefcase/schemas/XBEL.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: XBEL.rdf,v 1.2.2.1 2010/09/20 10:14:59 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/XBRL.rdf b/appsrc/ODS-Briefcase/schemas/XBRL.rdf
index 1b0506c..7ad26b6 100644
--- a/appsrc/ODS-Briefcase/schemas/XBRL.rdf
+++ b/appsrc/ODS-Briefcase/schemas/XBRL.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: XBRL.rdf,v 1.3.2.1 2010/09/20 10:14:59 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/XDDL.rdf b/appsrc/ODS-Briefcase/schemas/XDDL.rdf
index f276273..aa7189e 100644
--- a/appsrc/ODS-Briefcase/schemas/XDDL.rdf
+++ b/appsrc/ODS-Briefcase/schemas/XDDL.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: XDDL.rdf,v 1.2.2.1 2010/09/20 10:14:59 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/XHTML.rdf b/appsrc/ODS-Briefcase/schemas/XHTML.rdf
index 85d1ec2..f941bc7 100644
--- a/appsrc/ODS-Briefcase/schemas/XHTML.rdf
+++ b/appsrc/ODS-Briefcase/schemas/XHTML.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: XHTML.rdf,v 1.2.2.1 2010/09/20 10:14:59 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/annotea.rdf b/appsrc/ODS-Briefcase/schemas/annotea.rdf
index 21a3275..8975720 100644
--- a/appsrc/ODS-Briefcase/schemas/annotea.rdf
+++ b/appsrc/ODS-Briefcase/schemas/annotea.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: annotea.rdf,v 1.1.2.1 2010/09/20 10:14:59 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/archive.rdf b/appsrc/ODS-Briefcase/schemas/archive.rdf
index 3e4009f..9279448 100644
--- a/appsrc/ODS-Briefcase/schemas/archive.rdf
+++ b/appsrc/ODS-Briefcase/schemas/archive.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- 
  -
- -  $Id: archive.rdf,v 1.1.2.1 2010/09/20 10:14:59 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/audio.rdf b/appsrc/ODS-Briefcase/schemas/audio.rdf
index bda3c9b..764c69f 100644
--- a/appsrc/ODS-Briefcase/schemas/audio.rdf
+++ b/appsrc/ODS-Briefcase/schemas/audio.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- 
  -  
- -  $Id: audio.rdf,v 1.2.2.1 2010/09/20 10:14:59 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/google-kinds.rdf b/appsrc/ODS-Briefcase/schemas/google-kinds.rdf
index 97c2c48..4b7a4a7 100644
--- a/appsrc/ODS-Briefcase/schemas/google-kinds.rdf
+++ b/appsrc/ODS-Briefcase/schemas/google-kinds.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: google-kinds.rdf,v 1.3.2.1 2010/09/20 10:14:59 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/image.rdf b/appsrc/ODS-Briefcase/schemas/image.rdf
index 75cb810..e242561 100644
--- a/appsrc/ODS-Briefcase/schemas/image.rdf
+++ b/appsrc/ODS-Briefcase/schemas/image.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: image.rdf,v 1.3.2.1 2010/09/20 10:14:59 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/opl-lic.rdf b/appsrc/ODS-Briefcase/schemas/opl-lic.rdf
index c7a71b8..6b866aa 100644
--- a/appsrc/ODS-Briefcase/schemas/opl-lic.rdf
+++ b/appsrc/ODS-Briefcase/schemas/opl-lic.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: opl-lic.rdf,v 1.3.2.1 2010/09/20 10:14:59 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/photo.rdf b/appsrc/ODS-Briefcase/schemas/photo.rdf
index b8e2cf2..920414d 100644
--- a/appsrc/ODS-Briefcase/schemas/photo.rdf
+++ b/appsrc/ODS-Briefcase/schemas/photo.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: photo.rdf,v 1.3.2.1 2010/09/20 10:14:59 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/schemas/vcard-rdf.rdf b/appsrc/ODS-Briefcase/schemas/vcard-rdf.rdf
index 9ccb708..791c86a 100644
--- a/appsrc/ODS-Briefcase/schemas/vcard-rdf.rdf
+++ b/appsrc/ODS-Briefcase/schemas/vcard-rdf.rdf
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: vcard-rdf.rdf,v 1.2.2.1 2010/09/20 10:14:59 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/vad_version b/appsrc/ODS-Briefcase/vad_version
new file mode 100644
index 0000000..ce92333
--- /dev/null
+++ b/appsrc/ODS-Briefcase/vad_version
@@ -0,0 +1 @@
+1.20.74
diff --git a/appsrc/ODS-Briefcase/www/ajax.vsp b/appsrc/ODS-Briefcase/www/ajax.vsp
index 1fd2268..4ec7d22 100644
--- a/appsrc/ODS-Briefcase/www/ajax.vsp
+++ b/appsrc/ODS-Briefcase/www/ajax.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: ajax.vsp,v 1.2.2.1 2010/09/20 10:14:59 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2007 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -71,7 +71,17 @@
     }
     http_rewrite ();
     http_header ('Content-Type: text/plain\r\n');
-    http (ODRIVE.WA.obj2json(returnData, 5));
+    http (ODS..obj2json (returnData, 5));
+    return;
+  }
+  if (action = 'cartridges')
+  {
+    http (ODS..obj2json (ODRIVE.WA.cartridges_get (), 5));
+    return;
+  }
+  if (action = 'metaCartridges')
+  {
+    http (ODS..obj2json (ODRIVE.WA.metaCartridges_get (), 5));
     return;
   }
   if (action = 'about')
diff --git a/appsrc/ODS-Briefcase/www/css/style.css b/appsrc/ODS-Briefcase/www/css/style.css
index a504b69..6dc165d 100644
--- a/appsrc/ODS-Briefcase/www/css/style.css
+++ b/appsrc/ODS-Briefcase/www/css/style.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: style.css,v 1.10.2.10 2011/05/17 22:59:13 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -28,11 +28,29 @@ body {
   font-size: 9pt;
 }
 
+pre {
+  white-space: pre-wrap;       /* css-3 */
+  white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
+  white-space: -pre-wrap;      /* Opera 4-6 */
+  white-space: -o-pre-wrap;    /* Opera 7 */
+  word-wrap: break-word;       /* Internet Explorer 5.5+ */
+}
+
 form {
   margin: 0;
   padding: 0;
 }
 
+abbr {
+  border: none;
+}
+
+input[type="text"], input[type="password"], select {
+  box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  -webkit-box-sizing: border-box;
+}
+
 .pointer {
   cursor: pointer;
 }
@@ -89,43 +107,6 @@ a:hover {
 #RCT_body {
 }
 
-/* Footer */
-#FT {
-  width: 100%;
-  position: relative;
-  bottom: 0px;
-  font-size: 8pt;
-  float: left;
-  clear: both;
-  text-align: right;
-  border-top: 2px solid #fff;
-  margin-right: 10px;
-  background-color: #fff;
-  background-image: url(../image/ods_main_footer.png);
-}
-
-#FT_L {
-  float: left;
-  clear: left;
-  margin-top: 10px;
-  margin-left: 8px;
-  border: 1px solid #788;
-}
-
-#FT_R {
-  float: right;
-  clear: right;
-  margin-top: 10px;
-  margin-bottom: 10px;
-  margin-right: 5px;
-  color: #788;
-}
-
-#FT_R a {
-  text-decoration: none;
-  color: inherit;
-}
-
 #MTB2 {
   width: 100%;
   left: 0px;
@@ -148,6 +129,9 @@ a:hover {
 .lc {
   background-color: #EFEFEF;
   border: 1px solid #7f94a5;
+  border-radius: 5px;
+  -moz-border-radius: 5px;
+  -webkit-border-radius: 5px;
   padding: 5px;
   margin-top: 6px;
   width: auto;
@@ -405,11 +389,11 @@ table#list th {
 
 /* Fields */
 .field-text {
-  width: 40em;
+  width: 500px;
 }
 
 .field-short {
-  width: 20em;
+  width: 250px;
 }
 
 .field-max {
@@ -427,6 +411,7 @@ input.button {
   border: solid 1px;
   border-color: #7f94a5;
   background: #99b3c5;
+  border-radius: 3px;
   -moz-border-radius: 3px;
   -webkit-border-radius: 3px;
 }
@@ -613,6 +598,8 @@ div.tab {
   border: 1px solid #000;
   border-bottom-width: 0px;
   border-color: #7f94a5;
+  border-top-left-radius: 3px;
+  border-top-right-radius: 3px;
   -moz-border-radius-topleft: 3px;
   -moz-border-radius-topright: 3px;
   -webkit-border-top-left-radius: 3px;
@@ -789,6 +776,7 @@ td.action {
 span.button {
   background: none repeat scroll 0 0 #99B3C5;
   border: 1px solid #7F94A5;
+  border-radius: 5px;
   -moz-border-radius: 5px;
   -webkit-border-radius: 5px;
   color: #FFFFFF;
diff --git a/appsrc/ODS-Briefcase/www/error.vspx b/appsrc/ODS-Briefcase/www/error.vspx
index 417e7e4..91d3fd1 100644
--- a/appsrc/ODS-Briefcase/www/error.vspx
+++ b/appsrc/ODS-Briefcase/www/error.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: error.vspx,v 1.6.2.2 2010/09/20 10:15:00 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -34,7 +34,7 @@
     </vm:variables>
     <vm:pagebody>
         <div class="form-header">
-          <img class="dialog_icon" src="image/stop_16.png" alt="Stop" title="Stop"/>
+        <img class="dialog_icon" src="/ods/images/icons/stop_16.png" alt="Stop" title="Stop"/>
         An error has occurred when processing "<?V self.page_name ?>" page.
         </div>
         <div class="error" style="text-align: left;">
diff --git a/appsrc/ODS-Briefcase/www/export.vspx b/appsrc/ODS-Briefcase/www/export.vspx
index 7661975..80c52af 100644
--- a/appsrc/ODS-Briefcase/www/export.vspx
+++ b/appsrc/ODS-Briefcase/www/export.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: export.vspx,v 1.13.2.4 2010/09/20 10:15:00 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/www/forms.vspx b/appsrc/ODS-Briefcase/www/forms.vspx
index d3f8974..a758b16 100644
--- a/appsrc/ODS-Briefcase/www/forms.vspx
+++ b/appsrc/ODS-Briefcase/www/forms.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: forms.vspx,v 1.6.2.16 2011/08/01 14:14:42 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -57,7 +57,8 @@
       for (i := 0; i < length (self.items); i := i + 2)
       {
         item := ODRIVE.WA.DAV_INIT (self.items[i]);
-
+        if (not ODRIVE.WA.DAV_ERROR (item))
+        {
         http ('    <tr>');
         http (sprintf ('<td nowrap="nowrap"><img src="%s" alt="%s">  %s</td>', ODRIVE.WA.ui_image (ODRIVE.WA.DAV_GET (item, 'fullPath'), ODRIVE.WA.DAV_GET (item, 'type'), ODRIVE.WA.DAV_GET (item, 'mimeType')), ODRIVE.WA.ui_alt (ODRIVE.WA.DAV_GET (item, 'name'), ODRIVE.WA.DAV_GET (item, 'type')), self.items[i]));
         http (sprintf ('<td class="number" nowrap="nowrap">%s</td>', ODRIVE.WA.ui_size (ODRIVE.WA.DAV_GET (item, 'length'), ODRIVE.WA.DAV_GET (item, 'type'))));
@@ -71,6 +72,7 @@
         }
         http ('    </tr>');
       }
+      }
       http ('  </table>');
       http ('</div>');
       http ('<br />');
@@ -182,7 +184,7 @@
         acl_value := WS.WS.ACL_PARSE (ODRIVE.WA.acl_params (params));
 
         -- aci properties
-        aci_value := ODRIVE.WA.aci_n3 (ODRIVE.WA.aci_params (params));
+        aci_value := ODRIVE.WA.aci_n3 (DB.DBA.wa_aci_params (params));
 
         for (I := 0; I < length (self.items); I := I + 2)
         {
@@ -266,8 +268,7 @@
             }
 
             -- aci - WebAccess
-            item := ODRIVE.WA.DAV_INIT(self.items[I]);
-            if ((ODRIVE.WA.DAV_GET (item, 'type') = 'R') and length (aci_value))
+            if (length (aci_value))
             {
               ODRIVE.WA.DAV_PROP_SET (self.items[I], 'virt:aci_meta_n3', aci_value);
             }
@@ -278,10 +279,12 @@
       else if (self.v_form in ('edit', 'view'))
       {
         item := ODRIVE.WA.DAV_INIT (self.v_path);
+        if (not ODRIVE.WA.DAV_ERROR (item))
+        {
         returnData := ODRIVE.WA.DAV_RES_UPLOAD (self.v_path, get_keyword ('f_content', params, ''), ODRIVE.WA.DAV_GET (item, 'mimeType'), ODRIVE.WA.DAV_GET (item, 'permissions'), ODRIVE.WA.DAV_GET (item, 'ownerID'), ODRIVE.WA.DAV_GET (item, 'groupID'));
         if (ODRIVE.WA.DAV_ERROR (returnData))
           signal('TEST', ODRIVE.WA.DAV_PERROR (returnData) || '<>');
-
+        }
         self.v_step := 'end';
       }
       else if (self.v_form = 'rename')
@@ -456,7 +459,7 @@
                     </td>
                   </tr>
                   <tr>
-                    <th>
+                    <th valign="top">
                       <v:label value="--'Permissions'" />
                     </th>
                     <td>
@@ -524,7 +527,7 @@
                     </td>
                   </tr>
                   <tr>
-                    <th>WebDAV Properties</th>
+                    <th valign="top">WebDAV Properties</th>
                     <td>
                       <table>
                         <tr>
@@ -540,7 +543,7 @@
                             </table>
                           </td>
                           <td valign="top" nowrap="nowrap">
-                            <span class="button pointer" onclick="javascript: TBL.createRow('c', null, {fld_1: {mode: 40, className: '_validate_', onblur: function(){validateField(this);}}, fld_2: {mode: 0}, fld_3: {mode: 41}});"><img src="image/add_16.png" class="button" alt="Add Property" title="Add Property" /> Add</span><br /><br />
+                            <span class="button pointer" onclick="javascript: TBL.createRow('c', null, {fld_1: {mode: 40, className: '_validate_', onblur: function(){validateField(this);}}, fld_2: {mode: 0}, fld_3: {mode: 41}});"><img src="/ods/images/icons/add_16.png" class="button" alt="Add Property" title="Add Property" /> Add</span><br /><br />
                           </td>
                         </tr>
                       </table>
@@ -555,7 +558,8 @@
                   <table>
                     <tr>
                       <td width="100%">
-                        <table id="s_tbl" class="form-list" style="width: 100%;"  cellspacing="0">
+                        <table id="f_tbl" class="form-list" style="width: 100%;"  cellspacing="0">
+                          <thead>
                   <tr>
                             <th nowrap="nowrap">User/Group</th>
                             <th>Inheritance</th>
@@ -563,11 +567,14 @@
                             <th width="1%" align="center" nowrap="nowrap">Deny<br />(R)ead, (W)rite, e(X)ecute</th>
                             <th width="1%">Action</th>
                   </tr>
-                          <tr id="s_tr_no"><td colspan="5"><b>No Security Properties</b></td></tr>
+                          </thead>
+                          <tbody id="f_tbody">
+                            <tr id="f_tr_no"><td colspan="5"><b>No Security Properties</b></td></tr>
+                          </tbody>
                 </table>
                       </td>
                       <td valign="top" nowrap="nowrap">
-                        <span class="button pointer" onclick="javascript: TBL.createRow('s', null, {fld_1: {mode: 1, cssText: 'width: 88%;', tdCssText: 'white-space: nowrap;'}, fld_2: {mode: 43, value: 1}, fld_3: {mode: 42, value: [1, 1, 0], suffix: '_grant', onclick: function(){TBL.clickCell42(this);}, tdCssText: 'width: 1%; text-align: center;'}, fld_4: {mode: 42,  suffix: '_deny', onclick: function(){TBL.clickCell42(this);}, tdCssText: 'width: 1%; text-align: center;'}});"><img src="image/add_16.png" class="button" alt="Add Security" title="Add Security" /> Add</span><br /><br />
+                        <span class="button pointer" onclick="javascript: TBL.createRow('f', null, {fld_1: {mode: 1, cssText: 'width: 88%;', tdCssText: 'white-space: nowrap;'}, fld_2: {mode: 43, value: 1}, fld_3: {mode: 42, value: [1, 1, 0], suffix: '_grant', onclick: function(){TBL.clickCell42(this);}, tdCssText: 'width: 1%; text-align: center;'}, fld_4: {mode: 42,  suffix: '_deny', onclick: function(){TBL.clickCell42(this);}, tdCssText: 'width: 1%; text-align: center;'}});"><img src="/ods/images/icons/add_16.png" class="button" alt="Add Security" title="Add Security" /> Add</span><br /><br />
                       </td>
                     </tr>
                   </table>
@@ -578,18 +585,22 @@
                   <table>
                     <tr>
                       <td width="100%">
-                          <table id="f_tbl" class="form-list" style="width: 100%;"  cellspacing="0">
+                          <table id="s_tbl" class="form-list" style="width: 100%;"  cellspacing="0">
+                            <thead>
                           <tr>
                               <th width="1%" align="center" nowrap="nowrap">Acces Type</th>
                               <th nowrap="nowrap">WebID</th>
-                              <th width="1%" align="center" nowrap="nowrap">ACL: (R)ead, (W)rite</th>
+                                <th width="1%" align="center" nowrap="nowrap">Allow<br />(R)ead, (W)rite, e(X)ecute</th>
                             <th width="1%" >Action</th>
                           </tr>
-                            <tr id="f_tr_no"><td colspan="4"><b>No Security Properties</b></td></tr>
+                            </thead>
+                            <tbody id="s_tbody" >
+                              <tr id="s_tr_no"><td colspan="4"><b>No Security Properties</b></td></tr>
+                            </tbody>
                         </table>
                       </td>
-                      <td valign="top" nowrap="nowrap">
-                          <span class="button pointer" onclick="javascript: TBL.createRow('f', null, {fld_1: {mode: 50, onchange: function(){TBL.changeCell50(this);}}, fld_2: {mode: 51, form: 'F1', tdCssText: 'white-space: nowrap;', className: '_validate_ _uri_'}, fld_3: {mode: 52, value: [1, 0, 0], tdCssText: 'width: 1%; text-align: center;'}});"><img src="image/add_16.png" class="button" alt="Add Security" title="Add Security" /> Add</span><br /><br />
+                        <td valign="top" nowrap="nowrap">3
+                          <span class="button pointer" onclick="javascript: TBL.createRow('s', null, {fld_1: {mode: 50, onchange: function(){TBL.changeCell50(this);}}, fld_2: {mode: 51, form: 'F1', tdCssText: 'white-space: nowrap;', className: '_validate_ _uri_'}, fld_3: {mode: 52, value: [1, 0, 0], execute: true, tdCssText: 'width: 1%; text-align: center;'}});"><img src="/ods/images/icons/add_16.png" class="button" alt="Add Security" title="Add Security" /> Add</span><br /><br />
                       </td>
                     </tr>
                   </table>
@@ -625,15 +636,20 @@
             ]]>
           </v:before-data-bind>
           <div class="new-form-header">
-            <?V initcap (self.v_form) ?> resource <?V self.v_path ?>
+            <?V initcap (self.v_form) ?> resource <?V ODRIVE.WA.utf2wide (self.v_path) ?>
           </div>
-          <div style="padding-right: 12px;">
-            <textarea id="f_content" name="f_content" style="width: 100%; height: 360px" disabled="<?V case when self.v_form = 'view' then 'disabled' else 'false' end ?>"><?vsp http (ODRIVE.WA.DAV_RES_CONTENT (self.v_path)); ?></textarea>
+          <div style="padding-right: 6px;">
+            <?vsp
+              declare disabled varchar;
+
+              disabled := case when self.v_form = 'view' then 'disabled="disabled"' else '' end;
+              http (sprintf ('<textarea id="f_content" name="f_content" style="width: 100%%; height: 360px" %s>%V</textarea>', disabled, ODRIVE.WA.utf2wide (cast (ODRIVE.WA.DAV_RES_CONTENT (self.v_path) as varchar))));
+            ?>
             <vm:if test="self.mimeType like 'text/html'">
               <![CDATA[
                 <script type="text/javascript" src="/ods/ckeditor/ckeditor.js"></script>
                 <script type="text/javascript">
-                  var oEditor = CKEDITOR.replace('f_content', {height: '250px'});
+                  var oEditor = CKEDITOR.replace('f_content', {height: '250px', width: '99%'});
                 </script>
               ]]>
             </vm:if>
diff --git a/appsrc/ODS-Briefcase/www/home.vspx b/appsrc/ODS-Briefcase/www/home.vspx
index 403fc33..ef38508 100644
--- a/appsrc/ODS-Briefcase/www/home.vspx
+++ b/appsrc/ODS-Briefcase/www/home.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: home.vspx,v 1.30.2.31 2011/08/01 14:14:42 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -141,6 +141,10 @@
       {
         return 1;
       }
+      if (cmd = 'shared')
+      {
+        return 1;
+      }
       if (is_empty_or_null(self.dir_path))
       {
         return 0;
@@ -174,7 +178,7 @@
         if (not ODRIVE.WA.odrive_write_permission(ODRIVE.WA.odrive_real_path(self.dir_path)))
           return 0;
       }
-      if (not ODRIVE.WA.det_action_enable (ODRIVE.WA.odrive_real_path (self.dir_path), cmd))
+      if (not self.commandRights (ODRIVE.WA.det_type (ODRIVE.WA.odrive_real_path (self.dir_path)), ODRIVE.WA.det_class (ODRIVE.WA.odrive_real_path (self.dir_path)), cmd))
       {
         return 0;
       }
@@ -335,20 +339,374 @@
       tmp := get_keyword (formFieldName, params);
       if (not isnull (tmp))
         return tmp;
-      if (get_keyword ('formRight', params) <> '')
-        return tmp;
+      if (get_keyword ('formRight', params, '') <> '')
+        return case when formFieldName = '===' then coalesce (tmp, '') else tmp end;
       if ((self.command = 10) and (self.command_mode in (0, 5, 6)))
         return defaultValue;
       return ODRIVE.WA.DAV_PROP_GET (path, davPropertyName, defaultValue);
     ]]>
   </v:method>
 
+  <v:method name="commandRights" arglist="in detType varchar, in detClass varchar, in action varchar">
+    <![CDATA[
+      declare retValue integer;
+
+      retValue := 0;
+      if (detClass = '')
+      {
+        if      ((action = 'edit') and (detType <> 'Versioning'))
+        {
+          retValue := 1;
+        }
+        else if (action = 'new')
+        {
+          if ((detType = '') or detType in ('HostFS', 'S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV'))
+            retValue := 1;
+        }
+        else if (action = 'create')
+        {
+          if ((detType = '') or detType in ('HostFS', 'S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV'))
+            retValue := 1;
+        }
+        else if (action = 'upload')
+        {
+          if ((detType = '') or detType in ('HostFS', 'S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV'))
+            retValue := 1;
+        }
+        else if (action = 'rename')
+        {
+          if ((detType = '') or detType in ('HostFS'))
+            retValue := 1;
+        }
+        else if (action = 'copy')
+        {
+          if ((detType = '') or detType in ('HostFS'))
+            retValue := 1;
+        }
+        else if (action = 'move')
+        {
+          if ((detType = '') or detType in ('HostFS'))
+            retValue := 1;
+        }
+        if      (action = 'delete')
+        {
+          if ((detType = '') or detType in ('HostFS', 'S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV'))
+            retValue := 1;
+        }
+        else if (action = 'properties')
+        {
+          if (detType = '')
+            retValue := 1;
+        }
+        else if (action = 'tag')
+        {
+          if ((detType = '') or detType in ('CalDAV', 'CardDAV'))
+            retValue := 1;
+        }
+        else if (action = 'version')
+        {
+          if (detType = '')
+            retValue := 1;
+        }
+      }
+      else
+      {
+        if (action = 'new')
+        {
+          if (detClass in ('S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV'))
+            retValue := 1;
+        }
+        else if (action = 'create')
+        {
+          if (detClass in ('S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV'))
+            retValue := 1;
+        }
+        else if (action = 'upload')
+        {
+          if (detType in ('', 'CalDAV', 'CardDAV', 'S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV'))
+            retValue := 1;
+        }
+        else if (action = 'edit')
+        {
+          if (detClass in ('S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV'))
+            retValue := 1;
+        }
+        else if (action = 'delete')
+        {
+          if (detType in ('', 'CalDAV', 'CardDAV', 'IMAP', 'S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV'))
+            retValue := 1;
+        }
+        else if (action = 'tag')
+        {
+          if (detType in ('', 'CalDAV', 'CardDAV'))
+            retValue := 1;
+        }
+      }
+      -- dbg_obj_print (detType, detClass, action, retValue);
+      return retValue;
+    ]]>
+  </v:method>
+
+  <v:method name="fieldRights" arglist="in action varchar">
+    <![CDATA[
+      declare retValue integer;
+      declare detType, detClass  varchar;
+
+      detType := self.dav_detType;
+      detClass := self.dav_detClass;
+      retValue := 0;
+      if (detClass = '')
+      {
+        if      (action = 'edit')
+        {
+          retValue := 1;
+        }
+        else if (action = 'tag')
+        {
+          retValue := 1;
+        }
+        else if (action = 'metadata')
+        {
+          retValue := 0;
+        }
+        else if (action = 'permissions')
+        {
+          retValue := 1;
+        }
+        else if (action = 'version')
+        {
+          retValue := 1;
+        }
+        else if (action = 'properties')
+        {
+          retValue := self.fieldRights ('edit');
+          if (retValue and not isnull (DB.DBA.DAV_HIDE_ERROR (DB.DBA.DAV_PROP_GET_INT (ODRIVE.WA.DAV_GET (self.dav_item, 'id'), 'R', 'DAV:checked-in', 0))))
+            retValue := 0;
+        }
+        else if ((action in ('sharing', 'sharing_acl', 'sharing_aci')) and (detType <> 'Versioning'))
+        {
+          retValue := 1;
+        }
+      }
+      else
+      {
+        if (action = 'edit')
+        {
+          if (detClass in ('S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV'))
+            retValue := 1;
+        }
+        else if (action = 'permissions')
+        {
+          if ((detClass not in ('CalDAV', 'CardDAV')) and detType in ('', 'HostFS', 'S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV'))
+            retValue := 1;
+        }
+        else if (action = 'tag')
+        {
+          if (detClass in ('CalDAV', 'CardDAV', 'S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV'))
+            retValue := 1;
+        }
+        else if (action = 'sharing')
+        {
+          if (detClass in ('CalDAV', 'CardDAV', 'IMAP', 'S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV') or detType in (''))
+            retValue := 1;
+        }
+        else if (action = 'sharing_acl')
+        {
+          if (detClass in ('S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV') or detType in (''))
+            retValue := 1;
+        }
+        else if (action = 'sharing_aci')
+        {
+          if (detClass in ('CalDAV', 'CardDAV', 'IMAP', 'S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV') or detType in (''))
+            retValue := 1;
+        }
+      }
+      -- dbg_obj_print (detType, detClass, action, retValue);
+      return retValue;
+    ]]>
+  </v:method>
+
+  <v:method name="detSponger" arglist="in params any, in permissions varchar, in det varchar, in ndx integer">
+    <![CDATA[
+      declare N integer;
+      declare tmp any;
+      declare oldGraph, newGraph varchar;
+      declare cartridges, metaCartridges varchar;
+      declare ca_item, mca_item varchar;
+
+      cartridges := '';
+      metaCartridges := '';
+      tmp := get_keyword (sprintf ('dav_%s_sponger', det), params, 'off');
+      if (tmp = 'on')
+      {
+        ca_item := sprintf ('ca%d_item', ndx);
+        mca_item := sprintf ('mca%d_item', ndx);
+        for (N := 0; N < length (params); N := N + 2)
+        {
+          if (params[N] = ca_item)
+            cartridges := cartridges || ',' || trim (params[N+1]);
+          else if (params[N] = mca_item)
+            metaCartridges := metaCartridges || ',' || trim (params[N+1]);
+        }
+        cartridges := ltrim (cartridges, ',');
+        metaCartridges := ltrim (metaCartridges, ',');
+      }
+      oldGraph := ODRIVE.WA.DAV_PROP_GET (self.dav_path, sprintf ('virt:%s-graph', det), '');
+      newGraph := get_keyword (sprintf ('dav_%s_graph', det), params, '');
+      ODRIVE.WA.DAV_PROP_SET (self.dav_path, sprintf ('virt:%s-graph', det), newGraph);
+      ODRIVE.WA.DAV_PROP_SET (self.dav_path, sprintf ('virt:%s-sponger', det), tmp);
+      ODRIVE.WA.DAV_PROP_SET (self.dav_path, sprintf ('virt:%s-cartridges', det), cartridges);
+      ODRIVE.WA.DAV_PROP_SET (self.dav_path, sprintf ('virt:%s-metaCartridges', det), metaCartridges);
+      ODRIVE.WA.graph_private_remove (self.dav_path, 'C', oldGraph);
+      ODRIVE.WA.graph_private_add (self.dav_path, 'C', permissions, newGraph);
+      if (oldGraph <> newGraph)
+        ODRIVE.WA.graph_update (self.dav_path, det, oldGraph, newGraph);
+
+      ODRIVE.WA.DAV_PROP_SET (self.dav_path, sprintf ('virt:%s-activity', det), get_keyword (sprintf ('dav_%s_activity', det), params, 'off'));
+    ]]>
+  </v:method>
+
+  <v:method name="detSpongerUI" arglist="in det varchar, in ndx integer">
+    <![CDATA[
+      declare S, T varchar;
+      declare N integer;
+      declare cartridges, selectedCartridges any;
+
+      S := self.get_fieldProperty (sprintf ('dav_%s_sponger', det), self.dav_path, sprintf ('virt:%s-sponger', det), 'off');
+      http (sprintf (
+        '<tr>\n' ||
+        '  <th>\n' ||
+        '    <label for="dav_%s_sponger">Sponger (on/off)</label>\n' ||
+        '  </th>\n' ||
+        '  <td>\n' ||
+        '    <input type="checkbox" name="dav_%s_sponger" id="dav_%s_sponger" %s disabled="disabled" onchange="javascript: destinationChange(this, {checked: {show: [''dav%d_cartridge'', ''dav%d_metaCartridge'']}, unchecked: {hide: [''dav%d_cartridge'', ''dav%d_metaCartridge'']}});" value="on" />\n' ||
+        '  </td>\n' ||
+        '</tr>\n',
+        det,
+        det,
+        det,
+        case when S = 'on' then 'checked="checked"' else '' end,
+        ndx,
+        ndx,
+        ndx,
+        ndx
+      ));
+
+      selectedCartridges := self.get_fieldProperty (sprintf ('dav_%s_cartridges', det), self.dav_path, sprintf ('virt:%s-cartridges', det), '');
+      selectedCartridges := split_and_decode (selectedCartridges, 0, '\0\0,');
+      cartridges := ODRIVE.WA.cartridges_get ();
+
+      http (sprintf (
+        '<tr id="dav%d_cartridge" style="display: none;">\n' ||
+        '  <th valign="top">Sponger Extractor Cartridges</th>\n' ||
+        '  <td>\n' ||
+        '    <div style="margin-bottom: 6px; max-height: 200px; overflow: auto;">\n' ||
+        '      <table id="ca%d_tbl" class="ODS_grid" cellspacing="0">\n' ||
+        '        <thead>\n' ||
+        '          <tr>\n' ||
+        '            <th><input type="checkbox" name="ca%d_select" value="Select All" onclick="selectAllCheckboxes (this, ''ca%d_item'', true)" title="Select All" /></th>\n' ||
+        '            <th width="100%%">Cartridge</th>\n' ||
+        '          </tr>\n' ||
+        '        </thead>',
+        ndx,
+        ndx,
+        ndx,
+        ndx
+      ));
+      for (N := 0; N < length (cartridges); N := N + 1)
+      {
+        if (S = 'on')
+        {
+          T := case when ODRIVE.WA.vector_contains (selectedCartridges, cast (cartridges[N][0] as varchar)) then 'checked="checked"' else '' end;
+        } else {
+          T := case when cartridges[N][2] then 'checked="checked"' else '' end;
+        }
+        http (sprintf (
+          '        <tr>\n' ||
+          '          <td class="checkbox"><input type="checkbox" name="ca%d_item" value="%d" disabled="disabled" %s /></td>\n' ||
+          '          <td>%V</td>\n' ||
+          '        </tr>',
+          ndx,
+          cartridges[N][0],
+          T,
+          cartridges[N][1]
+        ));
+      }
+      if (length (cartridges) = 0)
+        http (
+        '        <tr><td colspan="2"><b>No available cartridges</b></td></tr>'
+        );
+
+      http (
+        '      </table>\n' ||
+        '    </div>\n' ||
+        '  </td>\n' ||
+        '</tr>'
+      );
+
+      if (not DB.DBA.wa_check_package ('cartridges'))
+        return;
+
+      selectedCartridges := self.get_fieldProperty (sprintf ('dav_%s_metaCartridges', det), self.dav_path, sprintf ('virt:%s-metaCartridges', det), '');
+      selectedCartridges := split_and_decode (selectedCartridges, 0, '\0\0,');
+      cartridges := ODRIVE.WA.metaCartridges_get ();
+
+      http (sprintf (
+        '<tr id="dav%d_metaCartridge" style="display: none;">\n' ||
+        '  <th valign="top">Sponger Meta Cartridges</th>\n' ||
+        '  <td>\n' ||
+        '    <div style="margin-bottom: 6px; max-height: 200px; overflow: auto;">\n' ||
+        '      <table id="mca%d_tbl" class="ODS_grid" cellspacing="0">\n' ||
+        '        <thead>\n' ||
+        '          <tr>\n' ||
+        '            <th><input type="checkbox" name="mca%d_select" value="Select All" onclick="selectAllCheckboxes (this, ''mca%d_item'', true)" title="Select All" /></th>\n' ||
+        '            <th width="100%%">Meta Cartridge</th>\n' ||
+        '          </tr>\n' ||
+        '        </thead>',
+        ndx,
+        ndx,
+        ndx,
+        ndx
+      ));
+      for (N := 0; N < length (cartridges); N := N + 1)
+      {
+        if (S = 'on')
+        {
+          T := case when ODRIVE.WA.vector_contains (selectedCartridges, cast (cartridges[N][0] as varchar)) then 'checked="checked"' else '' end;
+        } else {
+          T := case when cartridges[N][2] then 'checked="checked"' else '' end;
+        }
+        http (sprintf (
+          '        <tr>\n' ||
+          '          <td class="checkbox"><input type="checkbox" name="mca%d_item" value="%d" disabled="disabled" %s /></td>\n' ||
+          '          <td>%V</td>\n' ||
+          '        </tr>',
+          ndx,
+          cartridges[N][0],
+          T,
+          cartridges[N][1]
+        ));
+      }
+      if (length (cartridges) = 0)
+        http (
+        '        <tr><td colspan="2"><b>No available meta cartridges</b></td></tr>'
+        );
+
+      http (
+        '      </table>\n' ||
+        '    </div>\n' ||
+        '  </td>\n' ||
+        '</tr>'
+      );
+    ]]>
+  </v:method>
+
   <v:on-init>
     <![CDATA[
       declare N, M, retValue, dav_id, dav_owner, dav_group integer;
       declare dav_detType, dav_mime, dav_name, dav_fullPath, dav_perms, msg, _p varchar;
-      declare properties, c_properties any;
-      declare dav_aci, dav_acl, dav_filename, dav_file, rdf_content any;
+      declare properties, c_properties, v_properties any;
+      declare dav_acl, dav_aci, old_dav_aci, dav_filename, dav_file, rdf_content any;
       declare params, itemList any;
 
       params := self.vc_page.vc_event.ve_params;
@@ -400,15 +758,20 @@
         {
             msg := 'Can not update resource. ';
           }
-
+        self.dav_destination := cast (get_keyword ('dav_destination', params, '0') as integer);
         self.dav_source := cast (get_keyword ('dav_source', params, '-1') as integer);
-        if ((self.command_mode = 5) and (get_keyword('dav_destination', params, '') = '1'))
+        if ((self.command_mode in (5, 6)) and (get_keyword ('dav_destination', params, '') = '1'))
           {
             -- RDF Triple Store
+          declare rdf_data, rdf_type, rdf_graph any;
 
-            declare pos integer;
-          declare is_ttl, is_xml, rdf_data, rdf_xml, rdf_name, rdf_graph any;
-
+          if (self.command_mode = 6)
+          {
+            rdf_type := trim (get_keyword ('dav_mime', params, ''));
+            rdf_data := get_keyword (case when rdf_type = 'text/html' then 'dav_content_html' else 'dav_content_plain' end, params, '');
+          }
+          else
+          {
           if (self.dav_source = 0)
             {
             dav_filename := get_keyword('filename', get_keyword_ucase('attr-dav_file', params));
@@ -418,6 +781,8 @@
             }
             else
             {
+                declare pos integer;
+
                 pos := position ('dav_file', params);
                 rdf_data := aref_set_0 (params, pos);
               }
@@ -427,48 +792,35 @@
             dav_filename := get_keyword('dav_url', params, '');
               rdf_data := http_get(dav_filename);
             }
-          rdf_graph := trim (get_keyword('dav_name_rdf', params));
-            {
-            declare continue handler for SQLSTATE '*' {
-                is_ttl := 0;
-              };
-              is_ttl := 1;
-              DB.DBA.RDF_TTL2HASH (rdf_data, rdf_graph, rdf_graph);
-            }
-            if (not is_ttl)
-            {
-              {
-              declare continue handler for SQLSTATE '*' {
-                  is_xml := 0;
-                };
-                is_xml := 1;
-                xtree_doc (rdf_data, 0, rdf_graph);
-              }
+            rdf_type := http_mime_type (dav_filename);
             }
-            if (is_xml = 0 and is_ttl = 0)
-          {
-              signal ('TEST', 'You have attempted to upload invalid data. You can only upload RDF, Turtle, N3 serializations of RDF Data to the RDF Data Store.<>');
-          }
-            if (is_ttl)
-            {
-            retValue := DB.DBA.TTLP (rdf_data, '', rdf_graph);
-          }
-          else
+          rdf_graph := trim (get_keyword ('dav_name_rdf', params));
+          retValue := ODRIVE.WA.DAV_RDF_UPLOAD (rdf_data, rdf_type, rdf_graph);
+          if (not retValue)
           {
-            retValue := DB.DBA.RDF_LOAD_RDFXML (rdf_data, '', rdf_graph);
+            self.vc_error_message := 'You have attempted to upload invalid data to the RDF Data Store.';
+            self.vc_is_valid := 0;
+            return;
             }
         }
         else
         {
             -- WebDAV
-
+          -- Action test
+          v_properties := vector ();
             if (self.command_mode = 10)
             {
             self.dav_id := ODRIVE.WA.DAV_GET(self.dav_item, 'id');
+            self.dav_type := ODRIVE.WA.DAV_GET (self.dav_item, 'type');
+            self.dav_detClass := coalesce (ODRIVE.WA.det_class (self.dav_path, self.dav_type) , '');
             if (ODRIVE.WA.DAV_ERROR(self.dav_id))
               signal('TEST', 'Folder/File could not be found!<>');
           }
 
+          if ((self.command_mode = 10) and not self.fieldRights ('edit'))
+            goto _nextTest_1;
+
+          -- file/folde name
           dav_name := trim (get_keyword('dav_name', params));
           if (is_empty_or_null(dav_name))
             signal('TEST', 'Folder/File name can not be empty!<>');
@@ -479,6 +831,10 @@
           if ((self.command_mode = 5) and (self.dav_type = 'R') and (dav_name like '%,acl'))
             signal('TEST', 'The file names like ''*,acl'' are used for system purposes!<>');
 
+        _nextTest_1:;
+          if ((self.command_mode = 10) and not self.fieldRights ('tag'))
+            goto _nextTest_2;
+
           -- validate tags
           self.dav_tags_public := trim (get_keyword ('f_tags_public', params, ''));
           if (not ODRIVE.WA.validate_tags (self.dav_tags_public))
@@ -488,8 +844,12 @@
           if (not ODRIVE.WA.validate_tags (self.dav_tags_private))
             signal('TEST', 'The expression contains no valid tag(s)!<>');
 
+        _nextTest_2:;
+          if ((self.command_mode = 10) and not self.fieldRights ('metadata'))
+            goto _nextTest_3;
+
           -- validate metadata
-            if ((self.command_mode = 10) and ODRIVE.WA.dav_rdf_has_metadata (self.dav_path))
+          if (self.command_mode = 10)
             {
             declare param, uri, property, value any;
             declare delim integer;
@@ -508,6 +868,15 @@
               }
             }
           }
+
+        _nextTest_3:;
+          if (self.command_mode = 10)
+          {
+            dav_fullPath := ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath');
+            if (not self.fieldRights ('edit'))
+              goto _nextTest_4;
+          }
+
           dav_fullPath := rtrim (self.dir_path, '/') || '/' || dav_name;
           if (self.dav_type = 'C')
             dav_fullPath := dav_fullPath || '/';
@@ -518,6 +887,11 @@
               if (not ODRIVE.WA.DAV_ERROR(retValue))
                 signal('TEST', 'Folder/File with such name already exists!<>');
             }
+
+        _nextTest_4:;
+          if ((self.command_mode = 10) and not self.fieldRights ('edit'))
+            goto _nextTest_5;
+
           if (self.dav_type = 'C')
           {
             dav_detType := get_keyword ('dav_det', params);
@@ -529,8 +903,7 @@
               if (search_path between dav_fullPath and (dav_fullPath || '\255\255\255\255'))
                 signal('TEST', sprintf('Search path (%s) can not contains in folder full path (%s)!<>', search_path, dav_fullPath));
             }
-
-              if (dav_detType = 'PropFilter')
+            else if (dav_detType = 'PropFilter')
               {
               declare search_path varchar;
 
@@ -539,6 +912,26 @@
               if (ODRIVE.WA.DAV_ERROR(retValue))
                 signal('TEST', 'Search path does not exists!<>');
             }
+            else if (dav_detType = 'IMAP')
+            {
+              declare tmp varchar;
+
+              tmp := get_keyword ('dav_IMAP_server', params);
+              ODRIVE.WA.test (tmp, vector('name', 'IMAP Server', 'class', 'varchar', 'minLength', 1, 'maxLength', 255));
+              tmp := get_keyword ('dav_IMAP_port', params);
+              ODRIVE.WA.test (tmp, vector ('name', 'IMAP Port', 'class', 'integer', 'minLength', 1, 'maxLength', 4));
+              tmp := get_keyword ('dav_IMAP_user', params);
+              ODRIVE.WA.test (tmp, vector('name', 'IMAP User', 'class', 'varchar', 'minLength', 1, 'maxLength', 255));
+              tmp := DB.DBA.IMAP__verify (
+                get_keyword ('dav_IMAP_connection', params),
+                get_keyword ('dav_IMAP_server', params),
+                get_keyword ('dav_IMAP_port', params),
+                get_keyword ('dav_IMAP_user', params),
+                get_keyword ('dav_IMAP_password', params)
+              );
+              if (tmp <> '')
+                signal('TEST', tmp);
+            }
           }
             if (self.command_mode = 5)
             {
@@ -566,6 +959,11 @@
                 dav_file := ODRIVE.WA.get_rdf (dav_filename);
             }
           }
+
+        _nextTest_5:;
+          if ((self.command_mode = 10) and not self.fieldRights ('edit'))
+            goto _nextTest_6;
+
             if (self.dav_type = 'R')
             {
             dav_mime := trim(get_keyword('dav_mime', params, ''));
@@ -577,18 +975,28 @@
             dav_file := get_keyword (case when dav_mime = 'text/html' then 'dav_content_html' else 'dav_content_plain' end, params, '');
           }
 
+        _nextTest_6:;
+          if ((self.command_mode = 10) and not self.fieldRights ('edit'))
+            goto _nextTest_7;
+
           dav_owner := ODRIVE.WA.odrive_user_id(trim(get_keyword('dav_owner', params, '')));
           if (dav_owner < 0)
             dav_owner := null;
 
+        _nextTest_7:;
+          if ((self.command_mode = 10) and not self.fieldRights ('edit'))
+            goto _nextTest_8;
+
           dav_group := ODRIVE.WA.odrive_user_id(trim(get_keyword('dav_group', params, '')));
           if (dav_group < 0)
             dav_group := null;
-        if (not ODRIVE.WA.check_admin (self.account_id))
-            if ((ODRIVE.WA.DAV_GET(self.dav_item, 'groupID') <> dav_group) or isnull(dav_group))
-              if (not ODRIVE.WA.odrive_group_own(trim(get_keyword('dav_group', params, ''))))
+          if (not ODRIVE.WA.check_admin (self.account_id) and not ODRIVE.WA.odrive_group_own (dav_group) and (coalesce (ODRIVE.WA.DAV_GET (self.dav_item, 'groupID'), -1) <> coalesce (dav_group, -1)))
                 signal('TEST', 'Only own groups or ''dba'' group are allowed!<>');
 
+        _nextTest_8:;
+          if ((self.command_mode = 10) and not self.fieldRights ('edit'))
+            goto _nextTest_9;
+
           dav_perms := '';
             for (N := 0; N < 9; N := N + 1)
             {
@@ -603,40 +1011,72 @@
           }
           dav_perms := concat (dav_perms, get_keyword ('dav_index', params, 'N'), get_keyword ('dav_metagrab', params, 'N'));
 
+        _nextTest_9:;
           -- changing properties
           c_properties := ODRIVE.WA.prop_params (params, self.account_id);
 
+          -- Action execute
           -- Update
             if (self.command_mode = 10)
             {
+            if (not self.fieldRights ('edit'))
+              goto _nextExec_1;
+
             if (ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath') <> dav_fullPath)
+            {
               ODRIVE.WA.DAV_SET (ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath'), 'name', dav_name);
+              self.dav_path := dav_fullPath;
+            }
+
+          _nextExec_1:;
+            if (not self.fieldRights ('edit'))
+              goto _nextExec_2;
+
             if ((self.dav_type = 'R') and (ODRIVE.WA.DAV_GET(self.dav_item, 'mimeType') <> dav_mime))
               ODRIVE.WA.DAV_SET(self.dav_path, 'mimeType', dav_mime);
 
+          _nextExec_2:;
+            if (not self.fieldRights ('permissions'))
+              goto _nextExec_3;
+
             if (ODRIVE.WA.DAV_GET(self.dav_item, 'permissions') <> dav_perms)
               ODRIVE.WA.DAV_SET(self.dav_path, 'permissions', dav_perms);
 
+          _nextExec_3:;
+            if (not self.fieldRights ('edit'))
+              goto _nextExec_4;
+
             if ((ODRIVE.WA.DAV_GET(self.dav_item, 'ownerID') <> dav_owner) or isnull(dav_owner))
               ODRIVE.WA.DAV_SET(self.dav_path, 'ownerID', dav_owner);
 
+          _nextExec_4:;
+            if (not self.fieldRights ('edit'))
+              goto _nextExec_5;
+
             if ((ODRIVE.WA.DAV_GET(self.dav_item, 'groupID') <> dav_group) or isnull(dav_group))
               ODRIVE.WA.DAV_SET(self.dav_path, 'groupID', dav_group);
 
+          _nextExec_5:;
+            if (not self.fieldRights ('sharing_acl'))
+              goto _nextExec_6;
+
             -- ACL
             dav_acl := ODRIVE.WA.DAV_GET (self.dav_item, 'acl');
             self.dav_acl := ODRIVE.WA.acl_params (params, dav_acl);
-            if (dav_acl <> self.dav_acl)
-            {
-              if (not ODRIVE.WA.DAV_ERROR (ODRIVE.WA.DAV_SET (self.dav_path, 'acl', self.dav_acl)))
-              {
+            if (not ODRIVE.WA.DAV_ERROR (ODRIVE.WA.DAV_SET (self.dav_path, 'acl', self.dav_acl)))
                 ODRIVE.WA.acl_send_mail (self.domain_id, self.account_id, self.dav_path, dav_acl, self.dav_acl);
-              }
-            }
+
+          _nextExec_6:;
+            if (not self.fieldRights ('sharing_aci'))
+              goto _nextExec_7;
 
             -- ACI (Web Access)
-              dav_aci := ODRIVE.WA.aci_n3 (ODRIVE.WA.aci_params (params));
-              ODRIVE.WA.DAV_PROP_SET (dav_fullPath, 'virt:aci_meta_n3', dav_aci);
+            old_dav_aci := ODRIVE.WA.aci_load (self.dav_path);
+            dav_aci := DB.DBA.wa_aci_params (params);
+            ODRIVE.WA.aci_save (self.dav_path, dav_aci);
+            ODRIVE.WA.aci_send_mail (self.domain_id, self.account_id, self.dav_path, old_dav_aci, dav_aci);
+
+          _nextExec_7:;
           }
 
           -- Folder
@@ -652,37 +1092,28 @@
             else
             {
               if (get_keyword ('dav_recursive', params, '') <> '')
-              {
                 ODRIVE.WA.DAV_SET_RECURSIVE (self.dav_path, dav_perms, dav_owner, dav_group);
-              }
+
                 if (dav_detType <> 'Versioning')
                 {
                   -- clear old properties
                 itemList := DB.DBA.DAV_PROP_LIST_INT (DB.DBA.DAV_SEARCH_ID (dav_fullPath, 'C'), 'C', 'virt:%', 0);
                   foreach (any item in itemList) do
                   {
-                  if (item[0] <> 'virt:aci_meta_n3')
+                  if (item[0] not like ('virt:aci_meta%'))
+                  {
+                    v_properties := vector_concat (v_properties, vector (item));
                   DB.DBA.DAV_PROP_REMOVE_INT (dav_fullPath, item[0], null, null, 0, 0, 0);
                   }
                 }
+                ODRIVE.WA.exec ('delete from DB.DBA.SYNC_COLS_TYPES where CT_COL_ID = ?', vector (DB.DBA.DAV_SEARCH_ID (self.dav_path, 'C')));
+                }
               }
-            if (__proc_exists ('DB.DBA.SYNC_MAKE_DAV_DIR'))
-            {
-              declare sync_version, sync_type any;
-
-              sync_version := get_keyword ('s_v', params, 'N');
-              sync_type := get_keyword ('s_t', params, 'N');
-
-              if (self.command_mode = 10)
-              {
-                ODRIVE.WA.exec ('delete from DB.DBA.SYNC_COLS_TYPES where CT_PATH = ?', vector (ODRIVE.WA.DAV_GET(self.dav_item, 'fullPath')));
-              }
-
-				      DB.DBA.SYNC_MAKE_DAV_DIR (sync_type, DB.DBA.DAV_SEARCH_ID (dav_fullPath, 'C'), dav_name, dav_fullPath, sync_version);
-            }
-
             ODRIVE.WA.DAV_SET (dav_fullPath, 'permissions-inheritance', get_keyword('dav_permissions_inheritance', params, 'N'));
 
+            if (not self.fieldRights ('edit'))
+              goto _nextExec_8;
+
               -- set new properties
             if (dav_detType in ('ResFilter', 'CatFilter'))
             {
@@ -704,25 +1135,74 @@
               retValue := ODRIVE.WA.CatFilter_CONFIGURE(self.dav_path, self.search_dc);
               }
               if (ODRIVE.WA.DAV_ERROR(retValue))
-              {
                 signal('TEST', concat(ODRIVE.WA.DAV_PERROR(retValue), '<>'));
               }
-            }
             else if (dav_detType = 'rdfSink')
             {
-              ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:rdf_graph', get_keyword('dav_rdfSink_rdfGraph', params));
-              ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:rdf_sponger', get_keyword('dav_rdfSink_rdfSponger', params));
+              declare tmp any;
+              declare cartridges, metaCartridges varchar;
+
+              cartridges := '';
+              metaCartridges := '';
+              tmp := get_keyword ('dav_rdfSink_rdfSponger', params, 'off');
+              if (tmp = 'on')
+              {
+                for (N := 0; N < length (params); N := N + 2)
+                {
+                  if (params[N] = 'ca_item')
+                    cartridges := cartridges || ',' || trim (params[N+1]);
+                  else if (params[N] = 'mca_item')
+                    metaCartridges := metaCartridges || ',' || trim (params[N+1]);
+                }
+                cartridges := ltrim (cartridges, ',');
+                metaCartridges := ltrim (metaCartridges, ',');
+              }
+              ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:rdf_graph', get_keyword ('dav_rdfSink_graph', params));
+              ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:rdf_sponger', tmp);
+              ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:rdf_cartridges', cartridges);
+              ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:rdf_metaCartridges', metaCartridges);
+            }
+            else if (dav_detType = 'SyncML')
+            {
+              if (__proc_exists ('DB.DBA.SYNC_MAKE_DAV_DIR'))
+              {
+                declare sync_version, sync_type any;
+
+                sync_version := get_keyword ('syncml_version', params, 'N');
+                sync_type := get_keyword ('syncml_type', params, 'N');
+  				      DB.DBA.SYNC_MAKE_DAV_DIR (sync_type, DB.DBA.DAV_SEARCH_ID (dav_fullPath, 'C'), dav_name, dav_fullPath, sync_version);
+              }
             }
             else if (dav_detType <> 'Versioning')
             {
               retValue := ODRIVE.WA.DAV_SET(self.dav_path, 'detType', either(equ(dav_detType, ''), null, dav_detType));
                 if (dav_detType = 'oMail')
                 {
-                ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:oMail-DomainId', get_keyword('dav_oMail_DomainId', params));
-                  ODRIVE.WA.DAV_PROP_SET(self.dav_path, 'virt:oMail-UserName', ODRIVE.WA.account());
-                ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:oMail-FolderName', get_keyword('dav_oMail_FolderName', params));
+                declare tmp any;
+
+                tmp := trim (get_keyword ('dav_oMail_FolderName', params, ''));
+                if (tmp = '')
+                  tmp := 'NULL';
+                ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:oMail-DomainId', '1');
+                ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:oMail-UserName', ODRIVE.WA.account_name (self.account_id));
+                ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:oMail-FolderName', tmp);
                 ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:oMail-NameFormat', get_keyword('dav_oMail_NameFormat', params));
               }
+              else if (dav_detType = 'IMAP')
+              {
+                declare oldGraph, newGraph varchar;
+
+                oldGraph := ODRIVE.WA.DAV_PROP_GET (self.dav_path, 'virt:IMAP-graph', '');
+                newGraph := get_keyword ('dav_IMAP_graph', params, '');
+                ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:IMAP-connection', get_keyword ('dav_IMAP_connection', params));
+                ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:IMAP-server', get_keyword ('dav_IMAP_server', params));
+                ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:IMAP-port', get_keyword ('dav_IMAP_port', params));
+                ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:IMAP-user', get_keyword ('dav_IMAP_user', params));
+                ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:IMAP-password', get_keyword ('dav_IMAP_password', params));
+                ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:IMAP-graph', newGraph);
+                ODRIVE.WA.graph_private_remove (self.dav_path, 'C', oldGraph);
+                ODRIVE.WA.graph_private_add (self.dav_path, 'C', dav_perms, newGraph);
+              }
               else if (dav_detType = 'PropFilter')
                 {
                 ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:PropFilter-SearchPath', ODRIVE.WA.odrive_real_path(get_keyword('dav_PropFilter_SearchPath', params, '/DAV/')));
@@ -731,11 +1211,129 @@
               }
               else if (dav_detType = 'S3')
               {
+                foreach (any item in v_properties) do
+                {
+                  if (item[0] like ('virt:S3-%'))
+                    ODRIVE.WA.DAV_PROP_SET (self.dav_path, item[0], item[1]);
+                }
                 ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:S3-BucketName', get_keyword ('dav_S3_BucketName', params));
                 ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:S3-AccessKeyID', get_keyword ('dav_S3_AccessKeyID', params));
                 ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:S3-SecretKey', get_keyword ('dav_S3_SecretKey', params));
+                self.detSponger (params, dav_perms, 'S3', 6);
               }
+              else if (dav_detType = 'GDrive')
+              {
+                declare tmp any;
+
+                tmp := trim (get_keyword ('dav_GDrive_JSON', params, ''));
+                if (tmp <> '')
+                {
+                  tmp := subseq (ODS..json2obj(tmp), 2);
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:GDrive-Authentication', 'Yes');
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:GDrive-access_timestamp', get_keyword ('access_timestamp', tmp, ''));
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:GDrive-access_token', get_keyword ('access_token', tmp, ''));
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:GDrive-token_type', get_keyword ('token_type', tmp, ''));
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:GDrive-expires_in', cast (get_keyword ('expires_in', tmp, '') as varchar));
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:GDrive-refresh_token', get_keyword ('refresh_token', tmp, ''));
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:GDrive-display_name', get_keyword ('dav_GDrive_display_name', params, ''));
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:GDrive-email', get_keyword ('dav_GDrive_email', params, ''));
+                }
+                else
+                {
+                  foreach (any item in v_properties) do
+                  {
+                    if (item[0] like ('virt:GDrive-%'))
+                      ODRIVE.WA.DAV_PROP_SET (self.dav_path, item[0], item[1]);
+                  }
+                }
+                self.detSponger (params, dav_perms, 'GDrive', 12);
+              }
+              else if (dav_detType = 'Dropbox')
+              {
+                declare tmp any;
+
+                tmp := get_keyword ('dav_Dropbox_authentication', params);
+                if (tmp = 'Yes')
+                {
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:Dropbox-Authentication', tmp);
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:Dropbox-sid', get_keyword ('dav_Dropbox_sid', params, ''));
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:Dropbox-display_name', get_keyword ('dav_Dropbox_display_name', params, ''));
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:Dropbox-email', get_keyword ('dav_Dropbox_email', params, ''));
+                }
+                else
+                {
+                  foreach (any item in v_properties) do
+                  {
+                    if (item[0] like ('virt:Dropbox-%'))
+                      ODRIVE.WA.DAV_PROP_SET (self.dav_path, item[0], item[1]);
+                  }
+                }
+                self.detSponger (params, dav_perms, 'Dropbox', 13);
+              }
+              else if (dav_detType = 'SkyDrive')
+              {
+                declare tmp any;
+
+                tmp := trim (get_keyword ('dav_SkyDrive_JSON', params, ''));
+                if (tmp <> '')
+                {
+                  tmp := subseq (ODS..json2obj(tmp), 2);
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:SkyDrive-Authentication', 'Yes');
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:SkyDrive-access_timestamp', get_keyword ('access_timestamp', tmp, ''));
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:SkyDrive-scope', get_keyword ('scope', tmp, ''));
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:SkyDrive-access_token', pwd_magic_calc ('skydrive', get_keyword ('access_token', tmp, '')));
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:SkyDrive-token_type', get_keyword ('token_type', tmp, ''));
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:SkyDrive-expires_in', cast (get_keyword ('expires_in', tmp, '') as varchar));
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:SkyDrive-refresh_token', pwd_magic_calc ('skydrive', get_keyword ('refresh_token', tmp, '')));
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:SkyDrive-authentication_token', pwd_magic_calc ('skydrive', get_keyword ('authentication_token', tmp, '')));
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:SkyDrive-display_name', get_keyword ('dav_SkyDrive_display_name', params, ''));
+                }
+                else
+                {
+                  foreach (any item in v_properties) do
+                  {
+                    if (item[0] like ('virt:SkyDrive-%'))
+                      ODRIVE.WA.DAV_PROP_SET (self.dav_path, item[0], item[1]);
+                  }
                 }
+                self.detSponger (params, dav_perms, 'SkyDrive', 14);
+              }
+              else if (dav_detType = 'Box')
+                {
+                declare tmp any;
+
+                tmp := trim (get_keyword ('dav_Box_auth_token', params, ''));
+                if (tmp <> '')
+                  {
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:Box-Authentication', 'Yes');
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:Box-auth_token', pwd_magic_calc ('box', tmp));
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:Box-display_name', get_keyword ('dav_Box_display_name', params, ''));
+                  }
+                else
+                {
+                  foreach (any item in v_properties) do
+                  {
+                    if (item[0] like ('virt:Box-%'))
+                      ODRIVE.WA.DAV_PROP_SET (self.dav_path, item[0], item[1]);
+                }
+                }
+                self.detSponger (params, dav_perms, 'Box', 15);
+              }
+              else if (dav_detType = 'WebDAV')
+              {
+                foreach (any item in v_properties) do
+                {
+                  if (item[0] like ('virt:WebDAV-%'))
+                    ODRIVE.WA.DAV_PROP_SET (self.dav_path, item[0], item[1]);
+                }
+                ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:WebDAV-path', get_keyword ('dav_WebDAV_path', params, ''));
+                ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:WebDAV-user', get_keyword ('dav_WebDAV_user', params, ''));
+                if (get_keyword ('dav_WebDAV_password', params, '') <> '**********')
+                  ODRIVE.WA.DAV_PROP_SET (self.dav_path, 'virt:WebDAV-password', pwd_magic_calc ('webdav', get_keyword ('dav_WebDAV_password', params, '')));
+                self.detSponger (params, dav_perms, 'WebDAV', 16);
+              }
+                }
+          _nextExec_8:;
             }
 
           -- File
@@ -753,6 +1351,9 @@
               }
 
                 rdf_content := dav_file;
+              if (self.dav_detClass = 'S3')
+                connection_set ('amz-server-side-encryption', get_keyword ('dav_S3_encryption', params, 'None'));
+
               retValue := ODRIVE.WA.DAV_RES_UPLOAD(dav_fullPath, dav_file, dav_mime, dav_perms, dav_owner, dav_group);
               if (ODRIVE.WA.DAV_ERROR(retValue))
                 signal('TEST', concat(ODRIVE.WA.DAV_PERROR(retValue), '<>'));
@@ -761,7 +1362,7 @@
             }
             else
             {
-              if (ODRIVE.WA.dav_rdf_has_metadata(self.dav_path))
+              if (self.fieldRights ('metadata'))
               {
                 declare param, property any;
                 declare delim integer;
@@ -780,12 +1381,16 @@
               }
             }
             -- Tags
+            if (not self.fieldRights ('tag'))
+              goto _nextExec_9;
+
             ODRIVE.WA.DAV_SET (dav_fullPath, 'privatetags', self.dav_tags_private);
             ODRIVE.WA.DAV_SET (dav_fullPath, 'publictags', self.dav_tags_public);
+          _nextExec_9:;
           }
 
           -- properties
-          if (get_keyword ('dav_propEnable', params, '0') <> '0')
+          if (self.fieldRights ('properties'))
           {
           properties := ODRIVE.WA.DAV_PROP_LIST (dav_fullPath, '%', vector ('virt:%', 'http://www.openlinksw.com/schemas/%', 'http://local.virt/DAV-RDF%'));
             for (N := 0; N < length (properties); N := N + 1)
@@ -846,18 +1451,20 @@
       <v:variable name="dav_vector" persist="0" type="any" default="null" />
       <v:variable name="tabNo" param-name="tabNo" type="varchar" default="'1'" />
       <v:variable name="dav_id" type="integer" default="-1" />
+      <v:variable name="dav_destination" type="integer" default="0" />
       <v:variable name="dav_source" type="integer" default="0" />
       <v:variable name="dav_path" type="varchar" default="''" />
       <v:variable name="dav_category" type="varchar" default="''" />
       <v:variable name="dav_type" type="varchar" default="''" />
       <v:variable name="dav_detType" type="varchar" default="''" />
+      <v:variable name="dav_detClass" type="varchar" default="''" />
       <v:variable name="dav_item" type="any" default="null" />
       <v:variable name="dav_enable" type="integer" default="1" />
-      <v:variable name="dav_propEnable" type="integer" default="1" />
       <v:variable name="dav_acl" persist="0" type="varbinary" />
       <v:variable name="dav_tags_private" persist="0" type="varchar" />
       <v:variable name="dav_tags_public" persist="0" type="varchar" />
       <v:variable name="dav_metadata" persist="0" type="varchar" default="null" />
+      <v:variable name="dav_S3_encryption" type="varchar" default="'None'" />
       <v:variable name="chars" type="integer" default="60" />
     </vm:variables>
     <vm:header>
@@ -930,7 +1537,7 @@
       <?vsp http (sprintf ('<input type="hidden" name="tabNo" id="tabNo" value="%s" />', self.tabNo)); ?>
       <div class="toolbar">
         <?vsp
-          self.toolbarShow ('refresh', 'Refresh', 'onclick="javascript: document.forms[0].submit();"', 'ref_32.png', '', 0);
+          self.toolbarShow ('refresh', 'Refresh', 'onclick="javascript: vspxPost(\'action\', \'_cmd\', \'refresh\');"', 'ref_32.png', '', 0);
           self.toolbarShow ('up', 'Up', 'onclick="javascript: vspxPost(\'action\', \'_cmd\', \'up\');"', 'up_32.png', 'grey_up_32.png', 0);
 
           http ('<img src="image/c.gif" height="32" width="2" border="0" class="toolbar" />');
@@ -972,12 +1579,18 @@
           <v:button name="action" action="simple" style="url" value="Submit">
             <v:on-post>
               <![CDATA[
-                declare _action, _path, _item, params any;
+                declare _action, _path, _item, _det, params any;
 
                 params := e.ve_params;
                 _action := get_keyword ('_cmd', params, '');
 
-                if (_action = 'home')
+                if (_action = 'refresh')
+                {
+                  _det := cast (ODRIVE.WA.DAV_PROP_GET (ODRIVE.WA.odrive_real_path (self.dir_path), ':virtdet') as varchar);
+                  if (__proc_exists (sprintf ('DB.DBA.%s__refresh', _det)) is not null)
+                    call ('DB.DBA.' || _det || '__refresh') (ODRIVE.WA.odrive_real_path (self.dir_path));
+                }
+                else if (_action = 'home')
                 {
                 _home:
                   self.dir_path := ODRIVE.WA.dav_home2 (self.owner_id, self.account_role);
@@ -1050,6 +1663,7 @@
                 else if (_action = 'upload')
                 {
                   self.command_push (10, 5);
+                  self.dav_destination := 0;
                   self.dav_source := 0;
                 }
                 else if (_action = 'create')
@@ -1065,6 +1679,9 @@
                 else if (_action = 'select')
                 {
                   _path := get_keyword ('_path', params, '');
+                  _item := ODRIVE.WA.dav_init (_path);
+                  if (ODRIVE.WA.isVector (_item) and (_path <> ''))
+                  {
                   if (self.dir_path = '')
                   {
                     if (trim (_path, '/') = ODRIVE.WA.odrive_name_home ())
@@ -1074,8 +1691,6 @@
                       goto _shared;
                   }
 
-                  if (_path <> '')
-                  {
                     if (ODRIVE.WA.odrive_permission (_path) = '')
                     {
                       self.vc_error_message := 'You have not rights to read this folder/file!';
@@ -1083,25 +1698,21 @@
                       self.vc_data_bind (e);
                       return;
                     }
-                    _item := ODRIVE.WA.dav_init (_path);
                     if (ODRIVE.WA.dav_get (_item, 'type') = 'R')
                     {
                       http_request_status ('HTTP/1.1 302 Found');
                       http_header (sprintf ('Location: %s&mode=download&file=%U\r\n', ODRIVE.WA.page_url (self.domain_id, 'view.vsp', self.sid , self.realm), _path));
+                      return;
                     }
-                    else
-                    {
+
                       if (self.dir_path <> '')
-                      {
                         self.dir_path := rtrim (self.dir_path, '/') || '/';
-                      }
-                      self.dir_path := self.dir_path || ODRIVE.WA.dav_get (_item, 'name');
 
+                    self.dir_path := self.dir_path || ODRIVE.WA.dav_get (_item, 'name');
+                  }
                       self.ds_items.vc_reset();
                       self.vc_data_bind (e);
                     }
-                  }
-                }
                 else if (_action = 'tag_search')
                 {
                   declare _mode, tag, tags, tagType, tagsID any;
@@ -1350,20 +1961,16 @@
       <v:template name="tform_4" type="simple" enabled="-- equ(self.command, 10)">
         <v:before-data-bind>
           <![CDATA[
+            declare parent_path varchar;
+            declare params any;
+
+            params := self.vc_page.vc_event.ve_params;
             self.search_dc := null;
             self.dav_path := ODRIVE.WA.odrive_real_resource (self.source);
+            parent_path := ODRIVE.WA.odrive_real_path_int (self.dir_path, 1, 'C');
             self.dav_enable := 1;
-            self.dav_propEnable := self.dav_enable;
             if (self.command_mode = 10)
             {
-              if (equ(self.dav_type, 'R') and (self.dav_path like '%,acl'))
-              {
-                self.dav_enable := 0;
-              } else {
-              self.dav_enable := ODRIVE.WA.odrive_write_permission (self.dav_path);
-              }
-              if (self.dav_enable)
-                ODRIVE.WA.det_action_enable (self.dav_path, 'edit');
               self.dav_item := ODRIVE.WA.DAV_INIT(self.dav_path);
               if (ODRIVE.WA.DAV_ERROR(self.dav_item))
               {
@@ -1371,11 +1978,9 @@
                 self.vc_data_bind (e);
                 return;
               }
-              self.dav_propEnable := self.dav_enable;
-              if (self.dav_propEnable and
-                  not isnull (DB.DBA.DAV_HIDE_ERROR(DB.DBA.DAV_PROP_GET_INT (ODRIVE.WA.DAV_GET (self.dav_item, 'id'), 'R', 'DAV:checked-in', 0))))
-                  self.dav_propEnable := 0;
-              self.dav_category := coalesce (ODRIVE.WA.det_category (self.dav_path, ODRIVE.WA.DAV_GET (self.dav_item, 'type')) , '');
+              self.dav_type := ODRIVE.WA.DAV_GET (self.dav_item, 'type');
+              self.dav_detClass := ODRIVE.WA.det_class (self.dav_path, self.dav_type);
+              self.dav_detType := coalesce (get_keyword ('dav_det', params, ODRIVE.WA.DAV_GET (self.dav_item, 'detType')), '');
             }
             else if (self.command_mode in (5, 6))
             {
@@ -1384,25 +1989,46 @@
               V := ODRIVE.WA.DAV_INIT_RESOURCE (self.dir_path);
               if (self.command_mode = 6)
                 aset (V, 9, 'text/html');
+
               self.dav_item := V;
-              self.dav_category := coalesce (ODRIVE.WA.det_category (ODRIVE.WA.odrive_real_path_int (self.dir_path, 1, 'C'), 'C') , '');
+              self.dav_type := 'R';
+              self.dav_detClass := ODRIVE.WA.det_class (parent_path, 'C');
+              if (self.dav_detClass = '')
+                self.dav_detClass := ODRIVE.WA.det_type (parent_path, 'C');
+
+              self.dav_detType := coalesce (get_keyword ('dav_det', params, ODRIVE.WA.DAV_GET (self.dav_item, 'detType')), '');
             }
             else
             {
               self.dav_item := ODRIVE.WA.DAV_INIT_COLLECTION (self.dir_path);
               if (self.command_mode = 1)
-                self.vc_page.vc_event.ve_params := vector_concat(self.vc_page.vc_event.ve_params, vector ('dav_det', 'ResFilter', 'attr_dav_det', ''));
-              self.dav_category := coalesce (ODRIVE.WA.det_category (ODRIVE.WA.odrive_real_path_int (self.dir_path, 1, 'C'), 'C') , '');
+                params := vector_concat (params, vector ('dav_det', 'ResFilter', 'attr_dav_det', ''));
+
+              self.dav_type := 'C';
+              self.dav_detClass := ODRIVE.WA.det_class (parent_path, 'C');
+              if (self.dav_detClass = '')
+                self.dav_detClass := ODRIVE.WA.det_type (parent_path, 'C');
+
+              self.dav_detType := cast (coalesce (get_keyword ('dav_det', params, ODRIVE.WA.DAV_GET (self.dav_item, 'detType')), '') as varchar);
             }
-            self.dav_type := ODRIVE.WA.DAV_GET (self.dav_item, 'type');
-            self.dav_detType := coalesce (get_keyword ('dav_det', self.vc_page.vc_event.ve_params, ODRIVE.WA.DAV_GET (self.dav_item, 'detType')), '');
-            if (isnull(get_keyword ('dav_group', self.vc_page.vc_event.ve_params)))
+            self.dav_detType := cast (coalesce (get_keyword ('dav_det', params, ODRIVE.WA.DAV_GET (self.dav_item, 'detType')), '') as varchar);
+            if (self.command_mode = 10)
             {
-              self.dav_acl := ODRIVE.WA.DAV_GET (self.dav_item, 'acl');
+              if (equ (self.dav_type, 'R') and (self.dav_path like '%,acl'))
+              {
+                self.dav_enable := 0;
+              } else {
+                self.dav_enable := ODRIVE.WA.odrive_write_permission (self.dav_path);
+              }
+              if (self.dav_enable)
+                self.dav_enable := self.commandRights (self.dav_detType, self.dav_detClass, 'edit');
             }
+            if (isnull (get_keyword ('dav_group', params)))
+              self.dav_acl := ODRIVE.WA.DAV_GET (self.dav_item, 'acl');
+
             if (self.command_mode = 10)
             {
-              if (isnull(get_keyword ('dav_group', self.vc_page.vc_event.ve_params)))
+              if (isnull (get_keyword ('dav_group', params)))
               {
                 self.dav_tags_private := '';
                 self.dav_tags_public := '';
@@ -1417,9 +2043,10 @@
                 self.search_dc := ODRIVE.WA.DAV_PROP_GET (self.dav_path, 'virt:Filter-Params');
               }
             }
-            if (not isnull(get_keyword ('dav_group', self.vc_page.vc_event.ve_params)))
+            if (not isnull (get_keyword ('dav_group', params)))
               self.dc_prepare();
 
+            self.dav_S3_encryption := 'None';
             self.rdf_iri := SIOC..briefcase_resource_iri (self.dav_path);
           ]]>
         </v:before-data-bind>
@@ -1440,87 +2067,85 @@
         </div>
          <div id="c1">
           <div class="tabs">
-            <vm:tabCaption tab="1" tabs="10" caption="Main" />
-            <v:template name="tform_5" type="simple" enabled="-- case when (equ (self.command_mode, 10) and ODRIVE.WA.det_action_enable (self.dav_path, 'share') and not (equ(self.dav_type, 'R') and (ODRIVE.WA.DAV_GET (self.dav_item, 'name') like '%,acl'))) then 1 else 0 end">
-            <vm:tabCaption tab="2" tabs="10" caption="Sharing" />
+            <vm:tabCaption tab="1"   tabs="17" caption="Main" />
+            <v:template name="tform_5" type="simple" enabled="-- case when (equ (self.command_mode, 10) and self.fieldRights ('sharing')) then 1 else 0 end">
+            <vm:tabCaption tab="2"   tabs="17" caption="Sharing" />
             </v:template>
-            <v:template name="tform_6" type="simple" enabled="-- case when (equ (self.command_mode, 10) and ODRIVE.WA.dav_rdf_has_metadata (self.dav_path)) then 1 else 0 end">
-            <vm:tabCaption tab="3" tabs="10" caption="Metadata" />
+            <v:template name="tform_6" type="simple" enabled="-- case when (equ (self.command_mode, 10) and self.fieldRights ('metadata')) then 1 else 0 end">
+            <vm:tabCaption tab="3"   tabs="17" caption="Metadata" />
             </v:template>
-            <v:template name="tform_7" type="simple" enabled="-- case when (equ (self.command_mode, 10) and equ(self.dav_type, 'R') and ODRIVE.WA.det_action_enable (self.dav_path, 'version') and not (equ(self.dav_type, 'R') and (ODRIVE.WA.DAV_GET (self.dav_item, 'name') like '%,acl'))) then 1 else 0 end">
-            <vm:tabCaption tab="9" tabs="10" caption="Versions" />
+            <v:template name="tform_7" type="simple" enabled="-- case when (equ (self.command_mode, 10) and equ (self.dav_type, 'R') and self.fieldRights ('version') and not (equ (self.dav_type, 'R') and (ODRIVE.WA.DAV_GET (self.dav_item, 'name') like '%,acl'))) then 1 else 0 end">
+            <vm:tabCaption tab="9"   tabs="17" caption="Versions" />
             </v:template>
             <v:template name="tform_8" type="simple" enabled="-- equ(self.dav_type, 'C')">
-            <vm:tabCaption tab="4" tabs="10" caption="WebMail" />
-            <vm:tabCaption tab="5"  tabs="10" caption="Filter" />
-            <vm:tabCaption tab="6"   tabs="10" caption="S3 Properties" />
-            <vm:tabCaption tab="7"  tabs="10" caption="Criteria" />
-            <vm:tabCaption tab="8"  tabs="10" caption="RDF Upload" />
+            <vm:tabCaption tab="4"   tabs="17" caption="WebMail" />
+            <vm:tabCaption tab="5"   tabs="176" caption="Filter" />
+            <vm:tabCaption tab="6"   tabs="176" caption="S3 Properties" />
+            <vm:tabCaption tab="7"   tabs="176" caption="Criteria" />
+            <vm:tabCaption tab="8"   tabs="17" caption="Linked Data Import" />
+            <v:template name="tform_17" type="simple" enabled="-- case when (isstring (DB.DBA.vad_check_version ('SyncML'))) then 1 else 0 end">
+            <vm:tabCaption tab="10"  tabs="17" caption="SyncML" />
+            </v:template>
+            <vm:tabCaption tab="11"  tabs="17" caption="IMAP Account" />
+            <v:template name="tform_171" type="simple" enabled="-- case when (self.dav_detClass = '') then 1 else 0 end">
+            <vm:tabCaption tab="12"  tabs="17" caption="Google Drive" />
+            <vm:tabCaption tab="13"  tabs="17" caption="Dropbox" />
+            <vm:tabCaption tab="14"  tabs="17" caption="SkyDrive" />
+            <vm:tabCaption tab="15"  tabs="17" caption="Box Net" />
+            <vm:tabCaption tab="16"  tabs="17" caption="WebDAV" />
+            </v:template>
             </v:template>
           </div>
           <div class="contents">
             <div id="1" class="tabContent">
               <table class="form-body" cellspacing="0">
-                <v:template name="tform_9" type="simple" enabled="-- equ(self.command_mode, 5)">
+                <v:template name="tform_9" type="simple" enabled="-- case when (self.command_mode in (5, 6)) and (self.dav_detClass = '') then 1 else 0 end">
                   <tr>
-                    <th width="30%">
-                      <vm:label for="dav_file" value="--'Destination'" />
+                    <th width="30%" valign="top">
+                      <vm:label value="--'Destination'" />
                     </th>
-                    <td style="padding-left: 4px">
-                      <input type="radio" name="dav_destination" id="dav_destination_0" value="0" checked="checked" onchange="javascript: toggleDavRows();" title="WebDAV" /><b><vm:label for="dav_destination_0" value="--'WebDAV'" /></b>
-                      <input type="radio" name="dav_destination" id="dav_destination_1" value="1" onchange="javascript: toggleDavRows();" title="RDF Store" /><b><vm:label for="dav_destination_1" value="--'RDF Store'" /></b>
+                    <td>
+                      <label><?vsp http (sprintf ('<input type="radio" name="dav_destination" id="dav_destination_0" value="0" %s onchange="javascript: toggleDavRows();" title="WebDAV" />', case when self.dav_destination = 0 then 'checked="checked"' else '' end)); ?> <b>WebDAV</b></label><br />
+                      <label><?vsp http (sprintf ('<input type="radio" name="dav_destination" id="dav_destination_1" value="1" %s onchange="javascript: toggleDavRows();" title="WebDAV" />', case when self.dav_destination = 1 then 'checked="checked"' else '' end)); ?> <b>Quad Store</b></label>
+                		  <![CDATA[
+                		    <script type="text/javascript">
+                          OAT.MSG.attach(OAT, "PAGE_LOADED", function(){toggleDavRows();});
+                		    </script>
+                		  ]]>
                     </td>
                   </tr>
+                </v:template>
+                <v:template name="tform_9_1" type="simple" enabled="-- equ (self.command_mode, 5)">
                   <tr>
                     <th valign="top">
-                      <v:label for="dav_file" value="--'Source'" />
+                      <v:label value="--'Source'" />
                     </th>
                     <td>
-                      <table cellspacing="0" cellpadding="0">
-                        <tr>
-                          <td>
-                            <?vsp http (sprintf ('<input type="radio" name="dav_source" id="dav_source_0" value="0" %s title="File" />', case when self.dav_source = 0 then 'checked="checked"' else '' end)); ?>&nbsp;
-                          </td>
-                          <td>
-                            <b><vm:label for="dav_source_0" value="--'File'" /></b>
-                          </td>
-                          <td>
-                            <input type="file" name="dav_file" onchange="javascript: F1.dav_source[0].checked=true; getFileName(this);" onblur="javascript: getFileName(this);" onFocus="javascript: F1.dav_source[0].checked=true;" size="40" />
+                      <label id="dav_source_0"><?vsp http (sprintf ('<input type="radio" name="dav_source" value="0" %s onchange="javascript: toggleDavSource();" title="File" />', case when self.dav_source = 0 then 'checked="checked"' else '' end)); ?><b>File</b></label><br />
+                      <label id="dav_source_1"><?vsp http (sprintf ('<input type="radio" name="dav_source" value="1" %s onchange="javascript: toggleDavSource();" title="URL" />', case when self.dav_source = 1 then 'checked="checked"' else '' end)); ?><b>URL</b></label><br />
+                      <label id="dav_source_2"><?vsp http (sprintf ('<input type="radio" name="dav_source" value="2" %s onchange="javascript: toggleDavSource();" title="Quad Store Named Graph IRI" />', case when self.dav_source = 2 then 'checked="checked"' else '' end)); ?><b>Quad Store Named Graph IRI</b></label>
                           </td>
                         </tr>
                         <tr>
+                    <th valign="top">
+                      <label id="dav_file_label">File</label>
+                    </th>
                           <td>
-                            <?vsp http (sprintf ('<input type="radio" name="dav_source" id="dav_source_1" value="1" %s title="URL" />', case when self.dav_source = 1 then 'checked="checked"' else '' end)); ?>&nbsp;
-                          </td>
-                          <td>
-                            <b><vm:label for="dav_source_1" value="--'URL'" /></b>
-                          </td>
-                          <td>
-                            <input type="text" name="dav_url" value="<?V get_keyword ('dav_url', self.vc_page.vc_event.ve_params, get_keyword ('URI', self.vc_page.vc_event.ve_params, '')) ?>" onblur="javascript: getFileName(this);" onFocus="javascript: F1.dav_source[1].checked=true;" size="40" />
-                          </td>
-                        </tr>
-                        <tr id="rdf_store">
-                          <td>
-                            <?vsp http (sprintf ('<input type="radio" name="dav_source" id="dav_source_2" value="2" %s title="RDF Store" />', case when self.dav_source = 2 then 'checked="checked"' else '' end)); ?>&nbsp;
-                          </td>
-                          <td>
-                            <b><vm:label for="dav_source_2" value="--'RDF Store'" /></b>
-                          </td>
-                          <td>
-                            <input type="text" name="dav_rdf" value="<?V get_keyword ('dav_rdf', self.vc_page.vc_event.ve_params, '') ?>" onblur="javascript: getFileName(this);" onFocus="javascript: F1.dav_source[2].checked=true;" size="40" />
-                          </td>
-                        </tr>
-                      </table>
+                      <input type="file" name="dav_file" id="dav_file" onchange="javascript: F1.dav_source[0].checked=true; getFileName(this);" onblur="javascript: getFileName(this);" onfocus="javascript: F1.dav_source[0].checked=true;" size="60" />
+                      <input type="text" name="dav_url"  id="dav_url"  value="<?V get_keyword ('dav_url', self.vc_page.vc_event.ve_params, get_keyword ('URI', self.vc_page.vc_event.ve_params, '')) ?>" onblur="javascript: getFileName(this);" onfocus="javascript: F1.dav_source[1].checked=true;" size="60" style="display: none;"/>
+                      <input type="text" name="dav_rdf"  id="dav_rdf"  value="<?V get_keyword ('dav_rdf', self.vc_page.vc_event.ve_params, '') ?>" onblur="javascript: getFileName(this);" onfocus="javascript: F1.dav_source[2].checked=true;" size="60" style="display: none;"/>
                     </td>
                   </tr>
                 </v:template>
-                <tr>
+                <tr id="davRow_name">
                   <th width="30%">
                     <span id="label_dav"><v:label for="dav_name" value="--either(equ(self.dav_type, 'R'), 'File name (*)', 'Folder name (*)')" /></span>
-                    <span id="label_dav_rdf" style="display: none;"><v:label for="dav_name" value="--'RDF graph name'" /></span>
+                    <span id="label_dav_rdf" style="display: none;"><v:label for="label_dav_rdf" value="--'RDF graph name'" /></span>
                   </th>
                   <td>
-                    <v:text name="dav_name" xhtml_id="dav_name" value="--get_keyword ('dav_name', self.vc_page.vc_event.ve_params, get_keyword ('TITLE', self.vc_page.vc_event.ve_params, ODRIVE.WA.DAV_GET (self.dav_item, 'name')))" format="%s" fmt-function="ODRIVE.WA.utf2wide" xhtml_disabled="disabled" xhtml_class="field-short" />
+                    <v:text name="rdfGraph_prefix" xhtml_id="rdfGraph_prefix" type="hidden" value="--ODRIVE.WA.host_url () || WS.WS.FIXPATH (ODRIVE.WA.odrive_real_path (self.dir_path))" />
+                    <v:text name="dav_name" xhtml_id="dav_name" value="--get_keyword ('dav_name', self.vc_page.vc_event.ve_params, get_keyword ('TITLE', self.vc_page.vc_event.ve_params, ODRIVE.WA.DAV_GET (self.dav_item, 'name')))" format="%s" fmt-function="ODRIVE.WA.utf2wide" xhtml_disabled="disabled" xhtml_class="field-short" xhtml_onkeyup="javascript: ODRIVE.updateRdfGraph();" />
+                    <v:text name="dav_name_save" xhtml_id="dav_name_save" type="hidden" value="--get_keyword ('dav_name', self.vc_page.vc_event.ve_params, get_keyword ('TITLE', self.vc_page.vc_event.ve_params, ODRIVE.WA.DAV_GET (self.dav_item, 'name')))" />
                     <v:text name="dav_name_rdf" xhtml_id="dav_name_rdf" value="--get_keyword ('dav_name', self.vc_page.vc_event.ve_params, ODRIVE.WA.host_url() || WS.WS.FIXPATH(ODRIVE.WA.odrive_real_path(self.dir_path)))" format="%s" fmt-function="ODRIVE.WA.utf2wide" xhtml_disabled="disabled" xhtml_class="field-text" xhtml_style="display: none;" />
                   </td>
                 </tr>
@@ -1537,6 +2162,17 @@
                     </td>
                   </tr>
                 </v:template>
+                <v:template name="tform_10a" type="simple" enabled="-- case when (self.command_mode <> 10) and (self.dav_type = 'R') and (self.dav_detClass = 'S3') then 1 else 0 end">
+                  <tr id="davRow_mime">
+                    <th>
+                      <v:label for="dav_mime" value="--'S3 Server Side Encryption'" />
+                    </th>
+                    <td>
+                      <label><?vsp http (sprintf ('<input type="radio" name="dav_S3_encryption" id="dav_S3_encryption_0" value="None" %s />', case when self.dav_S3_encryption = 'None' then 'checked="checked"' else '' end)); ?> <b>None</b></label>
+                      <label><?vsp http (sprintf ('<input type="radio" name="dav_S3_encryption" id="dav_S3_encryption_1" value="AES256" %s />', case when self.dav_S3_encryption <> 'None' then 'checked="checked"' else '' end)); ?> <b>AES-256</b></label>
+                    </td>
+                  </tr>
+                </v:template>
                 <v:template name="tform_90" type="simple" enabled="-- equ(self.command_mode, 6)">
                   <tr>
                     <th valign="top">
@@ -1558,10 +2194,10 @@
                     </td>
                   </tr>
                 </v:template>
-                <v:template name="tform_12" type="simple" enabled="-- case when (((self.dav_type = 'C') and (self.dav_detType <> 'Versioning')) or (self.command_mode <> 10)) then 1 else 0 end">
+                <v:template name="tform_12" type="simple" enabled="-- case when (((self.dav_type = 'C') and (self.dav_detType in ('', 'UnderVersioning'))) or (self.command_mode <> 10)) and (self.dav_detClass = '') then 1 else 0 end">
                   <vm:autoVersion />
                 </v:template>
-                <v:template name="tform_13" type="simple" enabled="-- equ(self.dav_type, 'C')">
+                <v:template name="tform_13" type="simple" enabled="-- case when (self.dav_type = 'C') then 1 else 0 end">
                   <tr>
                     <th>
                       <v:label for="dav_det" value="--'Folder type'" />
@@ -1573,23 +2209,78 @@
                           {
                             http (self.option_prepare('ResFilter',        'Smart Folder',                  'ResFilter'));
                           }
-                          else if ((self.command_mode = 10) and (self.dav_detType = 'Versioning'))
+                          else if (self.dav_detClass <> '')
                           {
-                            http (self.option_prepare('Versioning',       'Version Control Folder',        self.dav_detType));
+                            http (self.option_prepare('', 'Normal', ''));
+                          }
+                          else
+                          {
+                            declare N, M, V any;
+
+                            V := vector (
+                                          0, '',           'Normal',
+                                          1, 'ResFilter',  'Smart Folder',
+                                          1, 'CatFilter',  'Category Folder',
+                                          1, 'PropFilter', 'Property Filter',
+                                          1, 'HostFs',     'Host FS',
+                                          0, 'rdfSink',    'Linked Data Import',
+                                          1, 'RDFData',    'RDF Data',
+                                          1, 'DynaRes',    'Dynamic Resources',
+                                          2, 'SyncML',     'SyncML',
+                                          1, 'Versioning', 'Version Control',
+                                          1, 'S3',         'Amazon S3',
+                                          1, 'GDrive',     'Google Drive',
+                                          1, 'Dropbox',    'Dropbox',
+                                          1, 'SkyDrive',   'SkyDrive',
+                                          1, 'Box',        'Box Net',
+                                          1, 'WebDAV',     'WebDAV',
+                                          1, 'CardDAV',    'CardDAV',
+                                          1, 'Blog',       'Blog',
+                                          1, 'Bookmark',   'Bookmark',
+                                          1, 'calendar',   'Calendar',
+                                          1, 'CalDAV',     'CalDAV',
+                                          1, 'News3',      'Feed Subscriptions',
+                                          1, 'oMail',      'WebMail',
+                                          1, 'IMAP',       'IMAP Mail Account');
+
+                            M := 0;
+                            for (N := 0; N < length (V); N := N + 3)
+                            {
+                              if ((V[N] = 1) and (__proc_exists (sprintf ('DB.DBA.%s_DAV_AUTHENTICATE', V[N+1])) is null))
+                                goto _0;
+
+                              if ((V[N] = 2) and not isstring (DB.DBA.vad_check_version ('SyncML')))
+                                goto _0;
+
+                              if ((V[N+1] = 'GDrive') and not exists (select 1 from OAUTH..APP_REG where a_name = 'Google API' and a_owner = 0))
+                                goto _0;
+
+                              if ((V[N+1] = 'Dropbox') and not exists (select 1 from OAUTH..APP_REG where a_name = 'Dropbox API' and a_owner = 0))
+                                goto _0;
+
+                              if ((V[N+1] = 'SkyDrive') and not exists (select 1 from OAUTH..APP_REG where a_name = 'SkyDrive API' and a_owner = 0))
+                                goto _0;
+
+                              if ((V[N+1] = 'Box') and not exists (select 1 from OAUTH..APP_REG where a_name = 'Box Net API' and a_owner = 0))
+                                goto _0;
+
+                              if (self.command_mode = 10)
+                              {
+                                if (self.dav_detType = V[N+1])
+                                {
+                                  M := 1;
+                                  http (self.option_prepare(V[N+1], V[N+2], self.dav_detType));
+                                }
                           }
                           else
                           {
-                            http (self.option_prepare('',                 'Normal',                        self.dav_detType));
-                            http (self.option_prepare('ResFilter',        'Smart Folder',                  self.dav_detType));
-                            http (self.option_prepare('CatFilter',        'Category Folder',               self.dav_detType));
-                            http (self.option_prepare('PropFilter',       'Property Filter Folder',        self.dav_detType));
-                            http (self.option_prepare('HostFs',           'Host FS Folders',               self.dav_detType));
-                            http (self.option_prepare('oMail',            'WebMail Folders',               self.dav_detType));
-                            http (self.option_prepare('News3',            'OFM Subscriptions',             self.dav_detType));
-                            http (self.option_prepare('rdfSink',          'RDF Upload Folder',             self.dav_detType));
-                            http (self.option_prepare('RDFData',          'RDF Data',                      self.dav_detType));
-                            http (self.option_prepare('S3',               'Amazon S3',                     self.dav_detType));
-                            http (self.option_prepare('DynaRes',          'Dynamic Resources',             self.dav_detType));
+                                M := 1;
+                                http (self.option_prepare(V[N+1], V[N+2], self.dav_detType));
+                              }
+                            _0:;
+                            }
+                            if (not M)
+                              http (self.option_prepare(V[1], V[2], self.dav_detType));
                           }
                         ?>
                       </select>
@@ -1626,11 +2317,11 @@
                   </td>
                 </tr>
                 <tr id="davRow_perms">
-                  <th>
+                  <th valign="top">
                     <v:label for="dav_group" value="--'Permissions'" />
                   </th>
                   <td>
-                    <table class="permissions-list" cellspacing="0">
+                    <table class="permissions-list" cellspacing="0" style="width: 250px;">
                       <vm:permissions-header1 />
                       <vm:permissions-header2 />
                       <tr>
@@ -1656,7 +2347,7 @@
                     </table>
                   </td>
                 </tr>
-                <v:template name="tform_120" type="simple" enabled="-- case when (self.dav_category = '') then 1 else 0 end">
+                <v:template name="tform_120" type="simple" enabled="-- case when not length (self.dav_detClass) then 1 else 0 end">
                 <tr id="davRow_text">
                   <th>
                     <vm:label for="dav_index" value="--'Full Text Search'" />
@@ -1696,45 +2387,7 @@
                   </td>
                 </tr>
                 </v:template>
-                <v:template name="tform_16" type="simple" enabled="-- case when ((self.dav_type = 'C') and (self.dav_category = '') and isstring (DB.DBA.vad_check_version ('SyncML')) and ((self.command_mode = 0) or ((self.command_mode = 10) and (DB.DBA.yac_syncml_detect (self.dav_path) = 1)))) then 1 else 0 end">
-                  <tr>
-                    <th>SyncML version</th>
-                    <td>
-                    <select name="s_v">
-                      <?vsp
-                        declare aValues, aValue any;
-                        declare N integer;
-
-                        aValue := case when (self.command_mode = 0) then 'N' else DB.DBA.yac_syncml_version_get (self.dav_path) end;
-                        aValues := DB.DBA.yac_syncml_version ();
-                        for (N := 0; N < length (aValues); N := N + 2)
-                        {
-                          http(sprintf('<option value="%s" %s>%s</option>', aValues[N], select_if(aValue, aValues[N]), aValues[N+1]));
-                        }
-                      ?>
-                    </select>
-                    </td>
-                  </tr>
-                  <tr>
-                    <th>SyncML type</th>
-                    <td>
-                    <select name="s_t">
-                      <?vsp
-                        declare aValues, aValue any;
-                        declare N integer;
-
-                        aValue := case when (self.command_mode = 0) then 'N' else DB.DBA.yac_syncml_type_get (self.dav_path) end;
-                        aValues := DB.DBA.yac_syncml_type ();
-                        for (N := 0; N < length (aValues); N := N + 2)
-                        {
-                          http(sprintf('<option value="%s" %s>%s</option>', aValues[N], select_if (aValue, aValues[N]), aValues[N+1]));
-                        }
-                      ?>
-                    </select>
-                    </td>
-                  </tr>
-                </v:template>
-                <v:template name="tform_17" type="simple" enabled="-- case when ((self.dav_type = 'C') and (self.command_mode = 10)) then 1 else 0 end">
+                <v:template name="tform_16" type="simple" enabled="--case when ((self.dav_type = 'C') and (self.command_mode = 10) and not length (self.dav_detClass)) then 1 else 0 end">
                   <tr>
                     <th> </th>
                     <td>
@@ -1767,7 +2420,7 @@
                     </td>
                   </tr>
                 </v:template>
-                <v:template name="tform_19" type="simple" enabled="-- gte(self.command_mode, 10)">
+                <v:template name="tform_19" type="simple" enabled="-- case when gte(self.command_mode, 10) and not length (self.dav_detClass) then 1 else 0 end">
                   <tr>
                     <th valign="top">WebDAV Properties</th>
                     <td>
@@ -1779,16 +2432,16 @@
                         declare properties any;
 
                         properties := ODRIVE.WA.DAV_PROP_LIST (self.dav_path, '%', vector ('virt:%', 'http://www.openlinksw.com/schemas/%', 'http://local.virt/DAV-RDF%'));
-                          http (sprintf ('<input type="hidden" name="dav_propEnable" id="dav_propEnable" value="%d" />', self.dav_propEnable));
                       ?>
                             <table id="c_tbl" class="form-list" cellspacing="0">
                         <tr>
                                 <th width="50%">Property</th>
                                 <th width="50%">Value</th>
-                          <vm:if test="self.dav_propEnable">
-                            <th>&nbsp;</th>
+                                <vm:if test="self.fieldRights ('properties')">
+                                  <th>Action</th>
                           </vm:if>
                         </tr>
+                              <tbody id="c_tbody">
                           		  <![CDATA[
                           		    <script type="text/javascript">
                         <?vsp
@@ -1798,22 +2451,23 @@
                                   for (N := 0; N < length (properties); N := N + 1)
                                   {
                                     M := M + 1;
-                                    if (self.dav_propEnable)
+                                    if (self.fieldRights ('properties'))
                                     {
                                       http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createRow("c", null, {fld_1: {mode: 40, value: "%s", className: "_validate_", onbBlur: function(){validateField(this);}}, fld_2: {mode: 0, value: "%s"}});});', properties[N][0], properties[N][1]));
                                     } else {
-                                      http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("c", {fld_1: {value: "%s"}, fld_2: {value: "%s"}});});', properties[N][0], properties[N][1]));
+                                      http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("c", {fld_1: {value: "%s", tdCssText: "white-space: nowrap;"}, fld_2: {value: "%s", tdCssText: "white-space: nowrap;"}});});', properties[N][0], properties[N][1]));
                                     }
                           }
                         ?>
                         		    </script>
                         		  ]]>
-                              <tr id="c_tr_no" style="display: <?V case when M=0 then '' else 'none' end ?>;"><td colspan="<?V case when self.dav_propEnable then 2 else 3 end ?>"><b>No Properties</b></td></tr>
+                              <tr id="c_tr_no" style="display: <?V case when M=0 then '' else 'none' end ?>;"><td colspan="<?V (2 + self.fieldRights ('properties')) ?>"><b>No Properties</b></td></tr>
+                              </tbody>
                             </table>
                             </td>
-                            <vm:if test="self.dav_propEnable">
+                          <vm:if test="self.fieldRights ('properties')">
                             <td valign="top" nowrap="nowrap">
-                              <span class="button pointer" onclick="javascript: TBL.createRow('c', null, {fld_1: {mode: 40, className: '_validate_', onblur: function(){validateField(this);}}, fld_2: {mode: 0}});"><img src="image/add_16.png" border="0" class="button" alt="Add Property" title="Add Property" /> Add</span><br /><br />
+                              <span class="button pointer" onclick="javascript: TBL.createRow('c', null, {fld_1: {mode: 40, className: '_validate_', onblur: function(){validateField(this);}}, fld_2: {mode: 0}});"><img src="/ods/images/icons/add_16.png" border="0" class="button" alt="Add Property" title="Add Property" /> Add</span><br /><br />
                               </td>
                             </vm:if>
                           </tr>
@@ -1826,12 +2480,13 @@
 
             <v:template name="tform_20" type="simple" enabled="-- gte(self.command_mode, 10)">
               <div id="2" class="tabContent">
+                <vm:if test='self.fieldRights ('sharing_acl')'>
                 <fieldset>
                   <legend><b>ODS users/groups</b></legend>
-                  <table>
+                    <table width="100%">
                     <tr>
                       <td width="100%">
-                        <table id="s_tbl" class="form-list" style="width: 100%;"  cellspacing="0">
+                          <table id="f_tbl" class="ODS_formList" style="width: 100%;" cellspacing="0">
                   <tr>
                             <th nowrap="nowrap">User/Group (WebID)</th>
                             <th width="1%">Inheritance</th>
@@ -1839,6 +2494,8 @@
                             <th width="1%" align="center" nowrap="nowrap">Deny<br />(R)ead, (W)rite, e(X)ecute</th>
                             <th width="1%">Action</th>
                   </tr>
+                            <tbody id="f_tbody">
+                              <tr id="f_tr_no"><td colspan="5"><b>No Security</b></td></tr>
               		  <![CDATA[
               		    <script type="text/javascript">
                   <?vsp
@@ -1854,74 +2511,66 @@
                       acl := acl_values[N];
                                 if (self.dav_enable and (acl[1] <> 3))
                                 {
-                                  http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createRow("s", null, {fld_1: {mode: 51, value: "%s", formMode: "u", nrows: %d, tdCssText: "white-space: nowrap;", className: "_validate_"}, fld_2: {mode: 43, value: %d, objectType: "%s"}, fld_3: {mode: 42, value: [%d, %d, %d], suffix: "_grant", onclick: function(){TBL.clickCell42(this);}, tdCssText: "width: 1%%; text-align: center;"}, fld_4: {mode: 42, value: [%d, %d, %d], suffix: "_deny", onclick: function(){TBL.clickCell42(this);}, tdCssText: "width: 1%%; text-align: center;"}});});', ODRIVE.WA.account_iri (acl[0]), ODRIVE.WA.settings_rows (self.settings), acl[1], self.dav_type, bit_and (acl[2], 4), bit_and (acl[2], 2), bit_and (acl[2], 1), bit_and (acl[3], 4), bit_and (acl[3], 2), bit_and (acl[3], 1)));
+                                      http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createRow("f", null, {fld_1: {mode: 51, value: "%s", formMode: "u", nrows: %d, tdCssText: "white-space: nowrap;", className: "_validate_"}, fld_2: {mode: 43, value: %d, tdCssText: "white-space: nowrap;", objectType: "%s"}, fld_3: {mode: 42, value: [%d, %d, %d], suffix: "_grant", onclick: function(){TBL.clickCell42(this);}, tdCssText: "width: 1%%; text-align: center;"}, fld_4: {mode: 42, value: [%d, %d, %d], suffix: "_deny", onclick: function(){TBL.clickCell42(this);}, tdCssText: "width: 1%%; text-align: center;"}});});', ODRIVE.WA.account_iri (acl[0]), ODRIVE.WA.settings_rows (self.settings), acl[1], self.dav_type, bit_and (acl[2], 4), bit_and (acl[2], 2), bit_and (acl[2], 1), bit_and (acl[3], 4), bit_and (acl[3], 2), bit_and (acl[3], 1)));
                                 } else {
-                                  http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("s", {fld_1: {value: "%s"}, fld_2: {value: "%s"}, fld_3: {mode: 42, value: [%d, %d, %d], tdCssText: "width: 1%%; text-align: center;"}, fld_4: {mode: 42, value: [%d, %d, %d], tdCssText: "width: 1%%; text-align: center;"}});});', ODRIVE.WA.account_iri (acl[0]), get_keyword (acl[1], V, ''), bit_and (acl[2], 4), bit_and (acl[2], 2), bit_and (acl[2], 1), bit_and (acl[3], 4), bit_and (acl[3], 2), bit_and (acl[3], 1)));
+                                      http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("f", {fld_1: {value: "%s"}, fld_2: {value: "%s", tdCssText: "white-space: nowrap;"}, fld_3: {mode: 42, value: [%d, %d, %d], tdCssText: "width: 1%%; text-align: center;"}, fld_4: {mode: 42, value: [%d, %d, %d], tdCssText: "width: 1%%; text-align: center;"}});});', ODRIVE.WA.account_iri (acl[0]), get_keyword (acl[1], V, ''), bit_and (acl[2], 4), bit_and (acl[2], 2), bit_and (acl[2], 1), bit_and (acl[3], 4), bit_and (acl[3], 2), bit_and (acl[3], 1)));
                                 }
                   }
                   ?>
               		    </script>
               		  ]]>
-                          <tr id="s_tr_no" style="display: <?V case when M=0 then '' else 'none' end ?>;"><td colspan="<?V case when self.dav_enable then 4 else 5 end ?>"><b>No Security</b></td></tr>
+                            </tbody>
                 </table>
                       </td>
                       <td valign="top" nowrap="nowrap">
-                        <vm:if test="self.dav_enable">
-                          <span class="button pointer" onclick="javascript: TBL.createRow('s', null, {fld_1: {mode: 51, formMode: 'u', nrows: <?V ODRIVE.WA.settings_rows (self.settings) ?>, tdCssText: 'white-space: nowrap;', className: '_validate_'}, fld_2: {mode: 43, value: 1, objectType: '<?V self.dav_type ?>'}, fld_3: {mode: 42, value: [1, 1, 0], suffix: '_grant', onclick: function(){TBL.clickCell42(this);}, tdCssText: 'width: 1%; text-align: center;'}, fld_4: {mode: 42,  suffix: '_deny', onclick: function(){TBL.clickCell42(this);}, tdCssText: 'width: 1%; text-align: center;'}});"><img src="image/add_16.png" border="0" class="button" alt="Add Security" title="Add Security" /> Add</span><br /><br />
+                          <vm:if test="self.dav_enable and self.fieldRights ('sharing_acl')">
+                            <span class="button pointer" onclick="javascript: TBL.createRow('f', null, {fld_1: {mode: 51, formMode: 'u', nrows: <?V ODRIVE.WA.settings_rows (self.settings) ?>, tdCssText: 'white-space: nowrap;', className: '_validate_'}, fld_2: {mode: 43, value: 1, objectType: '<?V self.dav_type ?>'}, fld_3: {mode: 42, value: [1, 1, 0], suffix: '_grant', onclick: function(){TBL.clickCell42(this);}, tdCssText: 'width: 1%; text-align: center;'}, fld_4: {mode: 42,  suffix: '_deny', onclick: function(){TBL.clickCell42(this);}, tdCssText: 'width: 1%; text-align: center;'}});"><img src="/ods/images/icons/add_16.png" border="0" class="button" alt="Add Security" title="Add Security" /> Add</span><br /><br />
                         </vm:if>
                       </td>
                     </tr>
                   </table>
                 </fieldset>
-                <vm:if test='not isnull (ODS.ODS_API."server.getInfo"('sslPort'))'>
+                </vm:if>
+                <vm:if test='not isnull (ODS.ODS_API."server.getInfo"('sslPort')) and self.fieldRights ('sharing_aci')'>
                   <fieldset>
                     <legend><b>WebID users</b></legend>
-                    <table>
+                    <table width="100%">
                       <tr>
                         <td width="100%">
-                          <table id="f_tbl" class="form-list" style="width: 100%;" cellspacing="0">
+                          <table id="s_tbl" class="ODS_formList" style="width: 100%;" cellspacing="0">
+                            <thead>
                             <tr>
                               <th width="1%" nowrap="nowrap">Access Type</th>
                               <th nowrap="nowrap">WebID</th>
                               <th width="1%" align="center" nowrap="nowrap">Allow<br />(R)ead, (W)rite, e(X)ecute</th>
-                              <vm:if test="self.dav_enable">
                               <th width="1%" >Action</th>
-                              </vm:if>
                             </tr>
+                            </thead>
+                            <tbody id="s_tbody">
+                              <tr id="s_tr_no"><td colspan="4"><b>No WebID Security</b></td></tr>
                         		  <![CDATA[
                         		    <script type="text/javascript">
                         		    <?vsp
-                                declare N, L integer;
+                                  declare L integer;
                                 declare aci_values, aci_parents any;
 
                                 aci_parents := ODRIVE.WA.aci_parents (self.dav_path);
                                 for (L := 0; L < length (aci_parents); L := L + 1)
                                 {
                                   aci_values := ODRIVE.WA.aci_load (aci_parents[L]);
-                                  for (N := 0; N < length (aci_values); N := N + 1)
-                                  {
-                                    http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("f", {fld_1: {mode: 50, value: "%s"}, fld_2: {value: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], execute: true, tdCssText: "width: 1%%; text-align: center;"}, fld_4: {value: "Inherited"}});});', aci_values[N][2], aci_values[N][1], aci_values[N][3], aci_values[N][4], aci_values[N][5]));
-                                  }
+                                    DB.DBA.wa_aci_lines (aci_values);
                                 }
                                 aci_values := ODRIVE.WA.aci_load (self.dav_path);
-                                for (N := 0; N < length (aci_values); N := N + 1)
-                                {
-                                  if (self.dav_enable)
-                                  {
-                                    http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createRow("f", null, {fld_1: {mode: 50, value: "%s", onchange: function(){TBL.changeCell50(this);}}, fld_2: {mode: 51, value: "%s", tdCssText: "white-space: nowrap;", className: "_validate_ _webid_", readOnly: %s, imgCssText: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], execute: true, tdCssText: "width: 1%%; text-align: center;"}});});', aci_values[N][2], aci_values[N][1], case when aci_values[N][2] = 'public' then 'true' else 'false' end, case when aci_values[N][2] = 'public' then 'display: none;' else '' end, aci_values[N][3], aci_values[N][4], aci_values[N][5]));
-                                  } else {
-                                    http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("f", {fld_1: {mode: 50, value: "%s"}, fld_2: {value: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], execute: true, tdCssText: "width: 1%%; text-align: center;"}});});', aci_values[N][2], aci_values[N][1], aci_values[N][3], aci_values[N][4], aci_values[N][5]));
-                                  }
-                                  }
+                                  DB.DBA.wa_aci_lines (aci_values, case when ((self.dav_enable or (self.dav_detClass in ('CalDAV', 'CardDAV', 'IMAP'))) and self.fieldRights ('sharing_aci')) then '' else 'view' end, 'true');
                         		    ?>
                         		    </script>
                         		  ]]>
-                            <tr id="f_tr_no"><td colspan="<?V case when self.dav_enable then 3 else 4 end ?>"><b>No WebID Security</b></td></tr>
+                            </tbody>
                           </table>
                         </td>
-                        <vm:if test="self.dav_enable">
+                        <vm:if test="(self.dav_enable or (self.dav_detClass in ('CalDAV', 'CardDAV', 'IMAP'))) and self.fieldRights ('sharing_aci')">
                         <td valign="top" nowrap="nowrap">
-                            <span class="button pointer" onclick="javascript: TBL.createRow('f', null, {fld_1: {mode: 50, onchange: function(){TBL.changeCell50(this);}}, fld_2: {mode: 51, tdCssText: 'white-space: nowrap;', className: '_validate_ _webid_'}, fld_3: {mode: 52, value: [1, 0, 0], execute: true, tdCssText: 'width: 1%; text-align: center;'}});"><img src="image/add_16.png" border="0" class="button" alt="Add Security" title="Add Security" /> Add</span><br /><br />
+                            <span class="button pointer" onclick="javascript: TBL.createRow('s', null, {fld_1: {mode: 50, onchange: function(){TBL.changeCell50(this);}}, fld_2: {mode: 51, tdCssText: 'white-space: nowrap;', className: '_validate2_ _webid2_'}, fld_3: {mode: 52, value: [1, 0, 0], execute: true, execute: true, tdCssText: 'width: 1%; text-align: center;'}});"><img src="/ods/images/icons/add_16.png" border="0" class="button" alt="Add Security" title="Add Security" /> Add</span><br /><br />
                         </td>
                         </vm:if>
                       </tr>
@@ -1931,7 +2580,7 @@
               </div>
             </v:template>
 
-            <v:template name="tform_21" type="simple" enabled="-- case when (gte(self.command_mode, 10) and ODRIVE.WA.dav_rdf_has_metadata (self.dav_path)) then 1 else 0 end">
+            <v:template name="tform_21" type="simple" enabled="-- case when (gte(self.command_mode, 10) and self.fieldRights ('metadata')) then 1 else 0 end">
               <div id="3" class="tabContent" style="display: none;">
                 <table id="schema" class="ODS_grid">
                   <thead>
@@ -2016,6 +2665,13 @@
               <vm:search-dc-template6 />
               <vm:search-dc-template7 />
               <vm:search-dc-template8 />
+              <vm:search-dc-template11 />
+              <vm:search-dc-template12 />
+              <vm:search-dc-template13 />
+              <vm:search-dc-template14 />
+              <vm:search-dc-template15 />
+              <vm:search-dc-template16 />
+              <vm:search-dc-template17 />
             </v:template>
             <v:template type="simple" enabled="-- equ(self.dav_type, 'R')">
               <vm:search-dc-template9 />
@@ -2024,7 +2680,7 @@
           </div>
         </div>
         <div class="new-form-footer">
-          <v:button action="simple" name="cCreate" value="--case when (self.command_mode >= 10) then 'Update' else case when (self.command_mode = 5) then 'Upload' else 'Create' end end" enabled="--self.dav_enable" xhtml_onclick="return validateInputs(this);"/>
+          <v:button action="simple" name="cCreate" value="--case when (self.command_mode >= 10) then 'Update' else case when (self.command_mode = 5) then 'Upload' else 'Create' end end" enabled="--case when (self.dav_enable or self.fieldRights ('sharing')) then 1 else 0 end" xhtml_onclick="return validateInputs(this);"/>
           <v:button action="simple" name="cCancel" value="Cancel" >
             <v:on-post>
               <![CDATA[
@@ -2039,7 +2695,7 @@
             if (document.F1.elements['dav_det'])
               updateLabel(document.F1.dav_det.options[document.F1.dav_det.selectedIndex].value);
             initDisabled();
-            initTab(10, 1);
+            initTab(11, 1);
           ]]>
         </script>
       </v:template>
@@ -2049,7 +2705,7 @@
         <div class="boxHeader">
           <b><v:label for="path" value="' Path '" /></b>
           <v:text name="path" value="--ODRIVE.WA.utf2wide(ODRIVE.WA.path_show (self.dir_path))" xhtml_onkeypress="return submitEnter(event, \'F1\', \'action\', \'go\')" xhtml_id="path" xhtml_size="60" />
-          <img class="pointer" border="0" alt="Browse Path" title="Browse Path" src="image/go_16.png" onclick="javascript: vspxPost('action', '_cmd', 'go');" />
+          <img class="pointer" border="0" alt="Browse Path" title="Browse Path" src="/ods/images/icons/go_16.png" onclick="javascript: vspxPost('action', '_cmd', 'go');" />
           <b><v:label for="list_type" value="' View '" /></b>
           <v:select-list name="list_type" value="--self.dir_details" xhtml_onchange="javascript: doPost(\'F1\', \'reload\'); return false">
             <v:item name="Details" value="0" />
@@ -2058,8 +2714,8 @@
           <v:template type="simple" enabled="-- case when ((self.command in (0)) and (self.command_mode in (0,1))) then 1 else 0 end">
             <b><v:label for="filter" value="--' Filter Pattern '" /></b>
             <v:text name="filter" xhtml_id="filter" value="--self.search_filter" type="simple" />
-            <img class="pointer" border="0" alt="Filter" title="Filter" src="image/filter_16.png" onclick="javascript: vspxPost('action', '_cmd', 'filter');" />
-            <img class="pointer" border="0" alt="Cancel Filter" title="Cancel Filter" src="image/cancl_16.png" onclick="javascript: vspxPost('action', '_cmd', 'cancelFilter');" />
+            <img class="pointer" border="0" alt="Filter" title="Filter" src="/ods/images/icons/filter_16.png" onclick="javascript: vspxPost('action', '_cmd', 'filter');" />
+            <img class="pointer" border="0" alt="Cancel Filter" title="Cancel Filter" src="/ods/images/icons/close_16.png" onclick="javascript: vspxPost('action', '_cmd', 'cancelFilter');" />
           </v:template>
         </div>
       </v:template>
@@ -2189,12 +2845,12 @@
                 http (sprintf ('<a href="export.vspx?sid=%s&realm=%s&output=rss%s"><img src="image/rss-icon-16.gif" border="0" title="RSS 2.0" alt="RSS 2.0" /> RSS</a>  ', self.sid, self.realm, self.do_url()));
                 if (ODRIVE.WA.settings_atomVersion (self.settings) = '1.0')
                 {
-                  http (sprintf ('<a href="export.vspx?sid=%s&realm=%s&output=atom10%s"><img src="image/blue-icon-16.gif" border="0" title="Atom 1.0" alt="Atom 1.0" /> Atom</a>  ', self.sid, self.realm, self.do_url()));
+                  http (sprintf ('<a href="export.vspx?sid=%s&realm=%s&output=atom10%s"><img src="/ods/images/blue-icon-16.gif" border="0" title="Atom 1.0" alt="Atom 1.0" /> Atom</a>  ', self.sid, self.realm, self.do_url()));
                 } else {
-                  http (sprintf ('<a href="export.vspx?sid=%s&realm=%s&output=atom03%s"><img src="image/blue-icon-16.gif" border="0" title="Atom 0.3" alt="Atom 0.3" /> Atom</a>  ', self.sid, self.realm, self.do_url()));
+                  http (sprintf ('<a href="export.vspx?sid=%s&realm=%s&output=atom03%s"><img src="/ods/images/blue-icon-16.gif" border="0" title="Atom 0.3" alt="Atom 0.3" /> Atom</a>  ', self.sid, self.realm, self.do_url()));
                 }
-                http (sprintf ('<a href="export.vspx?sid=%s&realm=%s&output=rdf%s"><img src="image/rdf-icon-16.gif" border="0" title="RDF 1.0" alt="RDF 1.0" /> RDF</a>  ', self.sid, self.realm, self.do_url()));
-                http (sprintf ('<a href="export.vspx?sid=%s&realm=%s&output=xbel%s"><img src="image/blue-icon-16.gif" border="0" title="XBEL" alt="XBEL" /> XBEL</a>  ', self.sid, self.realm, self.do_url()));
+                http (sprintf ('<a href="export.vspx?sid=%s&realm=%s&output=rdf%s"><img src="/ods/images/rdf-icon-16.gif" border="0" title="RDF 1.0" alt="RDF 1.0" /> RDF</a>  ', self.sid, self.realm, self.do_url()));
+                http (sprintf ('<a href="export.vspx?sid=%s&realm=%s&output=xbel%s"><img src="/ods/images/blue-icon-16.gif" border="0" title="XBEL" alt="XBEL" /> XBEL</a>  ', self.sid, self.realm, self.do_url()));
               ?>
             </div>
           </v:template>
@@ -2379,12 +3035,21 @@
                             </v:template>
                             <td class="action">
                               <?vsp
+                                declare id any;
+
+                                id := DB.DBA.DAV_SEARCH_ID (rowset[8], rowset[1]);
                                 if (ODRIVE.WA.odrive_read_permission (rowset[8]))
-                                {
                                   http (sprintf( ' <img class="pointer" border="0" alt="Update Properties" title="Update Properties"" src="image/dav/item_prop.png" onclick="javascript: vspxPost(\'action\', \'_cmd\', \'update\', \'_path\', \'%s\');" />', replace (rowset[8], '\'', '\\\'')));
-                                }
-                                if ((__tag (DB.DBA.DAV_SEARCH_ID (rowset[8], rowset[1])) <> 193)
-                                    and (rowset[0] like '%.vsp'
+
+                                if (
+                                     (
+                                       (__tag (id) <> 193)
+                                       or
+                                       (cast (id[0] as varchar) in ('S3', 'GDrive', 'Dropbox', 'SkyDrive', 'Box', 'WebDAV'))
+                                     )
+                                     and
+                                     (
+                                       rowset[0] like '%.vsp'
 		                                  or rowset[0] like '%.vspx'
 		                                  or rowset[0] like '%.rdf'
 		                                  or rowset[0] like '%.xml'
@@ -2395,7 +3060,8 @@
 		                                  or rowset[0] like '%.htm'
 		                                  or rowset[0] like '%.sql'
 		                                  or rowset[0] like '%.ini'
-		                                  or rowset[4] like 'text/%')
+		                                   or rowset[4] like 'text/%'
+		                                 )
 		                               )
                                 {
                                   declare S varchar;
diff --git a/appsrc/ODS-Briefcase/www/image/PoweredByVirtuoso.gif b/appsrc/ODS-Briefcase/www/image/PoweredByVirtuoso.gif
deleted file mode 100644
index b196db7..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/PoweredByVirtuoso.gif and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/add_16.png b/appsrc/ODS-Briefcase/www/image/add_16.png
deleted file mode 100644
index e948508..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/add_16.png and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/atom03.gif b/appsrc/ODS-Briefcase/www/image/atom03.gif
deleted file mode 100644
index b110bdc..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/atom03.gif and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/atom10.gif b/appsrc/ODS-Briefcase/www/image/atom10.gif
deleted file mode 100644
index 3c6367a..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/atom10.gif and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/blue-icon-16.gif b/appsrc/ODS-Briefcase/www/image/blue-icon-16.gif
deleted file mode 100644
index 5745ffa..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/blue-icon-16.gif and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/close_16.png b/appsrc/ODS-Briefcase/www/image/close_16.png
deleted file mode 100644
index 4d84554..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/close_16.png and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/dav/blue-icon-16.gif b/appsrc/ODS-Briefcase/www/image/dav/blue-icon-16.gif
deleted file mode 100644
index 5745ffa..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/dav/blue-icon-16.gif and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/dav/rdf-icon-16.gif b/appsrc/ODS-Briefcase/www/image/dav/rdf-icon-16.gif
deleted file mode 100644
index 5d60c9a..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/dav/rdf-icon-16.gif and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/dav/rss-icon-16.gif b/appsrc/ODS-Briefcase/www/image/dav/rss-icon-16.gif
deleted file mode 100644
index b0e4adf..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/dav/rss-icon-16.gif and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/dav/up_16.png b/appsrc/ODS-Briefcase/www/image/dav/up_16.png
deleted file mode 100644
index adb6cf6..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/dav/up_16.png and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/del_16.png b/appsrc/ODS-Briefcase/www/image/del_16.png
deleted file mode 100644
index 6670bf3..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/del_16.png and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/edit_16.png b/appsrc/ODS-Briefcase/www/image/edit_16.png
deleted file mode 100644
index f8aaba2..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/edit_16.png and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/filter_16.png b/appsrc/ODS-Briefcase/www/image/filter_16.png
deleted file mode 100644
index 83890a8..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/filter_16.png and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/first_16.png b/appsrc/ODS-Briefcase/www/image/first_16.png
deleted file mode 100644
index 74b9ca0..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/first_16.png and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/go_16.png b/appsrc/ODS-Briefcase/www/image/go_16.png
deleted file mode 100644
index c4e49ba..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/go_16.png and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/last_16.png b/appsrc/ODS-Briefcase/www/image/last_16.png
deleted file mode 100644
index d657ec4..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/last_16.png and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/mail_32.png b/appsrc/ODS-Briefcase/www/image/mail_32.png
deleted file mode 100644
index 825459f..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/mail_32.png and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/next_16.png b/appsrc/ODS-Briefcase/www/image/next_16.png
deleted file mode 100644
index c9ae06d..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/next_16.png and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/ods_main_footer.png b/appsrc/ODS-Briefcase/www/image/ods_main_footer.png
deleted file mode 100644
index f44da81..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/ods_main_footer.png and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/previous_16.png b/appsrc/ODS-Briefcase/www/image/previous_16.png
deleted file mode 100644
index 81ecf9e..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/previous_16.png and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/rdf-icon-16.gif b/appsrc/ODS-Briefcase/www/image/rdf-icon-16.gif
deleted file mode 100644
index 1f5becd..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/rdf-icon-16.gif and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/rdf.gif b/appsrc/ODS-Briefcase/www/image/rdf.gif
deleted file mode 100644
index 9baece1..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/rdf.gif and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/rss20.gif b/appsrc/ODS-Briefcase/www/image/rss20.gif
deleted file mode 100644
index a33d097..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/rss20.gif and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/sel_nav2_grad2.gif b/appsrc/ODS-Briefcase/www/image/sel_nav2_grad2.gif
deleted file mode 100644
index d354682..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/sel_nav2_grad2.gif and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/sky_blu_grad.gif b/appsrc/ODS-Briefcase/www/image/sky_blu_grad.gif
deleted file mode 100644
index 81e07ec..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/sky_blu_grad.gif and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/sky_blu_grad.jpg b/appsrc/ODS-Briefcase/www/image/sky_blu_grad.jpg
deleted file mode 100644
index 8b63700..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/sky_blu_grad.jpg and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/stl_blu1_grad.gif b/appsrc/ODS-Briefcase/www/image/stl_blu1_grad.gif
deleted file mode 100644
index f129e3f..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/stl_blu1_grad.gif and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/stop_16.png b/appsrc/ODS-Briefcase/www/image/stop_16.png
deleted file mode 100644
index 4d84554..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/stop_16.png and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/image/virt_power_no_border.png b/appsrc/ODS-Briefcase/www/image/virt_power_no_border.png
deleted file mode 100644
index 93fcb80..0000000
Binary files a/appsrc/ODS-Briefcase/www/image/virt_power_no_border.png and /dev/null differ
diff --git a/appsrc/ODS-Briefcase/www/js/odrive.js b/appsrc/ODS-Briefcase/www/js/odrive.js
index 31adf14..40395b9 100644
--- a/appsrc/ODS-Briefcase/www/js/odrive.js
+++ b/appsrc/ODS-Briefcase/www/js/odrive.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: odrive.js,v 1.15.2.22 2011/08/01 14:14:42 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -29,6 +29,46 @@ function setFooter() {
   }
 }
 
+function destinationChange(obj, changes) {
+  function destinationChangeInternal(actions) {
+    if (actions.hide) {
+      var a = actions.hide;
+      for ( var i = 0; i < a.length; i++) {
+        var o = $(a[i])
+        if (o) {
+          OAT.Dom.hide(o);
+        }
+      }
+    }
+    if (actions.show) {
+      var a = actions.show;
+      for ( var i = 0; i < a.length; i++) {
+        var o = $(a[i])
+        if (o) {
+          OAT.Dom.show(o);
+        }
+      }
+    }
+    if (actions.clear) {
+      var a = actions.clear;
+      for ( var i = 0; i < a.length; i++) {
+        var o = $(a[i])
+        if (o && o.value) {
+          o.value = '';
+        }
+      }
+    }
+  }
+  if (!changes)
+    return;
+
+  if (obj.checked && changes.checked)
+    destinationChangeInternal(changes.checked);
+
+  if (!obj.checked && changes.unchecked)
+    destinationChangeInternal(changes.unchecked);
+}
+
 function urlParam(fldName) {
   var O = document.forms[0].elements[fldName];
   if (O && O.value != '')
@@ -184,7 +224,7 @@ function selectAllCheckboxes (obj, prefix, toolbarsFlag) {
   for (var i = 0; i < objForm.elements.length; i++)
   {
     var o = objForm.elements[i];
-    if (o != null && o.type == "checkbox" && !o.disabled && o.name.indexOf (prefix) != -1)
+    if (o != null && o.type == "checkbox" && !o.disabled && o.name.indexOf (prefix) == 0)
     {
       o.checked = (obj.value == 'Select All');
       coloriseRow(getParent(o, 'tr'), o.checked);
@@ -231,7 +271,7 @@ function enableToolbars (objForm, prefix, doc)
   enableElement('tb_delete', 'tb_delete_gray', oCount>0, doc);
 
   enableElement('tb_tag', 'tb_tag_gray', tCount>0, doc);
-  enableElement('tb_properties', 'tb_properties_gray', oCount>0, doc);
+  enableElement('tb_properties', 'tb_properties_gray', oCount>1, doc);
 }
 
 function getParent (o, tag)
@@ -375,17 +415,17 @@ function getFileName(obj)
     N = S.indexOf('#');
     S = S.substr(0, N);
   }
-  if (document.F1.dav_destination[1].checked == '1')
-  {
+  if (document.forms['F1'].elements['dav_destination']) {
+    if (document.F1.dav_destination[1].checked == '1') {
     N = S.indexOf('.rdf');
     S = S.substr(0, N);
   }
-  if ((document.F1.dav_destination[0].checked == '1') && (document.F1.dav_source[2].checked == '1'))
-  {
+    if ((document.F1.dav_destination[0].checked == '1') && (document.F1.dav_source[2].checked == '1')) {
     N = S.indexOf('.rdf');
     if (N == -1)
       S = S + '.rdf';
   }
+  }
   document.F1.dav_name.value = S;
 }
 
@@ -397,19 +437,33 @@ function chkbx(bx1, bx2)
 
 function updateLabel(value)
 {
-  hideLabel(4, 10);
+  hideLabel(4, 16);
   if (value == 'oMail')
     showLabel(4, 4);
-  if (value == 'PropFilter')
+  else if (value == 'PropFilter')
     showLabel(5, 5);
-  if (value == 'S3')
+  else if (value == 'S3')
     showLabel(6, 6);
-  if (value == 'ResFilter')
+  else if (value == 'ResFilter')
     showLabel(7, 7);
-  if (value == 'CatFilter')
+  else if (value == 'CatFilter')
     showLabel(7, 7);
-  if (value == 'rdfSink')
+  else if (value == 'rdfSink')
     showLabel(8, 8);
+  else if (value == 'SyncML')
+    showLabel(10, 10);
+  else if (value == 'IMAP')
+    showLabel(11, 11);
+  else if (value == 'GDrive')
+    showLabel(12, 12);
+  else if (value == 'Dropbox')
+    showLabel(13, 13);
+  else if (value == 'SkyDrive')
+    showLabel(14, 14);
+  else if (value == 'Box')
+    showLabel(15, 15);
+  else if (value == 'WebDAV')
+    showLabel(16, 16);
 }
 
 function showLabel(from, to)
@@ -504,19 +558,23 @@ function webidShow(obj) {
   windowShow('/ods/webid_select.vspx?mode='+S.charAt(0)+'&params='+obj.id+':s1;');
 }
 
-function windowShow(sPage, sPageName, width, height) {
+function windowShowInternal(sPage, sPageName, width, height) {
 	if (width == null)
     width = 700;
 	if (height == null)
 		height = 500;
+  win = window.open(sPage, sPageName, "width="+width+",height="+height+",top=100,left=100,status=yes,toolbar=no,menubar=no,scrollbars=yes,resizable=yes");
+  win.window.focus();
+}
+
+function windowShow(sPage, sPageName, width, height) {
   if (sPage.indexOf('form=') == -1)
     sPage += '&form=F1';
   if (sPage.indexOf('sid=') == -1)
     sPage += urlParam('sid');
   if (sPage.indexOf('realm=') == -1)
     sPage += urlParam('realm');
-  win = window.open(sPage, sPageName, "width="+width+",height="+height+",top=100,left=100,status=yes,toolbar=no,menubar=no,scrollbars=yes,resizable=yes");
-  win.window.focus();
+  windowShowInternal(sPage, sPageName, width, height);
 }
 
 function renameShow(myForm, myPrefix, myPage, width, height) {
@@ -540,9 +598,10 @@ function mailShow(myForm, myPrefix, myPage, width, height)
 }
 
 function coloriseRow(obj, checked) {
-  obj.className = (obj.className).replace('tr_select', '');
   if (checked)
-    obj.className = obj.className + ' ' + 'tr_select';
+    OAT.Dom.addClass(obj, 'selected');
+  else
+    OAT.Dom.removeClass(obj, 'selected');
 }
 
 function coloriseTable(id)
@@ -710,7 +769,7 @@ function addChecked (form, txt, selectionMsq)
 // Hiddens functions
 function createHidden(frm_name, fld_name, fld_value)
 {
-  createHidden2(document, frm_name, fld_name, fld_value);
+  return createHidden2(document, frm_name, fld_name, fld_value);
 }
 
 function createHidden2(doc, frm_name, fld_name, fld_value)
@@ -729,6 +788,8 @@ function createHidden2(doc, frm_name, fld_name, fld_value)
       doc.forms[frm_name].appendChild(hidden);
     }
     hidden.value = fld_value;
+
+    return hidden;
   }
 }
 
@@ -763,8 +824,9 @@ function hideCell(cell)
 
 function toggleDavRows()
 {
-  if (document.forms['F1'].elements['dav_destination'])
-  {
+  if (!document.forms['F1'].elements['dav_destination'])
+    return;
+
     if (document.forms['F1'].elements['dav_destination'][0].checked == '1')
     {
       showTableRow('davRow_mime');
@@ -777,14 +839,13 @@ function toggleDavRows()
       showTableRow('davRow_tagsPublic');
       showTableRow('davRow_tagsPrivate');
 
-      showTableRow('rdf_store');
-
+    showCell('dav_source_2');
       showCell('label_dav');
       hideCell('label_dav_rdf');
       showCell('dav_name');
       hideCell('dav_name_rdf');
     }
-    if (document.forms['F1'].elements['dav_destination'][1].checked == '1')
+  else if (document.forms['F1'].elements['dav_destination'][1].checked == '1')
     {
       hideCell('davRow_tagsPrivate');
       hideCell('davRow_tagsPublic');
@@ -795,9 +856,11 @@ function toggleDavRows()
       hideCell('davRow_owner');
       hideCell('davRow_version');
       hideCell('davRow_mime');
+    if ($('dav_content_plain'))
+      showCell('davRow_mime');
 
-      hideCell('rdf_store');
-      if (document.forms['F1'].elements['dav_source'][2].checked == '1')
+    hideCell('dav_source_2');
+    if (document.forms['F1'].elements['dav_source'] && (document.forms['F1'].elements['dav_source'][2].checked == '1'))
         document.forms['F1'].elements['dav_source'][0].checked = '1';
 
       hideCell('label_dav');
@@ -805,20 +868,48 @@ function toggleDavRows()
       hideCell('dav_name');
       showCell('dav_name_rdf');
     }
+  toggleDavSource();
+}
+
+function toggleDavSource()
+{
+  if (!document.forms['F1'].elements['dav_source'])
+    return;
+
+  if (document.forms['F1'].elements['dav_source'][0].checked == '1')
+  {
+    $('dav_file_label').innerHTML = 'File';
+    showCell('dav_file');
+    hideCell('dav_url');
+    hideCell('dav_rdf');
+  }
+  else if (document.forms['F1'].elements['dav_source'][1].checked == '1')
+  {
+    $('dav_file_label').innerHTML = 'URL';
+    hideCell('dav_file');
+    showCell('dav_url');
+    hideCell('dav_rdf');
+  }
+  else if (document.forms['F1'].elements['dav_source'][2].checked == '1')
+  {
+    $('dav_file_label').innerHTML = 'Quad Store Named Graph IRI';
+    hideCell('dav_file');
+    hideCell('dav_url');
+    showCell('dav_rdf');
   }
 }
 
 var ODRIVE = new Object();
 
 ODRIVE.forms = new Object();
-ODRIVE.forms['properties'] = {params: {items: true}, width: '900', height: '700', postActions:['ODRIVE.formSubmit()', 'ODRIVE.resetToolbars()']};
-ODRIVE.forms['edit'] = {params: {items: true}, height: '430'};
-ODRIVE.forms['view'] = {params: {items: true}, height: '430'};
-ODRIVE.forms['copy'] = {params: {items: true}, height: '380', postActions:['ODRIVE.formSubmit()', 'ODRIVE.resetToolbars()']};
-ODRIVE.forms['move'] = {params: {items: true}, height: '380', postActions:['ODRIVE.formSubmit()', 'ODRIVE.resetToolbars()']};
-ODRIVE.forms['tags'] = {params: {items: true}, height: '360', postActions:['ODRIVE.formSubmit()', 'ODRIVE.resetToolbars()']};
-ODRIVE.forms['rename'] = {params: {items: true}, height: '150', postActions:['ODRIVE.formSubmit()', 'ODRIVE.resetToolbars()']};
-ODRIVE.forms['delete'] = {params: {items: true}, height: '300', postActions:['ODRIVE.formSubmit()', 'ODRIVE.resetToolbars()']};
+ODRIVE.forms['properties'] = {params: {items: true}, width: '900', height: '630', postActions:['ODRIVE.formSubmit()', 'ODRIVE.resetToolbars()']};
+ODRIVE.forms['edit'] = {params: {items: true}, height: '440', postActions:['ODRIVE.formSubmit()']};
+ODRIVE.forms['view'] = {params: {items: true}, height: '440'};
+ODRIVE.forms['copy'] = {params: {items: true}, height: '330', postActions:['ODRIVE.formSubmit()', 'ODRIVE.resetToolbars()']};
+ODRIVE.forms['move'] = {params: {items: true}, height: '330', postActions:['ODRIVE.formSubmit()', 'ODRIVE.resetToolbars()']};
+ODRIVE.forms['tags'] = {params: {items: true}, height: '350', postActions:['ODRIVE.formSubmit()', 'ODRIVE.resetToolbars()']};
+ODRIVE.forms['rename'] = {params: {items: true}, height: '160', postActions:['ODRIVE.formSubmit()', 'ODRIVE.resetToolbars()']};
+ODRIVE.forms['delete'] = {params: {items: true}, height: '290', postActions:['ODRIVE.formSubmit()', 'ODRIVE.resetToolbars()']};
 
 ODRIVE.trim = function (sString, sChar)
 {
@@ -975,6 +1066,10 @@ ODRIVE.resetToolbars = function ()
 
 ODRIVE.formShow = function (action, id, params)
 {
+  var cmd = $('_cmd');
+  if (cmd)
+   cmd.value = '';
+
   var formParams = action.split('/')[0].toLowerCase();
   var form = ODRIVE.forms[formParams];
   if (form)
@@ -988,7 +1083,7 @@ ODRIVE.formShow = function (action, id, params)
     if (formDiv) {OAT.Dom.unlink(formDiv);}
     formDiv = OAT.Dom.create('div', {width:dx+'px', height:dy+'px'});
     formDiv.id = 'formDiv';
-    formDialog = new OAT.Dialog('', formDiv, {width:parseInt(dx)+20, buttons: 0, resize: 0, modal: 1, onhide: function(){return false;}});
+    formDialog = new OAT.Dialog('', formDiv, {buttons: 0, resize: 0, modal: 1, onhide: function(){return false;}});
     formDialog.cancel = formDialog.hide;
 
     var s = 'forms.vspx?sa='+encodeURIComponent(action)+ODRIVE.sessionParams();
@@ -1396,20 +1491,29 @@ ODRIVE.searchGetCompares = function (predicate)
 
 ODRIVE.davFolderSelect = function (fld)
 {
+	/* load stylesheets */
+	OAT.Style.include("grid.css");
+	OAT.Style.include("webdav.css");
+
   var options = {
     mode: 'browser',
-    foldersOnly: true,
                   onConfirmClick: function(path) {$(fld).value = '/DAV' + path;}
                 };
+  OAT.WebDav.options.foldersOnly = true;
   OAT.WebDav.open(options);
 }
 
 ODRIVE.davFileSelect = function (fld)
 {
+	/* load stylesheets */
+	OAT.Style.include("grid.css");
+	OAT.Style.include("webdav.css");
+
   var options = {
     mode: 'browser',
     onConfirmClick: function(path, fname) {$(fld).value = '/DAV' + path + fname;}
                 };
+  OAT.WebDav.options.foldersOnly = false;
   OAT.WebDav.open(options);
 }
 
@@ -1430,12 +1534,10 @@ ODRIVE.coloriseTables = function ()
 ODRIVE.aboutDialog = function ()
 {
   var aboutDiv = $('aboutDiv');
-  if (aboutDiv) {OAT.Dom.unlink(aboutDiv);}
-  aboutDiv = OAT.Dom.create('div', {
-    width:'430px',
-    height: '170px',
-    overflow: 'hidden'
-  });
+  if (aboutDiv)
+    OAT.Dom.unlink(aboutDiv);
+
+  aboutDiv = OAT.Dom.create('div', {height: '160px', overflow: 'hidden'});
   aboutDiv.id = 'aboutDiv';
   aboutDialog = new OAT.Dialog('About ODS Briefcase', aboutDiv, {width:445, buttons: 0, resize:0, modal:1});
 	aboutDialog.cancel = aboutDialog.hide;
@@ -1484,3 +1586,97 @@ ODRIVE.toggleEditor = function ()
     $('dav_content_plain').value = $v('dav_content_html');
   }
 }
+
+ODRIVE.updateRdfGraph = function ()
+{
+  function updateRdfGraphInternal(name) {
+    var graphPrefix;
+    var rdfGraph;
+
+    graphPrefix = $v('rdfGraph_prefix');
+    rdfGraph = $('dav_'+name+'_graph');
+    if ((rdfGraph.value == '') || (rdfGraph.value == (graphPrefix+$v('dav_name_save')+'#this')))
+      rdfGraph.value = graphPrefix + $v('dav_name') + '#this';
+  }
+  updateRdfGraphInternal('rdfSink');
+  updateRdfGraphInternal('S3');
+  updateRdfGraphInternal('IMAP');
+  updateRdfGraphInternal('GDrive');
+  updateRdfGraphInternal('Dropbox');
+  updateRdfGraphInternal('SkyDrive');
+  updateRdfGraphInternal('Box');
+  updateRdfGraphInternal('WebDAV');
+
+  $('dav_name_save').value = $v('dav_name');
+}
+
+ODRIVE.oauthParams = function (json, display_name, email)
+{
+  try {
+    params = OAT.JSON.deserialize(unescape(json));
+  } catch (e) { params = null; }
+  var fld = createHidden('F1', 'dav_GDrive_JSON', null);
+  if (!params || params.error) {
+    alert ('Bad authentication!');
+    fld.value = '';
+  } else {
+    var d = new Date();
+    params.access_timestamp = d.format('Y-m-d H:i');
+    fld.value = OAT.JSON.serialize(params);
+    // $('dav_GDrive_authentication').innerHTML = 'Authenticated';
+    createHidden('F1', 'dav_GDrive_display_name', display_name);
+    createHidden('F1', 'dav_GDrive_email', email);
+
+    OAT.Dom.show('tr_dav_GDrive_display_name');
+    $('td_dav_GDrive_display_name').innerHTML = display_name;
+    OAT.Dom.show('tr_dav_GDrive_email');
+    $('td_dav_GDrive_email').innerHTML = email;
+    $('dav_GDrive_authenticate').value = 'Re-Authenticate';
+  }
+}
+
+ODRIVE.dropboxParams = function (sid, display_name, email)
+{
+  createHidden('F1', 'dav_Dropbox_authentication', 'Yes');
+  createHidden('F1', 'dav_Dropbox_sid', sid);
+  createHidden('F1', 'dav_Dropbox_display_name', display_name);
+  createHidden('F1', 'dav_Dropbox_email', email);
+
+  OAT.Dom.show('tr_dav_Dropbox_display_name');
+  $('td_dav_Dropbox_display_name').innerHTML = display_name;
+  OAT.Dom.show('tr_dav_Dropbox_email');
+  $('td_dav_Dropbox_email').innerHTML = email;
+  $('dav_Dropbox_authenticate').value = 'Re-Authenticate';
+}
+
+ODRIVE.skydriveParams = function (json, display_name)
+{
+  try {
+    params = OAT.JSON.deserialize(unescape(json));
+  } catch (e) { params = null; }
+  var fld = createHidden('F1', 'dav_SkyDrive_JSON', null);
+  if (!params || params.error) {
+    alert ('Bad authentication!');
+    fld.value = '';
+  } else {
+    var d = new Date();
+    params.access_timestamp = d.format('Y-m-d H:i');
+    fld.value = OAT.JSON.serialize(params);
+    createHidden('F1', 'dav_SkyDrive_display_name', display_name);
+
+    OAT.Dom.show('tr_dav_SkyDrive_display_name');
+    $('td_dav_SkyDrive_display_name').innerHTML = display_name;
+    $('dav_SkyDrive_authenticate').value = 'Re-Authenticate';
+  }
+}
+
+ODRIVE.boxParams = function (auth_token, display_name)
+{
+  createHidden('F1', 'dav_Box_authentication', 'Yes');
+  createHidden('F1', 'dav_Box_auth_token', auth_token);
+  createHidden('F1', 'dav_Box_display_name', display_name);
+
+  OAT.Dom.show('tr_dav_Box_display_name');
+  $('td_dav_Box_display_name').innerHTML = display_name;
+  $('dav_Box_authenticate').value = 'Re-Authenticate';
+}
diff --git a/appsrc/ODS-Briefcase/www/js/tbl.js b/appsrc/ODS-Briefcase/www/js/tbl.js
index 6bda4f5..ab4ac6f 100644
--- a/appsrc/ODS-Briefcase/www/js/tbl.js
+++ b/appsrc/ODS-Briefcase/www/js/tbl.js
@@ -3,7 +3,7 @@
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2010 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -78,9 +78,7 @@ TBL.createCell42 = function (td, prefix, fldName, No, fldOptions, disabled)
 
 TBL.createCell43 = function (td, prefix, fldName, No, fldOptions)
 {
-	var fld = OAT.Dom.create("select");
-	fld.name = fldName;
-	fld.id = fldName;
+  var fld = TBL.createCellSelect(fldName, fldOptions);
 	TBL.selectOption(fld, fldOptions.value, 'This object only', 0);
 	if (fldOptions.objectType == 'C') {
 	TBL.selectOption(fld, fldOptions.value, 'This object, subfolders and files', 1);
@@ -109,3 +107,53 @@ TBL.clickCell42 = function (fld)
   }
   $(fldName).checked = false;
 }
+
+var Cartridges;
+TBL.createCell45 = function (td, prefix, fldName, No, fldOptions)
+{
+  var fld = TBL.createCellSelect(fldName, fldOptions);
+  if (Cartridges) {
+    TBL.createCell45Options(fld, fldOptions.value);
+  } else {
+    var x = function (data) {
+      try {
+        Cartridges = OAT.JSON.parse(data);
+        TBL.createCell45Options(fld, fldOptions.value);
+      } catch (e) {Cartridges = null;}
+    }
+    OAT.AJAX.GET('ajax.vsp?a=cartridges', '', x);
+  }
+  td.appendChild(fld);
+  return fld;
+}
+
+TBL.createCell45Options = function (fld, fldValue)
+{
+  for (var i = 0; i < Cartridges.length; i++)
+    TBL.selectOption(fld, fldValue, Cartridges[i][1], Cartridges[i][0]);
+}
+
+var MetaCartridges;
+TBL.createCell46 = function (td, prefix, fldName, No, fldOptions)
+{
+  var fld = TBL.createCellSelect(fldName, fldOptions);
+  if (MetaCartridges) {
+    TBL.createCell46Options(fld, fldOptions.value);
+  } else {
+    var x = function (data) {
+      try {
+        MetaCartridges = OAT.JSON.parse(data);
+        TBL.createCell46Options(fld, fldOptions.value);
+      } catch (e) {MetaCartridges = null;}
+    }
+    OAT.AJAX.GET('ajax.vsp?a=metaCartridges', '', x);
+  }
+  td.appendChild(fld);
+  return fld;
+}
+
+TBL.createCell46Options = function (fld, fldValue)
+{
+  for (var i = 0; i < MetaCartridges.length; i++)
+    TBL.selectOption(fld, fldValue, MetaCartridges[i][1], MetaCartridges[i][0]);
+}
diff --git a/appsrc/ODS-Briefcase/www/mimes.vspx b/appsrc/ODS-Briefcase/www/mimes.vspx
index 7ec5b96..18c4968 100644
--- a/appsrc/ODS-Briefcase/www/mimes.vspx
+++ b/appsrc/ODS-Briefcase/www/mimes.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: mimes.vspx,v 1.8.2.5 2011/05/02 14:16:27 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/www/mimes_select.vspx b/appsrc/ODS-Briefcase/www/mimes_select.vspx
index b9f4eda..7154a40 100644
--- a/appsrc/ODS-Briefcase/www/mimes_select.vspx
+++ b/appsrc/ODS-Briefcase/www/mimes_select.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: mimes_select.vspx,v 1.8.2.3 2011/05/02 14:16:27 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/www/odrive_login.vspx b/appsrc/ODS-Briefcase/www/odrive_login.vspx
index 4ad4f24..fe80430 100644
--- a/appsrc/ODS-Briefcase/www/odrive_login.vspx
+++ b/appsrc/ODS-Briefcase/www/odrive_login.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: odrive_login.vspx,v 1.6.2.8 2010/10/07 13:23:47 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -44,6 +44,11 @@
       params := self.vc_page.vc_event.ve_params;
         domain_id := ODRIVE.WA.session_domain (params);
       path := rtrim (case when (domain_id <> -1) then ODRIVE.WA.iri_fix (ODRIVE.WA.forum_iri (domain_id)) else HTTP_REQUESTED_URL() end, '/');
+      if ((page_name = 'home.vspx') and (get_keyword ('id', params, '') <> '') and (lcase (get_keyword ('what', params)) = 'c') and (domain_id <> -1))
+      {
+        self.vc_redirect (sprintf ('%s/home.vspx?dir=%U', path, DB.DBA.DAV_SEARCH_PATH (atoi(get_keyword ('id', params)), 'C')));
+        return;
+      }
       if ((page_name = 'home.vspx') and (get_keyword ('id', params, '') <> '') and (domain_id <> -1))
       {
         self.vc_redirect (sprintf ('%s/view.vsp?file=%U&mode=download', path, DB.DBA.DAV_SEARCH_PATH (atoi(get_keyword ('id', params)), 'R')));
diff --git a/appsrc/ODS-Briefcase/www/settings.vspx b/appsrc/ODS-Briefcase/www/settings.vspx
index ff1d596..a09984c 100644
--- a/appsrc/ODS-Briefcase/www/settings.vspx
+++ b/appsrc/ODS-Briefcase/www/settings.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: settings.vspx,v 1.11.2.6 2010/10/13 12:15:01 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -96,9 +96,9 @@
               <v:text name="tabNo" xhtml_id="tabNo" type="hidden" value="--self.v_tabNo"/>
         <div id="c1">
           <div class="tabs">
-          <vm:tabCaption tab="1" tabs="3" caption="Main"/> 
-          <vm:tabCaption tab="2" tabs="3" caption="Grid"/> 
-          <vm:tabCaption tab="3" tabs="3" caption="Mail Settings"/> 
+                  <vm:tabCaption tab="1" tabs="3" caption="Main"/>&nbsp;
+                  <vm:tabCaption tab="2" tabs="3" caption="Grid"/>&nbsp;
+                  <vm:tabCaption tab="3" tabs="3" caption="Mail Settings"/>&nbsp;
           </div>
           <div class="contents">
             <div id="1" class="tabContent" style="display: none;">
@@ -114,7 +114,7 @@
                     S := case when (ODRIVE.WA.settings_chars (self.settings) = 0) then 'checked="checked"' else '' end;
                     http(sprintf('<input type="radio" name="r_chars" id="r_chars_0" value="0" %s />', S));
                   ?>
-                  <xsl:call-template name="nbsp"/><vm:label for="r_chars_0" value="--'show everything'" />
+                          &nbsp;<vm:label for="r_chars_0" value="--'show everything'" />
                   </td>
                 </tr>
                 <tr>
@@ -126,9 +126,9 @@
                     S := case when (ODRIVE.WA.settings_chars (self.settings) <> 0) then 'checked="checked"' else '' end;
                     http(sprintf('<input type="radio" name="r_chars" id="r_chars_1" value="1" %s />', S));
                   ?>
-                  <xsl:call-template name="nbsp"/><vm:label for="r_chars_1" value="--'show no more than'" /><xsl:call-template name="nbsp"/>
+                          &nbsp;<vm:label for="r_chars_1" value="--'show no more than'" />&nbsp;
                   <v:text name="f_chars" null-value="--''" value="--ODRIVE.WA.settings_chars (self.settings)" xhtml_size="3"/>
-                  <xsl:call-template name="nbsp"/><vm:label for="r_chars_1" value="--'characters'" /><xsl:call-template name="nbsp"/>
+                          &nbsp;<vm:label for="r_chars_1" value="--'characters'" />&nbsp;
                   </td>
                 </tr>
                 <tr>
@@ -300,11 +300,12 @@
         	    ]]>
         	  </v:on-post>
           </v:button>
-                <v:button action="simple" value="Clear" xhtml_class="form-button">
+                <v:button action="simple" value="Clear" xhtml_onclick="javascript: return confirm (\'Do you want to reset settings to default?\');" xhtml_class="form-button">
             <v:on-post>
               <![CDATA[
                       delete from ODRIVE.WA.SETTINGS where USER_ID = self.account_id;
-                      self.settings := vector_concat (vector ('app', DB.DBA.WA_USER_APP_ENABLE (self.account_id)), ODRIVE.WA.settings (self.account_id));
+                      self.settings := vector_concat (vector ('app', DB.DBA.WA_USER_APP_ENABLE (self.account_id)), BMK.WA.settings (self.domain_id));
+
                       self.vc_data_bind(e);
         	    ]]>
         	  </v:on-post>
diff --git a/appsrc/ODS-Briefcase/www/subscriptions.vspx b/appsrc/ODS-Briefcase/www/subscriptions.vspx
index d081fd2..7e930c8 100644
--- a/appsrc/ODS-Briefcase/www/subscriptions.vspx
+++ b/appsrc/ODS-Briefcase/www/subscriptions.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: subscriptions.vspx,v 1.5.2.4 2011/05/02 14:16:27 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/www/template/popup.vspx b/appsrc/ODS-Briefcase/www/template/popup.vspx
index 409855a..9af01f2 100644
--- a/appsrc/ODS-Briefcase/www/template/popup.vspx
+++ b/appsrc/ODS-Briefcase/www/template/popup.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
-  -  $Id: popup.vspx,v 1.4.2.7 2011/07/04 10:04:03 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -46,15 +46,6 @@
       <script type="text/javascript" src="js/odrive.js"></script>
       <script type="text/javascript" src="js/tbl.js"></script>
       <script type="text/javascript">
-        function myInit()
-        {
-          OAT.Preferences.imagePath = '/ods/images/oat/';
-          OAT.Preferences.stylePath = '/ods/oat/styles/';
-          OAT.Preferences.showAjax = false;
-
-          ODRIVE.coloriseTables();
-        }
-        OAT.MSG.attach(OAT, 'PAGE_LOADED', myInit);
         window.onload = function(){OAT.MSG.send(OAT, 'PAGE_LOADED');};
       	window.onkeyup = function (event) {
       		if (event.keyCode == 27) {
diff --git a/appsrc/ODS-Briefcase/www/template/template.vspx b/appsrc/ODS-Briefcase/www/template/template.vspx
index 2bf8780..b506a63 100644
--- a/appsrc/ODS-Briefcase/www/template/template.vspx
+++ b/appsrc/ODS-Briefcase/www/template/template.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: template.vspx,v 1.25.2.13 2011/07/04 10:04:03 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -57,12 +57,6 @@
           user: '<?V ODRIVE.WA.account_name (self.account_id) ?>',
           connectionHeaders: {Authorization: '<?V ODRIVE.WA.account_basicAuthorization (self.account_id) ?>'}
         };
-
-      	/* load stylesheets */
-      	OAT.Style.include("grid.css");
-      	OAT.Style.include("webdav.css");
-      	OAT.Style.include("winms.css");
-
         var featureList=["ajax", "json", "anchor", "dialog", "combolist", "calendar"];
         OAT.Loader.load(featureList);
       </script>
diff --git a/appsrc/ODS-Briefcase/www/template/template.xsl b/appsrc/ODS-Briefcase/www/template/template.xsl
index f41009b..aa71acf 100644
--- a/appsrc/ODS-Briefcase/www/template/template.xsl
+++ b/appsrc/ODS-Briefcase/www/template/template.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: template.xsl,v 1.18.2.10 2011/05/02 14:16:28 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -128,7 +128,7 @@
     <xsl:apply-templates select="vm:init"/>
     <v:form name="F1" method="POST" type="simple" action="--ODRIVE.WA.utf2wide (ODRIVE.WA.page_url (self.domain_id))" xhtml_enctype="multipart/form-data">
       <ods:ods-bar app_type='oDrive'/>
-      <div id="app_area" style="clear: right;">
+      <div id="app_area" style="clear: right; min-width: 1008px;">
       <div style="background-color: #fff;">
         <div style="float: left;">
             <?vsp
@@ -279,7 +279,7 @@
         <div id="FT" style="display: <?V case when get_keyword ('interface', C, '') = 'js' then 'none' else '' end ?>">
         <div id="FT_L">
           <a href="http://www.openlinksw.com/virtuoso">
-            <img alt="Powered by OpenLink Virtuoso Universal Server" src="image/virt_power_no_border.png" border="0" />
+              <img alt="Powered by OpenLink Virtuoso Universal Server" src="/ods/images/virt_power_no_border.png" border="0" />
           </a>
     </div>
         <div id="FT_R">
@@ -372,7 +372,7 @@
   <!--=========================================================================-->
   <xsl:template name="vm:splash">
     <div style="padding: 1em; font-size: 0.70em;">
-      <a href="http://www.openlinksw.com/virtuoso"><img title="Powered by OpenLink Virtuoso Universal Server" src="image/PoweredByVirtuoso.gif" border="0" /></a>
+      <a href="http://www.openlinksw.com/virtuoso"><img title="Powered by OpenLink Virtuoso Universal Server" src="/ods/images/PoweredByVirtuoso.gif" border="0" /></a>
       <br />
       Server version: <?V sys_stat('st_dbms_ver') ?><br/>
       Server build date: <?V sys_stat('st_build_date') ?><br/>
@@ -516,30 +516,17 @@
     <div id="4" class="tabContent" style="display: none;">
       <table class="form-body" cellspacing="0">
     <tr>
-          <th>
-            <v:label for="dav_oMail_DomainId" value="--'oMail domain'" />
-          </th>
-      <td>
-            <v:text name="dav_oMail_DomainId" format="%s" xhtml_disabled="disabled" xhtml_class="field-text">
-              <v:validator test="regexp" regexp="^[0-9]+$" message="Number is expected" runat="client" />
-              <v:before-data-bind>
-                <![CDATA[
-                  control.ufl_value := self.get_fieldProperty ('dav_oMail_DomainId', self.dav_path, 'virt:oMail-DomainId', '1');
-                ]]>
-              </v:before-data-bind>
-            </v:text>
-          </td>
-        </tr>
-        <tr>
-          <th>
-            <v:label for="dav_oMail_FolderName" value="--'oMail folder name'" />
+          <th width="30%">
+            <v:label for="dav_oMail_FolderName" value="--'WebMail folder name'" />
           </th>
           <td>
             <v:text name="dav_oMail_FolderName" format="%s" xhtml_disabled="disabled" xhtml_class="field-text">
               <v:validator test="length" min="1" max="255" message="The input can not be empty." runat="client" />
               <v:before-data-bind>
                 <![CDATA[
-                  control.ufl_value := self.get_fieldProperty ('dav_oMail_FolderName', self.dav_path, 'virt:oMail-FolderName', 'Inbox');
+                  control.ufl_value := self.get_fieldProperty ('dav_oMail_FolderName', self.dav_path, 'virt:oMail-FolderName', 'NULL');
+                  if (control.ufl_value = 'NULL')
+                    control.ufl_value := '';
                 ]]>
               </v:before-data-bind>
             </v:text>
@@ -547,7 +534,7 @@
         </tr>
         <tr>
           <th>
-            <v:label for="dav_oMail_NameFormat" value="--'oMail name format'" />
+            <v:label for="dav_oMail_NameFormat" value="--'WebMail name format'" />
           </th>
           <td>
             <v:text name="dav_oMail_NameFormat" format="%s" xhtml_disabled="disabled" xhtml_class="field-text">
@@ -621,6 +608,19 @@
     <div id="6" class="tabContent" style="display: none;">
       <table class="form-body" cellspacing="0">
         <tr>
+          <th width="30%">
+            <v:label for="dav_S3_activity" value="--'Activity manager (on/off)'" />
+          </th>
+          <td>
+            <?vsp
+              declare S varchar;
+
+              S := self.get_fieldProperty ('dav_S3_activity', self.dav_path, 'virt:S3-activity', 'off');
+              http (sprintf ('<input type="checkbox" name="dav_S3_activity" id="dav_S3_activity" %s disabled="disabled" value="on" />', case when S = 'on' then 'checked="checked"' else '' end));
+            ?>
+          </td>
+        </tr>
+        <tr>
           <th>
             <v:label for="dav_S3_BucketName" value="Bucket Name" />
           </th>
@@ -665,7 +665,31 @@
             </v:text>
           </td>
         </tr>
+        <tr>
+          <th>
+            <v:label for="dav_S3_graph" value="--'Graph name'" />
+          </th>
+          <td>
+            <v:text name="dav_S3_graph" xhtml_id="dav_S3_graph" format="%s" xhtml_disabled="disabled" xhtml_class="field-text">
+              <v:before-data-bind>
+                <![CDATA[
+                  control.ufl_value := self.get_fieldProperty ('dav_S3_graph', self.dav_path, 'virt:S3-graph', '');
+                  if ((control.ufl_value = '') and (self.command = 0))
+                    control.ufl_value := ODRIVE.WA.host_url () || rtrim (WS.WS.FIXPATH (ODRIVE.WA.odrive_real_path (self.dav_path)), '/') || '#this';
+                ]]>
+              </v:before-data-bind>
+            </v:text>
+          </td>
+        </tr>
+        <?vsp
+          self.detSpongerUI ('S3', 6);
+        ?>
       </table>
+      <![CDATA[
+  	    <script type="text/javascript">
+          OAT.MSG.attach(OAT, "PAGE_LOADED", function(){destinationChange($('dav_S3_sponger'), {checked: {show: ['dav6_cartridge', 'dav6_metaCartridge']}})});
+  	    </script>
+  	  ]]>
     </div>
   </xsl:template>
 
@@ -729,7 +753,7 @@
       </table>
           </td>
           <td valign="top" nowrap="nowrap" width="1%">
-            <span class="button pointer" onclick="javascript: ODRIVE.searchRowCreate();"><img src="image/add_16.png" border="0" class="button" alt="Add Criteria" title="Add Criteria" /> Add</span><br /><br />
+            <span class="button pointer" onclick="javascript: ODRIVE.searchRowCreate();"><img src="/ods/images/icons/add_16.png" border="0" class="button" alt="Add Criteria" title="Add Criteria" /> Add</span><br /><br />
           </td>
         </tr>
       </table>
@@ -741,15 +765,17 @@
     <div id="8" class="tabContent" style="display: none;">
       <table class="form-body" cellspacing="0">
         <tr>
-          <th>
-            <v:label for="dav_rdfSink_rdfGraph" value="--'Graph name'" />
+          <th width="30%">
+            <v:label for="dav_rdfSink_graph" value="--'Graph name'" />
           </th>
           <td>
-            <v:text name="dav_rdfSink_rdfGraph" format="%s" xhtml_disabled="disabled" xhtml_class="field-text">
+            <v:text name="dav_rdfSink_graph" xhtml_id="dav_rdfSink_graph" format="%s" xhtml_disabled="disabled" xhtml_class="field-text">
               <v:validator test="length" min="1" max="255" message="The input can not be empty." runat="client" />
               <v:before-data-bind>
                 <![CDATA[
-                  control.ufl_value := self.get_fieldProperty ('dav_rdfSink_rdfGraph', self.dav_path, 'virt:rdf_graph', '');
+                  control.ufl_value := self.get_fieldProperty ('dav_rdfSink_graph', self.dav_path, 'virt:rdf_graph', '');
+                  if ((control.ufl_value = '') and (self.command = 10))
+                    control.ufl_value := ODRIVE.WA.host_url () || rtrim (WS.WS.FIXPATH (ODRIVE.WA.odrive_real_path (self.dav_path)), '/') || '/#this';
                 ]]>
               </v:before-data-bind>
             </v:text>
@@ -760,17 +786,91 @@
             <v:label for="dav_rdfSink_rdfSponger" value="--'Sponger (on/off)'" />
           </th>
           <td>
-            <v:text name="dav_rdfSink_rdfSponger" format="%s" xhtml_disabled="disabled" xhtml_class="field-short">
-              <v:before-data-bind>
-                <![CDATA[
-                  control.ufl_value := self.get_fieldProperty ('dav_rdfSink_rdfSponger', self.dav_path, 'virt:rdf_sponger', '');
-                ]]>
-              </v:before-data-bind>
-            </v:text>
+            <?vsp
+              declare S varchar;
+
+              S := self.get_fieldProperty ('dav_rdfSink_rdfSponger', self.dav_path, 'virt:rdf_sponger', 'off');
+              http (sprintf ('<input type="checkbox" name="dav_rdfSink_rdfSponger" id="dav_rdfSink_rdfSponger" %s disabled="disabled" onchange="javascript: destinationChange(this, {checked: {show: [\'dav_cartridge\', \'dav_metaCartridge\']}, unchecked: {hide: [\'dav_cartridge\', \'dav_metaCartridge\']}});" value="on" />', case when S = 'on' then 'checked="checked"' else '' end));
+            ?>
+          </td>
+        </tr>
+        <tr id="dav_cartridge" style="display: none;">
+          <th valign="top">Sponger Extractor Cartridges</th>
+          <td>
+            <div style="margin-bottom: 6px; max-height: 200px; overflow: auto;">
+              <?vsp
+                declare N integer;
+                declare cartridges, selectedCartridges any;
+
+                selectedCartridges := self.get_fieldProperty ('dav_rdfSink_rdfCartridges', self.dav_path, 'virt:rdf_cartridges', '');
+                selectedCartridges := split_and_decode (selectedCartridges, 0, '\0\0,');
+                cartridges := ODRIVE.WA.cartridges_get ();
+              ?>
+              <table id="ca_tbl" class="ODS_grid" cellspacing="0">
+                <thead>
+                  <tr>
+                    <th><input type="checkbox" name="ca_select" value="Select All" onclick="selectAllCheckboxes (this, 'ca_item', true)" title="Select All" /></th>
+                    <th width="100%">Cartridge</th>
+                  </tr>
+                </thead>
+                <?vsp
+                  for (N := 0; N < length (cartridges); N := N + 1)
+                  {
+                    http ('<tr>');
+                    http (sprintf ('<td class="checkbox"><input type="checkbox" name="ca_item" value="%d" disabled="disabled" %s /></td>', cartridges[N][0], case when ODRIVE.WA.vector_contains (selectedCartridges, cast (cartridges[N][0] as varchar)) then 'checked="checked"' else '' end));
+                    http (sprintf ('<td>%V</td>', cartridges[N][1]));
+                    http ('</tr>');
+                  }
+                  if (length (cartridges) = 0)
+                    http ('<tr><td colspan="2"><b>No available cartridges</b></td></tr>');
+                ?>
+              </table>
+            </div>
           </td>
         </tr>
+        <vm:if test="DB.DBA.wa_check_package ('cartridges')">
+          <tr id="dav_metaCartridge" style="display: none;">
+            <th valign="top">Sponger Meta Cartridges</th>
+            <td>
+              <div style="margin-bottom: 6px; max-height: 200px; overflow: auto;">
+                <?vsp
+                  declare N integer;
+                  declare cartridges, selectedCartridges any;
+
+                  selectedCartridges := self.get_fieldProperty ('dav_rdfSink_rdfMetaCartridges', self.dav_path, 'virt:rdf_metaCartridges', '');
+                  selectedCartridges := split_and_decode (selectedCartridges, 0, '\0\0,');
+                  cartridges := ODRIVE.WA.metaCartridges_get ();
+                ?>
+                <table id="mca_tbl" class="ODS_grid" cellspacing="0">
+                  <thead>
+                    <tr>
+                      <th><input type="checkbox" name="mca_select" value="Select All" onclick="selectAllCheckboxes (this, 'mca_item', true)" title="Select All" /></th>
+                      <th width="100%">Meta Cartridge</th>
+                    </tr>
+                  </thead>
+                  <?vsp
+                    for (N := 0; N < length (cartridges); N := N + 1)
+                    {
+                      http ('<tr>');
+                      http (sprintf ('<td class="checkbox"><input type="checkbox" name="mca_item" value="%d" disabled="disabled" %s /></td>', cartridges[N][0], case when ODRIVE.WA.vector_contains (selectedCartridges, cast (cartridges[N][0] as varchar)) then 'checked="checked"' else '' end));
+                      http (sprintf ('<td>%V</td>', cartridges[N][1]));
+                      http ('</tr>');
+                    }
+                    if (length (cartridges) = 0)
+                      http ('<tr><td colspan="2"><b>No available cartridges</b></td></tr>');
+                  ?>
       </table>
         </div>
+            </td>
+          </tr>
+        </vm:if>
+      </table>
+      <![CDATA[
+  	    <script type="text/javascript">
+          OAT.MSG.attach(OAT, "PAGE_LOADED", function(){destinationChange($('dav_rdfSink_rdfSponger'), {checked: {show: ['dav_cartridge', 'dav_metaCartridge']}})});
+  	    </script>
+  	  ]]>
+  	</div>
   </xsl:template>
 
   <!--=========================================================================-->
@@ -783,10 +883,10 @@
           </th>
           <td>
             <?vsp
-              http (sprintf ('Lock is <b>%s</b>, ', ODRIVE.WA.DAV_GET_INFO (ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath'), 'lockState')));
-              http (sprintf ('Version Control is <b>%s</b>, ', ODRIVE.WA.DAV_GET_INFO (ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath'), 'vc')));
-              http (sprintf ('Auto Versioning is <b>%s</b>, ', ODRIVE.WA.DAV_GET_INFO (ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath'), 'avcState')));
-              http (sprintf ('Version State is <b>%s</b>', ODRIVE.WA.DAV_GET_INFO (ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath'), 'vcState')));
+              http (sprintf ('Lock is <b>%s</b>, ', ODRIVE.WA.DAV_GET_INFO (self.dav_path, 'lockState')));
+              http (sprintf ('Version Control is <b>%s</b>, ', ODRIVE.WA.DAV_GET_INFO (self.dav_path, 'vc')));
+              http (sprintf ('Auto Versioning is <b>%s</b>, ', ODRIVE.WA.DAV_GET_INFO (self.dav_path, 'avcState')));
+              http (sprintf ('Version State is <b>%s</b>', ODRIVE.WA.DAV_GET_INFO (self.dav_path, 'vcState')));
             ?>
           </td>
         </tr>
@@ -803,9 +903,9 @@
 
                     if (ODRIVE.WA.DAV_GET (self.dav_item, 'versionControl'))
                     {
-                      retValue := ODRIVE.WA.DAV_REMOVE_VERSION_CONTROL (ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath'));
+                      retValue := ODRIVE.WA.DAV_REMOVE_VERSION_CONTROL (self.dav_path);
                     } else {
-                      retValue := ODRIVE.WA.DAV_VERSION_CONTROL (ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath'));
+                      retValue := ODRIVE.WA.DAV_VERSION_CONTROL (self.dav_path);
                     }
                     if (ODRIVE.WA.DAV_ERROR(retValue))
                     {
@@ -827,12 +927,12 @@
               File commands
             </th>
             <td>
-              <v:button name="tepmpate_lock" action="simple" value="Lock" enabled="-- case when (ODRIVE.WA.DAV_IS_LOCKED(ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath'))) then 0 else 1 end" xhtml_class="button">
+              <v:button name="tepmpate_lock" action="simple" value="Lock" enabled="-- case when (ODRIVE.WA.DAV_IS_LOCKED (self.dav_path)) then 0 else 1 end" xhtml_class="button">
                 <v:on-post>
                   <![CDATA[
                     declare retValue any;
 
-                    retValue := ODRIVE.WA.DAV_LOCK (ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath'));
+                    retValue := ODRIVE.WA.DAV_LOCK (self.dav_path);
                     if (ODRIVE.WA.DAV_ERROR(retValue))
                     {
                       self.vc_error_message := ODRIVE.WA.DAV_PERROR(retValue);
@@ -843,12 +943,12 @@
                   ]]>
                 </v:on-post>
               </v:button>
-              <v:button name="tepmpate_unlock" action="simple" value="Unlock" enabled="-- case when (ODRIVE.WA.DAV_IS_LOCKED(ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath'))) then 1 else 0 end" xhtml_class="button">
+              <v:button name="tepmpate_unlock" action="simple" value="Unlock" enabled="-- case when (ODRIVE.WA.DAV_IS_LOCKED (self.dav_path)) then 1 else 0 end" xhtml_class="button">
                 <v:on-post>
                   <![CDATA[
                     declare retValue any;
 
-                    retValue := ODRIVE.WA.DAV_UNLOCK (ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath'));
+                    retValue := ODRIVE.WA.DAV_UNLOCK (self.dav_path);
                     if (ODRIVE.WA.DAV_ERROR(retValue))
                     {
                       self.vc_error_message := ODRIVE.WA.DAV_PERROR(retValue);
@@ -871,8 +971,9 @@
                   <![CDATA[
                     declare retValue any;
 
-                    retValue := ODRIVE.WA.DAV_CHECKIN (ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath'));
-                    if (ODRIVE.WA.DAV_ERROR(retValue)) {
+                    retValue := ODRIVE.WA.DAV_CHECKIN (self.dav_path);
+                    if (ODRIVE.WA.DAV_ERROR (retValue))
+                    {
                       self.vc_error_message := ODRIVE.WA.DAV_PERROR(retValue);
                       self.vc_is_valid := 0;
                       return;
@@ -886,7 +987,7 @@
                   <![CDATA[
                     declare retValue any;
 
-                    retValue := ODRIVE.WA.DAV_CHECKOUT (ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath'));
+                    retValue := ODRIVE.WA.DAV_CHECKOUT (self.dav_path);
                     if (ODRIVE.WA.DAV_ERROR(retValue))
                     {
                       self.vc_error_message := ODRIVE.WA.DAV_PERROR(retValue);
@@ -902,7 +1003,7 @@
                   <![CDATA[
                     declare retValue any;
 
-                    retValue := ODRIVE.WA.DAV_UNCHECKOUT (ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath'));
+                    retValue := ODRIVE.WA.DAV_UNCHECKOUT (self.dav_path);
                     if (ODRIVE.WA.DAV_ERROR(retValue))
                     {
                       self.vc_error_message := ODRIVE.WA.DAV_PERROR(retValue);
@@ -920,7 +1021,7 @@
               Number of Versions in History
             </th>
             <td>
-              <v:label value="--ODRIVE.WA.DAV_GET_VERSION_COUNT(ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath'))" format="%d" />
+              <v:label value="--ODRIVE.WA.DAV_GET_VERSION_COUNT (self.dav_path)" format="%d" />
             </td>
           </tr>
           <tr>
@@ -928,12 +1029,12 @@
               Root version
             </th>
             <td>
-              <v:button style="url" action="simple" value="--ODRIVE.WA.DAV_GET_VERSION_ROOT(ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath'))" format="%s">
+              <v:button style="url" action="simple" value="--ODRIVE.WA.DAV_GET_VERSION_ROOT (self.dav_path)" format="%s">
                 <v:on-post>
                   <![CDATA[
                     declare path varchar;
 
-                    path := ODRIVE.WA.DAV_GET_VERSION_ROOT(ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath'));
+                    path := ODRIVE.WA.DAV_GET_VERSION_ROOT (self.dav_path);
                     if (ODRIVE.WA.odrive_permission(path) = '')
                     {
                       self.vc_error_message := 'You have not rights to read this folder/file!';
@@ -951,7 +1052,7 @@
             </td>
           </tr>
           <tr>
-            <th>Versions</th>
+            <th valign="top">Versions</th>
             <td>
               <v:data-set name="ds_versions" sql="select rs.* from ODRIVE.WA.DAV_GET_VERSION_SET(rs0)(c0 varchar, c1 integer) rs where rs0 = :p0" nrows="0" scrollable="1">
                 <v:param name="p0" value="--ODRIVE.WA.DAV_GET (self.dav_item, 'fullPath')" />
@@ -997,7 +1098,7 @@
                                 }
 
                                 http_request_status ('HTTP/1.1 302 Found');
-                                http_header (sprintf ('Location: view.vsp?sid=%s&realm=%s&file=%U&mode=download\r\n', self.sid , self.realm, path));
+                                http_header (sprintf ('Location: %s&mode=download&file=%U\r\n', ODRIVE.WA.page_url (self.domain_id, 'view.vsp', self.sid , self.realm), path));
                                 self.vc_data_bind (e);
                               ]]>
                             </v:on-post>
@@ -1028,7 +1129,7 @@
                           <v:button name="button_versions_delete" action="simple" style="url" value="Version Delete" enabled="--(control.vc_parent as vspx_row_template).te_column_value('c1')">
                             <v:after-data-bind>
                               <![CDATA[
-                                control.ufl_value := '<img src="image/del_16.png" border="0" alt="Version Delete" title="Version Delete" onclick="javascript: if (!confirm(\'Are you sure you want to delete the chosen version and all previous versions?\')) { event.cancelBubble = true;};" />';
+                                control.ufl_value := '<img src="/ods/images/icons/del_16.png" border="0" alt="Version Delete" title="Version Delete" onclick="javascript: if (!confirm(\'Are you sure you want to delete the chosen version and all previous versions?\')) { event.cancelBubble = true;};" />';
                               ]]>
                             </v:after-data-bind>
                             <v:on-post>
@@ -1136,9 +1237,549 @@
   </xsl:template>
 
   <!--=========================================================================-->
+  <xsl:template match="vm:search-dc-template11">
+    <div id="10" class="tabContent" style="display: none;">
+      <table class="form-body" cellspacing="0">
+        <tr>
+          <th width="30%">SyncML version</th>
+          <td>
+            <select name="syncml_version">
+              <?vsp
+                declare aValues, aValue any;
+                declare N integer;
+
+                aValue := case when (self.command_mode = 0) then 'N' else ODRIVE.WA.syncml_version (self.dav_path) end;
+                aValues := ODRIVE.WA.syncml_versions ();
+                for (N := 2; N < length (aValues); N := N + 2)
+                {
+                  http(sprintf('<option value="%s" %s>%s</option>', aValues[N], select_if(aValue, aValues[N]), aValues[N+1]));
+                }
+              ?>
+            </select>
+          </td>
+        </tr>
+        <tr>
+          <th>SyncML type</th>
+          <td>
+            <select name="syncml_type">
+              <?vsp
+                declare aValues, aValue any;
+                declare N integer;
+
+                aValue := case when (self.command_mode = 0) then 'N' else ODRIVE.WA.syncml_type (self.dav_path) end;
+                aValues := ODRIVE.WA.syncml_types ();
+                for (N := 2; N < length (aValues); N := N + 2)
+                {
+                  http(sprintf('<option value="%s" %s>%s</option>', aValues[N], select_if (aValue, aValues[N]), aValues[N+1]));
+                }
+              ?>
+            </select>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </xsl:template>
+
+  <!--=========================================================================-->
+  <xsl:template match="vm:search-dc-template12">
+    <div id="11" class="tabContent" style="display: none;">
+      <table class="form-body" cellspacing="0">
+        <tr>
+          <th width="30%">Connection Type</th>
+          <td>
+            <select name="dav_IMAP_connection" onchange="javascript: $('dav_IMAP_port').value = (this.value == 'ssl')? '993': '143';">
+              <?vsp
+                declare aValues, aValue any;
+                declare N integer;
+
+                aValue := self.get_fieldProperty ('dav_IMAP_connection', self.dav_path, 'virt:IMAP-connection', '');
+                aValues := vector ('none', 'None', 'ssl', 'SSL/TSL');
+                for (N := 0; N < length (aValues); N := N + 2)
+                  http (sprintf ('<option value="%s" %s>%s</option>', aValues[N], select_if(aValue, aValues[N]), aValues[N+1]));
+              ?>
+            </select>
+          </td>
+        </tr>
+        <tr>
+          <th>Server Address</th>
+          <td>
+            <v:text name="dav_IMAP_server" format="%s" xhtml_disabled="disabled" xhtml_class="field-text">
+              <v:before-data-bind>
+                <![CDATA[
+                  control.ufl_value := self.get_fieldProperty ('dav_IMAP_server', self.dav_path, 'virt:IMAP-server', '');
+                ]]>
+              </v:before-data-bind>
+            </v:text>
+          </td>
+        </tr>
+        <tr>
+          <th>Server Port</th>
+          <td>
+            <v:text name="dav_IMAP_port" xhtml_id="dav_IMAP_port" format="%s" xhtml_disabled="disabled" xhtml_class="field-short">
+              <v:before-data-bind>
+                <![CDATA[
+                  control.ufl_value := self.get_fieldProperty ('dav_IMAP_port', self.dav_path, 'virt:IMAP-port', '143');
+                ]]>
+              </v:before-data-bind>
+            </v:text>
+          </td>
+        </tr>
+        <tr>
+          <th>User Name</th>
+          <td>
+            <v:text name="dav_IMAP_user" format="%s" xhtml_disabled="disabled" xhtml_class="field-short">
+              <v:before-data-bind>
+                <![CDATA[
+                  control.ufl_value := self.get_fieldProperty ('dav_IMAP_user', self.dav_path, 'virt:IMAP-user', '');
+                ]]>
+              </v:before-data-bind>
+            </v:text>
+          </td>
+        </tr>
+        <tr>
+          <th>User Password</th>
+          <td>
+            <v:text type="password" name="dav_IMAP_password" format="%s" xhtml_disabled="disabled" xhtml_class="field-short">
+              <v:before-data-bind>
+                <![CDATA[
+                  control.ufl_value := self.get_fieldProperty ('dav_IMAP_password', self.dav_path, 'virt:IMAP-password', '');
+                ]]>
+              </v:before-data-bind>
+            </v:text>
+          </td>
+        </tr>
+        <tr>
+          <th>
+            <v:label for="dav_IMAP_graph" value="--'Graph name'" />
+          </th>
+          <td>
+            <v:text name="dav_IMAP_graph" xhtml_id="dav_IMAP_graph" format="%s" xhtml_disabled="disabled" xhtml_class="field-text">
+              <v:before-data-bind>
+                <![CDATA[
+                  control.ufl_value := self.get_fieldProperty ('dav_IMAP_graph', self.dav_path, 'virt:rdf_graph', '');
+                  if ((control.ufl_value = '') and (self.command = 10))
+                    control.ufl_value := ODRIVE.WA.host_url () || rtrim (WS.WS.FIXPATH (ODRIVE.WA.odrive_real_path (self.dav_path)), '/') || '#this';
+                ]]>
+              </v:before-data-bind>
+            </v:text>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </xsl:template>
+
+  <!--=========================================================================-->
+  <xsl:template match="vm:search-dc-template13">
+    <div id="12" class="tabContent" style="display: none;">
+            <?vsp
+              declare _value any;
+
+              _value := self.get_fieldProperty ('===', self.dav_path, 'virt:GDrive-Authentication', 'No');
+            ?>
+      <table class="form-body" cellspacing="0">
+        <tr>
+          <th width="30%">
+            <v:label for="dav_GDrive_activity" value="--'Activity manager (on/off)'" />
+          </th>
+          <td>
+            <?vsp
+              declare S varchar;
+
+              S := self.get_fieldProperty ('dav_GDrive_activity', self.dav_path, 'virt:GDrive-activity', 'off');
+              http (sprintf ('<input type="checkbox" name="dav_GDrive_activity" id="dav_GDrive_activity" %s disabled="disabled" value="on" />', case when S = 'on' then 'checked="checked"' else '' end));
+            ?>
+          </td>
+        </tr>
+        <tr>
+          <th>
+            <v:label for="dav_GDrive_graph" value="--'Graph name'" />
+          </th>
+          <td>
+            <v:text name="dav_GDrive_graph" xhtml_id="dav_GDrive_graph" format="%s" xhtml_disabled="disabled" xhtml_class="field-text">
+              <v:before-data-bind>
+                <![CDATA[
+                  control.ufl_value := self.get_fieldProperty ('dav_GDrive_graph', self.dav_path, 'virt:GDrive-graph', '');
+                  if ((control.ufl_value = '') and (self.command = 0))
+                    control.ufl_value := ODRIVE.WA.host_url () || rtrim (WS.WS.FIXPATH (ODRIVE.WA.odrive_real_path (self.dav_path)), '/') || '#this';
+                ]]>
+              </v:before-data-bind>
+            </v:text>
+          </td>
+        </tr>
+              <?vsp
+          self.detSpongerUI ('GDrive', 12);
+              ?>
+        <tr id="tr_dav_GDrive_display_name" style="display: <?V case when _value = 'Yes' then '' else 'none' end ?>">
+          <th>User name</th>
+          <td id="td_dav_GDrive_display_name">
+            <?vsp
+              http (self.get_fieldProperty ('===', self.dav_path, 'virt:GDrive-display_name', ''));
+            ?>
+          </td>
+        </tr>
+        <tr id="tr_dav_GDrive_email" style="display: <?V case when _value = 'Yes' then '' else 'none' end ?>">
+          <th>User email</th>
+          <td id="td_dav_GDrive_email">
+            <?vsp
+              http (self.get_fieldProperty ('===', self.dav_path, 'virt:GDrive-email', ''));
+            ?>
+          </td>
+        </tr>
+        <tr>
+          <th></th>
+          <td>
+            <?vsp
+              declare _name, _client_id, _return_url, _scope, _url any;
+
+              _name := '';
+              if (_value = 'No')
+                _name := 'Authenticate';
+              if (_value = 'Yes')
+                _name := 'Re-Authenticate';
+
+              _client_id := (select a_key from OAUTH..APP_REG where a_name = 'Google API' and a_owner = 0);
+              _return_url := sprintf ('http://%{WSHost}s/ods/access_google.vsp', http_path());
+              _scope := 'https://docs.google.com/feeds/ https://docs.googleusercontent.com/ https://spreadsheets.google.com/feeds/ https://www.googleapis.com/auth/fusiontables https://www.googleapis.com/auth/drive.file';
+              _url := sprintf ('https://accounts.google.com/o/oauth2/auth?client_id=%U&redirect_uri=%U&scope=%U&response_type=%U&access_type=%U&state=%U&approval_prompt=%U', _client_id, _return_url, _scope, 'code', 'offline', self.sid, 'force');
+              http (sprintf ('<input type="button" id="dav_GDrive_authenticate" value="%s" onclick="javascript: windowShowInternal(\'%s\');" disabled="disabled" class="button" />', _name, _url));
+            ?>
+          </td>
+        </tr>
+      </table>
+      <![CDATA[
+  	    <script type="text/javascript">
+          OAT.MSG.attach(OAT, "PAGE_LOADED", function(){destinationChange($('dav_GDrive_sponger'), {checked: {show: ['dav12_cartridge', 'dav12_metaCartridge']}})});
+  	    </script>
+  	  ]]>
+    </div>
+  </xsl:template>
+
+  <!--=========================================================================-->
+  <xsl:template match="vm:search-dc-template14">
+    <div id="13" class="tabContent" style="display: none;">
+      <?vsp
+        declare _value any;
+
+        _value := self.get_fieldProperty ('===', self.dav_path, 'virt:Dropbox-Authentication', 'No');
+      ?>
+      <table class="form-body" cellspacing="0">
+        <tr>
+          <th width="30%">
+            <v:label for="dav_Dropbox_activity" value="--'Activity manager (on/off)'" />
+          </th>
+          <td>
+            <?vsp
+              declare S varchar;
+
+              S := self.get_fieldProperty ('dav_Dropbox_activity', self.dav_path, 'virt:Dropbox-activity', 'off');
+              http (sprintf ('<input type="checkbox" name="dav_Dropbox_activity" id="dav_Dropbox_activity" %s disabled="disabled" value="on" />', case when S = 'on' then 'checked="checked"' else '' end));
+            ?>
+          </td>
+        </tr>
+        <tr>
+          <th>
+            <v:label for="dav_Dropbox_graph" value="--'Graph name'" />
+          </th>
+          <td>
+            <v:text name="dav_Dropbox_graph" xhtml_id="dav_Dropbox_graph" format="%s" xhtml_disabled="disabled" xhtml_class="field-text">
+              <v:before-data-bind>
+                <![CDATA[
+                  control.ufl_value := self.get_fieldProperty ('dav_Dropbox_graph', self.dav_path, 'virt:Dropbox-graph', '');
+                  if ((control.ufl_value = '') and (self.command = 0))
+                    control.ufl_value := ODRIVE.WA.host_url () || rtrim (WS.WS.FIXPATH (ODRIVE.WA.odrive_real_path (self.dav_path)), '/') || '#this';
+                ]]>
+              </v:before-data-bind>
+            </v:text>
+          </td>
+        </tr>
+                  <?vsp
+          self.detSpongerUI ('Dropbox', 13);
+                  ?>
+        <tr id="tr_dav_Dropbox_display_name" style="display: <?V case when _value = 'Yes' then '' else 'none' end ?>">
+          <th>User name</th>
+          <td id="td_dav_Dropbox_display_name">
+            <?vsp
+              http (self.get_fieldProperty ('===', self.dav_path, 'virt:Dropbox-display_name', ''));
+            ?>
+          </td>
+        </tr>
+        <tr id="tr_dav_Dropbox_email" style="display: <?V case when _value = 'Yes' then '' else 'none' end ?>">
+          <th>User email</th>
+          <td id="td_dav_Dropbox_email">
+            <?vsp
+              http (self.get_fieldProperty ('===', self.dav_path, 'virt:Dropbox-email', ''));
+            ?>
+          </td>
+        </tr>
+        <tr>
+          <th></th>
+          <td>
+            <?vsp
+              declare _name, _url any;
+
+              _name := '';
+              if (_value = 'No')
+                _name := 'Authenticate';
+              if (_value = 'Yes')
+                _name := 'Re-Authenticate';
+
+              _url := '/ods/access_dropbox.vsp';
+              http (sprintf ('<input type="button" id="dav_Dropbox_authenticate" value="%s" onclick="javascript: windowShowInternal(\'%s\');" disabled="disabled" class="button" />', _name, _url));
+            ?>
+          </td>
+        </tr>
+      </table>
+      <![CDATA[
+  	    <script type="text/javascript">
+          OAT.MSG.attach(OAT, "PAGE_LOADED", function(){destinationChange($('dav_Dropbox_sponger'), {checked: {show: ['dav13_cartridge', 'dav13_metaCartridge']}})});
+  	    </script>
+  	  ]]>
+    </div>
+  </xsl:template>
+
+  <!--=========================================================================-->
+  <xsl:template match="vm:search-dc-template15">
+    <div id="14" class="tabContent" style="display: none;">
+      <?vsp
+        declare _value any;
+
+        _value := self.get_fieldProperty ('===', self.dav_path, 'virt:SkyDrive-Authentication', 'No');
+      ?>
+      <table class="form-body" cellspacing="0">
+        <tr>
+          <th width="30%">
+            <v:label for="dav_SkyDrive_activity" value="--'Activity manager (on/off)'" />
+          </th>
+          <td>
+            <?vsp
+              declare S varchar;
+
+              S := self.get_fieldProperty ('dav_SkyDrive_activity', self.dav_path, 'virt:SkyDrive-activity', 'off');
+              http (sprintf ('<input type="checkbox" name="dav_SkyDrive_activity" id="dav_SkyDrive_activity" %s disabled="disabled" value="on" />', case when S = 'on' then 'checked="checked"' else '' end));
+            ?>
+          </td>
+        </tr>
+        <tr>
+          <th>
+            <v:label for="dav_SkyDrive_graph" value="--'Graph name'" />
+          </th>
+          <td>
+            <v:text name="dav_SkyDrive_graph" xhtml_id="dav_SkyDrive_graph" format="%s" xhtml_disabled="disabled" xhtml_class="field-text">
+              <v:before-data-bind>
+                <![CDATA[
+                  control.ufl_value := self.get_fieldProperty ('dav_SkyDrive_graph', self.dav_path, 'virt:SkyDrive-graph', '');
+                  if ((control.ufl_value = '') and (self.command = 0))
+                    control.ufl_value := ODRIVE.WA.host_url () || rtrim (WS.WS.FIXPATH (ODRIVE.WA.odrive_real_path (self.dav_path)), '/') || '#this';
+                ]]>
+              </v:before-data-bind>
+            </v:text>
+          </td>
+        </tr>
+                  <?vsp
+          self.detSpongerUI ('SkyDrive', 14);
+                  ?>
+        <tr id="tr_dav_SkyDrive_display_name" style="display: <?V case when _value = 'Yes' then '' else 'none' end ?>">
+          <th>User name</th>
+          <td id="td_dav_SkyDrive_display_name">
+            <?vsp
+              http (self.get_fieldProperty ('===', self.dav_path, 'virt:SkyDrive-display_name', ''));
+            ?>
+          </td>
+        </tr>
+        <tr>
+          <th></th>
+          <td>
+            <?vsp
+              declare _name, _client_id, _return_url, _scope, _url any;
+
+              _name := '';
+              if (_value = 'No')
+                _name := 'Authenticate';
+              if (_value = 'Yes')
+                _name := 'Re-Authenticate';
+
+              _client_id := (select a_key from OAUTH..APP_REG where a_name = 'SkyDrive API' and a_owner = 0);
+              _return_url := sprintf ('http://%{WSHost}s/ods/access_skydrive.vsp', http_path());
+              _scope := 'wl.signin wl.basic wl.offline_access wl.skydrive wl.skydrive_update';
+              _url := sprintf ('https://login.live.com/oauth20_authorize.srf?client_id=%U&redirect_uri=%U&scope=%U&response_type=%U', _client_id, _return_url, _scope, 'code');
+              http (sprintf ('<input type="button" id="dav_SkyDrive_authenticate" value="%s" onclick="javascript: windowShowInternal(\'%s\');" disabled="disabled" class="button" />', _name, _url));
+            ?>
+          </td>
+        </tr>
+      </table>
+      <![CDATA[
+  	    <script type="text/javascript">
+          OAT.MSG.attach(OAT, "PAGE_LOADED", function(){destinationChange($('dav_SkyDrive_sponger'), {checked: {show: ['dav14_cartridge', 'dav14_metaCartridge']}})});
+  	    </script>
+  	  ]]>
+    </div>
+  </xsl:template>
+
+  <!--=========================================================================-->
+  <xsl:template match="vm:search-dc-template16">
+    <div id="15" class="tabContent" style="display: none;">
+      <?vsp
+        declare _value any;
+
+        _value := self.get_fieldProperty ('===', self.dav_path, 'virt:Box-Authentication', 'No');
+      ?>
+      <table class="form-body" cellspacing="0">
+        <tr>
+          <th width="30%">
+            <v:label for="dav_Box_activity" value="--'Activity manager (on/off)'" />
+          </th>
+          <td>
+            <?vsp
+              declare S varchar;
+
+              S := self.get_fieldProperty ('dav_Box_activity', self.dav_path, 'virt:Box-activity', 'off');
+              http (sprintf ('<input type="checkbox" name="dav_Box_activity" id="dav_Box_activity" %s disabled="disabled" value="on" />', case when S = 'on' then 'checked="checked"' else '' end));
+            ?>
+          </td>
+        </tr>
+        <tr>
+          <th>
+            <v:label for="dav_Box_graph" value="--'Graph name'" />
+          </th>
+          <td>
+            <v:text name="dav_Box_graph" xhtml_id="dav_Box_graph" format="%s" xhtml_disabled="disabled" xhtml_class="field-text">
+              <v:before-data-bind>
+                <![CDATA[
+                  control.ufl_value := self.get_fieldProperty ('dav_Box_graph', self.dav_path, 'virt:Box-graph', '');
+                  if ((control.ufl_value = '') and (self.command = 0))
+                    control.ufl_value := ODRIVE.WA.host_url () || rtrim (WS.WS.FIXPATH (ODRIVE.WA.odrive_real_path (self.dav_path)), '/') || '#this';
+                ]]>
+              </v:before-data-bind>
+            </v:text>
+          </td>
+        </tr>
+                  <?vsp
+          self.detSpongerUI ('Box', 15);
+                  ?>
+        <tr id="tr_dav_Box_display_name" style="display: <?V case when _value = 'Yes' then '' else 'none' end ?>">
+          <th>User name</th>
+          <td id="td_dav_Box_display_name">
+            <?vsp
+              http (self.get_fieldProperty ('===', self.dav_path, 'virt:Box-display_name', ''));
+            ?>
+          </td>
+        </tr>
+        <tr>
+          <th></th>
+          <td>
+            <?vsp
+              declare _name, _url any;
+
+              _name := '';
+              if (_value = 'No')
+                _name := 'Authenticate';
+              if (_value = 'Yes')
+                _name := 'Re-Authenticate';
+
+              _url := '/ods/access_box.vsp';
+              http (sprintf ('<input type="button" id="dav_Box_authenticate" value="%s" onclick="javascript: windowShowInternal(\'%s\', \'Box.com access\', 800);" disabled="disabled" class="button" />', _name, _url));
+            ?>
+          </td>
+        </tr>
+      </table>
+      <![CDATA[
+  	    <script type="text/javascript">
+          OAT.MSG.attach(OAT, "PAGE_LOADED", function(){destinationChange($('dav_Box_sponger'), {checked: {show: ['dav15_cartridge', 'dav15_metaCartridge']}})});
+  	    </script>
+  	  ]]>
+    </div>
+  </xsl:template>
+
+  <!--=========================================================================-->
+  <xsl:template match="vm:search-dc-template17">
+    <div id="16" class="tabContent" style="display: none;">
+      <table class="form-body" cellspacing="0">
+        <tr>
+          <th width="30%">
+            <v:label for="dav_WebDAV_activity" value="--'Activity manager (on/off)'" />
+          </th>
+          <td>
+            <?vsp
+              declare S varchar;
+
+              S := self.get_fieldProperty ('dav_WebDAV_activity', self.dav_path, 'virt:WebDAV-activity', 'off');
+              http (sprintf ('<input type="checkbox" name="dav_WebDAV_activity" id="dav_WebDAV_activity" %s disabled="disabled" value="on" />', case when S = 'on' then 'checked="checked"' else '' end));
+            ?>
+          </td>
+        </tr>
+        <tr>
+          <th>
+            <v:label for="dav_WebDAV_path" value="--'WebDAV path'" />
+          </th>
+          <td>
+            <v:text name="dav_WebDAV_path" xhtml_id="dav_WebDAV_path" format="%s" xhtml_disabled="disabled" xhtml_class="field-text">
+              <v:before-data-bind>
+                <![CDATA[
+                  control.ufl_value := self.get_fieldProperty ('dav_WebDAV_path', self.dav_path, 'virt:WebDAV-path', '');
+                ]]>
+              </v:before-data-bind>
+            </v:text>
+          </td>
+        </tr>
+        <tr>
+          <th>
+            <v:label for="dav_WebDAV_user" value="--'User Name'" />
+          </th>
+          <td>
+            <v:text name="dav_WebDAV_user" xhtml_id="dav_WebDAV_user" format="%s" xhtml_disabled="disabled" xhtml_class="field-short">
+              <v:before-data-bind>
+                <![CDATA[
+                  control.ufl_value := self.get_fieldProperty ('dav_WebDAV_user', self.dav_path, 'virt:WebDAV-user', '');
+                ]]>
+              </v:before-data-bind>
+            </v:text>
+          </td>
+        </tr>
+        <tr>
+          <th>
+            <v:label for="dav_WebDAV_password" value="--'User Password'" />
+          </th>
+          <td>
+            <v:text type="password" name="dav_WebDAV_password" xhtml_id="dav_WebDAV_password" format="%s" xhtml_disabled="disabled" xhtml_class="field-short">
+              <v:before-data-bind>
+                <![CDATA[
+                  control.ufl_value := '**********';
+                ]]>
+              </v:before-data-bind>
+            </v:text>
+          </td>
+        </tr>
+        <tr>
+          <th>
+            <v:label for="dav_WebDAV_graph" value="--'Graph name'" />
+          </th>
+          <td>
+            <v:text name="dav_WebDAV_graph" xhtml_id="dav_WebDAV_graph" format="%s" xhtml_disabled="disabled" xhtml_class="field-text">
+              <v:before-data-bind>
+                <![CDATA[
+                  control.ufl_value := self.get_fieldProperty ('dav_WebDAV_graph', self.dav_path, 'virt:WebDAV-graph', '');
+                  if ((control.ufl_value = '') and (self.command = 0))
+                    control.ufl_value := ODRIVE.WA.host_url () || rtrim (WS.WS.FIXPATH (ODRIVE.WA.odrive_real_path (self.dav_path)), '/') || '#this';
+                ]]>
+              </v:before-data-bind>
+            </v:text>
+          </td>
+        </tr>
+        <?vsp
+          self.detSpongerUI ('WebDAV', 16);
+        ?>
+      </table>
+      <![CDATA[
+  	    <script type="text/javascript">
+          OAT.MSG.attach(OAT, "PAGE_LOADED", function(){destinationChange($('dav_WebDAV_sponger'), {checked: {show: ['dav16_cartridge', 'dav16_metaCartridge']}})});
+  	    </script>
+  	  ]]>
+    </div>
+  </xsl:template>
+
+  <!--=========================================================================-->
   <!-- Auto Versioning -->
   <xsl:template match="vm:autoVersion">
-    <vm:if test="self.dav_category = ''">
     <tr id="davRow_version">
       <th>
         <v:label for="dav_autoversion" value="--'Auto Versioning Content'" />
@@ -1150,7 +1791,7 @@
           tmp := '';
           if ((self.dav_type = 'R') and (self.command_mode = 10))
             tmp := 'onchange="javascript: window.document.F1.submit();"';
-          http (sprintf ('<select name="dav_autoversion" %s disabled="disabled">', tmp));
+          http (sprintf ('<select name="dav_autoversion" %s disabled="disabled" class="field-short">', tmp));
 
           tmp := ODRIVE.WA.DAV_GET (self.dav_item, 'autoversion');
           if (isnull(tmp) and (self.dav_type = 'R'))
@@ -1165,7 +1806,6 @@
         ?>
       </td>
     </tr>
-    </vm:if>
   </xsl:template>
 
 </xsl:stylesheet>
diff --git a/appsrc/ODS-Briefcase/www/view.vsp b/appsrc/ODS-Briefcase/www/view.vsp
index b090da9..ebf4aff 100644
--- a/appsrc/ODS-Briefcase/www/view.vsp
+++ b/appsrc/ODS-Briefcase/www/view.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: view.vsp,v 1.8.2.5 2010/09/20 10:15:01 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -20,22 +20,13 @@
 --  with this program; if not, write to the Free Software Foundation, Inc.,
 --  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 --
-
-  -- declare exit handler for SQLSTATE '*'
-  -- {
-  -- 	dbg_obj_print ('', __SQL_STATE, __SQL_MESSAGE);
-  -- };
-
   declare N integer;
   declare auth_uid, auth_pwd, mode, file, uri, saveUri, req_header, res_header, content, contentType varchar;
 
   mode := get_keyword('mode', params, '');
   file := get_keyword('file', params);
   auth_uid := ODRIVE.WA.session_user(params);
-  auth_pwd := coalesce((SELECT U_PWD FROM WS.WS.SYS_DAV_USER WHERE U_NAME = auth_uid), '');
-  if (auth_pwd[0] = 0)
-    auth_pwd := pwd_magic_calc(auth_uid, auth_pwd, 1);
-
+  auth_pwd := ODRIVE.WA.account_password (ODRIVE.WA.account_id (auth_uid));
   uri := ODRIVE.WA.http_escape (ODRIVE.WA.dav_url(file), 7);
   if (auth_uid = '')
   {
@@ -44,32 +35,21 @@
     http_header (sprintf ('Location: %s\r\n', uri));
     return;
   }
-  req_header := 'Accept-Charset: UTF-8,*\n'     ||
-                'Keep-Alive: 300\n'             ||
-                'Connection: keep-alive\n'      ||
-                'Accept: image/png,*/*;q=0.5\n' ||
-                sprintf('Authorization: Basic %s\n', encode_base64(concat(auth_uid, ':', auth_pwd)));
-
-  N := 0;
-_again:
-  N := N + 1;
-  saveUri := uri;
   commit work;
-  content := http_client_ext (url=>uri,
+  req_header :=
+    'Accept-Charset: UTF-8,*\r\n'     ||
+    'Keep-Alive: 300\r\n'             ||
+    'Connection: keep-alive\r\n'      ||
+    'Accept: image/png,*/*;q=0.5\r\n' ||
+    sprintf('Authorization: Basic %s\r\n', encode_base64(concat(auth_uid, ':', auth_pwd)));
+  content := http_client_ext (
+    url=>uri,
                               http_method=>'GET',
                               http_headers=>req_header,
-                              headers=>res_header);
-
+    headers=>res_header,
+    n_redirects=>15
+  );
   contentType := http_request_header (res_header, 'Content-Type');
-  if (res_header[0] like 'HTTP/1._ 30_%')
-  {
-    uri := http_request_header (res_header, 'Location');
-    uri := WS.WS.EXPAND_URL (saveUri, uri);
-    if (N > 15)
-      return 'Too many redirects or redirect loops back, please specify the correct URL.';
-    if (uri <> saveUri)
-      goto _again;
-  }
   if (res_header[0] like 'HTTP/1._ 4__%' or res_header[0] like 'HTTP/1._ 5__%')
   {
     if (is_https_ctx ())
@@ -82,9 +62,12 @@ _again:
     }
     content := res_header[0];
   }
-
   http_rewrite();
-  if ((contentType = 'text/plain') and (mode <> 'download'))
+  if (length (content) = 0)
+  {
+    http_request_status ('HTTP/1.1 204 No Content');
+  }
+  else if ((contentType = 'text/plain') and (mode <> 'download'))
   {
     http_header (sprintf('Content-Type: %s\r\n', 'text/html'));
     http('<html><body><pre>\r\n');
diff --git a/appsrc/ODS-Briefcase/www/vmds.vspx b/appsrc/ODS-Briefcase/www/vmds.vspx
index 91bfcd2..52f5be7 100644
--- a/appsrc/ODS-Briefcase/www/vmds.vspx
+++ b/appsrc/ODS-Briefcase/www/vmds.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: vmds.vspx,v 1.7.2.6 2011/05/02 14:16:27 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/xslt/rss2atom.xsl b/appsrc/ODS-Briefcase/xslt/rss2atom.xsl
index 817d839..2390919 100644
--- a/appsrc/ODS-Briefcase/xslt/rss2atom.xsl
+++ b/appsrc/ODS-Briefcase/xslt/rss2atom.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom.xsl,v 1.3.2.2 2010/09/20 10:15:01 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/xslt/rss2atom03.xsl b/appsrc/ODS-Briefcase/xslt/rss2atom03.xsl
index 4ff5b07..bd79434 100644
--- a/appsrc/ODS-Briefcase/xslt/rss2atom03.xsl
+++ b/appsrc/ODS-Briefcase/xslt/rss2atom03.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom03.xsl,v 1.3.2.2 2010/09/20 10:15:01 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/xslt/rss2rdf.xsl b/appsrc/ODS-Briefcase/xslt/rss2rdf.xsl
index 98067ea..5276e3b 100644
--- a/appsrc/ODS-Briefcase/xslt/rss2rdf.xsl
+++ b/appsrc/ODS-Briefcase/xslt/rss2rdf.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2rdf.xsl,v 1.4.2.2 2010/09/20 10:15:01 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Briefcase/xslt/rss2xbel.xsl b/appsrc/ODS-Briefcase/xslt/rss2xbel.xsl
index efb62a9..4fc1d71 100644
--- a/appsrc/ODS-Briefcase/xslt/rss2xbel.xsl
+++ b/appsrc/ODS-Briefcase/xslt/rss2xbel.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2xbel.xsl,v 1.2.2.1 2010/09/20 10:15:02 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/Makefile.am b/appsrc/ODS-Calendar/Makefile.am
index f1921bb..3c867c2 100644
--- a/appsrc/ODS-Calendar/Makefile.am
+++ b/appsrc/ODS-Calendar/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2007 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -44,8 +44,10 @@ clean-local:
 	-rm -rf vad
 
 EXTRA_DIST = \
+	*.dox \
 	make_vad.sh \
 	sql/*.sql \
+	vad_version \
 	www/*.vsp \
 	www/*.vspx \
 	www/css/*.css \
diff --git a/appsrc/ODS-Calendar/Makefile.in b/appsrc/ODS-Calendar/Makefile.in
index cc39cca..63d5730 100644
--- a/appsrc/ODS-Calendar/Makefile.in
+++ b/appsrc/ODS-Calendar/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2007 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -38,9 +37,8 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -70,7 +68,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -78,23 +75,9 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(vaddir)"
+nodist_vadDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(nodist_vad_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -184,7 +167,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -268,7 +250,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -289,7 +270,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -307,8 +287,10 @@ CLEANFILES = \
 	virtuoso.trx
 
 EXTRA_DIST = \
+	*.dox \
 	make_vad.sh \
 	sql/*.sql \
+	vad_version \
 	www/*.vsp \
 	www/*.vspx \
 	www/css/*.css \
@@ -327,14 +309,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu appsrc/ODS-Calendar/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu appsrc/ODS-Calendar/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  appsrc/ODS-Calendar/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  appsrc/ODS-Calendar/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -352,7 +334,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -362,23 +343,20 @@ clean-libtool:
 install-nodist_vadDATA: $(nodist_vad_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(vaddir)" || $(MKDIR_P) "$(DESTDIR)$(vaddir)"
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	for p in $$list; do \
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vaddir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(vaddir)" || exit $$?; \
+	  f=$(am__strip_dir) \
+	  echo " $(nodist_vadDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(vaddir)/$$f'"; \
+	  $(nodist_vadDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(vaddir)/$$f"; \
 	done
 
 uninstall-nodist_vadDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(vaddir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(vaddir)" && rm -f $$files
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(vaddir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(vaddir)/$$f"; \
+	done
 tags: TAGS
 TAGS:
 
@@ -402,17 +380,13 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
@@ -444,7 +418,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -463,8 +436,6 @@ dvi-am:
 
 html: html-am
 
-html-am:
-
 info: info-am
 
 info-am:
@@ -473,28 +444,18 @@ install-data-am: install-nodist_vadDATA
 
 install-dvi: install-dvi-am
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-am
 
-install-html-am:
-
 install-info: install-info-am
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-am
 
-install-pdf-am:
-
 install-ps: install-ps-am
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -535,7 +496,6 @@ ods_calendar_dav.vad: $(EXTRA_DIST)
 
 clean-local:
 	-rm -rf vad
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/appsrc/ODS-Calendar/ODS-Calendar.dox b/appsrc/ODS-Calendar/ODS-Calendar.dox
new file mode 100644
index 0000000..ca7ff99
--- /dev/null
+++ b/appsrc/ODS-Calendar/ODS-Calendar.dox
@@ -0,0 +1,20 @@
+/**
+\defgroup ods_module_calendar ODS Calendar API
+
+The ODS Calendar offers features to organize your Calendar Events, Tasks, and Notes.
+
+\section ods_calendar_features Feature Highlights
+
+- Management of Events, Tasks, Notes
+- Day, Week, Month View of events, tasks, and notes
+- Import Calendar files
+- Export to Calendar file
+- Search: simple and advanced form
+
+\section ods_calendar_syndication_formats Content Syndication Formats
+
+- RSS
+- Atom
+- RDF
+- SIOC
+*/
diff --git a/appsrc/ODS-Calendar/make_vad.sh b/appsrc/ODS-Calendar/make_vad.sh
index aca9740..3149aae 100755
--- a/appsrc/ODS-Calendar/make_vad.sh
+++ b/appsrc/ODS-Calendar/make_vad.sh
@@ -3,7 +3,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2007 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -28,7 +28,7 @@ export LANG LC_ALL
 
 MODE=$1
 LOGDIR=`pwd`
-VERSION="1.6.76"
+VERSION="1.0.0"
 LOGFILE="${LOGDIR}/vad_make.log"
 STICKER_DAV="vad_dav.xml"
 STICKER_FS="vad_filesystem.xml"
@@ -62,11 +62,6 @@ else
   LN="ln -fs"
   RM="rm -f"
 fi
-VOS=0
-if [ -f ../../autogen.sh ]
-then
-    VOS=1
-fi
 
 if [ "z$SERVER" = "z" ]  
 then
@@ -90,6 +85,57 @@ else
   myrm=$RM
 fi
 
+
+VOS=0
+if [ -f ../../autogen.sh ]
+then
+    VOS=1
+fi
+
+version_init()
+{
+  if [ $VOS -eq 1 ]
+  then
+      if [ -f vad_version ]
+      then
+	  VERSION=`cat vad_version`
+      else
+        LOG "The vad_version does not exist, please verify your checkout"
+	exit 1
+      fi
+  else
+      rm -f version.tmp
+      for i in `find . -name 'Entries' | grep -v "vad/" | grep -v "/tests/"`; do
+	  cat "$i" | grep -v "version\."| grep "^[^D].*" | cut -f 3 -d "/" | sed -e "s/1\.//g" >> version.tmp
+      done
+      LANG=POSIX
+      export LANG
+
+      BASE="0"
+#      echo $BASE
+      if [ -f version.base ] ; then
+	  BASE=`cat version.base`
+      fi
+
+      VERSION=`cat version.tmp | awk ' BEGIN { cnt=10 } { cnt = cnt + $1 } END { print cnt }'`
+
+      VERSION=`expr $BASE + $VERSION`
+      CURR_VERSION=$VERSION
+      if [ -f version.curr ] ; then
+	  CURR_VERSION=`cat version.curr`
+      fi
+      if [ $CURR_VERSION -gt $VERSION ] ; then
+	  BASE=`expr $CURR_VERSION - $VERSION + 1`
+	  echo $BASE > version.base
+	  VERSION=$CURR_VERSION
+      fi
+      echo $VERSION > version.curr
+      VERSION=`echo $VERSION | awk ' { printf "1.%02.02f", $1/100 }'`
+      rm -f version.tmp
+      echo "$VERSION" > vad_version
+  fi
+}
+
 virtuoso_start() {
   echo "Starting $SERVER"
   echo $BUILD
@@ -225,7 +271,7 @@ sticker_init() {
   echo "  <name package=\"Calendar\">" >> $STICKER
   echo "    <prop name=\"Title\" value=\"ODS Calendar Manager\"/>" >> $STICKER
   echo "    <prop name=\"Developer\" value=\"OpenLink Software\"/>" >> $STICKER
-  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2011 OpenLink Software\"/>" >> $STICKER
+  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2012 OpenLink Software\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.com/virtuoso\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.co.uk/virtuoso\"/>" >> $STICKER
   echo "  </name>" >> $STICKER
@@ -237,8 +283,8 @@ sticker_init() {
   echo "<dependencies>" >> $STICKER
   echo "  <require>" >> $STICKER
   echo "    <name package=\"Framework\"/>" >> $STICKER
-  echo "    <versions_later package=\"1.82.42\">" >> $STICKER
-  echo "      <prop name=\"Date\" value=\"2011-06-15 12:00\" />" >> $STICKER
+  echo "    <versions_later package=\"1.86.16\">" >> $STICKER
+  echo "      <prop name=\"Date\" value=\"2012-04-18 12:00\" />" >> $STICKER
   echo "      <prop name=\"Comment\" value=\"An incompatible version of the ODS Framework\" />" >> $STICKER
   echo "    </versions_later>" >> $STICKER
   echo "  </require>" >> $STICKER
@@ -267,6 +313,7 @@ sticker_init() {
   echo "      DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"/Calendar/sql/calendar-a-api.sql', 1, 'report', $ISDAV);" >> $STICKER
   echo "      DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"/Calendar/sql/sioc_calendar.sql', 1, 'report', $ISDAV);" >> $STICKER
   echo "      DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"/Calendar/sql/DET_Calendar.sql', 1, 'report', $ISDAV);" >> $STICKER
+  echo "      DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"/Calendar/sql/DET_CalDAV.sql', 1, 'report', $ISDAV);" >> $STICKER
   echo "    ]]>" >> $STICKER
   echo "  </sql>" >> $STICKER
   echo "  <sql purpose=\"pre-uninstall\">" >> $STICKER
@@ -381,6 +428,7 @@ echo '----------------------'
 
 STOP_SERVER
 directory_clean
+version_init
 directory_init
 virtuoso_init
 if [ "$MODE" = "" ] || [ "$MODE" = "1" ]
@@ -397,7 +445,6 @@ virtuoso_shutdown
 STOP_SERVER
 chmod 644 ods_calendar_dav.vad
 chmod 644 ods_calendar_filesystem.vad
-directory_clean
 
 CHECK_LOG
 RUN egrep  '"\*\*.*FAILED:|\*\*.*ABORTED:"' "$LOGFILE"
@@ -407,5 +454,7 @@ then
 	exit 1
 fi
 
+directory_clean
+
 BANNER "COMPLETED VAD PACKAGING"
 exit 0
diff --git a/appsrc/ODS-Calendar/sql/DET_CalDAV.sql b/appsrc/ODS-Calendar/sql/DET_CalDAV.sql
new file mode 100755
index 0000000..0274515
--- /dev/null
+++ b/appsrc/ODS-Calendar/sql/DET_CalDAV.sql
@@ -0,0 +1,1183 @@
+--
+--
+--  $Id$
+--
+--  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+--  project.
+--
+--  Copyright (C) 1998-2012 OpenLink Software
+--
+--  This project is free software; you can redistribute it and/or modify it
+--  under the terms of the GNU General Public License as published by the
+--  Free Software Foundation; only version 2 of the License, dated June 1991.
+--
+--  This program is distributed in the hope that it will be useful, but
+--  WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+--  General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License along
+--  with this program; if not, write to the Free Software Foundation, Inc.,
+--  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+--
+use DB
+;
+
+--| This matches DAV_AUTHENTICATE (in id any, in what char(1), in req varchar, in a_uname varchar, in a_pwd varchar, in a_uid integer := null)
+--| The difference is that the DET function should not check whether the pair of name and password is valid; the auth_uid is not a null already.
+create function "CalDAV_DAV_AUTHENTICATE" (
+  in id any,
+  in what char(1),
+  in req varchar,
+  in auth_uname varchar,
+  in auth_pwd varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('CalDAV_DAV_AUTHENTICATE (', id, what, req, auth_uname, auth_pwd, auth_uid, http_dav_uid(), ')');
+  declare domain_id, item_id integer;
+  declare rc any;
+
+  rc := '';
+  domain_id := id[3];
+  if (not exists (select 1 from DB.DBA.WA_INSTANCE where WAI_ID = domain_id))
+    return -1;
+
+  if ('R' = what)
+  {
+    item_id := id[4];
+    if (not exists (select 1 from CAL.WA.EVENTS where E_ID = item_id))
+      return -1;
+
+    rc := CAL.WA.acl_check (domain_id, item_id);
+  }
+  else
+  {
+    rc := CAL.WA.acl_check (domain_id);
+  }
+  if (rc <> '')
+  {
+    if ((rc = 'R') and (req = '1__'))
+      return http_nobody_uid ();
+
+    if ((rc = 'W') and (req = '11_'))
+      return http_nobody_uid ();
+  }
+  return -20;
+}
+;
+
+--| This exactly matches DAV_AUTHENTICATE_HTTP (in id any, in what char(1), in req varchar, in can_write_http integer, inout a_lines any, inout a_uname varchar, inout a_pwd varchar, inout a_uid integer, inout a_gid integer, inout _perms varchar) returns integer
+--| The function should fully check access because DAV_AUTHENTICATE_HTTP do nothing with auth data either before or after calling this DET function.
+--| Unlike DAV_AUTHENTICATE, user name passed to DAV_AUTHENTICATE_HTTP header may not match real DAV user.
+--| If DET call is successful, DAV_AUTHENTICATE_HTTP checks whether the user have read permission on mount point collection.
+--| Thus even if DET function allows anonymous access, the whole request may fail if mountpoint is not readable by public.
+create function "CalDAV_DAV_AUTHENTICATE_HTTP" (
+  in id any,
+  in what char(1),
+  in req varchar,
+  in can_write_http integer,
+  inout a_lines any,
+  inout a_uname varchar,
+  inout a_pwd varchar,
+  inout a_uid integer,
+  inout a_gid integer,
+  inout _perms varchar) returns integer
+{
+  -- dbg_obj_princ ('CalDAV_DAV_AUTHENTICATE_HTTP (', id, what, req, can_write_http, a_lines, a_uname, a_pwd, a_uid, a_gid, _perms, ')');
+  declare domain_id, item_id integer;
+  declare rc any;
+
+  rc := '';
+  domain_id := id[3];
+  if (not exists (select 1 from DB.DBA.WA_INSTANCE where WAI_ID = domain_id))
+    return -1;
+
+  if ('R' = what)
+  {
+    item_id := id[4];
+    if (not exists (select 1 from CAL.WA.EVENTS where E_ID = item_id))
+      return -1;
+
+    rc := CAL.WA.acl_check (domain_id, item_id);
+  }
+  else
+  {
+    rc := CAL.WA.acl_check (domain_id);
+  }
+  if (rc <> '')
+  {
+    a_uid := http_nobody_uid ();
+    a_gid := http_nogroup_gid ();
+    if (rc = 'R')
+      _perms := '1__';
+    else if (rc = 'W')
+      _perms := '11_';
+
+    return a_uid;
+  }
+  return -20;
+}
+;
+
+--| This matches DAV_GET_PARENT (in id any, in st char(1), in path varchar) returns any
+create function "CalDAV_DAV_GET_PARENT" (
+  in id any,
+  in what char(1),
+  in path varchar) returns any
+{
+  -- dbg_obj_princ ('CalDAV_DAV_GET_PARENT (', id, what, path, ')');
+  if ('R' = what)
+{
+    id[4] := 0;
+
+    return id;
+  }
+  if ('C' = what)
+    return id[1];
+
+  return -20;
+}
+;
+
+--| When DAV_COL_CREATE_INT calls DET function, authentication, check for lock and check for overwrite are passed, uid and gid are translated from strings to IDs.
+--| Check for overwrite, but the deletion of previously existing collection should be made by DET function.
+create function "CalDAV_DAV_COL_CREATE" (in detcol_id any, in path_parts any, in permissions varchar, in uid integer, in gid integer, in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CalDAV_DAV_COL_CREATE (', detcol_id, path_parts, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| It looks like that this is redundant and should be removed at all.
+create function "CalDAV_DAV_COL_MOUNT" (in detcol_id any, in path_parts any, in full_mount_path varchar, in mount_det varchar, in permissions varchar, in uid integer, in gid integer, in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CalDAV_DAV_COL_MOUNT (', detcol_id, path_parts, full_mount_path, mount_det, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| It looks like that this is redundant and should be removed at all.
+create function "CalDAV_DAV_COL_MOUNT_HERE" (in parent_id any, in full_mount_path varchar, in permissions varchar, in uid integer, in gid integer, in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CalDAV_DAV_COL_MOUNT_HERE (', parent_id, full_mount_path, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_DELETE_INT calls DET function, authentication and check for lock are passed.
+create function "CalDAV_DAV_DELETE" (
+  in detcol_id any,
+  in path_parts any,
+  in what char(1),
+  in silent integer,
+  in auth_uid integer) returns integer
+{
+  -- dbg_obj_princ ('CalDAV_DAV_DELETE (', detcol_id, path_parts, what, silent, auth_uid, ')');
+  declare top_id any;
+  declare rc, owner_uid, domain_id integer;
+
+  if ('C' = what)
+    return -20;
+
+  top_id := "CalDAV_DAV_SEARCH_ID_IMPL" (detcol_id, path_parts, what, owner_uid, domain_id);
+  if (top_id = -1)
+    return -20;
+
+  rc := CAL.WA.event_delete (top_id[4]);
+  return rc;
+}
+;
+
+--| When DAV_RES_UPLOAD_STRSES_INT calls DET function, authentication and check for locks are performed before the call.
+--| There's a special problem, known as 'Transaction deadlock after reading from HTTP session'.
+--| The DET function should do only one INSERT of the 'content' into the table and do it as late as possible.
+--| The function should return -29 if deadlocked or otherwise broken after reading blob from HTTP.
+create function "CalDAV_DAV_RES_UPLOAD" (
+  in detcol_id any,
+  in path_parts any,
+  inout content any,
+  in type varchar,
+  in permissions varchar,
+  in uid integer,
+  in gid integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CalDAV_DAV_RES_UPLOAD (', detcol_id, path_parts, ', [content], ', content, type, permissions, uid, gid, auth_uid, ')');
+  declare top_id, res any;
+  declare owner_uid, domain_id, item_id, rc integer;
+
+  top_id := "CalDAV_DAV_SEARCH_ID_IMPL" (detcol_id, path_parts, 'R', owner_uid, domain_id);
+  if (top_id <> -1)
+  {
+    rc := CAL.WA.event_delete (top_id[4]);
+    if (rc < 1)
+      return -20;
+  }
+  if (__tag (content) = 126)
+  {
+    declare real_content any;
+
+    real_content := http_body_read (1);
+    content := string_output_string (real_content);  -- check if bellow code can work with string session and if so remove this line
+  }
+  if ((length (content) = 0) and (top_id = -1))
+  {
+    item_id := CAL.WA.event_update (-1, path_parts[1], domain_id, 'UNLOCK', null, null, null, null, null, null, null, null, null, null, null, null, null, null);
+    return vector (CalDAV__UNAME(), detcol_id, uid, domain_id, item_id, 0);
+  }
+  res := CAL.WA.import_vcal (domain_id, content);
+  if (length (res) > 0)
+    return vector (CalDAV__UNAME(), detcol_id, uid, domain_id, path_parts[1], 0);
+
+  return -20;
+}
+;
+
+
+--| When DAV_PROP_REMOVE_INT calls DET function, authentication and check for locks are performed before the call.
+--| The check whether it's a system name or not is _not_ permitted.
+create function "CalDAV_DAV_PROP_REMOVE" (in id any, in what char(0), in propname varchar, in silent integer, in auth_uid integer) returns integer
+{
+  -- dbg_obj_princ ('CalDAV_DAV_PROP_REMOVE (', id, what, propname, silent, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_PROP_SET_INT calls DET function, authentication and check for locks are performed before the call.
+--| The check whether it's a system property or not is _not_ permitted and the function should return -16 for live system properties.
+create function "CalDAV_DAV_PROP_SET" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in propvalue any,
+  in overwrite integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CalDAV_DAV_PROP_SET (', id, what, propname, propvalue, overwrite, auth_uid, ')');
+  if (propname = 'virt:aci_meta')
+  {
+    declare domain_id, item_id integer;
+
+    domain_id := id[3];
+    if (not exists (select 1 from DB.DBA.WA_INSTANCE where WAI_ID = domain_id))
+      return -1;
+
+    if ('R' = what)
+    {
+      item_id := id[4];
+      if (not exists (select 1 from CAL.WA.EVENTS where E_ID = item_id))
+        return -1;
+
+      update CAL.WA.EVENTS set E_PRIVACY = 2 where E_DOMAIN_ID = domain_id and E_ID = item_id;
+      CAL.WA.event_update_acl (item_id, serialize (propvalue));
+    }
+    else
+    {
+      update DB.DBA.WA_INSTANCE
+         set WAI_ACL = serialize (propvalue)
+       where WAI_ID = domain_id;
+    }
+    return 1;
+  }
+  if (propname[0] = 58)
+    return -16;
+
+  return -20;
+}
+;
+
+--| When DAV_PROP_GET_INT calls DET function, authentication and check whether it's a system property are performed before the call.
+create function "CalDAV_DAV_PROP_GET" (
+  in id any,
+  in what char(0),
+  in propname varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('CalDAV_DAV_PROP_GET (', id, what, propname, auth_uid, ')');
+  if ('virt:aci_meta' = propname)
+  {
+    declare domain_id, item_id integer;
+
+    domain_id := id[3];
+    if (not exists (select 1 from DB.DBA.WA_INSTANCE where WAI_ID = domain_id))
+      return -1;
+
+    if ('R' = what)
+    {
+      item_id := id[4];
+      if (not exists (select 1 from CAL.WA.EVENTS where E_ID = item_id))
+        return -1;
+
+      return (select deserialize (E_ACL) from CAL.WA.EVENTS where E_DOMAIN_ID = domain_id and E_ID = item_id and E_PRIVACY = 2);
+    }
+    else
+    {
+      return (select deserialize (WAI_ACL) from DB.DBA.WA_INSTANCE where WAI_ID = domain_id);
+    }
+  }
+  if (':virtdet' = propname)
+  {
+    return CalDAV__UNAME();
+  }
+  return -11;
+}
+;
+
+--| When DAV_PROP_LIST_INT calls DET function, authentication is performed before the call.
+--| The returned list should contain only user properties.
+create function "CalDAV_DAV_PROP_LIST" (in id any, in what char(0), in propmask varchar, in auth_uid integer)
+{
+  -- dbg_obj_princ ('CalDAV_DAV_PROP_LIST (', id, what, propmask, auth_uid, ')');
+  return vector ();
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "CalDAV_DAV_DIR_SINGLE" (
+  in id any,
+  in what char(0),
+  in path any,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CalDAV_DAV_DIR_SINGLE (', id, what, path, auth_uid, ')');
+  declare domain_id integer;
+  declare colname, fullpath, rightcol varchar;
+  declare maxrcvdate datetime;
+  declare owner_gid, owner_uid integer;
+  declare access varchar;
+
+  CalDAV__ACCESS_PARAMS (id[1], access, owner_gid, owner_uid);
+
+  domain_id := id[3];
+  if (maxrcvdate is null)
+    maxrcvdate := coalesce ( (select max(E_UPDATED) from CAL.WA.EVENTS where E_DOMAIN_ID = domain_id), cast ('1980-01-01' as datetime));
+
+  if (cast (maxrcvdate as integer) = 0)
+    maxrcvdate := cast ('1980-01-01' as datetime);
+
+  colname := (select CalDAV__FIXNAME (C.WAI_NAME)
+                from SYS_USERS A,
+                     WA_MEMBER B,
+                     WA_INSTANCE C
+               where A.U_ID = id[2]
+                 and B.WAM_USER = A.U_ID
+                 and B.WAM_MEMBER_TYPE = 1
+                 and B.WAM_INST = C.WAI_NAME
+                 and C.WAI_TYPE_NAME = 'Calendar'
+                 and C.WAI_ID = domain_id);
+  if (DAV_HIDE_ERROR (colname) is null)
+    return -1;
+
+  if (path is not null)
+  {
+    rightcol := path[length(path) - 2];
+    if ('C' = what)
+      return vector (DAV_CONCAT_PATH ('/', path), 'C', 0, maxrcvdate, id, access, 0, id[2], maxrcvdate, 'text/calendar', rightcol );
+  }
+  fullpath := DAV_CONCAT_PATH (DAV_SEARCH_PATH (id[1], 'C'), colname || '/');
+  if ('C' = what)
+  {
+    if (id[4] > 0)
+      return -1;
+
+    return vector (fullpath, 'C', 0, maxrcvdate, id, access, 0, id[2], maxrcvdate, 'text/calendar', colname );
+  }
+  for (select CalDAV__COMPOSE_ICS_NAME(E_UID) as orig_mname, E_CREATED, E_UPDATED from CAL.WA.EVENTS where E_ID = id[4]) do
+    return vector (fullpath || orig_mname, 'R', 1024, E_UPDATED, id, access, 0, id[2], E_CREATED, 'text/calendar', orig_mname);
+
+  return -1;
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "CalDAV_DAV_DIR_LIST" (
+  in detcol_id any,
+  in path_parts any,
+  in detcol_path varchar,
+  in name_mask varchar,
+  in recursive integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CalDAV_DAV_DIR_LIST (', detcol_id, path_parts, detcol_path, name_mask, recursive, auth_uid,  ')');
+  declare domain_id, owner_gid, owner_uid integer;
+  declare top_davpath, access varchar;
+  declare res any;
+  declare top_id any;
+  declare what char (1);
+
+  CalDAV__ACCESS_PARAMS (detcol_id, access, owner_gid, owner_uid);
+  what := case when ((0 = length (path_parts)) or ('' = path_parts[length (path_parts) - 1])) then 'C' else 'R' end;
+  if (isarray (detcol_id) and (recursive = -1))
+    return "CalDAV_DAV_DIR_SINGLE" (detcol_id, what, CalDAV_DAV_SEARCH_PATH (detcol_id, what), auth_uid);
+
+  domain_id := 0;
+  if (('C' = what) and (1 = length (path_parts)))
+  {
+    top_id := vector (CalDAV__UNAME(), detcol_id, owner_uid, 0, 0, 0); -- may be a fake id because top_id[3] may be NULL
+  } else {
+    top_id := "CalDAV_DAV_SEARCH_ID_IMPL" (detcol_id, path_parts, what, owner_uid, domain_id);
+  }
+  if (DAV_HIDE_ERROR (top_id) is null)
+    return vector();
+
+  top_davpath := DAV_CONCAT_PATH (detcol_path, path_parts);
+  if ('R' = what)
+    return vector ("CalDAV_DAV_DIR_SINGLE" (top_id, what, top_davpath, auth_uid));
+
+  res := vector();
+  if ('C' = what)
+  {
+    -- Top level
+    if (top_id[3] = 0)
+    {
+      for select CalDAV__FIXNAME(C.WAI_NAME) as orig_name,
+                 C.WAI_ID as dom_id
+            from SYS_USERS A,
+                 WA_MEMBER B,
+                 WA_INSTANCE C
+           where A.U_ID = owner_uid
+             and B.WAM_USER = A.U_ID
+             and B.WAM_MEMBER_TYPE = 1
+             and B.WAM_INST = C.WAI_NAME
+             and C.WAI_TYPE_NAME = 'Calendar'
+      do
+      {
+        res := vector_concat (res, vector (vector (DAV_CONCAT_PATH (top_davpath, orig_name) || '/', 'C', 0, now(),
+                vector (CalDAV__UNAME(), detcol_id, owner_uid, dom_id, 0, 0),
+                access, owner_gid, owner_uid, now(), 'text/calendar', orig_name) ) );
+      }
+      return res;
+    }
+  }
+  for (select CalDAV__COMPOSE_ICS_NAME(E_UID) as orig_mname, E_ID, E_CREATED, E_UPDATED
+         from CAL.WA.EVENTS
+        where E_DOMAIN_ID = top_id[3]) do
+  {
+    res := vector_concat (res, vector (vector (DAV_CONCAT_PATH (top_davpath, orig_mname), 'R', 1024, E_UPDATED,
+    vector (CalDAV__UNAME(), detcol_id, owner_uid, top_id[3], E_ID, 0),
+    access, owner_gid, owner_uid, E_CREATED, 'text/calendar', orig_mname) ) );
+  }
+  return res;
+}
+;
+
+create procedure "CalDAV_DAV_FC_PRED_METAS" (inout pred_metas any)
+{
+    pred_metas := vector (
+      'E_ID',             vector ('EVENTS'      , 0, 'integer'  , 'E_ID'   ),
+      'E_DOMAIN_ID',      vector ('EVENTS'      , 0, 'integer'  , 'E_DOMAIN_ID'   ),
+      'RES_NAME',         vector ('EVENTS'      , 0, 'varchar'  , 'CalDAV__COMPOSE_ICS_NAME(_top.E_UID)'),
+      'RES_FULL_PATH',    vector ('EVENTS'      , 0, 'varchar'  , 'concat (DAV_CONCAT_PATH (_param.detcolpath, ''calendar''), CalDAV__FIXNAME (WAI_NAME), ''/'', CalDAV__COMPOSE_ICS_NAME (_top.E_UID)'),
+      'RES_TYPE',         vector ('EVENTS'      , 0, 'varchar'  , '(''text/calendar'')'),
+      'RES_OWNER_ID',     vector ('SYS_USERS'   , 0, 'integer'  , 'U_ID'        ),
+      'RES_OWNER_NAME',   vector ('SYS_USERS'   , 0, 'varchar'  , 'U_NAME'      ),
+      'RES_GROUP_ID',     vector ('SYS_USERS'   , 0, 'integer'  , 'http_nogroup_gid()'  ),
+      'RES_GROUP_NAME',   vector ('SYS_USERS'   , 0, 'varchar'  , '(''nogroup'')'       ),
+      'RES_COL_FULL_PATH',vector ('EVENTS'      , 0, 'varchar'  , 'concat (DAV_CONCAT_PATH (_param.detcolpath, ''calendar''), CalDAV__FIXNAME (WAI_NAME), ''/'')'      ),
+      'RES_COL_NAME',     vector ('EVENTS'      , 0, 'varchar'  , 'CalDAV__FIXNAME (WAI_NAME)'   ),
+    'RES_CR_TIME',      vector ('EVENTS'      , 0, 'datetime' , 'E_CREATED'),
+      'RES_MOD_TIME',     vector ('EVENTS'      , 0, 'datetime' , 'E_UPDATED'  ),
+      'RES_PERMS',        vector ('EVENTS'      , 0, 'varchar'  , '(''110100000RR'')'   ),
+      'RES_CONTENT',      vector ('EVENTS'      , 0, 'text'     , 'E_DESCRIPTION'   ),
+      'PROP_NAME',        vector ('EVENTS'      , 0, 'varchar'  , '(''E_DESCRIPTION'')' ),
+      'PROP_VALUE',       vector ('SYS_DAV_PROP', 1, 'text'     , 'E_DESCRIPTION'   ),
+      'RES_TAGS',         vector ('all-tags'    , 0, 'varchar'  , 'E_TAGS'  ), -- 'varchar', not 'text-tag' because there's no free-text on union
+      'RES_PUBLIC_TAGS',  vector ('public-tags' , 0, 'varchar'  , 'E_TAGS'  ), -- 'varchar', not 'text-tag' because there's no free-text in table!
+      'RES_PRIVATE_TAGS', vector ('private-tags', 0, 'varchar'  , 'E_TAGS'  ), -- 'varchar', not 'text-tag' because there's no free-text in table!
+      'RDF_PROP',         vector ('fake-prop'   , 1, 'varchar'  , NULL  ),
+      'RDF_VALUE',        vector ('fake-prop'   , 2, 'XML'      , NULL  ),
+      'RDF_OBJ_VALUE',    vector ('fake-prop'   , 3, 'XML'      , NULL  )
+    );
+}
+;
+
+create procedure "CalDAV_DAV_FC_TABLE_METAS" (inout table_metas any)
+{
+  table_metas := vector (
+    'EVENTS'        , vector (  '', '' , 'E_SUBJECT', 'E_SUBJECT', '[__quiet] /' ),
+    'WA_INSTANCE'   , vector (  '', '' , 'WAI_NAME' , 'WAI_NAME' , '[__quiet] /' ),
+    'WA_MEMBER'     , vector (  '', '' , 'WAM_INST' , 'WAM_INST' , '[__quiet] /' ),
+    'SYS_USERS'     , vector (  '', '' , NULL       , NULL       , NULL          ),
+    'public-tags'   , vector (  '', '' ,'E_TAGS'    , 'E_TAGS'   , NULL          ),
+    'private-tags'  , vector (  '', '' ,'E_TAGS'    , 'E_TAGS'   , NULL          ),
+    'all-tags'      , vector (  '', '' ,'E_TAGS'    , 'E_TAGS'   , NULL          ),
+    'fake-prop' , vector (  '\n  inner join WS.WS.SYS_DAV_PROP as ^{alias}^ on ((^{alias}^.PROP_PARENT_ID is null) and (^{alias}^.PROP_TYPE = ''R'')^{andpredicates}^)' ,
+                    '\n  exists (select 1 from WS.WS.SYS_DAV_PROP as ^{alias}^ where (^{alias}^.PROP_PARENT_ID is null) and (^{alias}^.PROP_TYPE = ''R'')^{andpredicates}^)'    ,
+                                'PROP_VALUE',
+                                'PROP_VALUE',
+                                '[__quiet __davprop xmlns:virt="virt"] fakepropthatprobablyneverexists')
+    );
+}
+;
+
+create function "CalDAV_DAV_FC_PRINT_WHERE" (inout filter any, in param_uid integer) returns varchar
+{
+  -- dbg_obj_princ ('CalDAV_DAV_FC_PRINT_WHERE (', filter, param_uid, ')');
+  declare pred_metas, cmp_metas, table_metas any;
+  declare used_tables any;
+
+  "CalDAV_DAV_FC_PRED_METAS" (pred_metas);
+  DAV_FC_CMP_METAS (cmp_metas);
+  "CalDAV_DAV_FC_TABLE_METAS" (table_metas);
+  used_tables := vector(
+      'EVENTS', vector ('EVENTS', '_top', null, vector (), vector (), vector ()),
+      'WA_INSTANCE', vector ('WA_INSTANCE', '_instances', null, vector (), vector (), vector ()),
+      'WA_MEMBER', vector ('WA_MEMBER', '_members', null, vector (), vector (), vector ()),
+      'SYS_USERS', vector ('SYS_USERS', '_users', null, vector (), vector (), vector ())
+  );
+  return DAV_FC_PRINT_WHERE_INT (filter, pred_metas, cmp_metas, table_metas, used_tables, param_uid);
+}
+;
+
+--| When DAV_DIR_FILTER_INT calls DET function, authentication is performed before the call and compilation is initialized.
+create function "CalDAV_DAV_DIR_FILTER" (in detcol_id any, in path_parts any, in detcol_path any, inout compilation any, in recursive integer, in auth_uid integer) returns any
+{
+    --dbg_obj_princ ('CalDAV_DAV_DIR_FILTER (', detcol_id, path_parts, detcol_path, compilation, recursive, auth_uid, ')');
+    declare st, access, qry_text, execstate, execmessage varchar;
+    declare res any;
+    declare cond_list, execmeta, execrows any;
+    declare sub, post_id, condtext, cond_key varchar;
+    declare owner_gid, owner_uid, domain_id integer;
+    CalDAV__ACCESS_PARAMS (detcol_id, access, owner_gid, owner_uid);
+    vectorbld_init (res);
+    sub := null;
+    post_id := null;
+    if (((length (path_parts) <= 1) and (recursive <> 1)) or (length (path_parts) > 2))
+    {
+      -- dbg_obj_princ ('\r\nGoto skip_post_level\r\n');
+      goto finalize;
+    }
+    if (length (path_parts) >= 2)
+    {
+        sub := path_parts[0];
+        if (sub = 'calendars')
+        {
+            domain_id := coalesce ((select C.WAI_ID
+                from SYS_USERS A,
+                WA_MEMBER B,
+                WA_INSTANCE C
+            where A.U_ID = owner_uid
+              and B.WAM_USER = A.U_ID
+              and B.WAM_MEMBER_TYPE = 1
+              and B.WAM_INST = C.WAI_NAME
+              and C.WAI_TYPE_NAME = 'Calendar'
+              and CalDAV__FIXNAME(C.WAI_NAME) = path_parts[1]));
+            if (domain_id is null)
+                goto finalize;
+        }
+        else
+            goto finalize;
+    }
+    cond_key := sprintf ('Calendar&%d', coalesce (domain_id, 0));
+    condtext := get_keyword (cond_key, compilation);
+    if (condtext is null and 0)
+    {
+      cond_list := get_keyword ('', compilation);
+      if (sub is not null)
+        cond_list := vector_concat (cond_list, vector ( vector ('E_DOMAIN_ID', '=', domain_id)));
+      condtext := "CalDAV_DAV_FC_PRINT_WHERE" (cond_list, auth_uid);
+      compilation := vector_concat (compilation, vector (cond_key, condtext));
+    }
+    execstate := '00000';
+        qry_text := 'select concat (DAV_CONCAT_PATH (_param.detcolpath, ''calendar''), ''/'', CalDAV__FIXNAME (WAI_NAME), ''/'', CalDAV__COMPOSE_ICS_NAME (_top.E_UID)),
+        ''R'', 1024, _top.E_UPDATED,
+                vector (CalDAV__UNAME(), ?, _users.U_ID, 3, _top.E_DOMAIN_ID, 0, 0, 0, 0),
+                ''110100000RR'', http_nogroup_gid(), _users.U_ID, _top.E_UPDATED, ''text/calendar'', CalDAV__COMPOSE_ICS_NAME (_top.E_UID)
+        from
+        (select top 1 ? as detcolpath from WS.WS.SYS_DAV_COL) as _param,
+        CAL.WA.EVENTS as _top
+        join DB.DBA.WA_INSTANCE as _instances on (WAI_ID = E_DOMAIN_ID and WAI_TYPE_NAME = ''Calendar'')
+                join DB.DBA.WA_MEMBER as _members on (WAM_MEMBER_TYPE = 1 and WAM_INST = WAI_NAME)
+                join DB.DBA.SYS_USERS as _users on (WAM_USER = U_ID and U_ID = ?)
+        ' || condtext;
+      exec (qry_text, execstate, execmessage,
+        vector (detcol_id, detcol_path, owner_uid),
+        110100000, execmeta, execrows );
+      if ('00000' <> execstate)
+        signal (execstate, execmessage || ' in ' || qry_text);
+      vectorbld_concat_acc (res, execrows);
+finalize:
+    vectorbld_final (res);
+    return res;
+}
+;
+
+create function "CalDAV_DAV_SEARCH_ID_IMPL" (
+  in detcol_id any,
+  in path_parts any,
+  in what char(1),
+  inout owner_uid integer,
+  inout domain_id integer) returns any
+{
+  -- dbg_obj_princ ('CalDAV_DAV_SEARCH_ID_IMPL (', detcol_id, path_parts, what, owner_uid, domain_id, ')');
+  declare owner_gid, ctr, len integer;
+  declare hitlist any;
+  declare access, colpath varchar;
+
+  CalDAV__ACCESS_PARAMS (detcol_id, access, owner_gid, owner_uid);
+  if (0 = length (path_parts))
+  {
+    if ('C' <> what)
+      return -1;
+
+    return vector (CalDAV__UNAME(), detcol_id, owner_uid, domain_id, 0, 0);
+  }
+  if ('' = path_parts[length (path_parts) - 1])
+  {
+    if ('C' <> what)
+      return -1;
+  }
+  else
+  {
+    if ('R' <> what)
+      return -1;
+  }
+  len := length (path_parts) - 1;
+  ctr := 0;
+  while (ctr < len)
+  {
+    if (ctr = 0)
+    {
+      hitlist := vector ();
+      for (select C.WAI_ID as D_ID
+             from SYS_USERS A,
+                  WA_MEMBER B,
+                  WA_INSTANCE C
+            where A.U_ID = owner_uid
+              and B.WAM_USER = A.U_ID
+              and B.WAM_MEMBER_TYPE = 1
+              and B.WAM_INST = C.WAI_NAME
+              and C.WAI_TYPE_NAME = 'Calendar'
+              and CalDAV__FIXNAME (C.WAI_NAME) = path_parts[ctr]) do
+      {
+        hitlist := vector_concat (hitlist, vector (D_ID));
+      }
+      if (length (hitlist) <> 1)
+        return -1;
+
+      domain_id := hitlist[0];
+    }
+    else if (ctr = 1 and len > 1)
+    {
+      return -1;
+    }
+    ctr := ctr + 1;
+  }
+  if ('C' = what)
+    return vector (CalDAV__UNAME(), detcol_id, owner_uid, domain_id, 0, 0);
+
+  hitlist := vector ();
+  for (select distinct E_ID from CAL.WA.EVENTS where (CalDAV__COMPOSE_ICS_NAME (E_UID) = path_parts[ctr] or E_UID = path_parts[ctr]) and E_DOMAIN_ID = domain_id) do
+  {
+    hitlist := vector_concat (hitlist, vector (E_ID));
+  }
+  if (length (hitlist) <> 1)
+    return -1;
+
+  return vector (CalDAV__UNAME(), detcol_id, owner_uid, domain_id, hitlist[0], 0);
+}
+;
+
+--| When DAV_PROP_GET_INT or DAV_DIR_LIST_INT calls DET function, authentication is performed before the call.
+create function "CalDAV_DAV_SEARCH_ID" (
+  in detcol_id any,
+  in path_parts any,
+  in what char(1)) returns any
+{
+  -- dbg_obj_princ ('CalDAV_DAV_SEARCH_ID (', detcol_id, path_parts, what, ')');
+  declare owner_uid, domain_id integer;
+
+  return "CalDAV_DAV_SEARCH_ID_IMPL" (detcol_id, path_parts, what, owner_uid, domain_id);
+}
+;
+
+--| When DAV_SEARCH_PATH_INT calls DET function, authentication is performed before the call.
+create function "CalDAV_DAV_SEARCH_PATH" (
+  in id any,
+  in what char(1)) returns any
+{
+  -- dbg_obj_princ ('CalDAV_DAV_SEARCH_PATH (', id, what, ')');
+  declare path varchar;
+  declare domain_id, item_id integer;
+
+  path := DAV_SEARCH_PATH (id[1], 'C');
+  domain_id := id[3];
+  if (not exists (select 1 from DB.DBA.WA_INSTANCE where WAI_ID = domain_id))
+    return null;
+
+  path := path || CalDAV__FIXNAME (CAL.WA.domain_name (domain_id)) || '/';
+  if ('C' = what)
+    return path;
+
+  item_id := id[4];
+  for (select E_UID from CAL.WA.EVENTS where E_ID = item_id) do
+    return  path || CalDAV__COMPOSE_ICS_NAME (E_UID);
+
+  return null;
+}
+;
+
+--| When DAV_COPY_INT calls DET function, authentication and check for locks are performed before the call, but no check for existing/overwrite.
+create function "CalDAV_DAV_RES_UPLOAD_COPY" (in detcol_id any, in path_parts any, in source_id any, in what char(1), in overwrite_flags integer, in permissions varchar, in uid integer, in gid integer, in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CalDAV_DAV_RES_UPLOAD_COPY (', detcol_id, path_parts, source_id, what, overwrite_flags, permissions, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_COPY_INT calls DET function, authentication and check for locks are performed before the call, but no check for existing/overwrite.
+create function "CalDAV_DAV_RES_UPLOAD_MOVE" (in detcol_id any, in path_parts any, in source_id any, in what char(1), in overwrite_flags integer, in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CalDAV_DAV_RES_UPLOAD_MOVE (', detcol_id, path_parts, source_id, what, overwrite_flags, auth_uid, ')');
+  return -20;
+}
+;
+
+--| When DAV_RES_CONTENT or DAV_RES_COPY_INT or DAV_RES_MOVE_INT calls DET function, authentication is made.
+--| If content_mode is 1 then content is a valid output stream before the call.
+create function "CalDAV_DAV_RES_CONTENT" (
+  in id any,
+  inout content any,
+  out type varchar,
+  in content_mode integer) returns integer
+{
+  --dbg_obj_princ ('CalDAV_DAV_RES_CONTENT (', id, ', content, type, ', content_mode, ')');
+  if (id[4] < 0)
+  {
+    type := 'text/xml';
+    if (id[4] = -1)
+      content := CAL.WA.export_rss_sqlx_for_det (id[3], id[2]);
+    if (id[4] = -2)
+      content := CAL.WA.export_atom_sqlx_for_det (id[3], id[2]);
+    if (id[4] = -3)
+      content := CAL.WA.export_rdf_sqlx_for_det (id[3], id[2]);
+    return 0;
+  }
+  declare tz integer;
+
+  type := 'text/calendar';
+  whenever not found goto endline;
+  tz := timezone(now());
+  if (id[4] is not null)
+    content := CAL.WA.det_export_vcal (id[3], tz, id[4]);
+
+endline:
+  return 0;
+}
+;
+
+--| This adds an extra access path to the existing resource or collection.
+create function "CalDAV_DAV_SYMLINK" (in detcol_id any, in path_parts any, in source_id any, in what char(1), in overwrite integer, in uid integer, in gid integer, in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CalDAV_DAV_SYMLINK (', detcol_id, path_parts, source_id, overwrite, uid, gid, auth_uid, ')');
+  return -20;
+}
+;
+
+--| This gets a list of resources and/or collections as it is returned by DAV_DIR_LIST and and writes the list of quads (old_id, 'what', old_full_path, dereferenced_id, dereferenced_full_path).
+create function "CalDAV_DAV_DEREFERENCE_LIST" (in detcol_id any, inout report_array any) returns any
+{
+  -- dbg_obj_princ ('CalDAV_DAV_DEREFERENCE_LIST (', detcol_id, report_array, ')');
+  return -20;
+}
+;
+
+--| This gets one of reference quads returned by ..._DAV_REREFERENCE_LIST() and returns a record (new_full_path, new_dereferenced_full_path, name_may_vary).
+create function "CalDAV_DAV_RESOLVE_PATH" (in detcol_id any, inout reference_item any, inout old_base varchar, inout new_base varchar) returns any
+{
+  -- dbg_obj_princ ('CalDAV_DAV_RESOLVE_PATH (', detcol_id, reference_item, old_base, new_base, ')');
+  return -20;
+}
+;
+
+--| There's no API function to lock for a while (do we need such?) The "LOCK" DAV method checks that all parameters are valid but does not check for existing locks.
+create function "CalDAV_DAV_LOCK" (
+  in path any,
+  in id any,
+  in what char(1),
+  inout locktype varchar,
+  inout scope varchar,
+  in token varchar,
+  inout owner_name varchar,
+  inout owned_tokens varchar,
+  in depth varchar,
+  in timeout_sec integer,
+  in auth_uid integer) returns any
+{
+  -- dbg_obj_princ ('CalDAV_DAV_LOCK (', path, id, what, locktype, scope, token, owner_name, owned_tokens, depth, timeout_sec, auth_uid, ')');
+  declare rc any;
+  declare domain_id, item_id integer;
+  declare name, uid varchar;
+
+  rc := 0;
+  if (what = 'C')
+  {
+    rc := -27;
+    goto _exit;
+  }
+
+  domain_id := id[3];
+  item_id := id[4];
+  if (exists (select 1 from CAL.WA.EVENTS where E_DOMAIN_ID = domain_id and E_ID = item_id and E_SUBJECT = 'UNLOCK'))
+  {
+    rc := lower (uuid());
+    update CAL.WA.EVENTS
+       set E_SUBJECT = 'LOCK',
+           E_DESCRIPTION = rc
+     where E_DOMAIN_ID = domain_id
+       and E_ID = item_id;
+
+    goto _exit;
+  }
+
+  if (exists (select 1 from CAL.WA.EVENTS where E_DOMAIN_ID = domain_id and E_ID = item_id and E_SUBJECT = 'LOCK' and dateadd ('second', -1, now()) > E_UPDATED))
+  {
+    rc := lower (uuid());
+    update CAL.WA.EVENTS
+       set E_SUBJECT = 'LOCK',
+           E_DESCRIPTION = rc
+     where E_DOMAIN_ID = domain_id
+       and E_ID = item_id;
+
+    goto _exit;
+  }
+
+  uid := (select E_UID from CAL.WA.EVENTS where E_DOMAIN_ID = domain_id and E_ID = item_id);
+  if (path like ('%' || CalDAV__COMPOSE_ICS_NAME (uid)))
+  {
+    rc := lower (uuid());
+
+    goto _exit;
+  }
+
+  rc := -20;
+
+_exit:;
+  return rc;
+}
+;
+
+--| There's no API function to unlock for a while (do we need such?) The "UNLOCK" DAV method checks that all parameters are valid but does not check for existing locks.
+create function "CalDAV_DAV_UNLOCK" (
+  in id any,
+  in what char(1),
+  in token varchar,
+  in auth_uid integer)
+{
+  -- dbg_obj_princ ('CalDAV_DAV_UNLOCK (', id, what, token, auth_uid, ')');
+  declare rc any;
+  declare domain_id, item_id integer;
+
+  rc := 0;
+  domain_id := id[3];
+  item_id := id[4];
+  if (exists (select 1 from CAL.WA.EVENTS where E_DOMAIN_ID = domain_id and E_ID = item_id and E_SUBJECT = 'LOCK'))
+  {
+    update CAL.WA.EVENTS
+       set E_SUBJECT = 'UNLOCK',
+           E_DESCRIPTION = null
+     where E_DOMAIN_ID = domain_id
+       and E_ID = item_id;
+
+    rc := -27;
+    goto _exit;
+  }
+
+_exit:;
+  return rc;
+}
+;
+
+--| The caller does not check if id is valid.
+--| This returns -1 if id is not valid, 0 if all existing locks are listed in owned_tokens whitespace-delimited list, 1 for soft 2 for hard lock.
+create function "CalDAV_DAV_IS_LOCKED" (
+  inout id any,
+  inout what char(1),
+  in owned_tokens varchar) returns integer
+{
+  -- dbg_obj_princ ('CalDAV_DAV_IS_LOCKED (', id, what, owned_tokens, ')');
+  declare rc any;
+
+  rc := 0;
+  if (what = 'C')
+    goto _exit;
+
+  for (select E_DESCRIPTION from CAL.WA.EVENTS where E_DOMAIN_ID = id[3] and E_ID = id[4] and E_SUBJECT = 'LOCK') do
+  {
+    rc := 2;
+    if (not isnull (strstr (owned_tokens, E_DESCRIPTION)))
+      rc := 0;
+  }
+
+_exit:;
+  return rc;
+}
+;
+
+--| The caller does not check if id is valid.
+--| This returns -1 if id is not valid, list of tuples (LOCK_TYPE, LOCK_SCOPE, LOCK_TOKEN, LOCK_TIMEOUT, LOCK_OWNER, LOCK_OWNER_INFO) otherwise.
+create function "CalDAV_DAV_LIST_LOCKS" (
+  in id any,
+  in what char(1),
+  in recursive integer) returns any
+{
+  -- dbg_obj_princ ('CalDAV_DAV_LIST_LOCKS" (', id, what, recursive);
+  return vector ();
+}
+;
+
+create function CalDAV__UNAME () returns any
+{
+  return UNAME'CalDAV';
+}
+;
+
+create function CalDAV__FIXNAME (
+  in name any) returns varchar
+{
+  return
+    replace (
+    replace (
+    replace (
+    replace (
+    replace (
+    replace (
+    replace (
+    replace (
+    replace (name, '/', '_'), '\\', '_'), ':', '_'), '+', '_'), '\"', '_'), '[', '_'), ']', '_'), '''', '_'), ' ', '_');
+}
+;
+
+create function CalDAV__COMPOSE_ICS_NAME (
+  in uid varchar) returns varchar
+{
+  return replace(sprintf('%s.ics', uid), '@', '-');
+}
+;
+
+create function CalDAV__ACCESS_PARAMS (
+  in detcol_id any,
+  out access varchar,
+  out gid integer,
+  out uid integer)
+{
+  whenever not found goto ret;
+
+  access := '110000000NN';
+  gid := http_nogroup_gid ();
+  uid := http_nobody_uid ();
+  if (isinteger (detcol_id))
+    select COL_PERMS, COL_GROUP, COL_OWNER into access, gid, uid from WS.WS.SYS_DAV_COL where COL_ID = detcol_id;
+
+ret: ;
+}
+;
+
+create procedure CAL.WA.det_export_vcal(
+  in domain_id integer,
+  in tz integer,
+  in event_id integer)
+{
+  declare S, url, tzID, tzName varchar;
+  declare sStream any;
+
+  tzID := sprintf ('GMT%s%04d', case when cast (tz as integer) < 0 then '-' else '+' end,  tz);
+  tzName := sprintf ('GMT %s%02d:00', case when cast (tz as integer) < 0 then '-' else '+' end,  abs(floor (tz / 60)));
+  sStream := string_output();
+  -- start
+  http ('BEGIN:VCALENDAR\r\n', sStream);
+  http ('PRODID:-//OpenLink Software//OpenLink ODS Calendar 0.1//EN\r\n', sStream);
+  http ('VERSION:2.0\r\n', sStream);
+  http ('CALSCALE:GREGORIAN\r\n', sStream);
+  http ('BEGIN:VTIMEZONE\r\n', sStream);
+  http (sprintf ('TZID:%s\r\n', tzID), sStream);
+  http ('BEGIN:STANDARD\r\n', sStream);
+  http (sprintf ('TZOFFSETTO:%s\r\n', CAL.WA.tz_string (tz)), sStream);
+  http (sprintf ('TZNAME:%s\r\n', tzName), sStream);
+  http ('END:STANDARD\r\n', sStream);
+  http ('END:VTIMEZONE\r\n', sStream);
+  -- events
+  for (select * from CAL.WA.EVENTS where E_DOMAIN_ID = domain_id and E_KIND = 0 and E_ID = event_id) do
+  {
+    http ('BEGIN:VEVENT\r\n', sStream);
+    url := sprintf ('http://%s%s/%U/calendar/%U/Event/', SIOC.DBA.get_cname(), SIOC.DBA.get_base_path (), CAL.WA.domain_owner_name (domain_id), CAL.WA.domain_name (domain_id));
+    CAL.WA.export_vcal_line ('UID', cast (E_UID as varchar), sStream);
+    --CAL.WA.export_vcal_line ('URL', url || cast (E_ID as varchar), sStream);
+    CAL.WA.export_vcal_line ('DTSTAMP', CAL.WA.vcal_date2utc (now ()), sStream);
+    CAL.WA.export_vcal_line ('CREATED', CAL.WA.vcal_date2utc (E_CREATED), sStream);
+    CAL.WA.export_vcal_line ('LAST-MODIFIED', CAL.WA.vcal_date2utc (E_UPDATED), sStream);
+    CAL.WA.export_vcal_line ('SUMMARY', E_SUBJECT, sStream);
+    CAL.WA.export_vcal_line ('DESCRIPTION', E_DESCRIPTION, sStream);
+    CAL.WA.export_vcal_line ('LOCATION', E_LOCATION, sStream);
+    --CAL.WA.export_vcal_line ('CATEGORIES', replace (E_TAGS, ',', ';'), sStream);
+    if (E_EVENT_START is not null)
+      CAL.WA.export_vcal_line ('DTSTART', CAL.WA.vcal_date2utc (E_EVENT_START), sStream);
+    if (E_EVENT_END is not null)
+      CAL.WA.export_vcal_line ('DTEND', CAL.WA.vcal_date2utc (E_EVENT_END), sStream);
+    CAL.WA.export_vcal_line ('RRULE', CAL.WA.vcal_recurrence2str (E_REPEAT, E_REPEAT_PARAM1, E_REPEAT_PARAM2, E_REPEAT_PARAM3, E_REPEAT_UNTIL), sStream);
+    --CAL.WA.export_vcal_line ('DALARM', CAL.WA.vcal_reminder2str (E_REMINDER), sStream);
+    http ('END:VEVENT\r\n', sStream);
+  }
+  -- tasks
+  for (select * from CAL.WA.EVENTS where E_DOMAIN_ID = domain_id and E_KIND = 1 and E_ID = event_id) do
+  {
+    http ('BEGIN:VTODO\r\n', sStream);
+    url := sprintf ('http://%s%s/%U/calendar/%U/Task/', SIOC.DBA.get_cname(), SIOC.DBA.get_base_path (), CAL.WA.domain_owner_name (domain_id), CAL.WA.domain_name (domain_id));
+    CAL.WA.export_vcal_line ('UID', cast (E_UID as varchar), sStream);
+    --CAL.WA.export_vcal_line ('URL', url || cast (E_ID as varchar), sStream);
+    CAL.WA.export_vcal_line ('DTSTAMP', CAL.WA.vcal_date2utc (now ()), sStream);
+    CAL.WA.export_vcal_line ('CREATED', CAL.WA.vcal_date2utc (E_CREATED), sStream);
+    CAL.WA.export_vcal_line ('LAST-MODIFIED', CAL.WA.vcal_date2utc (E_UPDATED), sStream);
+    CAL.WA.export_vcal_line ('SUMMARY', E_SUBJECT, sStream);
+    CAL.WA.export_vcal_line ('DESCRIPTION', E_DESCRIPTION, sStream);
+    --CAL.WA.export_vcal_line ('CATEGORIES', replace (E_TAGS, ',', ';'), sStream);
+    if (E_EVENT_START is not null)
+      CAL.WA.export_vcal_line ('DTSTART', CAL.WA.vcal_date2utc (E_EVENT_START), sStream);
+    if (E_EVENT_END is not null)
+      CAL.WA.export_vcal_line ('DTEND', CAL.WA.vcal_date2utc (E_EVENT_END), sStream);
+    CAL.WA.export_vcal_line ('PRIORITY', E_PRIORITY, sStream);
+    CAL.WA.export_vcal_line ('STATUS', E_STATUS, sStream);
+    http ('END:VTODO\r\n', sStream);
+  }
+  -- end
+  http ('END:VCALENDAR\r\n', sStream);
+  return string_output_string(sStream);
+}
+;
+
+create procedure CAL.WA.export_rss_sqlx_for_det (
+  in domain_id integer,
+  in account_id integer)
+{
+  declare retValue any;
+  declare qry_text any;
+  retValue := string_output ();
+
+  http ('<?xml version ="1.0" encoding="UTF-8"?>\n', retValue);
+  http ('<rss version="2.0">\n', retValue);
+  http ('<channel>\n', retValue);
+
+  qry_text := (select
+   XMLELEMENT('title', CAL.WA.utf2wide(CAL.WA.domain_name (domain_id))),
+   XMLELEMENT('description', CAL.WA.utf2wide(CAL.WA.domain_description (domain_id))),
+   XMLELEMENT('managingEditor', U_E_MAIL),
+   XMLELEMENT('pubDate', CAL.WA.dt_rfc1123(now ())),
+   XMLELEMENT('generator', 'Virtuoso Universal Server ' || sys_stat('st_dbms_ver')),
+   XMLELEMENT('webMaster', U_E_MAIL),
+   XMLELEMENT('link', CAL.WA.CalDAV_url (domain_id))
+  from DB.DBA.SYS_USERS where U_ID = account_id);
+
+  http (serialize_to_UTF8_xml(qry_text), retValue);
+
+  qry_text := (select
+   XMLAGG(XMLELEMENT('item',
+     XMLELEMENT('title', CAL.WA.utf2wide (E_SUBJECT)),
+     XMLELEMENT('description', CAL.WA.utf2wide (E_DESCRIPTION)),
+     XMLELEMENT('guid', E_ID),
+     XMLELEMENT('link', CAL.WA.event_url (domain_id, E_ID)),
+     XMLELEMENT('pubDate', CAL.WA.dt_rfc1123 (E_UPDATED)),
+     (select XMLAGG (XMLELEMENT ('category', TV_TAG)) from CAL..TAGS_VIEW where tags = E_TAGS),
+     XMLELEMENT('http://www.openlinksw.com/ods/:modified', CAL.WA.dt_iso8601 (E_UPDATED))))
+ from (select top 15
+         E_SUBJECT,
+         E_DESCRIPTION,
+         E_UPDATED,
+         E_TAGS,
+         E_ID
+       from
+         CAL.WA.EVENTS
+       where E_DOMAIN_ID = domain_id
+       order by E_UPDATED desc) x );
+
+  http (serialize_to_UTF8_xml(qry_text), retValue);
+
+  http ('</channel>\n', retValue);
+  http ('</rss>\n', retValue);
+
+  retValue := string_output_string (retValue);
+  return retValue;
+}
+;
+
+create procedure CAL.WA.export_atom_sqlx_for_det (
+  in domain_id integer,
+  in account_id integer)
+{
+  declare xml_entity, xsltTemplate any;
+  xsltTemplate := CAL.WA.xslt_full ('rss2atom03.xsl');
+  if (CAL.WA.settings_atomVersion (CAL.WA.settings (account_id)) = '1.0')
+    xsltTemplate := CAL.WA.xslt_full ('rss2atom.xsl');
+
+  xml_entity := xtree_doc(CAL.WA.export_rss_sqlx_for_det (domain_id, account_id));
+
+  xml_entity := xslt(xsltTemplate, xml_entity);
+  return serialize_to_UTF8_xml(xml_entity);
+}
+;
+
+create procedure CAL.WA.export_rdf_sqlx_for_det (
+  in domain_id integer,
+  in account_id integer)
+{
+  declare xml_entity, xsltTemplate any;
+  xsltTemplate := CAL.WA.xslt_full ('rss2rdf.xsl');
+  xml_entity := xtree_doc(CAL.WA.export_rss_sqlx_for_det (domain_id, account_id));
+  xml_entity := xslt(xsltTemplate, xml_entity);
+  return serialize_to_UTF8_xml(xml_entity);
+}
+;
+
+create procedure CAL.WA.install_caldav_vhosts()
+{
+    DB.DBA.VHOST_REMOVE (lpath=>'/principals/users/');
+    DB.DBA.VHOST_DEFINE (lpath=>'/principals/users/', ppath => '/!principals/users/', 
+        is_dav => 1, vsp_user => 'dba', opts => vector('noinherit', 1, 'exec_as_get', 1));
+}
+;
+
+CAL.WA.install_caldav_vhosts()
+;
+
+create procedure WS.WS."/!principals/users/" (inout path varchar, inout params any, inout lines any)
+{
+    declare user_id, inst_name varchar;
+    declare command varchar;
+    declare pos integer;
+    declare exit handler for sqlstate '*'
+    {
+        http_request_status ('HTTP/1.1 404 Not Found');
+        return;
+    };
+    whenever not found goto retr;
+    command := lines[0];
+    pos := strcasestr(command, '/principals/users/');
+    if (pos is null)  
+        return;
+    user_id := subseq(command, pos + 18);
+    pos := strcasestr(user_id, 'HTTP/1.1');
+    if (pos is not null)  
+        user_id := subseq(user_id, 0, pos);
+    user_id := trim(user_id, ' /');
+    pos := strchr(user_id, '@');
+    if (pos is not null)  
+        user_id := subseq(user_id, 0, pos);
+    inst_name := (select CalDAV__FIXNAME (C.WAI_NAME)
+        from SYS_USERS A,
+        WA_MEMBER B,
+        WA_INSTANCE C
+        where A.U_NAME = user_id
+        and B.WAM_USER = A.U_ID
+        and B.WAM_MEMBER_TYPE = 1
+        and B.WAM_INST = C.WAI_NAME
+        and C.WAI_TYPE_NAME = 'Calendar');
+    http_request_status ('HTTP/1.1 301 Moved Permanently');
+    http_header (sprintf ('Location: /DAV/home/%s/calendars/%s/\r\n', user_id, inst_name));
+    return;
+retr:
+    http_request_status ('HTTP/1.1 404 Not Found');
+    return;
+}
+;
+
+registry_set ('/!principals/users/', 'no_vsp_recompile')
+;
diff --git a/appsrc/ODS-Calendar/sql/DET_Calendar.sql b/appsrc/ODS-Calendar/sql/DET_Calendar.sql
index 13b18fa..31b2521 100644
--- a/appsrc/ODS-Calendar/sql/DET_Calendar.sql
+++ b/appsrc/ODS-Calendar/sql/DET_Calendar.sql
@@ -1,10 +1,10 @@
 --
---  $Id: DET_Calendar.sql,v 1.7.2.2 2010/09/20 10:15:02 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2007 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/sql/calendar-a-api.sql b/appsrc/ODS-Calendar/sql/calendar-a-api.sql
index d074cfd..2daf379 100644
--- a/appsrc/ODS-Calendar/sql/calendar-a-api.sql
+++ b/appsrc/ODS-Calendar/sql/calendar-a-api.sql
@@ -1,10 +1,10 @@
 --
---  $Id: calendar-a-api.sql,v 1.10.2.6 2011/06/09 17:43:16 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2008 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -24,60 +24,180 @@ use ODS;
 
 -------------------------------------------------------------------------------
 --
-create procedure ODS.ODS_API.calendar_setting_set (
-  inout settings any,
-  inout options any,
-  in settingName varchar,
-  in settingTest any := null)
-{
-	declare aValue any;
-
-  aValue := get_keyword (settingName, options, get_keyword (settingName, settings));
-  if (not isnull (settingTest))
-    CAL.WA.test (cast (aValue as varchar), settingTest);
-  CAL.WA.set_keyword (settingName, settings, aValue);
-}
-;
-
--------------------------------------------------------------------------------
+--!
+--  * \brief Change a configuration setting on the Calendar app
+--  */
+-- create procedure ODS.ODS_API.calendar_setting_set (
+--   inout settings any,
+--   inout options any,
+--   in settingName varchar,
+--   in settingTest any := null)
+-- {
+-- 	declare aValue any;
 --
-create procedure ODS.ODS_API.calendar_setting_xml (
-  in settings any,
-  in settingName varchar)
-{
-  return sprintf ('<%s>%s</%s>', settingName, cast (get_keyword (settingName, settings) as varchar), settingName);
-}
-;
-
--------------------------------------------------------------------------------
+--   aValue := get_keyword (settingName, options, get_keyword (settingName, settings));
+--   if (not isnull (settingTest))
+--     CAL.WA.test (cast (aValue as varchar), settingTest);
+--   CAL.WA.set_keyword (settingName, settings, aValue);
+-- }
+-- ;
 --
-create procedure ODS.ODS_API.calendar_type_check (
-  in inType varchar,
-  in inSource varchar)
-{
-  declare outType integer;
-
-  if (isnull (inType))
-    inType := case when (inSource like 'http://%') then 'url' else 'webdav' end;
-
-	if (lcase (inType) = 'webdav')
-	{
-		outType := 1;
-	}
-	else if (lcase (inType) = 'url')
-	{
-		outType := 2;
-	}
-	else
-	{
-		signal ('CAL106', 'The source type must be WebDAV or URL.');
-	}
-	return outType;
-}
-;
-
--------------------------------------------------------------------------------
+-- -------------------------------------------------------------------------------
+-- --
+-- /**
+--  * \brief A Calendar setting encoded as XML.
+--  *
+--  * \param settings
+--  * \param settingName
+--  */
+-- create procedure ODS.ODS_API.calendar_setting_xml (
+--   in settings any,
+--   in settingName varchar)
+-- {
+--   return sprintf ('<%s>%s</%s>', settingName, cast (get_keyword (settingName, settings) as varchar), settingName);
+-- }
+-- ;
+--
+-- -------------------------------------------------------------------------------
+-- --
+-- create procedure ODS.ODS_API.calendar_type_check (
+--   in inType varchar,
+--   in inSource varchar)
+-- {
+--   declare outType integer;
+--
+--   if (isnull (inType))
+--     inType := case when (inSource like 'http://%') then 'url' else 'webdav' end;
+--
+-- 	if (lcase (inType) = 'webdav')
+-- 	{
+-- 		outType := 1;
+-- 	}
+-- 	else if (lcase (inType) = 'url')
+-- 	{
+-- 		outType := 2;
+-- 	}
+-- 	else
+-- 	{
+-- 		signal ('CAL106', 'The source type must be WebDAV or URL.');
+-- 	}
+-- 	return outType;
+-- }
+-- ;
 --
+-- -------------------------------------------------------------------------------
+-- --
+-- /**
+-- \brief Get the details of a specific event or task.
+--
+-- \param event_id The id of the event or task. Event ids are unque across calendar instances.
+--
+-- \return A set of RDF triples detailing the event or task encoded as RDF+XML.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.get?event_id=3286&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 24 May 2011 21:05:58 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: application/sparql-results+xml
+-- Content-Length: 7809
+--
+-- <?xml version="1.0" encoding="utf-8" ?>
+-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <sioc:content xmlns:sioc="http://rdfs.org/sioc/ns#">test</sioc:content>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <sioc:has_creator xmlns:sioc="http://rdfs.org/sioc/ns#" rdf:resource="http://ods-qa.openlinksw.com/dataspace/demo#this"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <n0pred:description xmlns:n0pred="http://www.w3.org/2002/12/cal#">test</n0pred:description>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <rdf:type rdf:resource="http://atomowl.org/ontologies/atomrdf#Entry"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <rdf:type rdf:resource="http://www.w3.org/2002/12/cal#vevent"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <opl:isDescribedUsing xmlns:opl="http://www.openlinksw.com/schema/attribution#" rdf:resource="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286/sioc.rdf"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <atom:updated xmlns:atom="http://atomowl.org/ontologies/atomrdf#">2011-05-24T21:01:53Z</atom:updated>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <n0pred:lastModified xmlns:n0pred="http://www.w3.org/2002/12/cal#" rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2011-05-24T17:01:53-04:00</n0pred:lastModified>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <n0pred:dtstamp xmlns:n0pred="http://www.w3.org/2002/12/cal#" rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2011-05-24T17:01:53.000004-04:00</n0pred:dtstamp>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <foaf:maker xmlns:foaf="http://xmlns.com/foaf/0.1/" rdf:resource="http://ods-qa.openlinksw.com/dataspace/person/demo#this"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <n0pred:dtstart xmlns:n0pred="http://www.w3.org/2002/12/cal#" rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2011-05-20T00:00:00-04:00</n0pred:dtstart>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <n0pred:created xmlns:n0pred="http://www.w3.org/2002/12/cal#" rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2011-05-24T17:01:53-04:00</n0pred:created>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <sioc:id xmlns:sioc="http://rdfs.org/sioc/ns#">ef922cbdd8636f7829a24af90b522cf3</sioc:id>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <n0pred:url xmlns:n0pred="http://www.w3.org/2002/12/cal#">http://ods-qa.openlinksw.com:80/calendar/148/home.vspx?id=3286</n0pred:url>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <atom:title xmlns:atom="http://atomowl.org/ontologies/atomrdf#">demoevent</atom:title>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <n0pred:notes xmlns:n0pred="http://www.w3.org/2002/12/cal#"></n0pred:notes>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <n0pred:class xmlns:n0pred="http://www.w3.org/2002/12/cal#">PUBLIC</n0pred:class>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <sioc:link xmlns:sioc="http://rdfs.org/sioc/ns#" rdf:resource="http://ods-qa.openlinksw.com:80/calendar/148/home.vspx?id=3286"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <n0pred:dtend xmlns:n0pred="http://www.w3.org/2002/12/cal#" rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2011-05-20T00:00:00-04:00</n0pred:dtend>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <n0pred:has_services xmlns:n0pred="http://rdfs.org/sioc/services#" rdf:resource="http://ods-qa.openlinksw.com/dataspace/services/calendar/event"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <dc:title xmlns:dc="http://purl.org/dc/elements/1.1/">demoevent</dc:title>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <n0pred:summary xmlns:n0pred="http://www.w3.org/2002/12/cal#">demoevent</n0pred:summary>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <sioc:has_container xmlns:sioc="http://rdfs.org/sioc/ns#" rdf:resource="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <atom:published xmlns:atom="http://atomowl.org/ontologies/atomrdf#">2011-05-24T21:01:53Z</atom:published>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <atom:author xmlns:atom="http://atomowl.org/ontologies/atomrdf#" rdf:resource="http://ods-qa.openlinksw.com/dataspace/person/demo#this"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <rdfs:label>demoevent</rdfs:label>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <dcterms:modified xmlns:dcterms="http://purl.org/dc/terms/" rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2011-05-24T17:01:53-04:00</dcterms:modified>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <dcterms:created xmlns:dcterms="http://purl.org/dc/terms/" rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2011-05-24T17:01:53-04:00</dcterms:created>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3286#this">
+--     <atom:source xmlns:atom="http://atomowl.org/ontologies/atomrdf#" rdf:resource="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar"/>
+--   </rdf:Description>
+-- </rdf:RDF>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.get" (
   in event_id integer) __soap_http 'text/xml'
 {
@@ -104,6 +224,63 @@ create procedure ODS.ODS_API."calendar.get" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Create a new Calendar event.
+--
+-- \param inst_id The id of the Calendar app instance. See \ref ods_instance_id for details.
+-- \param uid
+-- \param subject The subject/title of the event.
+-- \param description The optional description of the event, typically longer than \p subject.
+-- \param location
+-- \param attendees An optional comma-separated list of email addresses of people working on the event.
+-- \param privacy Set the new event to be public \p (1) or private \p (0) or controlled by ACL \p (2). See \ref ods_permissions_acl for details.
+-- \param tags An optional comma-separated list of tags to assign to the new event.
+-- \param event The type of the event: An all-day event \p (1) or an intervall event \p (0) for which both \p eventStart and \p eventEnd should contain a time.
+-- \param eventStart The start of the event as a datetime value. This only requires a time if the type of the event
+--                   is set to intervall \p (0). Otherwise only the date is required. See also
+--                   <a href="http://docs.openlinksw.com/virtuoso/coredbengine.html#DTTIMESTAMP">Virtuoso TIMESTAMP; DATE & TIME</a>.
+-- \param eventEnd The end time of the event. The same rules apply as for \p eventStart.
+-- \param eRepeat Sets the event repetition:
+-- - An empty value (the default) means no repetition
+-- - \p D1 - repeats every Nth day where \p eRepeatParam1 indicates the interval (1 for every day, 3 for every 3rd day, etc.)
+-- - \p D2 - repeats every weekday (Monday to Friday)
+-- - \p W1 - repeats every Nth week (indicated by \p eRepeatParam1) on the week days indicated by \p eRepeatParam2. This is realized as a bitmask where
+--           each day in the week corresponds to one bit. So to specify for example Mon, Tue, and Sat a value of \p 2^0+2^1+2^5=35 needs to be specified as
+--           \p eRepeatParam2.
+-- - \p M1 - repeats on every Nth day (indicated by \p eRepeatParam1) of the Mth month (indicated by \p eRepeatParam2)
+-- - \p M2 - repeats the 1st, 2nd, 3rd, 4th, or last (indicated by 1-5 in \p eRepeatParam1) Mon, Tue, ..., Sun, day, weekday, or weekend (indicated by
+--           1-10 in \p eRepeatParam2) of every Nth month (indicated by \p eRepeatParam3).
+-- - \p Y1 - repeats every N years (indicated by \p eRepeatParam1) on the month and day indicated by \p eRepeatParam2 and \p eRepeatParam3 respectively.
+-- - \p Y2 - repeats the 1st, 2nd, 3rd, 4th, or last (indicated by 1-5 in \p eRepeatParam1) Mon, Tue, ..., Sun, day, weekday, or weekend (indicated by
+--           1-10 in \p eRepeatParam2) of the month indicated by \p eRepeatParam3 (Jan to Dec).
+-- \param eRepeatParam1 Additional repetition parameter as detailed above.
+-- \param eRepeatParam2 Additional repetition parameter as detailed above.
+-- \param eRepeatParam3 Additional repetition parameter as detailed above.
+-- \param eRepeatUntil An optional datetime when to end the repetition of the event.
+-- \param eReminder \p 0 to disable the reminder or the time in seconds of how long before the event the reminder should be shown.
+-- \param notes Additional notes on the event. FIXME: what is the difference to description?
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code. If the event
+-- was successfully created the error code will match the id of the newly created event.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.event.new?inst_id=148&subject=test_event&description=test&eventStart=2011.05.20&eventEnd=2011.05.20&event=1&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 05:23:09 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 60
+--
+-- <result>
+--   <code>2517</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.event.new" (
   in inst_id integer,
   in uid varchar := null,
@@ -171,6 +348,65 @@ create procedure ODS.ODS_API."calendar.event.new" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Modify a Calendar event.
+--
+-- \param event_id The id of the Calendar event. This is returned by calendar.event.new().
+-- \param uid
+-- \param subject The subject/title of the event.
+-- \param description The optional description of the event, typically longer than \p subject.
+-- \param location
+-- \param attendees An optional comma-separated list of email addresses of people working on the event.
+-- \param privacy Set the new event to be public \p (1) or private \p (0) or controlled by ACL \p (2). See \ref ods_permissions_acl for details.
+-- \param tags An optional comma-separated list of tags to assign to the new event.
+-- \param event The type of the event: An all-day event \p (1) or an intervall event \p (0) for which both \p eventStart and \p eventEnd should contain a time.
+-- \param eventStart The start of the event as a datetime value. This only requires a time if the type of the event
+--                   is set to intervall \p (0). Otherwise only the date is required. See also
+--                   <a href="http://docs.openlinksw.com/virtuoso/coredbengine.html#DTTIMESTAMP">Virtuoso TIMESTAMP; DATE & TIME</a>.
+-- \param eventEnd The end time of the event. The same rules apply as for \p eventStart.
+-- \param eRepeat Sets the event repetition:
+-- - An empty value (the default) means no repetition
+-- - \p D1 - repeats every Nth day where \p eRepeatParam1 indicates the interval (1 for every day, 3 for every 3rd day, etc.)
+-- - \p D2 - repeats every weekday (Monday to Friday)
+-- - \p W1 - repeats every Nth week (indicated by \p eRepeatParam1) on the week days indicated by \p eRepeatParam2. This is realized as a bitmask where
+--           each day in the week corresponds to one bit. So to specify for example Mon, Tue, and Sat a value of \p 2^0+2^1+2^5=35 needs to be specified as
+--           \p eRepeatParam2.
+-- - \p M1 - repeats on every Nth day (indicated by \p eRepeatParam1) of the Mth month (indicated by \p eRepeatParam2)
+-- - \p M2 - repeats the 1st, 2nd, 3rd, 4th, or last (indicated by 1-5 in \p eRepeatParam1) Mon, Tue, ..., Sun, day, weekday, or weekend (indicated by
+--           1-10 in \p eRepeatParam2) of every Nth month (indicated by \p eRepeatParam3).
+-- - \p Y1 - repeats every N years (indicated by \p eRepeatParam1) on the month and day indicated by \p eRepeatParam2 and \p eRepeatParam3 respectively.
+-- - \p Y2 - repeats the 1st, 2nd, 3rd, 4th, or last (indicated by 1-5 in \p eRepeatParam1) Mon, Tue, ..., Sun, day, weekday, or weekend (indicated by
+--           1-10 in \p eRepeatParam2) of the month indicated by \p eRepeatParam3 (Jan to Dec).
+-- \param eRepeatParam1 Additional repetition parameter as detailed above.
+-- \param eRepeatParam2 Additional repetition parameter as detailed above.
+-- \param eRepeatParam3 Additional repetition parameter as detailed above.
+-- \param eRepeatUntil An optional datetime when to end the repetition of the event.
+-- \param eReminder \p 0 to disable the reminder or the time in seconds of how long before the event the reminder should be shown.
+-- \param notes Additional notes on the event. FIXME: what is the difference to description?
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code. If the event
+-- was successfully modified the error code will match the id of the event.
+--
+-- \sa calendar.event.create()
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.event.edit?event_id=2517&subject=test_event2&description=test2&eventSt
+-- art=2011.05.20&eventEnd=2011.06.20&event=1&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 05:44:36 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 60
+--
+-- <result>
+--   <code>2517</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.event.edit" (
   in event_id integer,
   in uid varchar := null,
@@ -240,6 +476,56 @@ create procedure ODS.ODS_API."calendar.event.edit" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Create a new Calendar Task
+--
+-- \param inst_id The id of the Calendar app instance. See \ref ods_instance_id for details.
+-- \param uid
+-- \param subject The subject/title of the task.
+-- \param description The optional description of the task, typically longer than \p subject.
+-- \param attendees An optional comma-separated list of email addresses of people working on the task.
+-- \param privacy Set the new task to be public \p (1) or private \p (0) or controlled by ACL \p (2). See \ref ods_permissions_acl for details.
+-- \param tags An optional comma-separated list of tags to assign to the new task.
+-- \param eventStart The start of the task as a datetime value. See also
+--                   <a href="http://docs.openlinksw.com/virtuoso/coredbengine.html#DTTIMESTAMP">Virtuoso TIMESTAMP; DATE & TIME</a>.
+-- \param eventEnd The end time of the task. The same rules apply as for \p eventStart.
+-- \param priority The priority of the task.
+-- - \p 1 - highest,
+-- - \p 2 - high
+-- - \p 3 - normal,
+-- - \p 4 - low
+-- - \p 5 - lowest
+-- \param status The task status. Can be one of:
+-- - \p "Not Started"
+-- - \p "In Progress"
+-- - \p "Completed"
+-- - \p "Waiting"
+-- - \p "Deferred"
+-- \param complete The completion state as percentage (0%, 25%, 50%, 75%, 100%)
+-- \param completed The time when the task has been completed.
+-- \param notes Additional optional notes.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code. If the task
+-- was successfully created the error code will match the id of the event.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.task.new?inst_id=148&subject=test_task&description=test&eventStart=2011.05.20&eventEnd=2011.05.20&event=1&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 05:46:05 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 60
+--
+-- <result>
+--   <code>2518</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.task.new" (
   in inst_id integer,
   in uid varchar := null,
@@ -299,6 +585,56 @@ create procedure ODS.ODS_API."calendar.task.new" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Create a new Calendar Task
+--
+-- \param event_id The id of the Calendar task. This is returned by calendar.task.new().
+-- \param uid
+-- \param subject The subject/title of the task.
+-- \param description The optional description of the task, typically longer than \p subject.
+-- \param attendees An optional comma-separated list of email addresses of people working on the task.
+-- \param privacy Set the new task to be public \p (1) or private \p (0) or controlled by ACL \p (2). See \ref ods_permissions_acl for details.
+-- \param tags An optional comma-separated list of tags to assign to the new task.
+-- \param eventStart The start of the task as a datetime value. See also
+--                   <a href="http://docs.openlinksw.com/virtuoso/coredbengine.html#DTTIMESTAMP">Virtuoso TIMESTAMP; DATE & TIME</a>.
+-- \param eventEnd The end time of the task. The same rules apply as for \p eventStart.
+-- \param priority The priority of the task.
+-- - \p 1 - highest,
+-- - \p 2 - high
+-- - \p 3 - normal,
+-- - \p 4 - low
+-- - \p 5 - lowest
+-- \param status The task status. Can be one of:
+-- - \p "Not Started"
+-- - \p "In Progress"
+-- - \p "Completed"
+-- - \p "Waiting"
+-- - \p "Deferred"
+-- \param complete The completion state as percentage (0%, 25%, 50%, 75%, 100%)
+-- \param completed The time when the task has been completed.
+-- \param notes Additional optional notes.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code. If the task
+-- was successfully modified the error code will match the id of the event.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.task.edit?event_id=2518&subject=test_task2&description=test2&eventStart=2011.05.20&eventEnd=2011.06.20&event=1&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 05:57:14 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 60
+--
+-- <result>
+--   <code>2518</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.task.edit" (
   in event_id integer,
   in uid varchar := null,
@@ -360,6 +696,31 @@ create procedure ODS.ODS_API."calendar.task.edit" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Delete a Calendar event or task.
+--
+-- \param event_id The id of the event or task to delete.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.delete?event_id=2520&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 05:59:10 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.delete" (
   in event_id integer) __soap_http 'text/xml'
 {
@@ -387,6 +748,41 @@ create procedure ODS.ODS_API."calendar.delete" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Import an iCal calendar.
+--
+-- ODS Calendar can import an complete iCal file into a Calendar app instance. This iCal file
+-- can be located in the WebDAV tree or at any public URL.
+--
+-- \param inst_id The id of the Calendar app instance. See \ref ods_instance_id for details.
+-- \param source The source URL or path depending on the \p sourceType.
+-- \param sourceType Can be one of \p "url" or \p "webdav".
+-- \param userName Optional user name required to access the source. Defaults to the calling user credentials.
+-- \param userPassword Optional password required to access the source. Defaults to the calling user credentials.
+-- \param events If \p 1 events will be imported.
+-- \param tasks If \p 1 tasks will be imported.
+-- \param tags An optional comma-separated list of tags to assign to the imported events and tasks.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.import?inst_id=148&source=http://mysportscal.com/Files_iCal_CSV/iCal_NFL_2010-2011/NFL_2010_complete_season.ics&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 06:29:00 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.import" (
   in inst_id integer,
   in source varchar,
@@ -455,6 +851,90 @@ create procedure ODS.ODS_API."calendar.import" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Export part of the calendar to into iCal.
+--
+-- \param inst_id The id of the Calendar app instance. See \ref ods_instance_id for details.
+-- \param events If \p 1 events will be exported.
+-- \param tasks If \p 1 tasks will be exported.
+-- \param periodFrom Optional start time. If given no events or tasks before that time will be exported.
+-- \param periodTo Optional end time. If given no events or tasks after that time will be exported.
+-- \param tagsInclude Optional comma-separated list of tags to include in the export. If given only events and tasks
+--        tagged thusly will be exported.
+-- \param tagsExclude Optional comma-separated list of tags to exclude from the export. If given events and tasks
+--        tagged thusly are excluded from the export.
+--
+-- \return The requested events and tasks encoded in the iCal format.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.export?inst_id=148&events=0&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 06:02:54 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/plain; charset="UTF-8"
+-- Content-Length: 15381
+--
+-- BEGIN:VCALENDAR
+-- VERSION:2.0
+-- BEGIN:VTIMEZONE
+-- TZID:Etc/GMT
+-- BEGIN:STANDARD
+-- TZOFFSETFROM:+0000
+-- TZOFFSETTO:+0000
+-- TZNAME:GMT +00:00
+-- DTSTART:19700101T000000
+-- END:STANDARD
+-- END:VTIMEZONE
+--
+-- BEGIN:VEVENT
+-- UID:4A635748-E5B9-11DF-A902-EA37E85308F4 at domU-12-31-39-02-F9-62.compute-1.internal
+-- URL:http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/1789
+-- DTSTAMP:20110520T060254Z
+-- CREATED:20101101T130942Z
+-- LAST-MODIFIED:20101108T133130Z
+-- SUMMARY:test
+-- DESCRIPTION:Simple event test.
+-- LOCATION:Boston
+-- DTSTART;TZID=Etc/GMT:20101101T150000
+-- DTEND;TZID=Etc/GMT:20101125T220000
+-- BEGIN:VALARM
+-- TRIGGER:-PT604800S
+-- ACTION:DISPLAY
+-- END:VALARM
+-- CLASS:SHARED
+-- END:VEVENT
+--
+-- BEGIN:VEVENT
+-- UID:event_16344435 at meetup.com
+-- URL:http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/2470
+-- DTSTAMP:20110520T060254Z
+-- CREATED:20110131T180658Z
+-- LAST-MODIFIED:20110131T180600Z
+-- SUMMARY:Linked Data Meetup @ Strata Conference
+-- DESCRIPTION:Linked Data Meetup
+--
+-- Santa Clara, CA  95054 - USA
+--
+-- Wednesday, February 2 at 9:30 PM
+--
+-- Photo: http://photos2.meetupstatic.com/photos/event/6/0/8/5/event_9084709.jpeg
+--
+-- Attending: 6
+--
+-- Details: http://www.meetup.com/linkeddata/events/16344435/
+-- LOCATION:Hyatt Regency Santa Clara - 5101 Great American Parkway - Santa Clara, CA  95054 - USA
+-- DTSTART;TZID=Etc/GMT:20110203T023000
+-- DTEND;TZID=Etc/GMT:20110203T043000
+-- CLASS:PUBLIC
+-- END:VEVENT
+--
+-- ....
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.export" (
   in inst_id integer,
   in events integer := 1,
@@ -486,6 +966,93 @@ create procedure ODS.ODS_API."calendar.export" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Get details of a comment.
+--
+-- \param comment_id The id of the comment.
+--
+-- \return The details of the comment encoded as RDF+XML triples.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.comment.get?comment_id=4&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 07:04:08 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: application/sparql-results+xml
+-- Content-Length: 5401
+--
+-- <?xml version="1.0" encoding="utf-8" ?>
+-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <sioc:reply_of xmlns:sioc="http://rdfs.org/sioc/ns#" rdf:resource="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283#this"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <rdf:type rdf:resource="http://rdfs.org/sioc/ns#Item"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <atom:published xmlns:atom="http://atomowl.org/ontologies/atomrdf#">2011-05-20T07:03:15Z</atom:published>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <dcterms:created xmlns:dcterms="http://purl.org/dc/terms/" rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2011-05-20T03:03:15.000002-04:00</dcterms:created>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <n0pred:has_services xmlns:n0pred="http://rdfs.org/sioc/services#" rdf:resource="http://ods-qa.openlinksw.com/dataspace/services/calendar/item/comment"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <atom:updated xmlns:atom="http://atomowl.org/ontologies/atomrdf#">2011-05-20T07:03:15Z</atom:updated>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <sioc:has_container xmlns:sioc="http://rdfs.org/sioc/ns#" rdf:resource="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <dc:title xmlns:dc="http://purl.org/dc/elements/1.1/">test</dc:title>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <rdf:type rdf:resource="http://rdfs.org/sioc/types#Comment"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <rdfs:label>test</rdfs:label>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <atom:source xmlns:atom="http://atomowl.org/ontologies/atomrdf#" rdf:resource="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <rdf:type rdf:resource="http://rdfs.org/sioc/ns#Post"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <sioc:id xmlns:sioc="http://rdfs.org/sioc/ns#">b207403243d98571a0a72876aa34a0f9</sioc:id>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <foaf:maker xmlns:foaf="http://xmlns.com/foaf/0.1/" rdf:resource="http://openlinksw.com"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <dcterms:modified xmlns:dcterms="http://purl.org/dc/terms/" rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2011-05-20T03:03:15.000002-04:00</dcterms:modified>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <opl:isDescribedUsing xmlns:opl="http://www.openlinksw.com/schema/attribution#" rdf:resource="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4/sioc.rdf"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <rdf:type rdf:resource="http://atomowl.org/ontologies/atomrdf#Entry"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <atom:title xmlns:atom="http://atomowl.org/ontologies/atomrdf#">test</atom:title>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <sioc:link xmlns:sioc="http://rdfs.org/sioc/ns#" rdf:resource="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/4">
+--     <sioc:content xmlns:sioc="http://rdfs.org/sioc/ns#">simple</sioc:content>
+--   </rdf:Description>
+-- </rdf:RDF>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.comment.get" (
   in comment_id integer) __soap_http 'text/xml'
 {
@@ -513,6 +1080,43 @@ _exit:
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Create a new comment on an event or task.
+--
+-- Comments can be put in threads, ie. a comment can have a parent comment. In that
+-- case it is considered a reply to the parent comment.
+--
+-- \param event_id The id of the event or task to comment on.
+-- \param parent_id The optional id of the comment the new comment should reply to.
+-- \param title The title of the comment.
+-- \param text The text body of the comment.
+-- \param name The name of the commenter.
+-- \param email The email address of the commenter.
+-- \param url An optional URL to identify the commenter.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+-- If successful the error code matches the id of the newly created comment.
+--
+-- \sa calendar.comment.delete
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.comment.new?event_id=3283&title=test&text=simple&name=Kate&email=kate@yahoo.com&url=http://openlinksw.com&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 07:03:15 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>4</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.comment.new" (
   in event_id integer,
   in parent_id integer := null,
@@ -562,6 +1166,33 @@ create procedure ODS.ODS_API."calendar.comment.new" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Delete a comment.
+--
+-- \param comment_id The numerical id of the comment to delete.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \sa calendar.comment.new
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.comment.delete?comment_id=4&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 07:07:00 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.comment.delete" (
   in comment_id integer) __soap_http 'text/xml'
 {
@@ -590,6 +1221,48 @@ create procedure ODS.ODS_API."calendar.comment.delete" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Get details of an annotation.
+--
+-- \param annotation_id The id of the annotation.
+--
+-- \return The details of the annotation encoded as RDF+XML triples
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.annotation.get?annotation_id=2&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 06:46:30 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: application/sparql-results+xml
+-- Content-Length: 1943
+--
+-- <?xml version="1.0" encoding="utf-8" ?>
+-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/annotation/2">
+--     <n0pred:has_services xmlns:n0pred="http://rdfs.org/sioc/services#" rdf:resource="http://ods-qa.openlinksw.com/dataspace/services/calendar/item/annotation"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/annotation/2">
+--     <n0pred:annotates xmlns:n0pred="http://www.w3.org/2000/10/annotation-ns#" rdf:resource="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283#this"/>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/annotation/2">
+--     <n0pred:body xmlns:n0pred="http://www.w3.org/2000/10/annotation-ns#">test</n0pred:body>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/annotation/2">
+--     <n0pred:modifiedxmlns:n0pred="http://www.w3.org/2000/10/annotation-ns#" rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2011-05-20T02:45:24-04:00</n0pred:modified>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/annotation/2">
+--     <n0pred:created xmlns:n0pred="http://www.w3.org/2000/10/annotation-ns#" rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2011-05-20T02:45:24-04:00</n0pred:created>
+--   </rdf:Description>
+--   <rdf:Description rdf:about="http://ods-qa.openlinksw.com/dataspace/demo/calendar/Demo%20User%27s%20Calendar/Event/3283/annotation/2">
+--     <n0pred:author xmlns:n0pred="http://www.w3.org/2000/10/annotation-ns#">John</n0pred:author>
+--   </rdf:Description>
+-- </rdf:RDF>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.annotation.get" (
   in annotation_id integer) __soap_http 'text/xml'
 {
@@ -618,6 +1291,38 @@ _exit:
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Create a new annotation.
+--
+-- Calendar events and tasks can be annotated. An annotation is comparable to a comment.
+--
+-- \param event_id The id of the event or task to annotate.
+-- \param author The name of the author of the annotation.
+-- \param body The content of the annotation.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+-- If successful the returned error code matches the new annotation's numerical id.
+--
+-- \sa annotation.delete
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.annotation.new?event_id=3283&author=John&body=test&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 06:45:24 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>2</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.annotation.new" (
   in event_id integer,
   in author varchar,
@@ -649,6 +1354,38 @@ create procedure ODS.ODS_API."calendar.annotation.new" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Create an annotation claim.
+--
+-- An annotation claim is a triple which makes a statement over the annotation.
+--
+-- FIXME: why do we only have a claim method for annotations and not one for any resource?
+--
+-- \param annotation_id The id of the annotation as returned by annotation.new().
+-- \param claimIri The IRI of the annotation. FIXME: this seems redundant seeing that we also put in the id
+-- \param claimRelation The property to be stored.
+-- \param claimValue The value of the property.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.annotation.claim?annotation_id=2&claimIri=http://mytest.com&claimRelation=test&claimValue=demo&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 07:00:18 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.annotation.claim" (
   in annotation_id integer,
   in claimIri varchar,
@@ -684,6 +1421,33 @@ create procedure ODS.ODS_API."calendar.annotation.claim" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Delete an annotation.
+--
+-- \param annotation_id The id of the annotation to delete as returned by annotation.new().
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \sa annotation.new
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.annotation.delete?annotation_id=2&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 07:01:12 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.annotation.delete" (
   in annotation_id integer) __soap_http 'text/xml'
 {
@@ -712,6 +1476,57 @@ create procedure ODS.ODS_API."calendar.annotation.delete" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Create a new calendar publication.
+--
+-- ODS Calendar allows to publish its contents to WebDAV, CalDAV, or a writable URL. This method
+-- allows to create new publications which are then updated according to the settings.
+--
+-- The published file contains the calendar's events and/or tasks in iCal format.
+--
+-- \param inst_id The id of the Calendar app instance. See \ref ods_instance_id for details.
+-- \param name A user-readable name for the new publication.
+-- \param updateType Can be one of:
+-- - \p 1 - The publication is updated manually via calendar.publication.sync()
+-- - \p 2 - The publication is updated automatically whenever an entry changes.
+-- - \p 3 - The publication is updated based on the schedule set via \p updatePeriod and \p updateFreq.
+-- \param updatePeriod Can be one of \p "daily" and \p "hourly". Only used for the scheduled updating.
+-- \param updateFreq Specifies the frequency of the scheduled updates. Depending on the value of
+--                   \p updatePeriod the publication is updated every N days or hours.
+-- \param destinationType Can be one of the following:
+-- - \p "webdav" - In this case the \p destination is a WebDAV path.
+-- - \p "caldav" - In this case the \p destination is a CalDAV path.
+-- - \p "url" - In this case the \p destination is a URL.
+-- \param destination The location where the events and tasks should be published (depends on the value of \p destinationType)
+-- \param userName An optional userName which might be required to access the \p destination.
+-- \param userPassword The password for the given \p userName.
+-- \param events If \p 1 events are published.
+-- \param tasks If \p 1 tasks are published.
+--
+-- FIXME: the UI provides "mails to attendees" configuration.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \sa calendar.publication.sync()
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.publication.new?inst_id=148&name=demo_pub&destination=DAV/home/demo/Public/Demo_PUB_Calendar.ics&userName=demo&userPassword=demo&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh9ba13"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 24 May 2011 21:42:38 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 58
+--
+-- <result>
+--  <code>20</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.publication.new" (
   in inst_id integer,
   in name varchar,
@@ -767,6 +1582,42 @@ create procedure ODS.ODS_API."calendar.publication.new" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Get details about a calendar publication.
+--
+-- Used to retrieve details of a publication added via calendar.publication.new().
+--
+-- \param publication_id The numerical id of the publication.
+--
+-- \return The configuration of the given publication encoded as XML.
+--
+-- \b Example:
+-- \verbatim
+-- $  curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.publication.get?publication_id=20&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 24 May 2011 21:45:17 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 385
+--
+-- <publication id="20">
+--   <name>demo_pub</name>
+--   <updatePeriod>daily</updatePeriod>
+--   <updateFreq>1</updateFreq>
+--   <destinationType>WebDAV</destinationType>
+--   <destination>DAV/home/demo/Public/Demo_PUB_Calendar.ics</destination>
+--   <userName>demo</userName>
+--   <userPassword>******</userName>
+--   <options>
+--     <events>1</events>
+--     <tasks>1</tasks>
+--   </options>
+-- </publication>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.publication.get" (
   in publication_id integer) __soap_http 'text/xml'
 {
@@ -826,6 +1677,57 @@ create procedure ODS.ODS_API."calendar.publication.get" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Modify a calendar publication.
+--
+-- ODS Calendar allows to publish its contents to WebDAV, CalDAV, or a writable URL. This method
+-- allows to create new publications which are then updated according to the settings.
+--
+-- The published file contains the calendar's events and/or tasks in iCal format.
+--
+-- \param publication_id The id of the Calendar publication as returned by calendar.publication.new().
+-- \param name A user-readable name for the publication. FIXME: why is this not optional?
+-- \param updateType Can be one of:
+-- - \p 1 - The publication is updated manually via calendar.publication.sync()
+-- - \p 2 - The publication is updated automatically whenever an entry changes.
+-- - \p 3 - The publication is updated based on the schedule set via \p updatePeriod and \p updateFreq.
+-- \param updatePeriod Can be one of \p "daily" and \p "hourly". Only used for the scheduled updating.
+-- \param updateFreq Specifies the frequency of the scheduled updates. Depending on the value of
+--                   \p updatePeriod the publication is updated every N days or hours.
+-- \param destinationType Can be one of the following:
+-- - \p "webdav" - In this case the \p destination is a WebDAV path.
+-- - \p "caldav" - In this case the \p destination is a CalDAV path.
+-- - \p "url" - In this case the \p destination is a URL.
+-- \param destination The location where the events and tasks should be published (depends on the value of \p destinationType)
+-- \param userName An optional userName which might be required to access the \p destination.
+-- \param userPassword The password for the given \p userName.
+-- \param events If \p 1 events are published.
+-- \param tasks If \p 1 tasks are published.
+--
+-- FIXME: the UI provides "mails to attendees" configuration.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \sa calendar.publication.new()
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.publication.edit?publication_id=20&name=testpub3&destination=DAV/home/demo/Public/Demo_PUB_Calendar.ics&userName=demo&userPassword=demo&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 24 May 2011 21:56:16 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 58
+--
+-- <result>
+--   <code>20</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.publication.edit" (
   in publication_id integer,
   in name varchar,
@@ -887,6 +1789,35 @@ create procedure ODS.ODS_API."calendar.publication.edit" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Synchronize a calendar publication.
+--
+-- Manually synchonizes a calendar publication created with calendar.publication.new(). This is required
+-- if the publication has been configured to be manually updated. However, it can also be used to force an
+-- update on publications with a scheduled update interval.
+--
+-- \param publication_id The numerical id of the publication to update.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.publication.sync?publication_id=20&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 24 May 2011 21:57:58 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.publication.sync" (
   in publication_id integer) __soap_http 'text/xml'
 {
@@ -917,6 +1848,31 @@ create procedure ODS.ODS_API."calendar.publication.sync" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Delete a calendar publication.
+--
+-- \param publication_id The numerical id of the publication created via calendar.publication.new().
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.publication.delete?publication_id=13&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 08:05:56 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.publication.delete" (
   in publication_id integer) __soap_http 'text/xml'
 {
@@ -946,6 +1902,51 @@ create procedure ODS.ODS_API."calendar.publication.delete" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Create a new calendar subscription.
+--
+-- ODS Calendar can subscribe to external calendars and integrate the events and tasks into
+-- its own. This function allows to set up such a subscription to an iCal file.
+--
+-- \param inst_id The id of the Calendar app instance. See \ref ods_instance_id for details.
+-- \param name A user-readable name for the new subscription.
+-- \param updateType Can be one of:
+-- - \p 1 - The subscription is updated manually via calendar.subscription.sync()
+-- - \p 2 - The subscription is updated based on the schedule set via \p updatePeriod and \p updateFreq.
+-- \param updatePeriod Can be one of \p "daily" and \p "hourly". Only used for the scheduled updating.
+-- \param updateFreq Specifies the frequency of the scheduled updates. Depending on the value of
+--                   \p updatePeriod the subscription is updated every N days or hours.
+-- \param sourceType Can be one of the following:
+-- - \p "webdav" - In this case the \p source is a WebDAV path.
+-- - \p "caldav" - In this case the \p source is a CalDAV path.
+-- - \p "url" - In this case the \p source is a URL.
+-- \param source The location from where the events and tasks should be fetched (depends on the value of \p sourceType)
+-- \param userName An optional userName which might be required to access the \p source.
+-- \param userPassword The password for the given \p userName.
+-- \param events If \p 1 events are included.
+-- \param tasks If \p 1 tasks are included.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+-- If successful the error code matches the numerical id of the newly created subscription.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.subscription.new?inst_id=148&name=testsubscr23&source=DAV/home/demo/Public/Demo_PUB_Calendar.ics&destinationType=WebDAV&userName=demo&userPassword=demo&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 24 May 2011 21:59:21 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 58
+--
+-- <result>
+--   <code>21</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.subscription.new" (
   in inst_id integer,
   in name varchar,
@@ -1001,6 +2002,42 @@ create procedure ODS.ODS_API."calendar.subscription.new" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Get details about a calendar subscription.
+--
+-- Used to retrieve details of a subscription added via calendar.subscription.new().
+--
+-- \param subscription_id The numerical id of the subscription.
+--
+-- \return The configuration of the given subscription encoded as XML.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.subscription.get?subscription_id=21&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 24 May 2011 22:00:34 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 369
+--
+-- <publication id="21">
+--   <name>testsubscr23</name>
+--   <updatePeriod>daily</updatePeriod>
+--   <updateFreq>1</updateFreq>
+--   <sourceType>WebDAV</sourceType>
+--   <source>DAV/home/demo/Public/Demo_PUB_Calendar.ics</source>
+--   <userName>demo</userName>
+--   <userPassword>******</userName>
+--   <options>
+--     <events>1</events>
+--     <tasks>1</tasks>
+--   </options>
+-- </publication>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.subscription.get" (
   in subscription_id integer) __soap_http 'text/xml'
 {
@@ -1060,6 +2097,50 @@ create procedure ODS.ODS_API."calendar.subscription.get" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Modify a calendar subscription.
+--
+-- ODS Calendar can subscribe to external calendars and integrate the events and tasks into
+-- its own. This function allows to set up such a subscription to an iCal file.
+--
+-- \param subscription_id The id of the Calendar subscription as returned by calendar.subscription.new().
+-- \param name A user-readable name for the new subscription.
+-- \param updateType Can be one of:
+-- - \p 1 - The subscription is updated manually via calendar.subscription.sync()
+-- - \p 2 - The subscription is updated based on the schedule set via \p updatePeriod and \p updateFreq.
+-- \param updatePeriod Can be one of \p "daily" and \p "hourly". Only used for the scheduled updating.
+-- \param updateFreq Specifies the frequency of the scheduled updates. Depending on the value of
+--                   \p updatePeriod the subscription is updated every N days or hours.
+-- \param sourceType Can be one of the following:
+-- - \p "webdav" - In this case the \p source is a WebDAV path.
+-- - \p "caldav" - In this case the \p source is a CalDAV path.
+-- - \p "url" - In this case the \p source is a URL.
+-- \param source The location from where the events and tasks should be fetched (depends on the value of \p sourceType)
+-- \param userName An optional userName which might be required to access the \p source.
+-- \param userPassword The password for the given \p userName.
+-- \param events If \p 1 events are included.
+-- \param tasks If \p 1 tasks are included.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.subscription.edit?subscription_id=21&name=testsubscr24&source=DAV/home/demo/Public/Demo_PUB_Calendar.ics&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 24 May 2011 22:01:52 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 58
+--
+-- <result>
+--   <code>21</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.subscription.edit" (
   in subscription_id integer,
   in name varchar,
@@ -1121,6 +2202,35 @@ create procedure ODS.ODS_API."calendar.subscription.edit" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Synchronize a calendar subscription.
+--
+-- Manually synchonizes a calendar subscription created with calendar.subscription.new(). This is required
+-- if the subscription has been configured to be manually updated. However, it can also be used to force an
+-- update on subscriptions with a scheduled update interval.
+--
+-- \param subscription_id The numerical id of the subscription to update.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.subscription.sync?subscription_id=19&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 24 May 2011 22:40:59 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.subscription.sync" (
   in subscription_id integer) __soap_http 'text/xml'
 {
@@ -1151,6 +2261,31 @@ create procedure ODS.ODS_API."calendar.subscription.sync" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Delete a calendar subscription.
+--
+-- \param subscription_id The numerical id of the subscription created via calendar.subscription.new().
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.subscription.delete?subscription_id=17&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 08:25:45 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.subscription.delete" (
   in subscription_id integer) __soap_http 'text/xml'
 {
@@ -1180,6 +2315,40 @@ create procedure ODS.ODS_API."calendar.subscription.delete" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Create a new calendar upstream.
+--
+-- FIXME: what is an upstream?
+--
+-- \param inst_id The id of the Calendar app instance. See \ref ods_instance_id for details.
+-- \param name A human-readable name for the new upstream.
+-- \param source
+-- \param userName
+-- \param userPassword
+-- \param tagsInclude
+-- \param tagsExclude
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+-- If successful the error code matches the id of the newly created upstream.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.upstream.new?inst_id=148&name=testups&source=http://myopenlink.net/dataspace/test1/calendar/demo%27s%20Calendar/atom-pub&userName=demo&userPassword=demo&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 08:28:58 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/plain; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.upstream.new" (
   in inst_id integer,
   in name varchar,
@@ -1228,6 +2397,39 @@ create procedure ODS.ODS_API."calendar.upstream.new" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Modify a calendar upstream.
+--
+-- FIXME: what is an upstream?
+--
+-- \param upstream_id The numerical id of the upstream to modify.
+-- \param name A human-readable name for the new upstream.
+-- \param source
+-- \param userName
+-- \param userPassword
+-- \param tagsInclude
+-- \param tagsExclude
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.upstream.edit?upstream_id=1&name=testups2&source=http://myopenlink.net/dataspace/test1/calendar/demo%27s%20Calendar/atom-pub&userName=demo&userPassword=demo&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 08:30:08 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/plain; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.upstream.edit" (
   in upstream_id integer,
   in name varchar,
@@ -1283,6 +2485,31 @@ create procedure ODS.ODS_API."calendar.upstream.edit" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Delete a calendar upstream.
+--
+-- \param upstream_id The numerical id of the upstream created via calendar.upstream.new().
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.upstream.delete?upstream_id=1&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 08:31:09 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.upstream.delete" (
   in upstream_id integer) __soap_http 'text/xml'
 {
@@ -1312,6 +2539,55 @@ create procedure ODS.ODS_API."calendar.upstream.delete" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Configure a ODS Calendar instance.
+--
+-- FIXME: most of these options are only valid for the UI which means they should not be in the REST API.
+--
+-- \param inst_id The id of the Calendar app instance. See \ref ods_instance_id for details.
+-- \param options A comma-separated list of \p "key=value" pairs. Supported keys are:
+-- - chars
+-- - rows
+-- - atomVersion
+-- - defaultView
+-- - weekStarts
+-- - timeFormat
+-- - dateFormat
+-- - timeZone
+-- - showTasks
+-- - conv
+-- - conv_init
+-- - event_E_UPDATED
+-- - event_E_CREATED
+-- - event_E_LOCATION
+-- - task_E_STATUS
+-- - task_E_PRIORITY
+-- - task_E_START
+-- - task_E_END
+-- - task_E_COMPLETED
+-- - task_E_UPDATED
+-- - task_E_CREATED
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.options.set?inst_id=148&options=rows%3D10&user_name=demo&password_ha
+-- sh=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 08:09:04 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.options.set" (
   in inst_id int, in options any) __soap_http 'text/xml'
 {
@@ -1386,6 +2662,50 @@ create procedure ODS.ODS_API."calendar.options.set" (
 
 -------------------------------------------------------------------------------
 --
+--!
+-- \brief Get the configuration of a ODS Calendar instance.
+--
+-- \param inst_id The id of the Calendar app instance. See \ref ods_instance_id for details.
+--
+-- \return The configuration settings encoded as XML.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://ods-qa.openlinksw.com/ods/api/calendar.options.get?inst_id=148&user_name=demo&password_hash=921q783d9e4cbdf5cvs343dafdfvrf6a4fh"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.02.3129 (Linux) x86_64-generic-linux-glibc25-64  VDB
+-- Connection: Keep-Alive
+-- Date: Fri, 20 May 2011 08:10:08 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 625
+--
+-- <settings>
+--   <chars>60</chars>
+--   <rows>10</rows>
+--   <atomVersion>1.0</atomVersion>
+--   <defaultView>week</defaultView>
+--   <weekStarts>m</weekStarts>
+--   <timeFormat>e</timeFormat>
+--   <dateFormat>dd.MM.yyyy</dateFormat>
+--   <timeZone>0</timeZone>
+--   <showTasks>0</showTasks>
+--   <conv>1</conv>
+--   <conv_init>0</conv_init>
+--   <event_E_UPDATED>0</event_E_UPDATED>
+--   <event_E_CREATED>0</event_E_CREATED>
+--   <event_E_LOCATION>0</event_E_LOCATION>
+--   <task_E_STATUS>0</task_E_STATUS>
+--   <task_E_PRIORITY>0</task_E_PRIORITY>
+--   <task_E_START>0</task_E_START>
+--   <task_E_END>0</task_E_END>
+--   <task_E_COMPLETED>0</task_E_COMPLETED>
+--   <task_E_UPDATED>0</task_E_UPDATED>
+--   <task_E_CREATED>0</task_E_CREATED>
+-- </settings>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."calendar.options.get" (
   in inst_id int) __soap_http 'text/xml'
 {
diff --git a/appsrc/ODS-Calendar/sql/calendar-a-code.sql b/appsrc/ODS-Calendar/sql/calendar-a-code.sql
index f2cadb2..529be3c 100644
--- a/appsrc/ODS-Calendar/sql/calendar-a-code.sql
+++ b/appsrc/ODS-Calendar/sql/calendar-a-code.sql
@@ -1,10 +1,10 @@
 --
---  $Id: calendar-a-code.sql,v 1.64.2.33 2011/08/01 14:12:05 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2007 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -732,6 +732,11 @@ create procedure CAL.WA.domain_update (
   path := home || 'Calendar' || '/';
   DB.DBA.DAV_MAKE_DIR (path, account_id, null, '110100000N');
   update WS.WS.SYS_DAV_COL set COL_DET = 'Calendar' where COL_ID = DAV_SEARCH_ID (path, 'C');
+
+  path := home || 'calendars' || '/';
+  DB.DBA.DAV_MAKE_DIR (path, account_id, null, '110100000N');
+  update WS.WS.SYS_DAV_COL set COL_DET = 'CalDAV' where COL_ID = DAV_SEARCH_ID (path, 'C');
+
   return 1;
 }
 ;
@@ -739,7 +744,7 @@ create procedure CAL.WA.domain_update (
 -------------------------------------------------------------------------------
 --
 create procedure CAL.WA.domain_owner_id (
-  inout domain_id integer)
+  in domain_id integer)
 {
   return (select TOP 1 A.WAM_USER from WA_MEMBER A, WA_INSTANCE B where A.WAM_MEMBER_TYPE = 1 and A.WAM_INST = B.WAI_NAME and B.WAI_ID = domain_id);
 }
@@ -748,7 +753,7 @@ create procedure CAL.WA.domain_owner_id (
 -------------------------------------------------------------------------------
 --
 create procedure CAL.WA.domain_owner_name (
-  inout domain_id integer)
+  in domain_id integer)
 {
   return (select TOP 1 C.U_NAME from WA_MEMBER A, WA_INSTANCE B, SYS_USERS C where A.WAM_MEMBER_TYPE = 1 and A.WAM_INST = B.WAI_NAME and B.WAI_ID = domain_id and C.U_ID = A.WAM_USER);
 }
@@ -887,6 +892,15 @@ create procedure CAL.WA.domain_sioc_url (
 
 -------------------------------------------------------------------------------
 --
+create procedure CAL.WA.domain_calDav_url (
+  in domain_id integer)
+{
+  return sprintf ('%s/DAV/home/%s/calendars/%s', CAL.WA.host_url (), CAL.WA.domain_owner_name (domain_id), DB.DBA.CalDAV__FIXNAME (CAL.WA.domain_name (domain_id)));
+}
+;
+
+-------------------------------------------------------------------------------
+--
 create procedure CAL.WA.page_url (
   in domain_id integer,
   in page varchar := null,
@@ -1490,6 +1504,23 @@ _again:
 
 -------------------------------------------------------------------------------
 --
+create procedure CAL.WA.http_error (
+  in _header any,
+  in _silent integer := 0)
+{
+  if (_header[0] like 'HTTP/1._ 4__ %' or _header[0] like 'HTTP/1._ 5__ %')
+  {
+    if (not _silent)
+      signal ('22023', trim (_header[0], '\r\n'));
+
+    return 0;
+  }
+  return 1;
+}
+;
+
+-------------------------------------------------------------------------------
+--
 create procedure CAL.WA.xslt_root()
 {
   declare sHost varchar;
@@ -1756,6 +1787,18 @@ create procedure CAL.WA.strDecode (
 
 -------------------------------------------------------------------------------
 --
+create procedure CAL.WA.isVector (
+  inout aVector any)
+{
+  if (isarray (aVector) and not isstring (aVector))
+    return 1;
+
+  return 0;
+}
+;
+
+-------------------------------------------------------------------------------
+--
 create procedure CAL.WA.vector_unique(
   inout aVector any,
   in minLength integer := 0)
@@ -3328,9 +3371,10 @@ create procedure CAL.WA.d_encode (
 create procedure CAL.WA.test_clear (
   in S any)
 {
-  declare N integer;
+  S := substring (S, 1, coalesce (strstr (S, '<>'), length (S)));
+  S := substring (S, 1, coalesce (strstr (S, '\nin'), length (S)));
 
-  return substring (S, 1, coalesce(strstr(S, '<>'), length (S)));
+  return S;
 }
 ;
 
@@ -3494,7 +3538,7 @@ create procedure CAL.WA.validate2 (
     if (isnull (regexp_match('^[^\\\/\?\*\"\'\>\<\:\|]*\$', propertyValue)))
       goto _error;
   } else if ((propertyType = 'uri') or (propertyType = 'anyuri')) {
-    if (isnull (regexp_match('^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_=:]*)?\$', propertyValue)))
+    if (isnull (regexp_match('^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_=:~]*)?\$', propertyValue)))
       goto _error;
   } else if (propertyType = 'email') {
     if (isnull (regexp_match('^([a-zA-Z0-9_\-])+(\.([a-zA-Z0-9_\-])+)*@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([a-zA-Z0-9])+(([\-])+([a-zA-Z0-9])+)*\.)+([a-zA-Z])+(([\-])+([a-zA-Z0-9])+)*))\$', propertyValue)))
@@ -3971,6 +4015,16 @@ create procedure CAL.WA.settings_set (
 -- Events
 --
 -----------------------------------------------------------------------------------------
+create procedure CAL.WA.event_sioc_iri (
+  in domain_id varchar,
+  in event_id integer)
+{
+  return CAL.WA.iri_fix (SIOC..calendar_event_iri (domain_id, event_id));
+}
+;
+
+-----------------------------------------------------------------------------------------
+--
 create procedure CAL.WA.event_kind (
   in id integer)
 {
@@ -4194,7 +4248,8 @@ create procedure CAL.WA.event_update_acl (
 {
   update CAL.WA.EVENTS
      set E_ACL = acl
-   where E_ID = id;
+   where E_ID = id
+     and E_PRIVACY = 2;
 }
 ;
 
@@ -5550,18 +5605,26 @@ create procedure CAL.WA.vcal_str2date (
     tzID := cast (xquery_eval (xmlPath || '/TZID', xmlItem, 1) as varchar);
     if (not isnull (tzID))
     {
-      tzObject := dict_get (tzDict, tzID, 0);
-      tzOffset := get_keyword ('standartTo', tzObject);
+      tzObject := dict_get (tzDict, tzID, null);
+      if (isnull (tzObject))
+        goto _exit;
+
+      tzOffset := get_keyword ('standartFrom', tzObject);
+      if (isnull (tzOffset))
+        goto _exit;
+
       tzStartRRule := get_keyword ('daylightRRule', tzObject);
-      if (not isnull (tzStartRRule))
-      {
+      if (isnull (tzStartRRule))
+        goto _exit;
+
         tzEndRRule := get_keyword ('standartRRule', tzObject);
         if (CAL.WA.event_daylightCheck (dt, tzStartRRule, tzEndRRule))
           tzOffset := get_keyword ('daylightTo', tzObject);
-      }
+
         dt := dateadd ('minute', tzOffset, dt);
       }
     }
+_exit:;
   return dt;
 }
 ;
@@ -5661,7 +5724,8 @@ create procedure CAL.WA.vcal_datetime2str (
 create procedure CAL.WA.vcal_date2utc (
   in dt datetime)
 {
-  return CAL.WA.dt_format (dateadd ('minute', -timezone (now ()), dt), 'YMDTHNSZ');
+  return CAL.WA.dt_format (dt, 'YMDTHNSZ');
+  --return CAL.WA.dt_format (dateadd ('minute', -timezone (now ()), dt), 'YMDTHNSZ');
 }
 ;
 
@@ -6034,16 +6098,24 @@ create procedure CAL.WA.export_vcal_line (
   inout sStream any)
 {
   declare prefix varchar;
+  declare tmp any;
 
   if (is_empty_or_null (value))
     return;
 
   prefix := '';
-  value := sprintf ('%s:%s', property, replace (cast (value as varchar), '\n', '\\n'));
-  while (length (value) > length (prefix))
+  tmp := CAL.WA.utf2wide(sprintf ('%s:%s', property, replace(replace (cast (value as varchar), '\n', '\\n'), '\r', '')));
+  while (length (tmp) > length (prefix))
   {
-    http (subseq (value, 0, 73) || '\r\n', sStream);
-    value := prefix || subseq (value, 73);
+	http_escape(CAL.WA.wide2utf(subseq (tmp, 0, 60)) || '\r\n', 1, sStream, 1, 1);
+    if (length (tmp) > 60)
+    {
+      tmp := prefix || subseq (tmp, 60);
+    }
+    else
+    {
+      tmp := '';
+    }
     prefix := ' ';
   }
 }
@@ -6090,6 +6162,7 @@ create procedure CAL.WA.export_vcal (
 
   -- start
   http ('BEGIN:VCALENDAR\r\n', sStream);
+  http (sprintf ('PRODID:-//OpenLink Software Ltd//ODS Calendar %s//EN\r\n', registry_get('calendar_version')), sStream);
   http ('VERSION:2.0\r\n', sStream);
   http (sprintf ('X-WR-CALNAME:%s\r\n', CAL.WA.domain_name (domain_id)), sStream);
 
@@ -6474,6 +6547,101 @@ create procedure CAL.WA.import_vcal_attendees (
 }
 ;
 
+--------------------------------------------------------------------------------
+--
+create procedure CAL.WA.import_CalDAV (
+  in _domain_id integer,
+  in _name any,
+  in _options any := null)
+{
+  declare _user, _password varchar;
+  declare _page, _body, _bodyTemplate, _resHeader, _reqHeader any;
+  declare _xml, _items, _data any;
+
+  _user := get_keyword ('user', _options);
+  _password := get_keyword ('password', _options);
+  _bodyTemplate :=
+   '<?xml version="1.0" encoding="utf-8" ?>
+    <C:calendar-multiget xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
+      <D:prop>
+        <D:getetag/>
+        <C:calendar-data/>
+      </D:prop>
+      <D:href>%s</D:href>
+    </C:calendar-multiget>';
+
+  -- check CalDAV
+  _reqHeader := 'Accept: text/xml\r\nContent-Type: text/xml; charset=utf-8';
+  if (not is_empty_or_null (_user))
+    _reqHeader := _reqHeader || sprintf ('\r\nAuthorization: Basic %s', encode_base64 (_user || ':' || _password));
+
+  _page := http_client_ext (url=>_name, http_method=>'OPTIONS', http_headers=>_reqHeader, headers =>_resHeader, n_redirects=>15);
+  CAL.WA.http_error (_resHeader);
+  if (not (http_request_header (_resHeader, 'DAV') like '%calendar-access%'))
+    signal ('CAL01', 'Bad import/subscription source!<>');
+
+  _body := null;
+  _reqHeader := _reqHeader || '\r\nDepth: 1';
+  _page := http_client_ext (url=>_name, http_method=>'PROPFIND', http_headers=>_reqHeader, headers =>_resHeader, body=>_body, n_redirects=>15);
+  CAL.WA.http_error (_resHeader);
+  {
+    declare exit handler for sqlstate '*'
+    {
+      signal ('CAL01', 'Bad import/subscription source!<>');
+    };
+    _xml := xml_tree_doc (xml_expand_refs (xml_tree (_page)));
+		_items := xpath_eval ('[xmlns:D="DAV:" xmlns="urn:ietf:params:xml:ns:caldav:"] /D:multistatus/D:response/D:href/text()', _xml, 0);
+		foreach (any _item in _items) do
+		{
+		  commit work;
+      _body := sprintf (_bodyTemplate, cast (_item as varchar));
+      _page := http_client_ext (url=>_name, http_method=>'REPORT', http_headers=>_reqHeader, headers =>_resHeader, body=>_body, n_redirects=>15);
+      CAL.WA.http_error (_resHeader);
+      _xml := xml_tree_doc (xml_expand_refs (xml_tree (_page)));
+		  if (not isnull (xpath_eval ('[xmlns:D="DAV:" xmlns="urn:ietf:params:xml:ns:caldav:"] /D:multistatus/D:response/D:href/text()', _xml, 1)))
+		  {
+		    _data := cast (xpath_eval ('[xmlns:D="DAV:" xmlns="urn:ietf:params:xml:ns:caldav:"] /D:multistatus/D:response/D:propstat/D:prop/calendar-data/text()', _xml, 1) as varchar);
+		    CAL.WA.import_vcal (_domain_id, _data, _options);
+      }
+	  }
+  }
+  return 1;
+}
+;
+
+--------------------------------------------------------------------------------
+--
+create procedure CAL.WA.import_CalDAV_check (
+  in _name any,
+  in _options any,
+  in _silent integer := 0)
+{
+  declare _user, _password varchar;
+  declare _page, _body, _resHeader, _reqHeader any;
+  declare exit handler for sqlstate '*'
+  {
+    return 0;
+  };
+
+  _user := get_keyword ('user', _options);
+  _password := get_keyword ('password', _options);
+
+  -- check CalDAV
+  _reqHeader := 'Accept: text/xml\r\nContent-Type: text/xml; charset=utf-8';
+  if (not is_empty_or_null (_user))
+    _reqHeader := _reqHeader || sprintf ('\r\nAuthorization: Basic %s', encode_base64 (_user || ':' || _password));
+
+  _page := http_client_ext (url=>_name, http_method=>'OPTIONS', http_headers=>_reqHeader, headers =>_resHeader, n_redirects=>15);
+  if (not CAL.WA.http_error (_resHeader, _silent))
+    return 0;
+
+  if (not (http_request_header (_resHeader, 'DAV') like '%calendar-access%'))
+    return 0;
+
+  return 1;
+}
+;
+
 -------------------------------------------------------------------------------
 --
 create procedure CAL.WA.import_feed (
@@ -6829,23 +6997,26 @@ create procedure CAL.WA.exchange_exec_internal (
           }
         }
       }
-    -- subscribe
     else if (_direction = 1)
     {
+      -- subscribe
+
+      if (_type = 3)
+        return CAL.WA.exchange_CalDAV (_id);
+
       if (_type = 1)
-      {
         _name := CAL.WA.host_url () || _name;
-      }
+
       _content := CAL.WA.dav_content (_name, 0, _user, _password);
       if (isnull(_content))
-      {
         signal ('CAL01', 'Bad import/subscription source!<>');
-      }
+
       CAL.WA.import_vcal (_domain_id, _content, _options, _id);
     }
-    -- syncml
     else if (_direction = 2)
     {
+      -- syncml
+
       declare data any;
       declare N, _in, _out, _tmp, _rlog_res_id integer;
       declare _path, _pathID varchar;
@@ -6909,6 +7080,22 @@ create procedure CAL.WA.exchange_exec_internal (
 
 --------------------------------------------------------------------------------
 --
+create procedure CAL.WA.exchange_CalDAV (
+  in _id integer)
+{
+  for (select EX_DOMAIN_ID as _domain_id, EX_TYPE as _direction, deserialize (EX_OPTIONS) as _options from CAL.WA.EXCHANGE where EX_ID = _id) do
+  {
+    if (get_keyword ('type', _options) <> 3)
+       return;
+
+    CAL.WA.import_CalDAV (_domain_id, get_keyword ('name', _options), _options);
+  }
+  return 1;
+}
+;
+
+--------------------------------------------------------------------------------
+--
 create procedure CAL.WA.exchange_event_update (
   in _domain_id integer)
 {
@@ -7042,6 +7229,10 @@ create procedure CAL.WA.syncml_check (
     return 0;
   if (VAD.DBA.version_compare (syncmlVersion, '1.05.75') < 0)
     return 0;
+  if (__proc_exists ('DB.DBA.yac_syncml_version_get') is null)
+    return 0;
+  if (__proc_exists ('DB.DBA.yac_syncml_type_get') is null)
+    return 0;
   if (isnull (syncmlPath))
     return 1;
   if (DB.DBA.yac_syncml_version_get (syncmlPath) = 'N')
@@ -7071,6 +7262,8 @@ create procedure CAL.WA.syncml_entry_update (
     _syncmlPath := get_keyword ('name', _options);
     if (not CAL.WA.syncml_check (_syncmlPath))
       goto _skip;
+    if ((_event_kind = 0) and (get_keyword ('events', _options, 0) = 0))
+      goto _skip;
     if ((_event_kind = 1) and (get_keyword ('tasks', _options, 0) = 0))
       goto _skip;
 
@@ -7102,17 +7295,15 @@ create procedure CAL.WA.syncml_entry_update_internal (
     _content := CAL.WA.entry2syncml (_domain_id, _event_id);
     _permissions := USER_GET_OPTION (_user, 'PERMISSIONS');
     if (isnull (_permissions))
-    {
       _permissions := '110100000RR';
-    }
+
     connection_set ('__sync_dav_upl', '1');
     connection_set ('__sync_ods', '1');
-    DB.DBA.DAV_RES_UPLOAD_STRSES_INT (_path, _content, 'text/x-vcalendar', _permissions, http_dav_uid (), http_dav_uid () + 1, null, null, 0);
+    DB.DBA.DAV_RES_UPLOAD_STRSES_INT (_path, _content, 'text/x-vcalendar', _permissions, _user, _user, null, null, 0);
     connection_set ('__sync_ods', '0');
     connection_set ('__sync_dav_upl', '0');
   }
-
-  if (_action = 'D')
+  else if (_action = 'D')
   {
     declare _id integer;
 
@@ -7120,7 +7311,7 @@ create procedure CAL.WA.syncml_entry_update_internal (
     if (isinteger(_id) and (_id > 0))
     {
       connection_set ('__sync_ods', '1');
-      DB.DBA.DAV_DELETE (_path, 1, _user, _password);
+      DB.DBA.DAV_DELETE_INT (_path, 1, _user, _password, 0);
       connection_set ('__sync_ods', '0');
     }
   }
@@ -8441,60 +8632,3 @@ create procedure CAL.WA.news_comment_get_cn_type (in f_name varchar)
   return ext;
 }
 ;
-
--------------------------------------------------------------------------------
---
-create procedure CAL.WA.obj2json (
-  in o any,
-  in d integer := 2)
-{
-  declare N, M integer;
-  declare R, T any;
-  declare retValue any;
-
-	if (d = 0)
-	  return '[maximum depth achieved]';
-
-  T := vector ('\b', '\\b', '\t', '\\t', '\n', '\\n', '\f', '\\f',	'\r', '\\r', '"', '\\"', '\\', '\\\\');
-	retValue := '';
-	if (isnumeric (o))
-	{
-		retValue := cast (o as varchar);
-	}
-	else if (isstring (o))
-	{
-		for (N := 0; N < length(o); N := N + 1)
-		{
-			R := chr (o[N]);
-		  for (M := 0; M < length(T); M := M + 2)
-		  {
-				if (R = T[M])
-				  R := T[M+1];
-			}
-			retValue := retValue || R;
-		}
-		retValue := '"' || retValue || '"';
-	}
-	else if (isarray (o))
-	{
-		retValue := '[';
-		for (N := 0; N < length(o); N := N + 1)
-		{
-		  retValue := retValue || CAL.WA.obj2json (o[N], d-1);
-		  if (N <> length(o)-1)
-			  retValue := retValue || ',\n';
-		}
-		retValue := retValue || ']';
-	}
-	return retValue;
-}
-;
-
--------------------------------------------------------------------------------
---
-create procedure CAL.WA.json2obj (
-  in o any)
-{
-  return json_parse (o);
-}
-;
diff --git a/appsrc/ODS-Calendar/sql/calendar-a-table.sql b/appsrc/ODS-Calendar/sql/calendar-a-table.sql
index f2a7536..f96fa0c 100644
--- a/appsrc/ODS-Calendar/sql/calendar-a-table.sql
+++ b/appsrc/ODS-Calendar/sql/calendar-a-table.sql
@@ -1,10 +1,10 @@
 --
---  $Id: calendar-a-table.sql,v 1.26.2.6 2011/05/17 22:59:52 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2007 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -111,7 +111,7 @@ CAL.WA.exec_no_error ('
 --
 create procedure CAL.WA.my_calendars (
   in domain_id any,
-  in privacy varchar)
+  in privacy integer)
 {
   declare calendar_id, calendar_privacy integer;
 
@@ -475,6 +475,7 @@ CAL.WA.exec_no_error ('
     CAL.WA.upstream_event_update (N.E_DOMAIN_ID, N.E_ID, _uid, N.E_TAGS, \'U\');
     CAL.WA.exchange_event_update (N.E_DOMAIN_ID);
     CAL.WA.syncml_entry_update (N.E_DOMAIN_ID, N.E_ID, _uid, N.E_KIND, \'U\');
+    CAL.WA.domain_ping (N.E_DOMAIN_ID);
   }
 ');
 
@@ -485,8 +486,9 @@ CAL.WA.exec_no_error ('
     delete from CAL.WA.ALARMS where A_EVENT_ID = O.E_ID;
 
     CAL.WA.upstream_event_update (O.E_DOMAIN_ID, O.E_ID, O.E_UID, O.E_TAGS, \'D\');
-    CAL.WA.exchange_event_update (N.E_DOMAIN_ID);
+    CAL.WA.exchange_event_update (O.E_DOMAIN_ID);
     CAL.WA.syncml_entry_update (O.E_DOMAIN_ID, O.E_ID, O.E_UID, O.E_KIND, \'D\');
+    CAL.WA.domain_ping (O.E_DOMAIN_ID);
   }
 ');
 
diff --git a/appsrc/ODS-Calendar/sql/calendar-a-update.sql b/appsrc/ODS-Calendar/sql/calendar-a-update.sql
index 83d3693..9fa44b5 100644
--- a/appsrc/ODS-Calendar/sql/calendar-a-update.sql
+++ b/appsrc/ODS-Calendar/sql/calendar-a-update.sql
@@ -1,10 +1,10 @@
 --
---  $Id: calendar-a-update.sql,v 1.1.2.3 2010/10/07 13:23:18 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2008 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/sql/calendar-a-wa.sql b/appsrc/ODS-Calendar/sql/calendar-a-wa.sql
index 8438653..5e326e5 100644
--- a/appsrc/ODS-Calendar/sql/calendar-a-wa.sql
+++ b/appsrc/ODS-Calendar/sql/calendar-a-wa.sql
@@ -1,10 +1,10 @@
 --
---  $Id: calendar-a-wa.sql,v 1.8.2.5 2010/09/22 13:57:03 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2007 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/sql/calendar-d.sql b/appsrc/ODS-Calendar/sql/calendar-d.sql
index 6523f8a..16434db 100644
--- a/appsrc/ODS-Calendar/sql/calendar-d.sql
+++ b/appsrc/ODS-Calendar/sql/calendar-d.sql
@@ -1,10 +1,10 @@
 --
---  $Id: calendar-d.sql,v 1.12.2.7 2011/06/02 12:32:02 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2007 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/sql/sioc_calendar.sql b/appsrc/ODS-Calendar/sql/sioc_calendar.sql
index 2c328fd..7c61bd9 100644
--- a/appsrc/ODS-Calendar/sql/sioc_calendar.sql
+++ b/appsrc/ODS-Calendar/sql/sioc_calendar.sql
@@ -1,10 +1,10 @@
 --
---  $Id: sioc_calendar.sql,v 1.19.2.11 2011/05/18 21:18:29 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2007 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -106,13 +106,14 @@ create procedure fill_ods_calendar_sioc (
   in _wai_name varchar := null)
 {
   declare id, deadl, cnt integer;
-  declare c_iri, creator_iri, iri varchar;
+  declare acl_graph_iri, c_iri, creator_iri, iri varchar;
 
   {
     -- init services
     SIOC..fill_ods_calendar_services ();
 
     for (select WAI_ID,
+                WAI_IS_PUBLIC,
                 WAI_TYPE_NAME,
                 WAI_NAME,
                 WAI_ACL
@@ -120,9 +121,9 @@ create procedure fill_ods_calendar_sioc (
           where ((_wai_name is null) or (WAI_NAME = _wai_name))
             and WAI_TYPE_NAME = 'Calendar') do
     {
-      graph_iri := SIOC..acl_graph (WAI_TYPE_NAME, WAI_NAME);
-      exec (sprintf ('sparql clear graph <%s>', graph_iri));
-      SIOC..wa_instance_acl_insert (WAI_TYPE_NAME, WAI_NAME, WAI_ACL);
+      acl_graph_iri := SIOC..acl_graph (WAI_TYPE_NAME, WAI_NAME);
+      exec (sprintf ('sparql clear graph <%s>', acl_graph_iri));
+      SIOC..wa_instance_acl_insert (WAI_IS_PUBLIC, WAI_TYPE_NAME, WAI_NAME, WAI_ACL);
       for (select E_DOMAIN_ID, E_ID, E_ACL
              from CAL.WA.EVENTS
             where E_DOMAIN_ID = WAI_ID and E_ACL is not null) do
@@ -201,51 +202,7 @@ create procedure fill_ods_calendar_sioc (
                     E_UPDATED,
                     E_TAGS,
                     E_NOTES);
-	    for (select EC_ID,
-                  EC_DOMAIN_ID,
-                  EC_EVENT_ID,
-                  EC_TITLE,
-                  EC_COMMENT,
-                  EC_UPDATED,
-                  EC_U_NAME,
-                  EC_U_MAIL,
-                  EC_U_URL
-		         from CAL.WA.EVENT_COMMENTS
-		        where EC_EVENT_ID = E_ID) do
-		  {
-		    calendar_comment_insert (graph_iri,
-            		                 c_iri,
-                                 EC_ID,
-                                 EC_DOMAIN_ID,
-                                 EC_EVENT_ID,
-                                 EC_TITLE,
-                                 EC_COMMENT,
-                                 EC_UPDATED,
-                                 EC_U_NAME,
-                                 EC_U_MAIL,
-                                 EC_U_URL);
-      }
-      for (select A_ID,
-                  A_DOMAIN_ID,
-                  A_OBJECT_ID,
-                  A_AUTHOR,
-                  A_BODY,
-                  A_CLAIMS,
-                  A_CREATED,
-                  A_UPDATED
-             from CAL.WA.ANNOTATIONS
-            where A_OBJECT_ID = E_ID) do
-      {
-        cal_annotation_insert (graph_iri,
-                               A_ID,
-                               A_DOMAIN_ID,
-                               A_OBJECT_ID,
-                               A_AUTHOR,
-                               A_BODY,
-                               A_CLAIMS,
-                               A_CREATED,
-                               A_UPDATED);
-      }
+
       cnt := cnt + 1;
       if (mod (cnt, 500) = 0)
       {
@@ -323,6 +280,57 @@ create procedure fill_ods_calendar_services ()
 
 -------------------------------------------------------------------------------
 --
+create procedure clean_ods_calendar_sioc (
+  in _wai_name varchar := null,
+  in _access_mode integer := null)
+{
+  declare id, deadl, cnt integer;
+  declare acl_graph_iri, c_iri, creator_iri, iri varchar;
+
+  {
+    id := -1;
+    deadl := 3;
+    cnt := 0;
+    declare exit handler for sqlstate '40001'
+    {
+      if (deadl <= 0)
+	      resignal;
+      rollback work;
+      deadl := deadl - 1;
+      goto L0;
+    };
+  L0:
+
+    for (select E_ID,
+                E_DOMAIN_ID,
+                E_TAGS
+           from DB.DBA.WA_INSTANCE,
+                DB.DBA.WA_MEMBER,
+                CAL.WA.EVENTS
+          where WAM_INST = WAI_NAME
+            and ((WAM_IS_PUBLIC = 1 and _wai_name is null) or WAI_NAME = _wai_name)
+            and E_DOMAIN_ID = WAI_ID
+            and E_PRIVACY = 1
+          order by E_ID) do
+    {
+      event_delete (E_ID,
+                    E_DOMAIN_ID,
+                    E_TAGS);
+
+      cnt := cnt + 1;
+      if (mod (cnt, 500) = 0)
+      {
+  	    commit work;
+  	    id := E_ID;
+      }
+    }
+    commit work;
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
 create procedure ods_calendar_services (
   in graph_iri varchar, 
   in forum_iri varchar,
@@ -455,6 +463,9 @@ create procedure event_insert (
 
     -- task services
     SIOC..ods_object_services_attach (graph_iri, iri, 'calendar/task');
+
+    SIOC..calendar_comments_insert (graph_iri, c_iri, domain_id, event_id);
+    SIOC..cal_annotations_insert (graph_iri, domain_id, event_id);
   }
   }
 ;
@@ -482,6 +493,9 @@ create procedure event_delete (
   -- event services
   SIOC..ods_object_services_dettach (graph_iri, iri, 'calendar/event');
   SIOC..ods_object_services_dettach (graph_iri, iri, 'calendar/task');
+
+  SIOC..calendar_comments_delete (graph_iri, domain_id, event_id);
+  SIOC..cal_annotations_delete (graph_iri, domain_id, event_id);
 }
 ;
 
@@ -652,6 +666,62 @@ create trigger EVENTS_SIOC_ACL_D before delete on CAL.WA.EVENTS order 100 refere
 
 -------------------------------------------------------------------------------
 --
+create procedure calendar_comments_insert (
+  in graph_iri varchar,
+  in forum_iri varchar,
+  inout domain_id integer,
+  inout master_id integer)
+{
+  for (select EC_ID,
+              EC_DOMAIN_ID,
+              EC_EVENT_ID,
+              EC_TITLE,
+              EC_COMMENT,
+              EC_UPDATED,
+              EC_U_NAME,
+              EC_U_MAIL,
+              EC_U_URL
+         from CAL.WA.EVENT_COMMENTS
+        where EC_EVENT_ID = master_id) do
+  {
+    calendar_comment_insert (graph_iri,
+                             forum_iri,
+                             EC_ID,
+                             EC_DOMAIN_ID,
+                             EC_EVENT_ID,
+                             EC_TITLE,
+                             EC_COMMENT,
+                             EC_UPDATED,
+                             EC_U_NAME,
+                             EC_U_MAIL,
+                             EC_U_URL);
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create procedure calendar_comments_delete (
+  in graph_iri varchar,
+  inout domain_id integer,
+  inout master_id integer)
+{
+  for (select EC_ID,
+              EC_DOMAIN_ID,
+              EC_EVENT_ID
+         from CAL.WA.EVENT_COMMENTS
+        where EC_EVENT_ID = master_id) do
+  {
+    calendar_comment_delete (graph_iri,
+                             EC_DOMAIN_ID,
+                             EC_EVENT_ID,
+                             EC_ID);
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
 create procedure calendar_comment_insert (
 	in graph_iri varchar,
 	in forum_iri varchar,
@@ -722,7 +792,7 @@ create procedure calendar_comment_delete (
   };
   master_iri := SIOC..calendar_event_iri (domain_id, master_id);
   if (isnull (graph_iri))
-    graph_iri := SIOC..get_graph_new (domain_id, null, master_iri);
+    graph_iri := SIOC..get_graph_new (CAL.WA.domain_is_public (domain_id), master_iri);
 
   if (isnull (graph_iri))
     return;
@@ -790,6 +860,61 @@ create trigger EVENT_COMMENTS_SIOC_D before delete on CAL.WA.EVENT_COMMENTS refe
 
 -------------------------------------------------------------------------------
 --
+create procedure cal_annotations_insert (
+  in graph_iri varchar,
+  inout domain_id integer,
+  inout master_id integer)
+{
+  for (select A_ID,
+              A_DOMAIN_ID,
+              A_OBJECT_ID,
+              A_AUTHOR,
+              A_BODY,
+              A_CLAIMS,
+              A_CREATED,
+              A_UPDATED
+         from CAL.WA.ANNOTATIONS
+        where A_OBJECT_ID = master_id) do
+  {
+    cal_annotation_insert (graph_iri,
+                           A_ID,
+                           A_DOMAIN_ID,
+                           A_OBJECT_ID,
+                           A_AUTHOR,
+                           A_BODY,
+                           A_CLAIMS,
+                           A_CREATED,
+                           A_UPDATED);
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
+create procedure cal_annotations_delete (
+  in graph_iri varchar,
+  inout domain_id integer,
+  inout master_id integer)
+{
+  for (select A_ID,
+              A_DOMAIN_ID,
+              A_OBJECT_ID,
+              A_CLAIMS
+         from CAL.WA.ANNOTATIONS
+        where A_OBJECT_ID = master_id) do
+  {
+    cal_annotation_delete (graph_iri,
+                           A_DOMAIN_ID,
+                           A_OBJECT_ID,
+                           A_ID,
+                           A_CLAIMS
+                          );
+  }
+}
+;
+
+-------------------------------------------------------------------------------
+--
 create procedure cal_annotation_insert (
   in graph_iri varchar,
   inout annotation_id integer,
diff --git a/appsrc/ODS-Calendar/vad_version b/appsrc/ODS-Calendar/vad_version
new file mode 100644
index 0000000..2490f1b
--- /dev/null
+++ b/appsrc/ODS-Calendar/vad_version
@@ -0,0 +1 @@
+1.10.73
diff --git a/appsrc/ODS-Calendar/www/ajax.vsp b/appsrc/ODS-Calendar/www/ajax.vsp
index a045bc7..8608c52 100644
--- a/appsrc/ODS-Calendar/www/ajax.vsp
+++ b/appsrc/ODS-Calendar/www/ajax.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: ajax.vsp,v 1.2.2.2 2010/09/20 10:15:03 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2007 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -38,8 +38,8 @@
     {
       if (subAction = 'list')
       {
-        declare id integer;
-        declare cTimeZone, cDateFormat, cTimeFormat varchar;
+        declare id, cTimeZone integer;
+        declare cDateFormat, cTimeFormat varchar;
         declare cTimeNow datetime;
         declare settings, sStream, x any;
 
diff --git a/appsrc/ODS-Calendar/www/annotea.vspx b/appsrc/ODS-Calendar/www/annotea.vspx
index 7d5f0cf..737ee3a 100644
--- a/appsrc/ODS-Calendar/www/annotea.vspx
+++ b/appsrc/ODS-Calendar/www/annotea.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: annotea.vspx,v 1.7.2.7 2011/07/04 10:05:04 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -106,7 +106,7 @@
                       declare id, iri any;
 
                       id := row.te_column_value('A_ID');
-                      iri := AB.WA.url_fix (SIOC..calendar_annotation_iri (self.domain_id, self.v_oid, id), self.v_sid, self.v_realm);
+                      iri := CAL.WA.url_fix (SIOC..calendar_annotation_iri (self.domain_id, self.v_oid, id), self.v_sid, self.v_realm);
                       http (sprintf ('<a href="%V">', iri));
                       self.showTDValue (id, row.te_column_value('A_AUTHOR'));
                       http ('</a>');
diff --git a/appsrc/ODS-Calendar/www/attendees.vspx b/appsrc/ODS-Calendar/www/attendees.vspx
index c3f4d76..45968d1 100644
--- a/appsrc/ODS-Calendar/www/attendees.vspx
+++ b/appsrc/ODS-Calendar/www/attendees.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: attendees.vspx,v 1.2.2.4 2011/03/08 13:25:23 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2008 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/www/calendar_login.vspx b/appsrc/ODS-Calendar/www/calendar_login.vspx
index 09c162b..ba66847 100644
--- a/appsrc/ODS-Calendar/www/calendar_login.vspx
+++ b/appsrc/ODS-Calendar/www/calendar_login.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
-  -  $Id: calendar_login.vspx,v 1.4.2.5 2010/10/07 13:23:19 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/www/calendars.vspx b/appsrc/ODS-Calendar/www/calendars.vspx
index 44ea3af..68f8caa 100644
--- a/appsrc/ODS-Calendar/www/calendars.vspx
+++ b/appsrc/ODS-Calendar/www/calendars.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: calendars.vspx,v 1.3.2.5 2011/05/17 22:59:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/www/contacts.vspx b/appsrc/ODS-Calendar/www/contacts.vspx
index 830ec44..3d2dbe7 100644
--- a/appsrc/ODS-Calendar/www/contacts.vspx
+++ b/appsrc/ODS-Calendar/www/contacts.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: contacts.vspx,v 1.2.2.5 2011/05/17 22:59:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/www/conversation.vspx b/appsrc/ODS-Calendar/www/conversation.vspx
index 058fb7c..3f4715c 100644
--- a/appsrc/ODS-Calendar/www/conversation.vspx
+++ b/appsrc/ODS-Calendar/www/conversation.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: conversation.vspx,v 1.3.2.4 2011/05/02 14:16:28 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/www/css/style.css b/appsrc/ODS-Calendar/www/css/style.css
index 3fe74a7..df7ce74 100644
--- a/appsrc/ODS-Calendar/www/css/style.css
+++ b/appsrc/ODS-Calendar/www/css/style.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: style.css,v 1.23.2.13 2011/05/17 22:59:53 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2007 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -27,6 +27,14 @@ body {
   font-size: 9pt;
 }
 
+pre {
+  white-space: pre-wrap;       /* css-3 */
+  white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
+  white-space: -pre-wrap;      /* Opera 4-6 */
+  white-space: -o-pre-wrap;    /* Opera 7 */
+  word-wrap: break-word;       /* Internet Explorer 5.5+ */
+}
+
 form {
   margin: 0;
   padding: 0;
@@ -74,45 +82,7 @@ a:hover {
   vertical-align: top;
 }
 
-/* Footer */
-#FT {
-  width: 100%;
-  position: relative;
-  bottom: 0px;
-  font-size: 8pt;
-  float: left;
-  clear: both;
-  text-align: right;
-  border-top: 2px solid #fff;
-  margin-right: 10px;
-  background-color: #fff;
-  background-image: url(../image/ods_main_footer.png);
-}
-
-#FT_L {
-  float: left;
-  clear: left;
-  margin-top: 10px;
-  margin-left: 8px;
-  border: 1px solid #788;
-}
-
-#FT_R {
-  float: right;
-  clear: right;
-  margin-top: 10px;
-  margin-bottom: 10px;
-  margin-right: 5px;
-  color: #788;
-}
-
-#FT_R a {
-  text-decoration: none;
-  color: inherit;
-}
-
 /* Left side within MT */
-
 .page_head {
   width: 100%;
   background-color: #b0cde4;
@@ -122,6 +92,7 @@ a:hover {
   font-size: 12px;
   background-color: #EFEFEF;
   border: 1px solid #7f94a5;
+  border-radius: 5px;
   -moz-border-radius: 5px;
   -webkit-border-radius: 5px;
   padding: 5px;
@@ -328,6 +299,7 @@ input.button {
   border-color: #7f94a5;
   background: #99b3c5;
 	cursor: pointer;
+  border-radius: 3px;
   -moz-border-radius: 3px;
   -webkit-border-radius: 3px;
 }
@@ -493,6 +465,8 @@ div.tab {
   border: 1px solid #000;
   border-bottom-width: 0px;
   border-color: #7f94a5;
+  border-top-left-radius: 3px;
+  border-top-right-radius: 3px;
   -moz-border-radius-topleft: 3px;
   -moz-border-radius-topright: 3px;
   -webkit-border-top-left-radius: 3px;
@@ -538,6 +512,8 @@ a.tab.activeTab {
   border: 1px solid #000;
   border-bottom-width: 0px;
   border-color: #7f94a5;
+  border-top-left-radius: 3px;
+  border-top-right-radius: 3px;
   -moz-border-radius-topleft: 3px;
   -moz-border-radius-topright: 3px;
   -webkit-border-top-left-radius: 3px;
@@ -881,6 +857,7 @@ span.button {
   padding: 2px 5px 0px;
   text-decoration:none;
 	cursor: pointer;
+  border-radius: 3px;
   -moz-border-radius: 3px;
   -webkit-border-radius: 3px;
 }
diff --git a/appsrc/ODS-Calendar/www/error.vspx b/appsrc/ODS-Calendar/www/error.vspx
index 133517f..756b894 100644
--- a/appsrc/ODS-Calendar/www/error.vspx
+++ b/appsrc/ODS-Calendar/www/error.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
-  -  $Id: error.vspx,v 1.5.2.2 2010/09/20 10:15:03 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/www/export.vspx b/appsrc/ODS-Calendar/www/export.vspx
index 1a44d27..f9bd62d 100644
--- a/appsrc/ODS-Calendar/www/export.vspx
+++ b/appsrc/ODS-Calendar/www/export.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
-  -  $Id: export.vspx,v 1.1.2.4 2010/09/20 10:15:03 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/www/gems.vsp b/appsrc/ODS-Calendar/www/gems.vsp
index 4e16a86..aa27a4d 100644
--- a/appsrc/ODS-Calendar/www/gems.vsp
+++ b/appsrc/ODS-Calendar/www/gems.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: gems.vsp,v 1.3.2.3 2010/10/07 13:23:19 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2008 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/www/help.vspx b/appsrc/ODS-Calendar/www/help.vspx
index 66b1701..e475b5a 100644
--- a/appsrc/ODS-Calendar/www/help.vspx
+++ b/appsrc/ODS-Calendar/www/help.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: help.vspx,v 1.2.2.1 2010/09/20 10:15:03 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/www/home.vspx b/appsrc/ODS-Calendar/www/home.vspx
index dd4851d..83f2c4a 100644
--- a/appsrc/ODS-Calendar/www/home.vspx
+++ b/appsrc/ODS-Calendar/www/home.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: home.vspx,v 1.60.2.36 2011/07/04 10:05:04 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -83,10 +83,9 @@
 
   <v:method name="actionTest" arglist="">
     <![CDATA[
-      declare tmp, kind, params, permissions any;
+      declare tmp, params, permissions any;
 
       params := self.vc_page.vc_event.ve_params;
-
       tmp := get_keyword ('id', params, '');
       if (tmp <> '')
       {
@@ -102,10 +101,10 @@
           {
             self.cAction := 'view';
           }
-          kind := CAL.WA.event_kind (self.v_id);
-          if ((kind = 'event') and (self.cScope in ('tasks', 'search')))
+          self.cSubAction := CAL.WA.event_kind (self.v_id);
+          if ((self.cSubAction = 'event') and (self.cScope not in ('tasks', 'search')))
             self.cScope := 'events';
-          if (kind = 'task')
+          if (self.cSubAction = 'task')
             self.cScope := 'tasks';
         }
       }
@@ -248,9 +247,9 @@
       R := self.showEventSubjectTmp (_id, e_event, e_subject, e_repeat, e_reminder, e_attendees);
       if (e_event = 1)
       {
-        T := sprintf ('<div id="e_%d_%s" class="EV vevent" typeof="sioct:EventCalendar" %s %s about="%V">%s%s%s<span style="display:none;">%s</span>%s</div>', _id, S, color, onclick, SIOC..calendar_event_iri (domain_id, _id), e_continue, showDelete, showAnnotate, self.prepareField (e_start, 'dtstart', null), R);
+        T := sprintf ('<div id="e_%d_%s" class="EV vevent" typeof="sioct:EventCalendar" %s %s about="%V">%s%s%s<span style="display:none;">%s</span>%s</div>', _id, S, color, onclick, CAL.WA.event_sioc_iri (domain_id, _id), e_continue, showDelete, showAnnotate, self.prepareField (e_start, 'dtstart', null), R);
       } else {
-        T := sprintf ('<div id="e_%d_%s" class="EV vevent" typeof="sioct:EventCalendar" %s %s about="%V">%s%s%s<span class="EV_time">%s-%s</span>%s</div>', _id, S, color, onclick, SIOC..calendar_event_iri (domain_id, _id), e_continue, showDelete, showAnnotate, self.prepareField (e_start, 'dtstart', CAL.WA.dt_timestring (e_start)), self.prepareField (e_end, 'dtend', CAL.WA.dt_timestring (e_end)), R);
+        T := sprintf ('<div id="e_%d_%s" class="EV vevent" typeof="sioct:EventCalendar" %s %s about="%V">%s%s%s<span class="EV_time">%s-%s</span>%s</div>', _id, S, color, onclick, CAL.WA.event_sioc_iri (domain_id, _id), e_continue, showDelete, showAnnotate, self.prepareField (e_start, 'dtstart', CAL.WA.dt_timestring (e_start)), self.prepareField (e_end, 'dtend', CAL.WA.dt_timestring (e_end)), R);
       }
       return T;
     ]]>
@@ -352,7 +351,7 @@
       onclick := '';
       if (not DB.DBA.is_empty_or_null (self.sid))
         onclick := sprintf ('onclick="javascript: eView(\'e_%d\'); return false;"', _id);
-      return sprintf ('<a id="e_%d" href="%s" %s class="EVL EVL_subject app" about="%V"> %s%s%s%s</a>', _id, CAL.WA.utf2wide (SIOC..calendar_event_iri(domain_id, _id)), onclick, CAL.WA.utf2wide (SIOC..calendar_event_iri(domain_id, _id)), self.repeatableImage (e_repeat), self.reminderImage (e_reminder), self.attendeesImage (e_attendees), self.prepareField (CAL.WA.show_subject (e_subject), 'summary', null));
+      return sprintf ('<a id="e_%d" href="%s" %s class="EVL EVL_subject app" about="%V"> %s%s%s%s</a>', _id, CAL.WA.utf2wide (CAL.WA.event_sioc_iri (domain_id, _id)), onclick, CAL.WA.utf2wide (CAL.WA.event_sioc_iri(domain_id, _id)), self.repeatableImage (e_repeat), self.reminderImage (e_reminder), self.attendeesImage (e_attendees), self.prepareField (CAL.WA.show_subject (e_subject), 'summary', null));
     ]]>
   </v:method>
 
@@ -405,7 +404,7 @@
     <![CDATA[
       if (coalesce (eAttendees, -1) <= 0)
         return '';
-      return '<img border="0" width="11" height="11" title="Has Attendees" alt="Has Attendees" src="image/group_16.png" /> ';
+      return '<img border="0" width="11" height="11" title="Has Attendees" alt="Has Attendees" src="/ods/images/icons/group_16.png" /> ';
     ]]>
   </v:method>
 
@@ -749,7 +748,7 @@
         }
       }
       self.v_grants := trim (self.v_grants, ',');
-      self.v_acl := serialize (DB.DBA.wa_acl_params (params));
+      self.v_acl := serialize (DB.DBA.wa_aci_params (params));
 
       CAL.WA.test (self.v_subject, vector('name', 'Name', 'class', 'varchar', 'minLength', 0, 'maxLength', 255));
       CAL.WA.test (self.v_location, vector('name', 'Location', 'class', 'varchar', 'minLength', 0, 'maxLength', 255));
@@ -933,7 +932,7 @@
         }
       }
       self.v_grants := trim (self.v_grants, ',');
-      self.v_acl := serialize (DB.DBA.wa_acl_params (params));
+      self.v_acl := serialize (DB.DBA.wa_aci_params (params));
 
       CAL.WA.test (self.v_subject, vector('name', 'Name', 'class', 'varchar', 'minLength', 1, 'maxLength', 255));
       CAL.WA.test (self.v_tags, vector ('name', 'Tags', 'class', 'tags'));
@@ -1517,7 +1516,7 @@
             <table cellspacing="0">
               <tr>
                 <th width="30%">
-                  <v:label for="" value="Space delimited keyword list" />
+                        <vm:label for="" value="Space delimited keyword list" />
                 </th>
                 <td>
                         <v:text name="s_keywords" value="--CAL.WA.xml_get ('keywords', self.cSearch)" fmt-function="CAL.WA.utf2wide" xhtml_class="textbox" xhtml_size="60" />
@@ -2374,7 +2373,7 @@
               <table class="form-body" cellspacing="0">
             <tr>
                   <th width="25%">
-                    <v:label for="e_subject" value="Name" />
+                          <vm:label for="e_subject" value="Name" />
               </th>
               <td>
                           <v:text name="e_subject" xhtml_id="e_subject" null-value="''" value="--self.v_subject" fmt-function="CAL.WA.utf2wide" xhtml_class="textbox" xhtml_size="60" />
@@ -2487,7 +2486,7 @@
             </tr>
             <tr>
                   <th valign="top">
-                <v:label for="e_description" value="Description"/>
+                          <vm:label for="e_description" value="Description" />
               </th>
               <td>
                           <v:textarea name="e_description" xhtml_id="e_description" null-value="--''" value="--self.v_description" fmt-function="CAL.WA.utf2wide" xhtml_cols="45" xhtml_rows="6" />
@@ -2495,10 +2494,10 @@
             </tr>
             <tr>
               <th>
-                <v:label for="e_location" value="Location"/>
+                          <vm:label for="e_location" value="Location" />
               </th>
               <td>
-                          <v:text name="e_location" null-value="''" value="--self.v_location" fmt-function="CAL.WA.utf2wide" xhtml_class="textbox" xhtml_size="60" />
+                          <v:text name="e_location" xhtml_id="e_location" null-value="''" value="--self.v_location" fmt-function="CAL.WA.utf2wide" xhtml_class="textbox" xhtml_size="60" />
               </td>
             </tr>
             <tr>
@@ -2506,7 +2505,7 @@
                     <vm:label for="e_reminder" value="--'Reminder'" />
                   </th>
                   <td>
-                      <v:select-list name="e_reminder">
+                          <v:select-list name="e_reminder" xhtml_id="e_reminder">
                         <v:on-init>
                           <![CDATA[
                             declare N integer;
@@ -2532,7 +2531,7 @@
                           <vm:label for="e_privacy" value="--'Privacy'" />
                         </th>
                         <td>
-                            <v:select-list name="e_privacy" xhtml_onchange="javascript: (this.value == \'2\')? OAT.Dom.show(\'e_tab_3\'): OAT.Dom.hide(\'e_tab_3\');">
+                            <v:select-list name="e_privacy" xhtml_id="e_privacy" xhtml_onchange="javascript: (this.value == \'2\')? OAT.Dom.show(\'e_tab_3\'): OAT.Dom.hide(\'e_tab_3\');">
                             <v:item value="0" name="Private" />
                               <v:item value="2" name="ACL" />
                             <v:item value="1" name="Public" />
@@ -2547,10 +2546,10 @@
                       </vm:if>
                       <tr>
                         <th valign="top">
-                          <v:label for="e_attendees" value="Attendees" />
+                          <vm:label for="e_attendees" value="Attendees" />
                         </th>
                         <td valign="top">
-                          <v:textarea name="e_attendees" null-value="--''" value="--self.v_attendees" fmt-function="CAL.WA.utf2wide" xhtml_cols="45" xhtml_rows="6" />
+                          <v:textarea name="e_attendees" xhtml_id="e_attendees" null-value="--''" value="--self.v_attendees" fmt-function="CAL.WA.utf2wide" xhtml_cols="45" xhtml_rows="6" />
                           <?vsp
                             if (CAL.WA.instance_check (self.account_id, 'AddressBook'))
                               http (self.windowOpen('contacts.vspx?dst=mc&params=e_attendees:s1;', 'Select', 'Select', 'button'));
@@ -2561,10 +2560,10 @@
                       </tr>
                       <tr>
                   <th>
-                    <v:label for="e_tags" value="Tags (comma-separated)" />
+                          <vm:label for="e_tags" value="Tags (comma-separated)" />
                   </th>
                   <td>
-                      <v:text name="e_tags" null-value="''" value="--self.v_tags" xhtml_class="textbox" xhtml_size="60" />
+                          <v:text name="e_tags" xhtml_id="e_tags" null-value="''" value="--self.v_tags" xhtml_class="textbox" xhtml_size="60" />
                           <?vsp if (CAL.WA.tag_rule_exists (self.account_id)) { ?>
                             <input type="button" value="Suggest" onclick="javascript: tagsShow('<?V CAL.WA.page_url (self.domain_id, 'tags.vspx?fld=e_tags') ?>', 'e');" class="button" />
                           <?vsp } ?>
@@ -2578,7 +2577,7 @@
               <table class="form-body" cellspacing="0">
                 <tr>
                   <th width="25%" valign="top">
-                <v:label for="e_repeat" value="Repeats"/>
+                          Repeats
               </th>
               <td>
                 <table>
@@ -3084,35 +3083,23 @@
                                   <th class="action">Action</th>
                               </tr>
                             </thead>
+                              <tbody id="s_tbody">
+                                <tr id="s_tr_no"><td colspan="4"><b>No Shares</b></td></tr>
                       		  <![CDATA[
                       		    <script type="text/javascript">
                             <?vsp
-                                declare N, L integer;
-                                declare acl, aType, aAccess any;
+                                    declare acl any;
 
-                              L := 0;
                               acl := (select WAI_ACL from DB.DBA.WA_INSTANCE where WAI_ID = self.domain_id);
                               acl := case when isnull (acl) then vector () else deserialize (acl) end;
-                                for (N := 0; N < length (acl); N := N + 1)
-                              {
-                                L := L + 1;
-                                  http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("s", {fld_1: {mode: 50, value: "%s"}, fld_2: {value: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; white-space: nowrap; text-align: center;"}, fld_4: {value: "Inherited"}});});', acl[N][2], acl[N][1], acl[N][3], acl[N][4], acl[N][5]));
-                              }
+                                    DB.DBA.wa_aci_lines (acl);
+
                               acl := deserialize (self.v_acl);
-                                for (N := 0; N < length (acl); N := N + 1)
-                              {
-                                L := L + 1;
-                                  if (self.cAction <> 'view')
-                                  {
-                                    http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createRow("s", null, {fld_1: {mode: 50, value: "%s", onchange: function(){TBL.changeCell50(this);}}, fld_2: {mode: 51, form: "F1", tdCssText: "white-space: nowrap;", className: "_validate_ _webid_", value: "%s", readOnly: %s, imgCssText: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; text-align: center;"}});});', acl[N][2], acl[N][1], case when acl[N][2] = 'public' then 'true' else 'false' end, case when acl[N][2] = 'public' then 'display: none;' else '' end, acl[N][3], acl[N][4], acl[N][5]));
-                                  } else {
-                                    http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("s", {fld_1: {mode: 50, value: "%s"}, fld_2: {value: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; white-space: nowrap; text-align: center;"}});});', acl[N][2], acl[N][1], acl[N][3], acl[N][4], acl[N][5]));
-                                  }
-                                }
+                                    DB.DBA.wa_aci_lines (acl, self.cAction);
                            		    ?>
                            		    </script>
                            		  ]]>
-                            <tr id="s_tr_no" style="display: <?V case when L=0 then '' else 'none' end ?>;"><td colspan="<?V case when self.cAction='view' then 3 else 4 end ?>"><b>No Shares</b></td></tr>
+                              </tbody>
                           </table>
                         </td>
                         <vm:if test="self.cAction <> 'view'">
@@ -3140,7 +3127,7 @@
               ]]>
             </v:on-post>
           </v:button>
-                <v:button action="simple" name="e_create_new" value="Create and New" enabled="--case when ((self.cScope = 'events') and (self.cAction = 'create')) then 1 else 0 end" xhtml_class="form-button" xhtml_onclick="return validateInputs(this);">
+                <v:button action="simple" name="e_create_new" value="Create and New" enabled="--case when (self.cAction = 'create') then 1 else 0 end" xhtml_class="form-button" xhtml_onclick="return validateInputs(this);">
             <v:on-post>
               <![CDATA[
                 self.saveEvent ();
@@ -3429,7 +3416,7 @@
               <table class="form-body" cellspacing="0">
             <tr>
                   <th width="25%">
-                    <v:label for="t_subject" value="Name" />
+                          <vm:label for="t_subject" value="Name" />
               </th>
               <td>
                           <v:text name="t_subject" xhtml_id="t_subject" null-value="''" value="--self.v_subject" fmt-function="CAL.WA.utf2wide" xhtml_class="textbox" xhtml_size="60" />
@@ -3437,7 +3424,7 @@
             </tr>
             <tr>
               <th>
-                <v:label for="t_eventEndDate" value="Start Date"/>
+                          <vm:label for="t_eventStartDate" value="Start Date" />
               </th>
               <td>
                           <input type="hidden" name="t_eventStartDate_save" id="t_eventStartDate_save" value="<?V CAL.WA.dt_datestring (self.v_eventStart, self.cDateFormat) ?>" />
@@ -3449,7 +3436,7 @@
             </tr>
             <tr>
               <th>
-                <v:label for="t_eventEndDate" value="Due Date"/>
+                          <vm:label for="t_eventEndDate" value="Due Date" />
               </th>
               <td>
                           <v:text name="t_eventEndDate" xhtml_id="t_eventEndDate" null-value="--''" value="--CAL.WA.dt_datestring (self.v_eventEnd, self.cDateFormat)" xhtml_onclick="--sprintf ('datePopup(\'t_eventEndDate\', \'%s\');', self.cDateFormat)" xhtml_onchange="dateUpdate(\'t_eventEndDate\', [\'t_eventStartDate\']);" xhtml_class="textbox" xhtml_size="10" />
@@ -3460,10 +3447,10 @@
             </tr>
             <tr>
               <th>
-                <v:label for="t_priority" value="Priority"/>
+                          <vm:label for="t_priority" value="Priority" />
               </th>
               <td>
-                <v:select-list name="t_priority">
+                          <v:select-list name="t_priority" xhtml_id="t_priority">
                   <v:on-init>
                     <![CDATA[
                       declare N integer;
@@ -3493,7 +3480,7 @@
             </tr>
             <tr>
               <th>
-                <v:label for="t_status" value="Status"/>
+                          <vm:label for="t_status" value="Status" />
               </th>
               <td>
                           <v:select-list name="t_status" xhtml_id="t_status" xhtml_onchange="javascript: changeComplete(this);">
@@ -3517,7 +3504,7 @@
             </tr>
             <tr>
               <th>
-                          <v:label for="t_completed" value="Completed" />
+                          <vm:label for="t_completed" value="Completed" />
                         </th>
                         <td>
                           <v:text name="t_completed" xhtml_id="t_completed" null-value="--''" value="--CAL.WA.dt_datestring (self.v_completed, self.cDateFormat)" xhtml_onclick="--sprintf ('datePopup(\'t_completed\', \'%s\'); changeComplete(this);', self.cDateFormat)" xhtml_class="textbox" xhtml_size="10" xhtml_onchange="javascript: changeComplete(this);"/>
@@ -3528,7 +3515,7 @@
                       </tr>
                       <tr>
                         <th>
-                          <v:label for="t_complete" value="Complete (%)" />
+                          <vm:label for="t_complete" value="Complete (%)" />
               </th>
               <td>
                           <v:select-list name="t_complete" xhtml_id="t_complete" xhtml_onchange="javascript: changeComplete(this);">
@@ -3552,7 +3539,7 @@
             </tr>
             <tr>
                   <th valign="top">
-                <v:label for="t_description" value="Description"/>
+                          <vm:label for="t_description" value="Description" />
               </th>
               <td>
                           <v:textarea name="t_description" xhtml_id="t_description" null-value="--''" value="--self.v_description" fmt-function="CAL.WA.utf2wide" xhtml_cols="45" xhtml_rows="6" />
@@ -3564,7 +3551,7 @@
                           <vm:label for="t_privacy" value="--'Privacy'" />
                         </th>
                         <td>
-                            <v:select-list name="t_privacy" xhtml_onchange="javascript: (this.value == \'2\')? OAT.Dom.show(\'t_tab_2\'): OAT.Dom.hide(\'t_tab_2\');">
+                            <v:select-list name="t_privacy" xhtml_id="t_privacy" xhtml_onchange="javascript: (this.value == \'2\')? OAT.Dom.show(\'t_tab_2\'): OAT.Dom.hide(\'t_tab_2\');">
                             <v:item value="0" name="Private" />
                               <v:item value="2" name="ACL" />
                             <v:item value="1" name="Public" />
@@ -3579,10 +3566,10 @@
                       </vm:if>
             <tr>
                         <th valign="top">
-                          <v:label for="t_attendees" value="Attendees" />
+                          <vm:label for="t_attendees" value="Attendees" />
                         </th>
                         <td>
-                          <v:textarea name="t_attendees" null-value="--''" value="--self.v_attendees" fmt-function="CAL.WA.utf2wide" xhtml_cols="45" xhtml_rows="6" />
+                          <v:textarea name="t_attendees" xhtml_id="t_attendees" null-value="--''" value="--self.v_attendees" fmt-function="CAL.WA.utf2wide" xhtml_cols="45" xhtml_rows="6" />
                           <?vsp
                             if (CAL.WA.instance_check (self.account_id, 'AddressBook'))
                               http (self.windowOpen('contacts.vspx?dst=mc&params=t_attendees:s1;', 'Select', 'Select', 'button'));
@@ -3593,10 +3580,10 @@
                       </tr>
                       <tr>
               <th>
-                <v:label for="t_tags" value="Tags (comma-separated)" />
+                          <vm:label for="t_tags" value="Tags (comma-separated)" />
               </th>
               <td>
-                  <v:text name="t_tags" null-value="''" value="--self.v_tags" xhtml_class="textbox" xhtml_size="60" />
+                          <v:text name="t_tags" xhtml_id="t_tags" null-value="''" value="--self.v_tags" xhtml_class="textbox" xhtml_size="60" />
                           <?vsp if (CAL.WA.tag_rule_exists (self.account_id)) { ?>
                             <input type="button" value="Suggest" onclick="javascript: tagsShow('<?V CAL.WA.page_url (self.domain_id, 'tags.vspx?fld=t_tags') ?>', 't');" class="button" />
                           <?vsp } ?>
@@ -3610,7 +3597,7 @@
               <table class="form-body" cellspacing="0">
                 <tr>
                   <th width="20%" valign="top">
-                    Notes
+                          <vm:label for="t_notes" value="Notes" />
                   </th>
                   <td>
                           <textarea id="t_notes" name="t_notes" style="width: 400; height: 170"><?vsp http (coalesce (self.v_notes, '')); ?></textarea>
@@ -3683,35 +3670,24 @@
                                   <th class="action">Action</th>
                               </tr>
                             </thead>
+                              <tbody id="s_tbody">
+                                <tr id="s_tr_no"><td colspan="4"><b>No Shares</b></td></tr>
                       		  <![CDATA[
                       		    <script type="text/javascript">
                             <?vsp
-                                declare N, L integer;
-                                declare acl, aType, aAccess any;
+                                    declare acl any;
 
-                              L := 0;
+                                    -- inherited
                               acl := (select WAI_ACL from DB.DBA.WA_INSTANCE where WAI_ID = self.domain_id);
                               acl := case when isnull (acl) then vector () else deserialize (acl) end;
-                                for (N := 0; N < length (acl); N := N + 1)
-                              {
-                                L := L + 1;
-                                  http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("s", {fld_1: {mode: 50, value: "%s"}, fld_2: {value: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; white-space: nowrap; text-align: center;"}, fld_4: {value: "Inherited"}});});', acl[N][2], acl[N][1], acl[N][3], acl[N][4], acl[N][5]));
-                              }
+                                    DB.DBA.wa_aci_lines (acl);
+
                               acl := deserialize (self.v_acl);
-                                for (N := 0; N < length (acl); N := N + 1)
-                              {
-                                L := L + 1;
-                                  if (self.cAction <> 'view')
-                                  {
-                                    http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createRow("s", null, {fld_1: {mode: 50, value: "%s", onchange: function(){TBL.changeCell50(this);}}, fld_2: {mode: 51, form: "F1", tdCssText: "white-space: nowrap;", className: "_validate_ _uri_", value: "%s", readOnly: %s, imgCssText: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; text-align: center;"}});});', acl[N][2], acl[N][1], case when acl[N][2] = 'public' then 'true' else 'false' end, case when acl[N][2] = 'public' then 'display: none;' else '' end, acl[N][3], acl[N][4], acl[N][5]));
-                                  } else {
-                                    http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("s", {fld_1: {mode: 50, value: "%s"}, fld_2: {value: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; white-space: nowrap; text-align: center;"}});});', acl[N][2], acl[N][1], acl[N][3], acl[N][4], acl[N][5]));
-                                  }
-                                }
+                                    DB.DBA.wa_aci_lines (acl, self.cAction);
                            		    ?>
                            		    </script>
                            		  ]]>
-                            <tr id="s_tr_no" style="display: <?V case when L=0 then '' else 'none' end ?>;"><td colspan="<?V case when self.cAction='view' then 3 else 4 end ?>"><b>No Shares</b></td></tr>
+                              </tbody>
                           </table>
                         </td>
                         <vm:if test="self.cAction <> 'view'">
@@ -3739,7 +3715,7 @@
               ]]>
             </v:on-post>
           </v:button>
-                <v:button action="simple" name="t_create_new" value="Create and New" enabled="--case when ((self.cScope = 'tasks') and (self.cAction = 'create')) then 1 else 0 end" xhtml_class="form-button">
+                <v:button action="simple" name="t_create_new" value="Create and New" enabled="--case when (self.cAction = 'create') then 1 else 0 end" xhtml_class="form-button">
             <v:on-post>
               <![CDATA[
                 self.saveTask ();
@@ -3948,11 +3924,11 @@
         <div class="new-form-body">
           <table cellspacing="0">
             <tr>
-                    <th rowspan="3" valign="top" width="30%">
-                  <v:label for="i_file" value="Source type" />
+                    <th rowspan="4" valign="top" width="30%">
+                      Source type
               </th>
                 <td nowrap="nowarap">
-                      <v:radio-button name="icSource_0" xhtml_id="icSource_0" group-name="icSource" value="0" xhtml_onchange="javascript: destinationChange(this, {show: [\'imp_td_0\'], hide: [\'imp_td_1\', \'imp_td_2\', \'imp_tr_31\', \'imp_tr_32\']});">
+                      <v:radio-button name="icSource_0" xhtml_id="icSource_0" group-name="icSource" value="0" xhtml_onchange="javascript: destinationChange(this, {show: [\'imp_td_0\'], hide: [\'imp_td_1\', \'imp_td_2\', \'imp_tr_31\', \'imp_tr_32\'], exec: [srcImportLabel]});">
                     <v:before-render>
                       <![CDATA[
                         control.ufl_selected := either(lte(self.icSource, 0), 1, 0);
@@ -3965,7 +3941,7 @@
               </tr>
               <tr>
                 <td nowrap="nowarap">
-                      <v:radio-button name="icSource_1" xhtml_id="icSource_1" group-name="icSource" value="1" xhtml_onchange="javascript: destinationChange(this, {show: [\'imp_td_1\', \'imp_tr_31\', \'imp_tr_32\'], hide: [\'imp_td_0\', \'imp_td_2\']});">
+                      <v:radio-button name="icSource_1" xhtml_id="icSource_1" group-name="icSource" value="1" xhtml_onchange="javascript: destinationChange(this, {show: [\'imp_td_1\', \'imp_tr_31\', \'imp_tr_32\'], hide: [\'imp_td_0\', \'imp_td_2\'], exec: [srcImportLabel]});">
                     <v:before-render>
                       <![CDATA[
                         control.ufl_selected := either(equ(self.icSource, 1), 1, 0);
@@ -3978,7 +3954,20 @@
               </tr>
               <tr>
                 <td nowrap="nowarap">
-                      <v:radio-button name="icSource_2" xhtml_id="icSource_2" group-name="icSource" value="2" xhtml_onchange="javascript: destinationChange(this, {show: [\'imp_td_2\', \'imp_tr_31\', \'imp_tr_32\'], hide: [\'imp_td_0\', \'imp_td_1\']});">
+                      <v:radio-button name="icSource_3" xhtml_id="icSource_3" group-name="icSource" value="3" xhtml_onchange="javascript: destinationChange(this, {show: [\'imp_td_2\', \'imp_tr_31\', \'imp_tr_32\'], hide: [\'imp_td_0\', \'imp_td_1\'], exec: [srcImportLabel]});">
+                        <v:before-render>
+                          <![CDATA[
+                            control.ufl_selected := either(equ(self.icSource, 3), 1, 0);
+                          ]]>
+                        </v:before-render>
+                      </v:radio-button>
+                       
+                      <b><vm:label for="icSource_3" value="--'CalDAV'" /></b>
+                    </td>
+                  </tr>
+                  <tr>
+                    <td nowrap="nowarap">
+                      <v:radio-button name="icSource_2" xhtml_id="icSource_2" group-name="icSource" value="2" xhtml_onchange="javascript: destinationChange(this, {show: [\'imp_td_2\', \'imp_tr_31\', \'imp_tr_32\'], hide: [\'imp_td_0\', \'imp_td_1\'], exec: [srcImportLabel]});">
                     <v:before-render>
                       <![CDATA[
                         control.ufl_selected := either(equ(self.icSource, 2), 1, 0);
@@ -3991,7 +3980,7 @@
             </tr>
                 <tr>
                     <th>
-                      Source name
+                      <span id="srcLabel">Local File Name (.ics)</span>
                   </th>
                     <td>
                       <span id="imp_td_0" style="display: <?V case when self.icSource < 1 then '' else 'none' end ?>;">
@@ -4006,42 +3995,42 @@
                   		    </script>
               			    ]]>
                       </span>
-                      <span id="imp_td_2" style="display: <?V case when self.icSource = 2 then '' else 'none' end ?>;">
+                      <span id="imp_td_2" style="display: <?V case when self.icSource > 1 then '' else 'none' end ?>;">
                         <v:text name="f_uri" value="--get_keyword ('f_uri', self.vc_page.vc_event.ve_params, '')" xhtml_size="60" />
                       </span>
                     </td>
                 </tr>
                   <tr id="imp_tr_31" style="<?V case when self.icSource < 1 then 'display: none;' else '' end ?>;">
                     <th>
-                      User
+                      <label for="i_user">User</label>
                   </th>
                   <td>
-                      <v:text name="i_user" value="--self.icUser" null-value="''" xhtml_class="" />
+                      <v:text name="i_user" xhtml_id="i_user" value="--self.icUser" null-value="''" xhtml_class="" />
                     </td>
                   </tr>
                   <tr id="imp_tr_32" style="<?V case when self.icSource < 1 then 'display: none;' else '' end ?>;">
                     <th>
-                      Password
+                      <label for="i_password">Password</label>
                     </th>
                     <td>
-                      <v:text name="i_password" type="password" value="--''" null-value="''" xhtml_class="" />
+                      <v:text name="i_password" xhtml_id="i_password" type="password" value="--''" null-value="''" xhtml_class="" />
                   </td>
                 </tr>
               <tr>
                 <th>
-                  <v:label for="i_tags" value="Tags (comma-separated)" />
+                      <label for="i_tags">Tags (comma-separated)</label>
                 </th>
                 <td>
-                  <v:text name="i_tags" value="--self.v_tags" xhtml_class="textbox" xhtml_size="60" />
+                      <v:text name="i_tags" xhtml_id="i_tags" value="--self.v_tags" xhtml_class="textbox" xhtml_size="60" />
                 </td>
               </tr>
               <?vsp self.myTags ('i_tags'); ?>
                   <tr>
                     <th>
-                      Mails to attendees
+                      <label for="i_attendees">Mails to attendees</label>
                     </th>
                     <td>
-                      <v:select-list name="i_attendees">
+                      <v:select-list name="i_attendees" xhtml_id="i_attendees">
                         <v:item value="0" name="No action" />
                         <v:item value="1" name="Reset mail status" />
                         <v:item value="2" name="No mails" />
@@ -4064,6 +4053,14 @@
                     </td>
                   </tr>
           </table>
+                <script type="text/javascript">
+                  <![CDATA[
+                    destinationChange($('icSource_0'), {show: ['imp_td_0'], hide: ['imp_td_1', 'imp_td_2', 'imp_tr_31', 'imp_tr_32'], exec: [srcImportLabel]});
+                    destinationChange($('icSource_1'), {show: ['imp_td_1', 'imp_tr_31', 'imp_tr_32'], hide: ['imp_td_0', 'imp_td_2'], exec: [srcImportLabel]});
+                    destinationChange($('icSource_2'), {show: ['imp_td_2', 'imp_tr_31', 'imp_tr_32'], hide: ['imp_td_0', 'imp_td_1'], exec: [srcImportLabel]});
+                    destinationChange($('icSource_3'), {show: ['imp_td_2', 'imp_tr_31', 'imp_tr_32'], hide: ['imp_td_0', 'imp_td_1'], exec: [srcImportLabel]});
+                  ]]>
+                </script>
         </div>
 
               <div class="form-footer">
@@ -4090,11 +4087,7 @@
                         self.icSource := 0;
                     content := trim(get_keyword ('f_file', self.vc_page.vc_event.ve_params, ''));
                           if (is_empty_or_null (content))
-                          {
-                      self.vc_error_message := 'Please select file from your local file system!';
-                      self.vc_is_valid := 0;
-                      return;
-                    }
+                          signal ('TEST', 'Please select file from your local file system!');
                     }
                       else if (self.icSource_1.ufl_selected)
                       {
@@ -4103,30 +4096,29 @@
                         tmp := http_physical_path_resolve (replace (self.f_dav.ufl_value, ' ', '%20'));
                         content := CAL.WA.dav_content (CAL.WA.host_url () || tmp, 1, self.icUser, self.icPassword);
                           if (isnull(content))
-                          {
-                      self.vc_error_message := 'Bad import source!';
-                      self.vc_is_valid := 0;
-                      return;
-                    }
+                          signal ('TEST', 'Bad import source!');
                       }
                       else if (self.icSource_2.ufl_selected)
                       {
                         self.icSource := 2;
                     self.f_uri.ufl_value := trim(self.f_uri.ufl_value);
                           if (is_empty_or_null (self.f_uri.ufl_value))
-                          {
-                      self.vc_error_message := 'Please select correct URL address!';
-                      self.vc_is_valid := 0;
-                      return;
-                    }
+                          signal ('TEST', 'Please select correct URL address!');
+
                         content := CAL.WA.dav_content (self.f_uri.ufl_value, 1, self.icUser, self.icPassword);
                           if (isnull(content))
-                          {
-                      self.vc_error_message := 'Bad URL source!';
-                      self.vc_is_valid := 0;
-                      return;
-                    }
+                          signal ('TEST', 'Bad URL source!');
                   }
+                      else if (self.icSource_3.ufl_selected)
+                      {
+                        self.icSource := 3;
+                        self.f_uri.ufl_value := trim (self.f_uri.ufl_value);
+                        if (is_empty_or_null (self.f_uri.ufl_value))
+                          signal ('TEST', 'Please select correct URL address!');
+
+                        if (not CAL.WA.import_CalDAV_check (self.f_uri.ufl_value, vector ('user', self.icUser, 'password', self.icPassword), 1))
+                          signal ('TEST', 'Bad CalDAV source!');
+                      }
 
                   -- test tags value
                   self.v_tags := trim (self.i_tags.ufl_value);
@@ -4136,7 +4128,12 @@
                   self.v_tags := CAL.WA.vector2tags (tmp);
 
                   -- vCard
+                      if (self.icSource = 3)
+                      {
+                        CAL.WA.import_CalDAV (self.domain_id, self.f_uri.ufl_value, vector ('user', self.icUser, 'password', self.icPassword, 'tags', self.v_tags, 'events', 1, 'tasts', 1, 'sync', self.i_sync.ufl_selected, 'mailAttendees', self.i_attendees.ufl_value));
+                      } else {
                       CAL.WA.import_vcal (self.domain_id, content, vector ('tags', self.v_tags, 'events', 1, 'tasts', 1, 'sync', self.i_sync.ufl_selected, 'mailAttendees', self.i_attendees.ufl_value));
+                      }
 
                       commit work;
                   self.cAction := 'browse';
@@ -4735,10 +4732,10 @@
                 <table cellspacing="0">
                 <tr>
                   <th width="30%">
-                      <v:label for="exc_name" value="Name" />
+                      <label for="exc_name">Name</label>
                   </th>
                   <td>
-                      <v:text name="exc_name" null-value="--''" value="--self.ve_name" xhtml_size="60" />
+                      <v:text name="exc_name" xhtml_id="exc_name" null-value="--''" value="--self.ve_name" xhtml_size="60" />
                   </td>
                 </tr>
                   <vm:if test="self.cAction not in ('syncmlCreate', 'syncmlUpdate')">
@@ -4807,26 +4804,42 @@
                 </tr>
                   <vm:if test="self.cAction not in ('syncmlCreate', 'syncmlUpdate')">
                 <tr>
-                    <th rowspan="2" valign="top">
+                      <th rowspan="<?V case when (self.cAction in ('subscribeCreate', 'subscribeUpdate')) then 3 else 2 end ?>" valign="top">
                       <?V case when (self.cAction in ('publishCreate', 'publishUpdate')) then 'Destination' else  'Source' end ?> type
                           </th>
                     <td nowrap="nowarap">
                       <label>
-                        <v:radio-button name="exc_options_type_1" group-name="exc_options_type" value="1" xhtml_onchange="javascript: destinationChange(this, {show: [\'exc_options_name_button\'], clear: [\'exc_options_name\']});">
+                          <v:radio-button name="exc_options_type_1" xhtml_id="exc_options_type_1" group-name="exc_options_type" value="1" xhtml_onchange="javascript: destinationChange(this, {show: [\'exc_options_name_button\'], clear: [\'exc_options_name\'], exec: [excLabel]});">
                           <v:before-render>
                             <![CDATA[
                                 control.ufl_selected := either (lte (get_keyword ('type', coalesce (self.ve_options, vector ()), 1), 1), 1, 0);
                             ]]>
                           </v:before-render>
                         </v:radio-button>
-                        <b>WebDAV Path</b>
+                          <b>WebDAV File URL</b>
                       </label>
                           </td>
                         </tr>
+                    <vm:if test="self.cAction in ('subscribeCreate', 'subscribeUpdate')">
                         <tr>
                     <td nowrap="nowarap">
                       <label>
-                        <v:radio-button name="exc_options_type_2" group-name="exc_options_type" value="2" xhtml_onchange="javascript: destinationChange(this, {hide: [\'exc_options_name_button\'], clear: [\'exc_options_name\']});">
+                            <v:radio-button name="exc_options_type_3" xhtml_id="exc_options_type_3" group-name="exc_options_type" value="3" xhtml_onchange="javascript: destinationChange(this, {hide: [\'exc_options_name_button\'], clear: [\'exc_options_name\'], exec: [excLabel]});">
+                            <v:before-render>
+                              <![CDATA[
+                                control.ufl_selected := either (equ (get_keyword ('type', coalesce (self.ve_options, vector ()), 1), 3), 1, 0);
+                              ]]>
+                            </v:before-render>
+                          </v:radio-button>
+                          <b>CalDAV Path</b>
+                        </label>
+                      </td>
+                    </tr>
+                    </vm:if>
+                    <tr>
+                      <td nowrap="nowarap">
+                        <label>
+                          <v:radio-button name="exc_options_type_2" xhtml_id="exc_options_type_2" group-name="exc_options_type" value="2" xhtml_onchange="javascript: destinationChange(this, {hide: [\'exc_options_name_button\'], clear: [\'exc_options_name\'], exec: [excLabel]});">
                           <v:before-render>
                             <![CDATA[
                                 control.ufl_selected := either (equ (get_keyword ('type', coalesce (self.ve_options, vector ()), 1), 2), 1, 0);
@@ -4840,34 +4853,37 @@
                   </vm:if>
                         <tr>
                     <th>
-                      <v:label for="sr_chars" value="-- case when (self.cAction in ('syncmlCreate', 'syncmlUpdate')) then 'WebDAV SyncML Path' else 'WebDAV Path / URL' end" />
+                      <vm:if test="self.cAction in ('syncmlCreate', 'syncmlUpdate')">
+                        <label for="exc_options_name">WebDAV SyncML Path</label>
+                      </vm:if>
+                      <vm:if test="self.cAction not in ('syncmlCreate', 'syncmlUpdate')">
+                        <label for="exc_options_name"><span id="excLabel">WebDAV File Name (.ics)</span></label>
+                      </vm:if>
                           </th>
                           <td>
                       <v:text name="exc_options_name" xhtml_id="exc_options_name" value="--get_keyword ('name', self.ve_options)" xhtml_size="60" />
-                      <vm:if test="self.cAction not in ('syncmlCreate', 'syncmlUpdate')">
-                        <input type="button" id="exc_options_name_button" value="Browse..." onclick="davBrowse ('exc_options_name');" style="display: <?V case when (get_keyword ('type', self.ve_options, 1) <> 1) then 'none' else '' end ?>;" />
+                      <input type="button" id="exc_options_name_button" value="Browse..." onclick="davBrowse ('exc_options_name', <?V case when (self.cAction in ('syncmlCreate', 'syncmlUpdate')) then 'true' else 'false' end ?>);" style="display: <?V case when (get_keyword ('type', self.ve_options, 1) <> 1) then 'none' else '' end ?>" />
                           <![CDATA[
                   		    <script type="text/javascript">
                             OAT.Loader.load(['dav'], function(){OAT.WebDav.init(davOptions);});
                   		    </script>
                           ]]>
-                      </vm:if>
                           </td>
                         </tr>
                         <tr>
                     <th>
-                      User
+                      <label for="exc_options_user">User</label>
                     </th>
                           <td>
-                      <v:text name="exc_options_user" value="--get_keyword ('user', self.ve_options)" null-value="''" />
+                      <v:text name="exc_options_user" xhtml_id="exc_options_user" value="--get_keyword ('user', self.ve_options)" null-value="''" />
                           </td>
                         </tr>
                         <tr>
                     <th>
-                      Password
+                      <label for="exc_options_password">Password</label>
                     </th>
                           <td>
-                      <v:text name="exc_options_password" type="password"  value="--get_keyword ('password', self.ve_options)" null-value="''" />
+                      <v:text name="exc_options_password" xhtml_id="exc_options_password" type="password"  value="--get_keyword ('password', self.ve_options)" null-value="''" />
                           </td>
                         </tr>
                         <tr>
@@ -4877,10 +4893,10 @@
                         </tr>
                   <tr>
                     <th>
-                      Mails to attendees
+                      <label for="exc_options_attendees">Mails to attendees</label>
                     </th>
                     <td>
-                      <v:select-list name="exc_options_attendees">
+                      <v:select-list name="exc_options_attendees" xhtml_id="exc_options_attendees">
                         <v:item value="0" name="No action" />
                         <v:item value="1" name="Reset mail status" />
                         <v:item value="2" name="No mails" />
@@ -4896,10 +4912,10 @@
                   <vm:if test="self.cAction in ('syncmlCreate', 'syncmlUpdate')">
                     <tr>
                       <th>
-                        <v:label for="exc_options_mode" value="Sync mode" />
+                        <label for="exc_options_mode">Sync mode</label>
                       </th>
                       <td>
-                        <v:select-list name="exc_options_mode">
+                        <v:select-list name="exc_options_mode" xhtml_id="exc_options_mode">
                           <v:item value="0" name="Update both" />
                           <v:item value="1" name="Update client" />
                           <v:item value="-1" name="Update SyncML server" />
@@ -4919,17 +4935,36 @@
                     </th>
                           <td>
                       <label>
-                        <v:check-box name="exc_options_events" is-boolean="1" true-value="1" false-value="0" value="--get_keyword ('events', coalesce (self.ve_options, vector ()), 1)" />
+                        <v:check-box name="exc_options_events" is-boolean="1" true-value="1" false-value="0">
+                          <v:before-render>
+                            <![CDATA[
+                              control.ufl_selected := get_keyword ('events', coalesce (self.ve_options, vector ()), 1);
+                            ]]>
+                          </v:before-render>
+                        </v:check-box>
                         Events
                       </label>
                       <br />
                       <label>
-                        <v:check-box name="exc_options_tasks" is-boolean="1" true-value="1" false-value="0" value="--get_keyword ('tasks', coalesce (self.ve_options, vector ()), 1)" />
+                        <v:check-box name="exc_options_tasks" is-boolean="1" true-value="1" false-value="0">
+                          <v:before-render>
+                            <![CDATA[
+                              control.ufl_selected := get_keyword ('tasks', coalesce (self.ve_options, vector ()), 1);
+                            ]]>
+                          </v:before-render>
+                        </v:check-box>
                         Tasks
                       </label>
                           </td>
                         </tr>
                       </table>
+                <script type="text/javascript">
+                  <![CDATA[
+                    destinationChange($('exc_options_type_1'), {show: ['exc_options_name_button'], clear: ['exc_options_name'], exec: [excLabel]});
+                    destinationChange($('exc_options_type_3'), {hide: ['exc_options_name_button'], clear: ['exc_options_name'], exec: [excLabel]});
+                    destinationChange($('exc_options_type_2'), {hide: ['exc_options_name_button'], clear: ['exc_options_name'], exec: [excLabel]});
+                  ]]>
+                </script>
                     </div>
               <div class="form-footer">
                 <v:button action="simple" name="exc_save" value="--case when self.cAction in ('publishCreate', 'subscribeCreate', 'syncmlCreate') then 'Create' else 'Update' end" xhtml_class="form-button">
@@ -4981,6 +5016,10 @@
                     {
                       _type := 2;
                     }
+                        else if (self.exc_options_type_3.ufl_selected)
+                        {
+                          _type := 3;
+                        }
                       }
                     _name := trim (self.exc_options_name.ufl_value);
                       if (self.cAction in ('syncmlCreate', 'syncmlUpdate'))
@@ -5800,15 +5839,20 @@
                       ]]>
                     </v:on-post>
                   </v:button>
-                    <v:button name="sp_clear" action="simple" value="Clear" xhtml_class="form-button">
+                    <v:button name="sp_clear" action="simple" value="Clear" xhtml_onclick="javascript: return confirm (\'Do you want to reset settings to default?\');" xhtml_class="form-button">
                     <v:on-post>
                       <![CDATA[
+                          declare tmp any;
+
                           delete from CAL.WA.SETTINGS where S_DOMAIN_ID = self.domain_id;
                           CAL.WA.nntp_update (self.domain_id, null, null, 1, 0);
-
                           commit work;
-                          self.settings := vector ();
-                          self.initData ();
+
+                          self.settings := CAL.WA.settings (self.domain_id);
+                          CAL.WA.settings_init (self.settings);
+                          self.settings := CAL.WA.set_keyword ('app', self.settings, DB.DBA.WA_USER_APP_ENABLE (self.account_id));
+                          tmp := CAL.WA.settings_usedTimeZone (self.domain_id, self.owner_id);
+                          CAL.WA.set_keyword ('usedTimeZone', self.settings, tmp);
 
                 self.vc_data_bind(e);
               ]]>
diff --git a/appsrc/ODS-Calendar/www/image/virt_power_no_border.png b/appsrc/ODS-Calendar/www/image/virt_power_no_border.png
deleted file mode 100644
index 93fcb80..0000000
Binary files a/appsrc/ODS-Calendar/www/image/virt_power_no_border.png and /dev/null differ
diff --git a/appsrc/ODS-Calendar/www/js/calendar.js b/appsrc/ODS-Calendar/www/js/calendar.js
index fbba868..d6192da 100644
--- a/appsrc/ODS-Calendar/www/js/calendar.js
+++ b/appsrc/ODS-Calendar/www/js/calendar.js
@@ -3,7 +3,7 @@
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2007 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -826,13 +826,17 @@ function dismissReminder(prefix, mode) {
 	reminderDialog.hide ();
 }
 
-function davBrowse(fld) {
+function davBrowse(fld, folders) {
+	/* load stylesheets */
+	OAT.Style.include("grid.css");
+	OAT.Style.include("webdav.css");
+
 	var options = {
 		mode : 'browser',
-		onConfirmClick : function(path, fname) {
-			$(fld).value = '/DAV' + path + fname;
-		}
+    onConfirmClick: function(path, fname) {$(fld).value = '/DAV' + path + fname;}
                 };
+  if (!folders) {folders = false;}
+  OAT.WebDav.options.foldersOnly = folders;
   OAT.WebDav.open(options);
 }
 
@@ -881,7 +885,39 @@ function destinationChange(obj, actions) {
 				o.value = '';
 			}
     }
-  }
+	if (actions.exec) {
+		var a = actions.exec;
+		for ( var i = 0; i < a.length; i++) {
+			a[i](obj);
+		}
+	}
+}
+
+function srcImportLabel(obj) {
+  var srcLabel = $('srcLabel');
+  if (!srcLabel)
+    return;
+  if ($('icSource_0').checked)
+    srcLabel.innerHTML = 'Local File Name (.ics)';
+  if ($('icSource_1').checked)
+    srcLabel.innerHTML = 'WebDAV File URL (.ics)';
+  if ($('icSource_3').checked)
+    srcLabel.innerHTML = 'CalDAV URL';
+  if ($('icSource_2').checked)
+    srcLabel.innerHTML = 'File URL (.ics)';
+  }
+
+function excLabel(obj) {
+  var srcLabel = $('excLabel');
+  if (!srcLabel)
+    return;
+  if ($('exc_options_type_1').checked)
+    srcLabel.innerHTML = 'WebDAV File URL (.ics)';
+  if ($('exc_options_type_3').checked)
+    srcLabel.innerHTML = 'CalDAV URL';
+  if ($('exc_options_type_2').checked)
+    srcLabel.innerHTML = 'File URL (.ics)';
+}
 
 var CAL = new Object();
 
diff --git a/appsrc/ODS-Calendar/www/logs.vspx b/appsrc/ODS-Calendar/www/logs.vspx
index 9959f49..f20f409 100644
--- a/appsrc/ODS-Calendar/www/logs.vspx
+++ b/appsrc/ODS-Calendar/www/logs.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: logs.vspx,v 1.1.2.2 2011/05/17 22:59:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/www/message.vspx b/appsrc/ODS-Calendar/www/message.vspx
index e9cb110..cd1ed83 100644
--- a/appsrc/ODS-Calendar/www/message.vspx
+++ b/appsrc/ODS-Calendar/www/message.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: message.vspx,v 1.1.2.1 2010/09/20 10:15:04 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/www/tags.vspx b/appsrc/ODS-Calendar/www/tags.vspx
index 37bf330..fe4d341 100644
--- a/appsrc/ODS-Calendar/www/tags.vspx
+++ b/appsrc/ODS-Calendar/www/tags.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: tags.vspx,v 1.3.2.4 2011/05/17 22:59:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/www/template/popup.vspx b/appsrc/ODS-Calendar/www/template/popup.vspx
index ae26a34..c3409bf 100644
--- a/appsrc/ODS-Calendar/www/template/popup.vspx
+++ b/appsrc/ODS-Calendar/www/template/popup.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
-  -  $Id: popup.vspx,v 1.11.2.11 2011/07/04 10:05:04 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/www/template/template.vspx b/appsrc/ODS-Calendar/www/template/template.vspx
index 3b87ba4..0ab3ad5 100644
--- a/appsrc/ODS-Calendar/www/template/template.vspx
+++ b/appsrc/ODS-Calendar/www/template/template.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: template.vspx,v 1.29.2.19 2011/07/04 10:05:04 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -40,6 +40,7 @@
       http (sprintf('\n    <link rel="alternate" type="application/atom+xml" title="%V Atom" href="%s" />', domainName, CAL.WA.gems_url (self.domain_id)||'Calendar.atom'));
       http (sprintf('\n    <link rel="alternate" type="application/atomserv+xml" title="%V" href="%s/intro" />', domainName, CAL.WA.atom_lpath2 (self.domain_id)));
       http (sprintf('\n    <link rel="alternate" type="text/calendar" title="%V" href="%s/gems/calendar.ics" />', domainName, CAL.WA.domain_sioc_url (self.domain_id)));
+      http (sprintf('\n    <link rel="alternate" type="text/icalendar" title="%V CalDAV" href="%s" />', domainName, CAL.WA.domain_calDav_url (self.domain_id)));
       http (CAL.WA.geo_url (self.domain_id, self.account_id));
 
       SIOC..rdf_links_header (self.rdf_iri);
@@ -67,11 +68,6 @@
           connectionHeaders: {Authorization: '<?V CAL.WA.account_basicAuthorization (self.account_id) ?>'}
         };
         
-      	/* load stylesheets */
-      	OAT.Style.include("grid.css");
-      	OAT.Style.include("webdav.css");
-      	OAT.Style.include("winms.css");
-
         var featureList=["ajax", "json", "anchor", "dialog", "color", "calendar"];
         OAT.Loader.load(featureList);
     </script>
diff --git a/appsrc/ODS-Calendar/www/template/template.xsl b/appsrc/ODS-Calendar/www/template/template.xsl
index ff62fde..e12269d 100644
--- a/appsrc/ODS-Calendar/www/template/template.xsl
+++ b/appsrc/ODS-Calendar/www/template/template.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: template.xsl,v 1.38.2.11 2011/05/02 14:16:29 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -192,7 +192,7 @@
         <div id="FT" style="display: <?V case when get_keyword ('interface', C, '') = 'js' then 'none' else '' end ?>">
         <div id="FT_L">
           <a href="http://www.openlinksw.com/virtuoso">
-            <img alt="Powered by OpenLink Virtuoso Universal Server" src="image/virt_power_no_border.png" border="0" />
+              <img alt="Powered by OpenLink Virtuoso Universal Server" src="/ods/images/virt_power_no_border.png" border="0" />
           </a>
         </div>
         <div id="FT_R">
diff --git a/appsrc/ODS-Calendar/xslt/rss2atom.xsl b/appsrc/ODS-Calendar/xslt/rss2atom.xsl
index e998236..2390919 100644
--- a/appsrc/ODS-Calendar/xslt/rss2atom.xsl
+++ b/appsrc/ODS-Calendar/xslt/rss2atom.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom.xsl,v 1.2.2.2 2010/09/20 10:15:04 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/xslt/rss2atom03.xsl b/appsrc/ODS-Calendar/xslt/rss2atom03.xsl
index fff9714..bd79434 100644
--- a/appsrc/ODS-Calendar/xslt/rss2atom03.xsl
+++ b/appsrc/ODS-Calendar/xslt/rss2atom03.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom03.xsl,v 1.2.2.1 2010/09/20 10:15:04 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/xslt/rss2rdf.xsl b/appsrc/ODS-Calendar/xslt/rss2rdf.xsl
index 84757c1..a171837 100644
--- a/appsrc/ODS-Calendar/xslt/rss2rdf.xsl
+++ b/appsrc/ODS-Calendar/xslt/rss2rdf.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
-  -  $Id: rss2rdf.xsl,v 1.2.2.1 2010/09/20 10:15:04 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Calendar/xslt/rss2xbel.xsl b/appsrc/ODS-Calendar/xslt/rss2xbel.xsl
index d03224d..b78984a 100644
--- a/appsrc/ODS-Calendar/xslt/rss2xbel.xsl
+++ b/appsrc/ODS-Calendar/xslt/rss2xbel.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -  
-  -  $Id: rss2xbel.xsl,v 1.1.2.1 2010/09/20 10:15:04 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/Makefile.am b/appsrc/ODS-Community/Makefile.am
index 4522f5a..a76d9fa 100644
--- a/appsrc/ODS-Community/Makefile.am
+++ b/appsrc/ODS-Community/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -48,6 +48,7 @@ EXTRA_DIST = \
 	sql/*.sql \
 	sql/install.bat \
 	sql/uninstall.bat \
+	vad_version \
 	www-root/*.vsp \
 	www-root/*.vspx \
 	www-root/public/*.html \
diff --git a/appsrc/ODS-Community/Makefile.in b/appsrc/ODS-Community/Makefile.in
index ba2502c..0020536 100644
--- a/appsrc/ODS-Community/Makefile.in
+++ b/appsrc/ODS-Community/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -38,9 +37,8 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -70,7 +68,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -78,23 +75,9 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(vaddir)"
+nodist_vadDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(nodist_vad_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -184,7 +167,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -268,7 +250,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -289,7 +270,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -311,6 +291,7 @@ EXTRA_DIST = \
 	sql/*.sql \
 	sql/install.bat \
 	sql/uninstall.bat \
+	vad_version \
 	www-root/*.vsp \
 	www-root/*.vspx \
 	www-root/public/*.html \
@@ -335,14 +316,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu appsrc/ODS-Community/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu appsrc/ODS-Community/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  appsrc/ODS-Community/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  appsrc/ODS-Community/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -360,7 +341,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -370,23 +350,20 @@ clean-libtool:
 install-nodist_vadDATA: $(nodist_vad_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(vaddir)" || $(MKDIR_P) "$(DESTDIR)$(vaddir)"
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	for p in $$list; do \
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vaddir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(vaddir)" || exit $$?; \
+	  f=$(am__strip_dir) \
+	  echo " $(nodist_vadDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(vaddir)/$$f'"; \
+	  $(nodist_vadDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(vaddir)/$$f"; \
 	done
 
 uninstall-nodist_vadDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(vaddir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(vaddir)" && rm -f $$files
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(vaddir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(vaddir)/$$f"; \
+	done
 tags: TAGS
 TAGS:
 
@@ -410,17 +387,13 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
@@ -452,7 +425,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -471,8 +443,6 @@ dvi-am:
 
 html: html-am
 
-html-am:
-
 info: info-am
 
 info-am:
@@ -481,28 +451,18 @@ install-data-am: install-nodist_vadDATA
 
 install-dvi: install-dvi-am
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-am
 
-install-html-am:
-
 install-info: install-info-am
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-am
 
-install-pdf-am:
-
 install-ps: install-ps-am
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -543,7 +503,6 @@ ods_community_dav.vad: $(EXTRA_DIST)
 
 clean-local:
 	-rm -rf vad
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/appsrc/ODS-Community/make_vad.sh b/appsrc/ODS-Community/make_vad.sh
index 8123297..fa44417 100755
--- a/appsrc/ODS-Community/make_vad.sh
+++ b/appsrc/ODS-Community/make_vad.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: make_vad.sh,v 1.14.2.3 2011/02/03 10:26:14 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -28,8 +28,9 @@ LANG=C
 LC_ALL=POSIX
 export LANG LC_ALL
 
+
 LOGDIR=`pwd`
-VERSION="0.0.996"
+VERSION="1.0.0"
 LOGFILE="${LOGDIR}/make_vad.log"
 STICKER="make_vad.xml"
 PACKDATE=`date +"%Y-%m-%d %H:%M"`
@@ -58,11 +59,6 @@ else
   LN="ln -fs"
   RM="rm -f"
 fi
-VOS=0
-if [ -f ../../autogen.sh ]
-then
-    VOS=1
-fi
 
 if [ "z$SERVER" = "z" ]  
 then
@@ -85,16 +81,58 @@ else
   myrm=$RM
 fi
 
-VERSION_INIT() 
+
+VOS=0
+if [ -f ../../autogen.sh ]
+then
+    VOS=1
+fi
+
+version_init() 
 {
+  if [ $VOS -eq 1 ]
+  then
+      if [ -f vad_version ]
+      then
+	  VERSION=`cat vad_version`
+      else
+        LOG "The vad_version does not exist, please verify your checkout"
+	exit 1
+      fi
+  else
   rm -f version.tmp
-  for i in `find . -name 'Entries' | grep -v "vad/"`; do
-        cat $i | grep "^[^D].*" | cut -f 3 -d "/" | sed -e "s/1\.//g" >> version.tmp
+      for i in `find . -name 'Entries' | grep -v "vad/" | grep -v "/tests/"`; do
+	  cat "$i" | grep -v "version\."| grep "^[^D].*" | cut -f 3 -d "/" | sed -e "s/1\.//g" >> version.tmp
   done
-  VERSION=`cat version.tmp | awk ' BEGIN { cnt=100 } { cnt = cnt + $1 } END { printf "1.%02.02f", cnt/100 }'`
+      LANG=POSIX
+      export LANG
+
+      BASE="0"
+#      echo $BASE
+      if [ -f version.base ] ; then
+	  BASE=`cat version.base`
+      fi
+
+      VERSION=`cat version.tmp | awk ' BEGIN { cnt=10 } { cnt = cnt + $1 } END { print cnt }'`
+
+      VERSION=`expr $BASE + $VERSION`
+      CURR_VERSION=$VERSION
+      if [ -f version.curr ] ; then
+	  CURR_VERSION=`cat version.curr`
+      fi
+      if [ $CURR_VERSION -gt $VERSION ] ; then
+	  BASE=`expr $CURR_VERSION - $VERSION + 1`
+	  echo $BASE > version.base
+	  VERSION=$CURR_VERSION
+      fi
+      echo $VERSION > version.curr
+      VERSION=`echo $VERSION | awk ' { printf "1.%02.02f", $1/100 }'`
   rm -f version.tmp
+      echo "$VERSION" > vad_version
+  fi
 }
 
+
 virtuoso_start() {
   echo "Starting $SERVER"
   ddate=`date`
@@ -225,7 +263,7 @@ sticker_init() {
   echo "  <name package=\"Community\">" >> $STICKER
   echo "    <prop name=\"Title\" value=\"ODS Community\"/>" >> $STICKER
   echo "    <prop name=\"Developer\" value=\"OpenLink Software\"/>" >> $STICKER
-  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2011 OpenLink Software\"/>" >> $STICKER
+  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2012 OpenLink Software\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.com/virtuoso\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.co.uk/virtuoso\"/>" >> $STICKER
   echo "  </name>" >> $STICKER
@@ -370,7 +408,7 @@ echo '------------------------'
 
 STOP_SERVER
 directory_clean
-VERSION_INIT
+version_init
 directory_init
 virtuoso_init
 sticker_init
@@ -378,7 +416,6 @@ vad_create
 virtuoso_shutdown
 STOP_SERVER
 chmod 644 ods_community_dav.vad
-directory_clean
 
 CHECK_LOG
 RUN egrep  '"\*\*.*FAILED:|\*\*.*ABORTED:"' "$LOGFILE"
@@ -388,5 +425,7 @@ then
 	exit 1
 fi
 
+directory_clean
+
 BANNER "COMPLETED VAD PACKAGING"
 exit 0
diff --git a/appsrc/ODS-Community/sql/exec_no_error.sql b/appsrc/ODS-Community/sql/exec_no_error.sql
index 0b0d0e3..a9359d1 100644
--- a/appsrc/ODS-Community/sql/exec_no_error.sql
+++ b/appsrc/ODS-Community/sql/exec_no_error.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: exec_no_error.sql,v 1.3.2.1 2010/09/20 10:15:04 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/sql/install.bat b/appsrc/ODS-Community/sql/install.bat
index 5e42f94..6c7d904 100644
--- a/appsrc/ODS-Community/sql/install.bat
+++ b/appsrc/ODS-Community/sql/install.bat
@@ -1,11 +1,11 @@
 @echo off
 rem
-rem  $Id: install.bat,v 1.2.2.1 2010/09/20 10:15:05 source Exp $
+rem  $Id$
 rem
 rem  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 rem  project.
 rem
-rem  Copyright (C) 1998-2006 OpenLink Software
+rem  Copyright (C) 1998-2012 OpenLink Software
 rem
 rem  This project is free software; you can redistribute it and/or modify it
 rem  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/sql/procedures.sql b/appsrc/ODS-Community/sql/procedures.sql
index 8fc1fc6..4401bad 100644
--- a/appsrc/ODS-Community/sql/procedures.sql
+++ b/appsrc/ODS-Community/sql/procedures.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: procedures.sql,v 1.11.2.1 2010/09/20 10:15:05 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/sql/run_install.sql b/appsrc/ODS-Community/sql/run_install.sql
index 227ccfe..3daac29 100644
--- a/appsrc/ODS-Community/sql/run_install.sql
+++ b/appsrc/ODS-Community/sql/run_install.sql
@@ -1,10 +1,10 @@
 --
---  $Id: run_install.sql,v 1.3.2.1 2010/09/20 10:15:05 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/sql/run_uninstall.sql b/appsrc/ODS-Community/sql/run_uninstall.sql
index d1428a8..4c24e87 100644
--- a/appsrc/ODS-Community/sql/run_uninstall.sql
+++ b/appsrc/ODS-Community/sql/run_uninstall.sql
@@ -1,10 +1,10 @@
 --
---  $Id: run_uninstall.sql,v 1.3.2.1 2010/09/20 10:15:05 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/sql/sioc_xd.sql b/appsrc/ODS-Community/sql/sioc_xd.sql
index fc1d0c1..636be62 100644
--- a/appsrc/ODS-Community/sql/sioc_xd.sql
+++ b/appsrc/ODS-Community/sql/sioc_xd.sql
@@ -1,10 +1,10 @@
 --
---  $Id: sioc_xd.sql,v 1.7.2.2 2010/09/20 10:15:05 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/sql/tables.sql b/appsrc/ODS-Community/sql/tables.sql
index 99847ca..6c7d465 100644
--- a/appsrc/ODS-Community/sql/tables.sql
+++ b/appsrc/ODS-Community/sql/tables.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: tables.sql,v 1.5.2.1 2010/09/20 10:15:05 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/sql/uninstall.bat b/appsrc/ODS-Community/sql/uninstall.bat
index a6fc51d..2873a65 100644
--- a/appsrc/ODS-Community/sql/uninstall.bat
+++ b/appsrc/ODS-Community/sql/uninstall.bat
@@ -1,11 +1,11 @@
 @echo off
 rem
-rem  $Id: uninstall.bat,v 1.2.2.1 2010/09/20 10:15:05 source Exp $
+rem  $Id$
 rem
 rem  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 rem  project.
 rem
-rem  Copyright (C) 1998-2006 OpenLink Software
+rem  Copyright (C) 1998-2012 OpenLink Software
 rem
 rem  This project is free software; you can redistribute it and/or modify it
 rem  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/sql/wa_install.sql b/appsrc/ODS-Community/sql/wa_install.sql
index 57899fa..d3ad52c 100644
--- a/appsrc/ODS-Community/sql/wa_install.sql
+++ b/appsrc/ODS-Community/sql/wa_install.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: wa_install.sql,v 1.10.2.1 2010/09/20 10:15:05 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -743,6 +743,14 @@ create method apply_custom_settings ( in template_path varchar, in logoimg_path
   where
     CI_COMMUNITY_ID = self.wa_name;
 
+--  update ODS.COMMUNITY.SYS_COMMUNITY_INFO
+--  set
+--    CI_TEMPLATE=template_path ,
+--    CI_CSS=template_path ||'/default.css'
+--  where
+--    CI_COMMUNITY_ID = self.wa_name;
+
+
   return;
 };
 
diff --git a/appsrc/ODS-Community/sql/wa_uninstall.sql b/appsrc/ODS-Community/sql/wa_uninstall.sql
index b0c8bb0..23acca9 100644
--- a/appsrc/ODS-Community/sql/wa_uninstall.sql
+++ b/appsrc/ODS-Community/sql/wa_uninstall.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: wa_uninstall.sql,v 1.3.2.1 2010/09/20 10:15:05 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/vad_version b/appsrc/ODS-Community/vad_version
new file mode 100644
index 0000000..773e9fd
--- /dev/null
+++ b/appsrc/ODS-Community/vad_version
@@ -0,0 +1 @@
+1.8.46
diff --git a/appsrc/ODS-Community/www-root/index.vsp b/appsrc/ODS-Community/www-root/index.vsp
index ee3fd4b..e23b7f6 100644
--- a/appsrc/ODS-Community/www-root/index.vsp
+++ b/appsrc/ODS-Community/www-root/index.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: index.vsp,v 1.4.2.1 2010/09/20 10:15:05 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/index.vspx b/appsrc/ODS-Community/www-root/index.vspx
index 37dbbc5..fe370bd 100644
--- a/appsrc/ODS-Community/www-root/index.vspx
+++ b/appsrc/ODS-Community/www-root/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.3.2.1 2010/09/20 10:15:05 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/public/aboutcommunity.html b/appsrc/ODS-Community/www-root/public/aboutcommunity.html
index fbb565e..4789262 100644
--- a/appsrc/ODS-Community/www-root/public/aboutcommunity.html
+++ b/appsrc/ODS-Community/www-root/public/aboutcommunity.html
@@ -1,12 +1,12 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
  -
- -  $Id: aboutcommunity.html,v 1.2.2.1 2010/09/20 10:15:05 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/public/css/default.css b/appsrc/ODS-Community/www-root/public/css/default.css
index 252d7f2..f624132 100644
--- a/appsrc/ODS-Community/www-root/public/css/default.css
+++ b/appsrc/ODS-Community/www-root/public/css/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.9.2.1 2010/09/20 10:15:05 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/public/images/lightblue/myopenlink.css b/appsrc/ODS-Community/www-root/public/images/lightblue/myopenlink.css
index 8e7c733..7fc4a4f 100644
--- a/appsrc/ODS-Community/www-root/public/images/lightblue/myopenlink.css
+++ b/appsrc/ODS-Community/www-root/public/images/lightblue/myopenlink.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: myopenlink.css,v 1.2.2.1 2010/09/20 10:15:05 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/public/js/map_control.js b/appsrc/ODS-Community/www-root/public/js/map_control.js
index 35a9924..3f2c33b 100644
--- a/appsrc/ODS-Community/www-root/public/js/map_control.js
+++ b/appsrc/ODS-Community/www-root/public/js/map_control.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: map_control.js,v 1.3.2.1 2010/09/20 10:15:06 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/templates/openlink/app_inst.vspx b/appsrc/ODS-Community/www-root/templates/openlink/app_inst.vspx
index 431ef30..1052a67 100644
--- a/appsrc/ODS-Community/www-root/templates/openlink/app_inst.vspx
+++ b/appsrc/ODS-Community/www-root/templates/openlink/app_inst.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: app_inst.vspx,v 1.10.2.1 2010/09/20 10:15:06 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/templates/openlink/default.css b/appsrc/ODS-Community/www-root/templates/openlink/default.css
index 99dac85..92b9b40 100644
--- a/appsrc/ODS-Community/www-root/templates/openlink/default.css
+++ b/appsrc/ODS-Community/www-root/templates/openlink/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.9.2.1 2010/09/20 10:15:06 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/templates/openlink/errors.vspx b/appsrc/ODS-Community/www-root/templates/openlink/errors.vspx
index 5ca605f..221f267 100644
--- a/appsrc/ODS-Community/www-root/templates/openlink/errors.vspx
+++ b/appsrc/ODS-Community/www-root/templates/openlink/errors.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: errors.vspx,v 1.4.2.1 2010/09/20 10:15:06 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/templates/openlink/index.vspx b/appsrc/ODS-Community/www-root/templates/openlink/index.vspx
index c92ed44..a60b5fd 100644
--- a/appsrc/ODS-Community/www-root/templates/openlink/index.vspx
+++ b/appsrc/ODS-Community/www-root/templates/openlink/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: index.vspx,v 1.12.2.1 2010/09/20 10:15:06 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/templates/openlink/login.vspx b/appsrc/ODS-Community/www-root/templates/openlink/login.vspx
index 6c1c2b3..4dec798 100644
--- a/appsrc/ODS-Community/www-root/templates/openlink/login.vspx
+++ b/appsrc/ODS-Community/www-root/templates/openlink/login.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: login.vspx,v 1.3.2.1 2010/09/20 10:15:06 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/templates/openlink/logout.vspx b/appsrc/ODS-Community/www-root/templates/openlink/logout.vspx
index 2b35468..a95fe60 100644
--- a/appsrc/ODS-Community/www-root/templates/openlink/logout.vspx
+++ b/appsrc/ODS-Community/www-root/templates/openlink/logout.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: logout.vspx,v 1.3.2.1 2010/09/20 10:15:06 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/templates/openlink/settings.vspx b/appsrc/ODS-Community/www-root/templates/openlink/settings.vspx
index d9a840a..b948293 100644
--- a/appsrc/ODS-Community/www-root/templates/openlink/settings.vspx
+++ b/appsrc/ODS-Community/www-root/templates/openlink/settings.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: settings.vspx,v 1.6.2.1 2010/09/20 10:15:06 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/templates/openlink/settings_app.vspx b/appsrc/ODS-Community/www-root/templates/openlink/settings_app.vspx
index 239edf1..ef28fb1 100644
--- a/appsrc/ODS-Community/www-root/templates/openlink/settings_app.vspx
+++ b/appsrc/ODS-Community/www-root/templates/openlink/settings_app.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: settings_app.vspx,v 1.9.2.1 2010/09/20 10:15:06 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/templates/openlink/wa_maps.vspx b/appsrc/ODS-Community/www-root/templates/openlink/wa_maps.vspx
index 0d0c232..4f1e02f 100644
--- a/appsrc/ODS-Community/www-root/templates/openlink/wa_maps.vspx
+++ b/appsrc/ODS-Community/www-root/templates/openlink/wa_maps.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: wa_maps.vspx,v 1.9.2.1 2010/09/20 10:15:06 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/widgets/app_inst_menu.xsl b/appsrc/ODS-Community/www-root/widgets/app_inst_menu.xsl
index def1810..60a9bb1 100644
--- a/appsrc/ODS-Community/www-root/widgets/app_inst_menu.xsl
+++ b/appsrc/ODS-Community/www-root/widgets/app_inst_menu.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: app_inst_menu.xsl,v 1.4.2.1 2010/09/20 10:15:06 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/widgets/apply_custom_settings.xsl b/appsrc/ODS-Community/www-root/widgets/apply_custom_settings.xsl
index dbd3151..72af88a 100644
--- a/appsrc/ODS-Community/www-root/widgets/apply_custom_settings.xsl
+++ b/appsrc/ODS-Community/www-root/widgets/apply_custom_settings.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: apply_custom_settings.xsl,v 1.1.2.1 2010/09/20 10:15:07 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/widgets/dashboard.xsl b/appsrc/ODS-Community/www-root/widgets/dashboard.xsl
index b03b548..52a4a18 100644
--- a/appsrc/ODS-Community/www-root/widgets/dashboard.xsl
+++ b/appsrc/ODS-Community/www-root/widgets/dashboard.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: dashboard.xsl,v 1.7.2.1 2010/09/20 10:15:07 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -539,6 +539,7 @@
          declare inst_url_local varchar;
          inst_url_local :='not specified';
          inst_url_local := wa_expand_url ((select top 1 WAM_HOME_PAGE from WA_MEMBER where WAM_INST=inst_name), self.login_pars);
+--         inst_url_local:=wa_expand_url (sprintf('/dataspace/%V/%s/%U',uname,app_dataspace,inst_name_org), self.login_pars);
 
          declare insttype_from_xsl varchar;
          insttype_from_xsl:='';
diff --git a/appsrc/ODS-Community/www-root/widgets/error.xsl b/appsrc/ODS-Community/www-root/widgets/error.xsl
index aeec633..a5af90f 100644
--- a/appsrc/ODS-Community/www-root/widgets/error.xsl
+++ b/appsrc/ODS-Community/www-root/widgets/error.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: error.xsl,v 1.4.2.1 2010/09/20 10:15:07 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/widgets/main.xsl b/appsrc/ODS-Community/www-root/widgets/main.xsl
index f2b8808..f5b9a61 100644
--- a/appsrc/ODS-Community/www-root/widgets/main.xsl
+++ b/appsrc/ODS-Community/www-root/widgets/main.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: main.xsl,v 1.21.2.2 2010/09/20 10:15:07 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/widgets/map_control.xsl b/appsrc/ODS-Community/www-root/widgets/map_control.xsl
index a9edb25..1f7e400 100644
--- a/appsrc/ODS-Community/www-root/widgets/map_control.xsl
+++ b/appsrc/ODS-Community/www-root/widgets/map_control.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: map_control.xsl,v 1.5.2.1 2010/09/20 10:15:07 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Community/www-root/widgets/template_check.xsl b/appsrc/ODS-Community/www-root/widgets/template_check.xsl
index 9223985..f84c390 100644
--- a/appsrc/ODS-Community/www-root/widgets/template_check.xsl
+++ b/appsrc/ODS-Community/www-root/widgets/template_check.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: template_check.xsl,v 1.2.2.1 2010/09/20 10:15:07 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/DET_nntp.sql b/appsrc/ODS-Discussion/DET_nntp.sql
index 0fea09b..83a3380 100644
--- a/appsrc/ODS-Discussion/DET_nntp.sql
+++ b/appsrc/ODS-Discussion/DET_nntp.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: DET_nntp.sql,v 1.1.2.1 2010/09/20 10:15:07 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/Makefile.am b/appsrc/ODS-Discussion/Makefile.am
index be5c7b5..ea90e63 100644
--- a/appsrc/ODS-Discussion/Makefile.am
+++ b/appsrc/ODS-Discussion/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -44,6 +44,7 @@ clean-local:
 	-rm -rf vad
 
 EXTRA_DIST = \
+	*.dox \
 	*.css \
 	*.js \
 	*.sql \
diff --git a/appsrc/ODS-Discussion/Makefile.in b/appsrc/ODS-Discussion/Makefile.in
index ea9e243..38bc09b 100644
--- a/appsrc/ODS-Discussion/Makefile.in
+++ b/appsrc/ODS-Discussion/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -38,9 +37,8 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -70,7 +68,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -78,23 +75,9 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(vaddir)"
+nodist_vadDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(nodist_vad_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -184,7 +167,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -268,7 +250,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -289,7 +270,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -307,6 +287,7 @@ CLEANFILES = \
 	vad.trx
 
 EXTRA_DIST = \
+	*.dox \
 	*.css \
 	*.js \
 	*.sql \
@@ -328,14 +309,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu appsrc/ODS-Discussion/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu appsrc/ODS-Discussion/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  appsrc/ODS-Discussion/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  appsrc/ODS-Discussion/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -353,7 +334,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -363,23 +343,20 @@ clean-libtool:
 install-nodist_vadDATA: $(nodist_vad_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(vaddir)" || $(MKDIR_P) "$(DESTDIR)$(vaddir)"
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	for p in $$list; do \
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vaddir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(vaddir)" || exit $$?; \
+	  f=$(am__strip_dir) \
+	  echo " $(nodist_vadDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(vaddir)/$$f'"; \
+	  $(nodist_vadDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(vaddir)/$$f"; \
 	done
 
 uninstall-nodist_vadDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(vaddir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(vaddir)" && rm -f $$files
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(vaddir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(vaddir)/$$f"; \
+	done
 tags: TAGS
 TAGS:
 
@@ -403,17 +380,13 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
@@ -445,7 +418,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -464,8 +436,6 @@ dvi-am:
 
 html: html-am
 
-html-am:
-
 info: info-am
 
 info-am:
@@ -474,28 +444,18 @@ install-data-am: install-nodist_vadDATA
 
 install-dvi: install-dvi-am
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-am
 
-install-html-am:
-
 install-info: install-info-am
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-am
 
-install-pdf-am:
-
 install-ps: install-ps-am
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -536,7 +496,6 @@ ods_discussion_dav.vad: $(EXTRA_DIST)
 
 clean-local:
 	-rm -rf vad
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/appsrc/ODS-Discussion/ODS-Discussion.dox b/appsrc/ODS-Discussion/ODS-Discussion.dox
new file mode 100644
index 0000000..0d60adf
--- /dev/null
+++ b/appsrc/ODS-Discussion/ODS-Discussion.dox
@@ -0,0 +1,5 @@
+/**
+\defgroup ods_module_discussion ODS Discussion API
+
+The ODS Community App does not provide a REST API yet.
+*/
diff --git a/appsrc/ODS-Discussion/attachment.vsp b/appsrc/ODS-Discussion/attachment.vsp
index d18476c..75ed871 100644
--- a/appsrc/ODS-Discussion/attachment.vsp
+++ b/appsrc/ODS-Discussion/attachment.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: attachment.vsp,v 1.2.2.1 2010/09/20 10:15:07 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/adv_srh.xsl b/appsrc/ODS-Discussion/comp/adv_srh.xsl
index d0fd5bd..b35e01b 100644
--- a/appsrc/ODS-Discussion/comp/adv_srh.xsl
+++ b/appsrc/ODS-Discussion/comp/adv_srh.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: adv_srh.xsl,v 1.5.2.1 2010/09/20 10:15:11 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/attach.xsl b/appsrc/ODS-Discussion/comp/attach.xsl
index bb83562..ac81bd5 100644
--- a/appsrc/ODS-Discussion/comp/attach.xsl
+++ b/appsrc/ODS-Discussion/comp/attach.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: attach.xsl,v 1.6.2.1 2010/09/20 10:15:11 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/common.xsl b/appsrc/ODS-Discussion/comp/common.xsl
index efe9f68..b4f8d14 100644
--- a/appsrc/ODS-Discussion/comp/common.xsl
+++ b/appsrc/ODS-Discussion/comp/common.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: common.xsl,v 1.2.2.1 2010/09/20 10:15:11 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/dialog.xsl b/appsrc/ODS-Discussion/comp/dialog.xsl
index 91bc3bb..2b149aa 100644
--- a/appsrc/ODS-Discussion/comp/dialog.xsl
+++ b/appsrc/ODS-Discussion/comp/dialog.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: dialog.xsl,v 1.1.2.1 2010/09/20 10:15:11 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/group_list.xsl b/appsrc/ODS-Discussion/comp/group_list.xsl
index ef96c7b..25f490b 100644
--- a/appsrc/ODS-Discussion/comp/group_list.xsl
+++ b/appsrc/ODS-Discussion/comp/group_list.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: group_list.xsl,v 1.13.2.3 2010/09/20 10:15:11 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/group_view.xsl b/appsrc/ODS-Discussion/comp/group_view.xsl
index 72d6acb..7975789 100644
--- a/appsrc/ODS-Discussion/comp/group_view.xsl
+++ b/appsrc/ODS-Discussion/comp/group_view.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: group_view.xsl,v 1.9.2.4 2010/09/20 10:15:11 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/login.xsl b/appsrc/ODS-Discussion/comp/login.xsl
index 17c631e..86ac643 100644
--- a/appsrc/ODS-Discussion/comp/login.xsl
+++ b/appsrc/ODS-Discussion/comp/login.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: login.xsl,v 1.3.2.1 2010/09/20 10:15:11 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/menubar.xsl b/appsrc/ODS-Discussion/comp/menubar.xsl
index 04726d7..674316f 100644
--- a/appsrc/ODS-Discussion/comp/menubar.xsl
+++ b/appsrc/ODS-Discussion/comp/menubar.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: menubar.xsl,v 1.10.2.2 2010/09/20 10:15:11 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/nntp_cal.xsl b/appsrc/ODS-Discussion/comp/nntp_cal.xsl
index dab3a4a..790dc42 100644
--- a/appsrc/ODS-Discussion/comp/nntp_cal.xsl
+++ b/appsrc/ODS-Discussion/comp/nntp_cal.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntp_cal.xsl,v 1.6.2.3 2010/09/20 10:15:12 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/nntpf_tags.xsl b/appsrc/ODS-Discussion/comp/nntpf_tags.xsl
index 33321ba..c884c38 100644
--- a/appsrc/ODS-Discussion/comp/nntpf_tags.xsl
+++ b/appsrc/ODS-Discussion/comp/nntpf_tags.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -  
- -  $Id: nntpf_tags.xsl,v 1.5.2.4 2010/09/20 10:15:12 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/page.xsl b/appsrc/ODS-Discussion/comp/page.xsl
index 141afe0..950c4d9 100644
--- a/appsrc/ODS-Discussion/comp/page.xsl
+++ b/appsrc/ODS-Discussion/comp/page.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: page.xsl,v 1.16.2.2 2010/09/20 10:15:12 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/post.xsl b/appsrc/ODS-Discussion/comp/post.xsl
index 59064ee..3dcd705 100644
--- a/appsrc/ODS-Discussion/comp/post.xsl
+++ b/appsrc/ODS-Discussion/comp/post.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: post.xsl,v 1.14.2.2 2010/09/20 10:15:12 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/register.xsl b/appsrc/ODS-Discussion/comp/register.xsl
index 1b35200..2f672f2 100644
--- a/appsrc/ODS-Discussion/comp/register.xsl
+++ b/appsrc/ODS-Discussion/comp/register.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: register.xsl,v 1.4.2.1 2010/09/20 10:15:12 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/rss_del.xsl b/appsrc/ODS-Discussion/comp/rss_del.xsl
index dccc2f7..26c3bfe 100644
--- a/appsrc/ODS-Discussion/comp/rss_del.xsl
+++ b/appsrc/ODS-Discussion/comp/rss_del.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss_del.xsl,v 1.1.2.1 2010/09/20 10:15:12 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/rss_group.xsl b/appsrc/ODS-Discussion/comp/rss_group.xsl
index d59d3c0..7946ecb 100644
--- a/appsrc/ODS-Discussion/comp/rss_group.xsl
+++ b/appsrc/ODS-Discussion/comp/rss_group.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss_group.xsl,v 1.2.2.1 2010/09/20 10:15:12 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/rss_list.xsl b/appsrc/ODS-Discussion/comp/rss_list.xsl
index 1644e23..48a18b4 100644
--- a/appsrc/ODS-Discussion/comp/rss_list.xsl
+++ b/appsrc/ODS-Discussion/comp/rss_list.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss_list.xsl,v 1.2.2.1 2010/09/20 10:15:12 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/search.xsl b/appsrc/ODS-Discussion/comp/search.xsl
index c14508c..6807a5d 100644
--- a/appsrc/ODS-Discussion/comp/search.xsl
+++ b/appsrc/ODS-Discussion/comp/search.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: search.xsl,v 1.6.2.1 2010/09/20 10:15:12 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/search_res.xsl b/appsrc/ODS-Discussion/comp/search_res.xsl
index 3db1460..f118b54 100644
--- a/appsrc/ODS-Discussion/comp/search_res.xsl
+++ b/appsrc/ODS-Discussion/comp/search_res.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: search_res.xsl,v 1.9.2.1 2010/09/20 10:15:13 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/settings.xsl b/appsrc/ODS-Discussion/comp/settings.xsl
index 2f52f5a..7ac061e 100644
--- a/appsrc/ODS-Discussion/comp/settings.xsl
+++ b/appsrc/ODS-Discussion/comp/settings.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: settings.xsl,v 1.2.2.1 2010/09/20 10:15:13 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/thread_view.xsl b/appsrc/ODS-Discussion/comp/thread_view.xsl
index 917dcfc..0ccd3a5 100644
--- a/appsrc/ODS-Discussion/comp/thread_view.xsl
+++ b/appsrc/ODS-Discussion/comp/thread_view.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: thread_view.xsl,v 1.4.2.1 2010/09/20 10:15:13 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/comp/title.xsl b/appsrc/ODS-Discussion/comp/title.xsl
index e4f8169..6bccaed 100644
--- a/appsrc/ODS-Discussion/comp/title.xsl
+++ b/appsrc/ODS-Discussion/comp/title.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: title.xsl,v 1.3.2.1 2010/09/20 10:15:13 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/drop.sql b/appsrc/ODS-Discussion/drop.sql
index f834746..7bd5c81 100644
--- a/appsrc/ODS-Discussion/drop.sql
+++ b/appsrc/ODS-Discussion/drop.sql
@@ -1,10 +1,10 @@
 --
---  $Id: drop.sql,v 1.3.2.1 2010/09/20 10:15:07 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/login.vspx b/appsrc/ODS-Discussion/login.vspx
index 7ecf541..0501026 100644
--- a/appsrc/ODS-Discussion/login.vspx
+++ b/appsrc/ODS-Discussion/login.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: login.vspx,v 1.3.2.1 2010/09/20 10:15:07 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/mail_notify.sql b/appsrc/ODS-Discussion/mail_notify.sql
index 2bf9031..868ae32 100644
--- a/appsrc/ODS-Discussion/mail_notify.sql
+++ b/appsrc/ODS-Discussion/mail_notify.sql
@@ -1,10 +1,10 @@
 --
---  $Id: mail_notify.sql,v 1.1.2.1 2010/09/20 10:15:07 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/main.xsl b/appsrc/ODS-Discussion/main.xsl
index dd0eed6..aceaf01 100644
--- a/appsrc/ODS-Discussion/main.xsl
+++ b/appsrc/ODS-Discussion/main.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: main.xsl,v 1.3.2.2 2010/09/20 10:15:08 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/make_vad.sh b/appsrc/ODS-Discussion/make_vad.sh
index 874b6e2..307d69e 100755
--- a/appsrc/ODS-Discussion/make_vad.sh
+++ b/appsrc/ODS-Discussion/make_vad.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: make_vad.sh,v 1.23.2.5 2011/02/03 10:26:14 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -57,11 +57,6 @@ TEMPFILE=/tmp/isql.$$
 LN="ln -fs"
 RM="rm -f"
 fi
-VOS=0
-if [ -f ../../autogen.sh ]
-then
-    VOS=1
-fi
 
 if [ "z$SERVER" = "z" ]  
 then
@@ -83,8 +78,13 @@ else
   myrm=rm
 fi
 
+VOS=0
+if [ -f ../../autogen.sh ]
+then
+    VOS=1
+fi
 
-VERSION_INIT() 
+version_init() 
 {
     if [ $VOS -eq 1 ]
     then
@@ -239,7 +239,7 @@ sticker_init() {
   echo "  <name package=\"Discussion\">" >> $STICKER
   echo "    <prop name=\"Title\" value=\"ODS Discussion\"/>" >> $STICKER
   echo "    <prop name=\"Developer\" value=\"OpenLink Software\"/>" >> $STICKER
-  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2011 OpenLink Software\"/>" >> $STICKER
+  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2012 OpenLink Software\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.com/virtuoso\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.co.uk/virtuoso\"/>" >> $STICKER
   echo "  </name>" >> $STICKER
@@ -407,15 +407,13 @@ vad_create() {
 
 STOP_SERVER
 directory_clean
-VERSION_INIT
+version_init
 directory_init
 virtuoso_init
 sticker_init
 vad_create
 virtuoso_shutdown
 chmod 644 ods_discussion_dav.vad
-directory_clean
-
 
 CHECK_LOG
 RUN egrep  '"\*\*.*FAILED:|\*\*.*ABORTED:"' "$LOGFILE"
@@ -425,5 +423,7 @@ then
 	exit 1
 fi
 
+directory_clean
+
 BANNER "COMPLETED VAD PACKAGING"
 exit 0
diff --git a/appsrc/ODS-Discussion/nntpf.css b/appsrc/ODS-Discussion/nntpf.css
index bd67a4f..848d799 100644
--- a/appsrc/ODS-Discussion/nntpf.css
+++ b/appsrc/ODS-Discussion/nntpf.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: nntpf.css,v 1.9.2.2 2010/09/20 10:15:08 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_addtorss.vspx b/appsrc/ODS-Discussion/nntpf_addtorss.vspx
index f520a4c..65453c1 100644
--- a/appsrc/ODS-Discussion/nntpf_addtorss.vspx
+++ b/appsrc/ODS-Discussion/nntpf_addtorss.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_addtorss.vspx,v 1.5.2.2 2010/09/20 10:15:08 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_adv_search.vspx b/appsrc/ODS-Discussion/nntpf_adv_search.vspx
index b7f7cc0..49f71aa 100644
--- a/appsrc/ODS-Discussion/nntpf_adv_search.vspx
+++ b/appsrc/ODS-Discussion/nntpf_adv_search.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_adv_search.vspx,v 1.3.2.2 2010/09/20 10:15:08 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_api.sql b/appsrc/ODS-Discussion/nntpf_api.sql
index 94e0550..2d8e6d6 100644
--- a/appsrc/ODS-Discussion/nntpf_api.sql
+++ b/appsrc/ODS-Discussion/nntpf_api.sql
@@ -1,10 +1,10 @@
 --
---  $Id: nntpf_api.sql,v 1.4.2.3 2010/09/20 10:15:08 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_browser.vspx b/appsrc/ODS-Discussion/nntpf_browser.vspx
index 7f9940b..d48d229 100644
--- a/appsrc/ODS-Discussion/nntpf_browser.vspx
+++ b/appsrc/ODS-Discussion/nntpf_browser.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_browser.vspx,v 1.2.2.1 2010/09/20 10:15:08 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_ddl.sql b/appsrc/ODS-Discussion/nntpf_ddl.sql
index daeaf47..8bb9739 100644
--- a/appsrc/ODS-Discussion/nntpf_ddl.sql
+++ b/appsrc/ODS-Discussion/nntpf_ddl.sql
@@ -1,10 +1,10 @@
 --
---  $Id: nntpf_ddl.sql,v 1.3.2.1 2010/09/20 10:15:08 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_disp_article.vspx b/appsrc/ODS-Discussion/nntpf_disp_article.vspx
index 5ee5e56..8653f43 100644
--- a/appsrc/ODS-Discussion/nntpf_disp_article.vspx
+++ b/appsrc/ODS-Discussion/nntpf_disp_article.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_disp_article.vspx,v 1.7.2.1 2010/09/20 10:15:08 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_edit_rss.vspx b/appsrc/ODS-Discussion/nntpf_edit_rss.vspx
index 9c8cc8a..cb90173 100644
--- a/appsrc/ODS-Discussion/nntpf_edit_rss.vspx
+++ b/appsrc/ODS-Discussion/nntpf_edit_rss.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_edit_rss.vspx,v 1.5.2.1 2010/09/20 10:15:08 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_error.vsp b/appsrc/ODS-Discussion/nntpf_error.vsp
index eb7e694..e880ac2 100644
--- a/appsrc/ODS-Discussion/nntpf_error.vsp
+++ b/appsrc/ODS-Discussion/nntpf_error.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: nntpf_error.vsp,v 1.3.2.1 2010/09/20 10:15:08 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_error.vspx b/appsrc/ODS-Discussion/nntpf_error.vspx
index 7256f6e..b622373 100644
--- a/appsrc/ODS-Discussion/nntpf_error.vspx
+++ b/appsrc/ODS-Discussion/nntpf_error.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: nntpf_error.vspx,v 1.2.2.1 2010/09/20 10:15:08 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -25,12 +25,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_error.vspx,v 1.2.2.1 2010/09/20 10:15:08 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_logout.vspx b/appsrc/ODS-Discussion/nntpf_logout.vspx
index c34505e..52c793f 100644
--- a/appsrc/ODS-Discussion/nntpf_logout.vspx
+++ b/appsrc/ODS-Discussion/nntpf_logout.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_logout.vspx,v 1.3.2.1 2010/09/20 10:15:09 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_main.vspx b/appsrc/ODS-Discussion/nntpf_main.vspx
index f1fc9b0..d1d79a4 100644
--- a/appsrc/ODS-Discussion/nntpf_main.vspx
+++ b/appsrc/ODS-Discussion/nntpf_main.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_main.vspx,v 1.9.2.1 2010/09/20 10:15:09 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_nthread_view.vspx b/appsrc/ODS-Discussion/nntpf_nthread_view.vspx
index 2ef3904..16c5430 100644
--- a/appsrc/ODS-Discussion/nntpf_nthread_view.vspx
+++ b/appsrc/ODS-Discussion/nntpf_nthread_view.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_nthread_view.vspx,v 1.7.2.1 2010/09/20 10:15:09 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_odsnewsgroups_admin.vspx b/appsrc/ODS-Discussion/nntpf_odsnewsgroups_admin.vspx
index df80eee..31b4970 100644
--- a/appsrc/ODS-Discussion/nntpf_odsnewsgroups_admin.vspx
+++ b/appsrc/ODS-Discussion/nntpf_odsnewsgroups_admin.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_odsnewsgroups_admin.vspx,v 1.8.2.2 2010/09/20 10:15:09 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_post.vspx b/appsrc/ODS-Discussion/nntpf_post.vspx
index a5c321b..458467d 100644
--- a/appsrc/ODS-Discussion/nntpf_post.vspx
+++ b/appsrc/ODS-Discussion/nntpf_post.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_post.vspx,v 1.8.2.1 2010/09/20 10:15:09 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_preferences.vspx b/appsrc/ODS-Discussion/nntpf_preferences.vspx
index ac608df..82f6586 100644
--- a/appsrc/ODS-Discussion/nntpf_preferences.vspx
+++ b/appsrc/ODS-Discussion/nntpf_preferences.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_preferences.vspx,v 1.4.2.1 2010/09/20 10:15:09 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_rss_del.vspx b/appsrc/ODS-Discussion/nntpf_rss_del.vspx
index a64d186..90e47bc 100644
--- a/appsrc/ODS-Discussion/nntpf_rss_del.vspx
+++ b/appsrc/ODS-Discussion/nntpf_rss_del.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_rss_del.vspx,v 1.3.2.2 2010/09/20 10:15:09 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_rss_group.vspx b/appsrc/ODS-Discussion/nntpf_rss_group.vspx
index 0dd8fc3..6e705dd 100644
--- a/appsrc/ODS-Discussion/nntpf_rss_group.vspx
+++ b/appsrc/ODS-Discussion/nntpf_rss_group.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_rss_group.vspx,v 1.3.2.2 2010/09/20 10:15:09 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_rss_list.vspx b/appsrc/ODS-Discussion/nntpf_rss_list.vspx
index 57697df..6a2555f 100644
--- a/appsrc/ODS-Discussion/nntpf_rss_list.vspx
+++ b/appsrc/ODS-Discussion/nntpf_rss_list.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_rss_list.vspx,v 1.3.2.2 2010/09/20 10:15:09 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_subs.vspx b/appsrc/ODS-Discussion/nntpf_subs.vspx
index 10536e4..667ffac 100644
--- a/appsrc/ODS-Discussion/nntpf_subs.vspx
+++ b/appsrc/ODS-Discussion/nntpf_subs.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_subs.vspx,v 1.7.2.1 2010/09/20 10:15:09 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_subs_edit.vspx b/appsrc/ODS-Discussion/nntpf_subs_edit.vspx
index 9b8a16f..4f70811 100644
--- a/appsrc/ODS-Discussion/nntpf_subs_edit.vspx
+++ b/appsrc/ODS-Discussion/nntpf_subs_edit.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_subs_edit.vspx,v 1.5.2.2 2010/09/20 10:15:09 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_subs_group.vspx b/appsrc/ODS-Discussion/nntpf_subs_group.vspx
index 8e4d70d..7eade60 100644
--- a/appsrc/ODS-Discussion/nntpf_subs_group.vspx
+++ b/appsrc/ODS-Discussion/nntpf_subs_group.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_subs_group.vspx,v 1.3.2.2 2010/09/20 10:15:09 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_subs_remove.vspx b/appsrc/ODS-Discussion/nntpf_subs_remove.vspx
index 9836c10..084188e 100644
--- a/appsrc/ODS-Discussion/nntpf_subs_remove.vspx
+++ b/appsrc/ODS-Discussion/nntpf_subs_remove.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_subs_remove.vspx,v 1.4.2.1 2010/09/20 10:15:10 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_tags.sql b/appsrc/ODS-Discussion/nntpf_tags.sql
index 10251aa..2131ce5 100644
--- a/appsrc/ODS-Discussion/nntpf_tags.sql
+++ b/appsrc/ODS-Discussion/nntpf_tags.sql
@@ -1,10 +1,10 @@
 --
---  $Id: nntpf_tags.sql,v 1.2.2.2 2010/09/20 10:15:10 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_thread_view.vspx b/appsrc/ODS-Discussion/nntpf_thread_view.vspx
index 9c1c801..83dabae 100644
--- a/appsrc/ODS-Discussion/nntpf_thread_view.vspx
+++ b/appsrc/ODS-Discussion/nntpf_thread_view.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_thread_view.vspx,v 1.4.2.2 2010/09/20 10:15:10 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_warning.vsp b/appsrc/ODS-Discussion/nntpf_warning.vsp
index 935ad7e..815bab9 100644
--- a/appsrc/ODS-Discussion/nntpf_warning.vsp
+++ b/appsrc/ODS-Discussion/nntpf_warning.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: nntpf_warning.vsp,v 1.2.2.2 2010/09/20 10:15:10 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/nntpf_yacutia.vspx b/appsrc/ODS-Discussion/nntpf_yacutia.vspx
index fe9f930..ae19d09 100644
--- a/appsrc/ODS-Discussion/nntpf_yacutia.vspx
+++ b/appsrc/ODS-Discussion/nntpf_yacutia.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: nntpf_yacutia.vspx,v 1.4.2.2 2010/09/20 10:15:10 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/openid.js b/appsrc/ODS-Discussion/openid.js
index 0115420..96453b8 100644
--- a/appsrc/ODS-Discussion/openid.js
+++ b/appsrc/ODS-Discussion/openid.js
@@ -3,7 +3,7 @@
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/openid_helper.vsp b/appsrc/ODS-Discussion/openid_helper.vsp
index b10e92c..d94845e 100644
--- a/appsrc/ODS-Discussion/openid_helper.vsp
+++ b/appsrc/ODS-Discussion/openid_helper.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --  
---  $Id: openid_helper.vsp,v 1.2.2.1 2010/09/20 10:15:10 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/register.vspx b/appsrc/ODS-Discussion/register.vspx
index b1e4d01..254b48a 100644
--- a/appsrc/ODS-Discussion/register.vspx
+++ b/appsrc/ODS-Discussion/register.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: register.vspx,v 1.3.2.1 2010/09/20 10:15:10 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/rss.vsp b/appsrc/ODS-Discussion/rss.vsp
index 24e1078..12d14d2 100644
--- a/appsrc/ODS-Discussion/rss.vsp
+++ b/appsrc/ODS-Discussion/rss.vsp
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="<?= current_charset () ?>"?>
 <?vsp
 --
---  $Id: rss.vsp,v 1.3.2.1 2010/09/20 10:15:10 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/rsscomments.vsp b/appsrc/ODS-Discussion/rsscomments.vsp
index 2a23fb9..54e2a69 100644
--- a/appsrc/ODS-Discussion/rsscomments.vsp
+++ b/appsrc/ODS-Discussion/rsscomments.vsp
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="<?= current_charset () ?>"?>
 <?vsp
 --
---  $Id: rsscomments.vsp,v 1.3.2.1 2010/09/20 10:15:10 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/setup.sql b/appsrc/ODS-Discussion/setup.sql
index 6df545e..c2e06d6 100644
--- a/appsrc/ODS-Discussion/setup.sql
+++ b/appsrc/ODS-Discussion/setup.sql
@@ -1,10 +1,10 @@
 --
---  $Id: setup.sql,v 1.27.2.1 2010/09/20 10:15:10 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/sioc_nntp.sql b/appsrc/ODS-Discussion/sioc_nntp.sql
index f32ea32..c0645f8 100644
--- a/appsrc/ODS-Discussion/sioc_nntp.sql
+++ b/appsrc/ODS-Discussion/sioc_nntp.sql
@@ -1,10 +1,10 @@
 --
---  $Id: sioc_nntp.sql,v 1.14.2.3 2010/09/20 10:15:10 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/vad_version b/appsrc/ODS-Discussion/vad_version
index a0903c6..07a8451 100644
--- a/appsrc/ODS-Discussion/vad_version
+++ b/appsrc/ODS-Discussion/vad_version
@@ -1 +1 @@
-1.10.70
+1.10.72
diff --git a/appsrc/ODS-Discussion/virtuoso_app_links.xhtml b/appsrc/ODS-Discussion/virtuoso_app_links.xhtml
index 8cfeafd..61cd95e 100644
--- a/appsrc/ODS-Discussion/virtuoso_app_links.xhtml
+++ b/appsrc/ODS-Discussion/virtuoso_app_links.xhtml
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: virtuoso_app_links.xhtml,v 1.1.2.1 2010/09/20 10:15:11 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/wa_install.sql b/appsrc/ODS-Discussion/wa_install.sql
index 35911d9..ea7b881 100644
--- a/appsrc/ODS-Discussion/wa_install.sql
+++ b/appsrc/ODS-Discussion/wa_install.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: wa_install.sql,v 1.4.2.2 2010/09/20 10:15:11 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Discussion/webdav.css b/appsrc/ODS-Discussion/webdav.css
index a5fd354..2386ec9 100644
--- a/appsrc/ODS-Discussion/webdav.css
+++ b/appsrc/ODS-Discussion/webdav.css
@@ -1,5 +1,5 @@
 /*
- *  $Id: webdav.css,v 1.2.2.1 2010/09/20 10:15:11 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Ajax Toolkit (OAT) project.
  *
diff --git a/appsrc/ODS-FeedManager/Makefile.am b/appsrc/ODS-FeedManager/Makefile.am
index 5c6792e..a16041c 100644
--- a/appsrc/ODS-FeedManager/Makefile.am
+++ b/appsrc/ODS-FeedManager/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -44,8 +44,10 @@ clean-local:
 	-rm -rf vad
 
 EXTRA_DIST = \
+	*.dox \
 	make_vad.sh \
 	sql/*.sql \
+	vad_version \
 	www/*.vsp \
 	www/*.vspx \
 	www/css/*.css \
diff --git a/appsrc/ODS-FeedManager/Makefile.in b/appsrc/ODS-FeedManager/Makefile.in
index 51abc9f..b62e110 100644
--- a/appsrc/ODS-FeedManager/Makefile.in
+++ b/appsrc/ODS-FeedManager/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -38,9 +37,8 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -70,7 +68,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -78,23 +75,9 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(vaddir)"
+nodist_vadDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(nodist_vad_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -184,7 +167,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -268,7 +250,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -289,7 +270,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -307,8 +287,10 @@ CLEANFILES = \
 	virtuoso.trx
 
 EXTRA_DIST = \
+	*.dox \
 	make_vad.sh \
 	sql/*.sql \
+	vad_version \
 	www/*.vsp \
 	www/*.vspx \
 	www/css/*.css \
@@ -329,14 +311,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu appsrc/ODS-FeedManager/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu appsrc/ODS-FeedManager/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  appsrc/ODS-FeedManager/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  appsrc/ODS-FeedManager/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -354,7 +336,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -364,23 +345,20 @@ clean-libtool:
 install-nodist_vadDATA: $(nodist_vad_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(vaddir)" || $(MKDIR_P) "$(DESTDIR)$(vaddir)"
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	for p in $$list; do \
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vaddir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(vaddir)" || exit $$?; \
+	  f=$(am__strip_dir) \
+	  echo " $(nodist_vadDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(vaddir)/$$f'"; \
+	  $(nodist_vadDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(vaddir)/$$f"; \
 	done
 
 uninstall-nodist_vadDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(vaddir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(vaddir)" && rm -f $$files
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(vaddir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(vaddir)/$$f"; \
+	done
 tags: TAGS
 TAGS:
 
@@ -404,17 +382,13 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
@@ -446,7 +420,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -465,8 +438,6 @@ dvi-am:
 
 html: html-am
 
-html-am:
-
 info: info-am
 
 info-am:
@@ -475,28 +446,18 @@ install-data-am: install-nodist_vadDATA
 
 install-dvi: install-dvi-am
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-am
 
-install-html-am:
-
 install-info: install-info-am
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-am
 
-install-pdf-am:
-
 install-ps: install-ps-am
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -537,7 +498,6 @@ ods_feedmanager_dav.vad: $(EXTRA_DIST)
 
 clean-local:
 	-rm -rf vad
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/appsrc/ODS-FeedManager/ODS-FeedManager.dox b/appsrc/ODS-FeedManager/ODS-FeedManager.dox
new file mode 100644
index 0000000..b6be868
--- /dev/null
+++ b/appsrc/ODS-FeedManager/ODS-FeedManager.dox
@@ -0,0 +1,3 @@
+/**
+\defgroup ods_module_feeds ODS Feed Manager API
+*/
diff --git a/appsrc/ODS-FeedManager/make_vad.sh b/appsrc/ODS-FeedManager/make_vad.sh
index f49cda7..a4ab1e4 100755
--- a/appsrc/ODS-FeedManager/make_vad.sh
+++ b/appsrc/ODS-FeedManager/make_vad.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: make_vad.sh,v 1.44.2.30 2011/07/04 10:04:01 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -30,7 +30,7 @@ export LANG LC_ALL
 
 MODE=$1
 LOGDIR=`pwd`
-VERSION="1.8.181"
+VERSION="1.0.0"
 LOGFILE="${LOGDIR}/vad_make.log"
 STICKER_DAV="vad_dav.xml"
 STICKER_FS="vad_filesystem.xml"
@@ -63,11 +63,6 @@ else
   LN="ln -fs"
   RM="rm -f"
 fi
-VOS=0
-if [ -f ../../autogen.sh ]
-then
-    VOS=1
-fi
 
 if [ "z$SERVER" = "z" ]  
 then
@@ -90,6 +85,57 @@ else
   myrm=$RM
 fi
 
+
+VOS=0
+if [ -f ../../autogen.sh ]
+then
+    VOS=1
+fi
+
+version_init()
+{
+  if [ $VOS -eq 1 ]
+  then
+      if [ -f vad_version ]
+      then
+	  VERSION=`cat vad_version`
+      else
+        LOG "The vad_version does not exist, please verify your checkout"
+	exit 1
+      fi
+  else
+      rm -f version.tmp
+      for i in `find . -name 'Entries' | grep -v "vad/" | grep -v "/tests/"`; do
+	  cat "$i" | grep -v "version\."| grep "^[^D].*" | cut -f 3 -d "/" | sed -e "s/1\.//g" >> version.tmp
+      done
+      LANG=POSIX
+      export LANG
+
+      BASE="0"
+#      echo $BASE
+      if [ -f version.base ] ; then
+	  BASE=`cat version.base`
+      fi
+
+      VERSION=`cat version.tmp | awk ' BEGIN { cnt=10 } { cnt = cnt + $1 } END { print cnt }'`
+
+      VERSION=`expr $BASE + $VERSION`
+      CURR_VERSION=$VERSION
+      if [ -f version.curr ] ; then
+	  CURR_VERSION=`cat version.curr`
+      fi
+      if [ $CURR_VERSION -gt $VERSION ] ; then
+	  BASE=`expr $CURR_VERSION - $VERSION + 1`
+	  echo $BASE > version.base
+	  VERSION=$CURR_VERSION
+      fi
+      echo $VERSION > version.curr
+      VERSION=`echo $VERSION | awk ' { printf "1.%02.02f", $1/100 }'`
+      rm -f version.tmp
+      echo "$VERSION" > vad_version
+  fi
+}
+
 virtuoso_start() {
   echo "Starting $SERVER"
   echo $BUILD
@@ -225,7 +271,7 @@ sticker_init() {
   echo "  <name package=\"Feed Manager\">" >> $STICKER
   echo "    <prop name=\"Title\" value=\"ODS Feed Manager\"/>" >> $STICKER
   echo "    <prop name=\"Developer\" value=\"OpenLink Software\"/>" >> $STICKER
-  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2011 OpenLink Software\"/>" >> $STICKER
+  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2012 OpenLink Software\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.com/virtuoso\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.co.uk/virtuoso\"/>" >> $STICKER
   echo "  </name>" >> $STICKER
@@ -237,8 +283,8 @@ sticker_init() {
   echo "<dependencies>" >> $STICKER
   echo "  <require>" >> $STICKER
   echo "    <name package=\"Framework\"/>" >> $STICKER
-  echo "    <versions_later package=\"1.82.42\">" >> $STICKER
-  echo "      <prop name=\"Date\" value=\"2011-06-15 12:00\" />" >> $STICKER
+  echo "    <versions_later package=\"1.86.16\">" >> $STICKER
+  echo "      <prop name=\"Date\" value=\"2012-04-18 12:00\" />" >> $STICKER
   echo "      <prop name=\"Comment\" value=\"An incompatible version of the ODS Framework\" />" >> $STICKER
   echo "    </versions_later>" >> $STICKER
   echo "  </require>" >> $STICKER
@@ -397,6 +443,7 @@ echo '----------------------'
 
 STOP_SERVER
 directory_clean
+version_init
 directory_init
 virtuoso_init
 if [ "$MODE" = "" ] || [ "$MODE" = "1" ]
@@ -413,7 +460,6 @@ virtuoso_shutdown
 STOP_SERVER
 chmod 644 $VAD_DAV
 chmod 644 $VAD_FS
-directory_clean
 
 CHECK_LOG
 RUN egrep  '"\*\*.*FAILED:|\*\*.*ABORTED:"' "$LOGFILE"
@@ -423,5 +469,7 @@ then
 	exit 1
 fi
 
+directory_clean
+
 BANNER "COMPLETED VAD PACKAGING"
 exit 0
diff --git a/appsrc/ODS-FeedManager/sql/DET_News3.sql b/appsrc/ODS-FeedManager/sql/DET_News3.sql
index a00f403..4913679 100644
--- a/appsrc/ODS-FeedManager/sql/DET_News3.sql
+++ b/appsrc/ODS-FeedManager/sql/DET_News3.sql
@@ -1,10 +1,10 @@
 --
---  $Id: DET_News3.sql,v 1.4.2.1 2010/09/20 10:15:13 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/sql/nws-a-api.sql b/appsrc/ODS-FeedManager/sql/nws-a-api.sql
index 76b0ef8..8556e89 100644
--- a/appsrc/ODS-FeedManager/sql/nws-a-api.sql
+++ b/appsrc/ODS-FeedManager/sql/nws-a-api.sql
@@ -6,12 +6,12 @@
 
 
 --
---  $Id: nws-a-api.sql,v 1.7.2.3 2010/09/20 10:15:13 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2008 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/sql/nws-a-code.sql b/appsrc/ODS-FeedManager/sql/nws-a-code.sql
index d0563ff..33f93a6 100644
--- a/appsrc/ODS-FeedManager/sql/nws-a-code.sql
+++ b/appsrc/ODS-FeedManager/sql/nws-a-code.sql
@@ -1,10 +1,10 @@
 --
---  $Id: nws-a-code.sql,v 1.44.2.27 2011/03/23 12:19:24 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -2307,7 +2307,7 @@ create procedure ENEWS.WA.channel_delete(
 -------------------------------------------------------------------------------
 --
 create procedure ENEWS.WA.channel_feeds(
-  inout feed_id integer)
+  in feed_id integer)
 {
   return (select count(*) from ENEWS.WA.FEED_ITEM where EFI_FEED_ID = feed_id and coalesce(EFI_DELETE_FLAG, 0) = 0);
 }
@@ -6152,7 +6152,10 @@ create procedure ENEWS.WA.data (
 create procedure ENEWS.WA.test_clear (
   in S any)
 {
-  return substring(S, 1, coalesce(strstr(S, '<>'), length(S)));
+  S := substring (S, 1, coalesce (strstr (S, '<>'), length (S)));
+  S := substring (S, 1, coalesce (strstr (S, '\nin'), length (S)));
+
+  return S;
 }
 ;
 
@@ -6308,7 +6311,7 @@ create procedure ENEWS.WA.validate2 (
     if (isnull(regexp_match('^[^\\\/\?\*\"\'\>\<\:\|]*\$', propertyValue)))
       goto _error;
   } else if ((propertyType = 'uri') or (propertyType = 'anyuri')) {
-    if (isnull(regexp_match('^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_=:]*)?\$', propertyValue)))
+    if (isnull (regexp_match('^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_=:~]*)?\$', propertyValue)))
       goto _error;
   } else if (propertyType = 'email') {
     if (isnull(regexp_match('^([a-zA-Z0-9_\-])+(\.([a-zA-Z0-9_\-])+)*@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([a-zA-Z0-9])+(([\-])+([a-zA-Z0-9])+)*\.)+([a-zA-Z])+(([\-])+([a-zA-Z0-9])+)*))\$', propertyValue)))
@@ -7466,63 +7469,6 @@ registry_set ('news_table_version', '1');
 
 -------------------------------------------------------------------------------
 --
-create procedure ENEWS.WA.obj2json (
-  in o any,
-  in d integer := 2)
-{
-  declare N, M integer;
-  declare R, T any;
-  declare retValue any;
-
-	if (d = 0)
-	  return '[maximum depth achieved]';
-
-  T := vector ('\b', '\\b', '\t', '\\t', '\n', '\\n', '\f', '\\f',	'\r', '\\r', '"', '\\"', '\\', '\\\\');
-	retValue := '';
-	if (isnumeric (o))
-	{
-		retValue := cast (o as varchar);
-	}
-	else if (isstring (o))
-	{
-		for (N := 0; N < length(o); N := N + 1)
-		{
-			R := chr (o[N]);
-		  for (M := 0; M < length(T); M := M + 2)
-		  {
-				if (R = T[M])
-				  R := T[M+1];
-			}
-			retValue := retValue || R;
-		}
-		retValue := '"' || retValue || '"';
-	}
-	else if (isarray (o))
-	{
-		retValue := '[';
-		for (N := 0; N < length(o); N := N + 1)
-		{
-		  retValue := retValue || ENEWS.WA.obj2json (o[N], d-1);
-		  if (N <> length(o)-1)
-			  retValue := retValue || ',\n';
-		}
-		retValue := retValue || ']';
-	}
-	return retValue;
-}
-;
-
--------------------------------------------------------------------------------
---
-create procedure ENEWS.WA.json2obj (
-  in o any)
-{
-  return json_parse (o);
-}
-;
-
--------------------------------------------------------------------------------
---
 create procedure ENEWS.WA.pshCheck ()
 {
   return case when isnull (DB.DBA.VAD_CHECK_VERSION ('pubsubhub')) or ((select top 1 coalesce (WS_FEEDS_HUB_CALLBACK, 1) from DB.DBA.WA_SETTINGS) = 0) then 0 else 1 end;
diff --git a/appsrc/ODS-FeedManager/sql/nws-a-ods.sql b/appsrc/ODS-FeedManager/sql/nws-a-ods.sql
index 2bcc5e7..4dd6191 100644
--- a/appsrc/ODS-FeedManager/sql/nws-a-ods.sql
+++ b/appsrc/ODS-FeedManager/sql/nws-a-ods.sql
@@ -1,10 +1,10 @@
 --
---  $Id: nws-a-ods.sql,v 1.2.2.1 2010/09/20 10:15:13 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/sql/nws-a-table.sql b/appsrc/ODS-FeedManager/sql/nws-a-table.sql
index 6affc20..de52dd7 100644
--- a/appsrc/ODS-FeedManager/sql/nws-a-table.sql
+++ b/appsrc/ODS-FeedManager/sql/nws-a-table.sql
@@ -1,10 +1,10 @@
 --
---  $Id: nws-a-table.sql,v 1.16.2.9 2011/05/20 16:24:10 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/sql/nws-a-wa.sql b/appsrc/ODS-FeedManager/sql/nws-a-wa.sql
index 69654ce..d955405 100644
--- a/appsrc/ODS-FeedManager/sql/nws-a-wa.sql
+++ b/appsrc/ODS-FeedManager/sql/nws-a-wa.sql
@@ -1,10 +1,10 @@
 --
---  $Id: nws-a-wa.sql,v 1.7.2.4 2010/09/22 13:57:03 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/sql/nws-d.sql b/appsrc/ODS-FeedManager/sql/nws-d.sql
index c9f156c..09d53c7 100644
--- a/appsrc/ODS-FeedManager/sql/nws-d.sql
+++ b/appsrc/ODS-FeedManager/sql/nws-d.sql
@@ -1,10 +1,10 @@
 --
---  $Id: nws-d.sql,v 1.13.2.5 2011/05/18 21:18:29 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/sql/sioc_feeds.sql b/appsrc/ODS-FeedManager/sql/sioc_feeds.sql
index 3b23b6a..201080f 100644
--- a/appsrc/ODS-FeedManager/sql/sioc_feeds.sql
+++ b/appsrc/ODS-FeedManager/sql/sioc_feeds.sql
@@ -1,10 +1,10 @@
 --
---  $Id: sioc_feeds.sql,v 1.20.2.10 2011/05/18 21:18:29 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -232,7 +232,7 @@ create procedure fill_ods_subscriptions_sioc (in graph_iri varchar, in site_iri
 --
 create procedure fill_ods_feeds_sioc (in graph_iri varchar, in site_iri varchar, in _wai_name varchar := null)
 {
-  declare iri, m_iri, f_iri, t_iri, u_iri, c_iri varchar;
+  declare acl_graph_iri, iri, m_iri, f_iri, t_iri, u_iri, c_iri varchar;
   declare tags, linksTo any;
   declare id, deadl, cnt any;
 
@@ -241,6 +241,7 @@ create procedure fill_ods_feeds_sioc (in graph_iri varchar, in site_iri varchar,
     fill_ods_feeds_services ();
 
     for (select WAI_ID,
+                WAI_IS_PUBLIC,
                 WAI_TYPE_NAME,
                 WAI_NAME,
                 WAI_ACL
@@ -248,9 +249,9 @@ create procedure fill_ods_feeds_sioc (in graph_iri varchar, in site_iri varchar,
           where ((_wai_name is null) or (WAI_NAME = _wai_name))
             and WAI_TYPE_NAME = 'eNews2') do
     {
-      graph_iri := SIOC..acl_graph (WAI_TYPE_NAME, WAI_NAME);
-      exec (sprintf ('sparql clear graph <%s>', graph_iri));
-      SIOC..wa_instance_acl_insert (WAI_TYPE_NAME, WAI_NAME, WAI_ACL);
+      acl_graph_iri := SIOC..acl_graph (WAI_TYPE_NAME, WAI_NAME);
+      exec (sprintf ('sparql clear graph <%s>', acl_graph_iri));
+      SIOC..wa_instance_acl_insert (WAI_IS_PUBLIC, WAI_TYPE_NAME, WAI_NAME, WAI_ACL);
       for (select EFD_DOMAIN_ID, EFD_FEED_ID, EFD_ACL
              from ENEWS.WA.FEED_DOMAIN
             where EFD_DOMAIN_ID = WAI_ID and EFD_ACL is not null) do
diff --git a/appsrc/ODS-FeedManager/vad_version b/appsrc/ODS-FeedManager/vad_version
new file mode 100644
index 0000000..e522eee
--- /dev/null
+++ b/appsrc/ODS-FeedManager/vad_version
@@ -0,0 +1 @@
+1.19.70
diff --git a/appsrc/ODS-FeedManager/www/ajax.vsp b/appsrc/ODS-FeedManager/www/ajax.vsp
index ecf874a..0ca6b5a 100644
--- a/appsrc/ODS-FeedManager/www/ajax.vsp
+++ b/appsrc/ODS-FeedManager/www/ajax.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: ajax.vsp,v 1.3.2.3 2010/10/07 13:23:02 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2007 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -107,7 +107,7 @@
     }
     http_rewrite ();
     http_header ('Content-Type: text/plain\r\n');
-    http (ENEWS.WA.obj2json(returnData, 3));
+    http (ODS..obj2json(returnData, 5));
   }
   else if (action = 'tags')
   {
diff --git a/appsrc/ODS-FeedManager/www/annotea.vspx b/appsrc/ODS-FeedManager/www/annotea.vspx
index ee65796..4503acb 100644
--- a/appsrc/ODS-FeedManager/www/annotea.vspx
+++ b/appsrc/ODS-FeedManager/www/annotea.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: annotea.vspx,v 1.8.2.7 2011/07/04 10:04:01 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/attachment.vsp b/appsrc/ODS-FeedManager/www/attachment.vsp
index e1e3bc7..abc7ace 100644
--- a/appsrc/ODS-FeedManager/www/attachment.vsp
+++ b/appsrc/ODS-FeedManager/www/attachment.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: attachment.vsp,v 1.1.2.1 2010/09/20 10:15:14 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/blog.vspx b/appsrc/ODS-FeedManager/www/blog.vspx
index 2bcbed2..8dd3b08 100644
--- a/appsrc/ODS-FeedManager/www/blog.vspx
+++ b/appsrc/ODS-FeedManager/www/blog.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: blog.vspx,v 1.7.2.3 2010/10/07 13:23:02 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/bookmark.vspx b/appsrc/ODS-FeedManager/www/bookmark.vspx
index dbb21b2..8e7c21d 100644
--- a/appsrc/ODS-FeedManager/www/bookmark.vspx
+++ b/appsrc/ODS-FeedManager/www/bookmark.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: bookmark.vspx,v 1.5.2.3 2010/09/20 10:15:14 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/channels.vspx b/appsrc/ODS-FeedManager/www/channels.vspx
index 1cb69fc..7102606 100644
--- a/appsrc/ODS-FeedManager/www/channels.vspx
+++ b/appsrc/ODS-FeedManager/www/channels.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: channels.vspx,v 1.12.2.14 2011/07/04 10:04:02 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -445,44 +445,32 @@
               <table class="form-body" cellspacing="0">
                 <tr>
                   <td style="width: 90%; background-color: white;">
-                    <table id="s_tbl" width="100%" cellspacing="0">
-                      <thead class="sortHeader">
+                      <table id="s_tbl" class="ODS_grid">
+                        <thead>
                         <tr>
                           <th width="15%">Type</th>
                           <th>Value</th>
                           <th width="1%" nowrap="nowrap">ACL: (R)ead, (W)rite</th>
-                          <th width="50px">Action</th>
+                            <th class="action">Action</th>
                         </tr>
                       </thead>
+                        <tbody id="s_tbody">
+                          <tr id="s_tr_no"><td colspan="4"><b>No Shares</b></td></tr>
                 		  <![CDATA[
                 		    <script type="text/javascript">
                         <?vsp
-                          declare N, L integer;
-                          declare acl, aType, aAccess any;
+                              declare acl any;
 
-                          L := 0;
                           acl := (select WAI_ACL from DB.DBA.WA_INSTANCE where WAI_ID = self.domain_id);
                           acl := case when isnull (acl) then vector () else deserialize (acl) end;
-                          for (N := 0; N < length (acl); N := N + 1)
-                          {
-                            L := L + 1;
-                            http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("s", {fld_1: {mode: 50, value: "%s"}, fld_2: {value: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; white-space: nowrap; text-align: center;"}, fld_4: {value: "Inherited"}});});', acl[N][2], acl[N][1], acl[N][3], acl[N][4], acl[N][5]));
-                          }
+                              DB.DBA.wa_aci_lines (acl);
+
                           acl := deserialize (self.v_acl);
-                          for (N := 0; N < length (acl); N := N + 1)
-                          {
-                            L := L + 1;
-                            if (self.v_mode <> 'view')
-                            {
-                              http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createRow("s", null, {fld_1: {mode: 50, value: "%s", onchange: function(){TBL.changeCell50(this);}}, fld_2: {mode: 51, form: "F1", tdCssText: "white-space: nowrap;", className: "_validate_ _webid_", value: "%s", readOnly: %s, imgCssText: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; text-align: center;"}});});', acl[N][2], acl[N][1], case when acl[N][2] = 'public' then 'true' else 'false' end, case when acl[N][2] = 'public' then 'display: none;' else '' end, acl[N][3], acl[N][4], acl[N][5]));
-                            } else {
-                              http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("s", {fld_1: {mode: 50, value: "%s"}, fld_2: {value: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; white-space: nowrap; text-align: center;"}});});', acl[N][2], acl[N][1], acl[N][3], acl[N][4], acl[N][5]));
-                            }
-                          }
+                              DB.DBA.wa_aci_lines (acl, self.v_mode);
                         ?>
                 		    </script>
                 		  ]]>
-                      <tr id="s_tr_no" style="display: <?V case when L=0 then '' else 'none' end ?>;"><td colspan="<?V case when self.v_mode='view' then 3 else 4 end ?>"><b>No Shares</b></td></tr>
+                        </tbody>
                 		</table>
                 	</td>
                   <vm:if test="self.v_mode <> 'view'">
@@ -579,7 +567,7 @@
 
                 -- domain
                 ENEWS.WA.channel_domain (self.v_id, self.domain_id, self.v_feed_id, self.f_title.ufl_value, self.v_tags, self.v_folder_name, trim (self.f_folder_id.ufl_value), self.f_graph.ufl_value);
-                self.v_acl := serialize (DB.DBA.wa_acl_params (params));
+                self.v_acl := serialize (DB.DBA.wa_aci_params (params));
                 ENEWS.WA.channel_acl (self.v_id, self.v_acl);
 
                 -- directory
diff --git a/appsrc/ODS-FeedManager/www/channels_create.vspx b/appsrc/ODS-FeedManager/www/channels_create.vspx
index cc53d2d..5d66ddc 100644
--- a/appsrc/ODS-FeedManager/www/channels_create.vspx
+++ b/appsrc/ODS-FeedManager/www/channels_create.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: channels_create.vspx,v 1.14.2.7 2011/05/17 23:00:57 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/channels_select.vspx b/appsrc/ODS-FeedManager/www/channels_select.vspx
index bfa2b21..b482980 100644
--- a/appsrc/ODS-FeedManager/www/channels_select.vspx
+++ b/appsrc/ODS-FeedManager/www/channels_select.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: channels_select.vspx,v 1.6.2.3 2011/05/02 14:16:30 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/conversation.vspx b/appsrc/ODS-FeedManager/www/conversation.vspx
index 21de8d2..a8047de 100644
--- a/appsrc/ODS-FeedManager/www/conversation.vspx
+++ b/appsrc/ODS-FeedManager/www/conversation.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: conversation.vspx,v 1.13.2.4 2011/05/02 14:16:30 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/css/style.css b/appsrc/ODS-FeedManager/www/css/style.css
index a9ff58c..8d54a07 100644
--- a/appsrc/ODS-FeedManager/www/css/style.css
+++ b/appsrc/ODS-FeedManager/www/css/style.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: style.css,v 1.26.2.10 2011/05/17 23:00:57 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -27,11 +27,23 @@ body {
   font-size: 9pt;
 }
 
+pre {
+  white-space: pre-wrap;       /* css-3 */
+  white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
+  white-space: -pre-wrap;      /* Opera 4-6 */
+  white-space: -o-pre-wrap;    /* Opera 7 */
+  word-wrap: break-word;       /* Internet Explorer 5.5+ */
+}
+
 form {
   margin: 0;
   padding: 0;
 }
 
+abbr {
+  border: none;
+}
+
 .pointer {
   cursor: pointer;
 }
@@ -111,43 +123,6 @@ div.app_hdr_cmds_ctr {
   margin: 0 5px 0 0;
 }
 
-/* Footer */
-#FT {
-  width: 100%;
-  position: relative;
-  bottom: 0px;
-  font-size: 8pt;
-  float: left;
-  clear: both;
-  text-align: right;
-  border-top: 2px solid #fff;
-  margin-right: 10px;
-  background-color: #fff;
-  background-image: url(../image/ods_main_footer.png);
-}
-
-#FT_L {
-  float: left;
-  clear: left;
-  margin-top: 10px;
-  margin-left: 8px;
-  border: 1px solid #788;
-}
-
-#FT_R {
-  float: right;
-  clear: right;
-  margin-top: 10px;
-  margin-bottom: 10px;
-  margin-right: 5px;
-  color: #788;
-}
-
-#FT_R a {
-  text-decoration: none;
-  color: inherit;
-}
-
 #MTB {
   width: 100%;
   left: 0px;
@@ -174,6 +149,7 @@ div.app_hdr_cmds_ctr {
 .left_container {
   background-color: #EFEFEF;
   border: 1px solid #7f94a5;
+  border-radius: 5px;
   -moz-border-radius: 5px;
   -webkit-border-radius: 5px;
   padding: 5px;
@@ -539,6 +515,7 @@ input.button {
   border: solid 1px;
   border-color: #7f94a5;
   background: #99b3c5;
+  border-radius: 3px;
   -moz-border-radius: 3px;
   -webkit-border-radius: 3px;
 }
@@ -586,6 +563,7 @@ input.nolink2 {
   border: solid 1px;
   border-color: #7f94a5;
   background: #99b3c5;
+  border-radius: 3px;
   -moz-border-radius: 3px;
   -webkit-border-radius: 3px;
 }
@@ -815,6 +793,8 @@ div.tab {
   border: 1px solid #000;
   border-bottom-width: 0px;
   border-color: #7f94a5;
+  border-top-left-radius: 3px;
+  border-top-right-radius: 3px;
   -moz-border-radius-topleft: 3px;
   -moz-border-radius-topright: 3px;
   -webkit-border-top-left-radius: 3px;
@@ -839,6 +819,8 @@ span.tab {
   border: 1px solid #000;
   border-bottom-width: 0px;
   border-color: #7f94a5;
+  border-top-left-radius: 3px;
+  border-top-right-radius: 3px;
   -moz-border-radius-topleft: 3px;
   -moz-border-radius-topright: 3px;
   -webkit-border-top-left-radius: 3px;
@@ -1004,6 +986,7 @@ font-weight:normal !important;
 span.button {
   background: none repeat scroll 0 0 #99B3C5;
   border: 1px solid #7F94A5;
+  border-radius: 5px;
   -moz-border-radius: 5px;
   -webkit-border-radius: 5px;
   color: #FFFFFF;
diff --git a/appsrc/ODS-FeedManager/www/directories.vspx b/appsrc/ODS-FeedManager/www/directories.vspx
index aa7a575..5950374 100644
--- a/appsrc/ODS-FeedManager/www/directories.vspx
+++ b/appsrc/ODS-FeedManager/www/directories.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: directories.vspx,v 1.6.2.6 2011/05/02 14:16:30 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/enews_login.vspx b/appsrc/ODS-FeedManager/www/enews_login.vspx
index dce8090..43d6018 100644
--- a/appsrc/ODS-FeedManager/www/enews_login.vspx
+++ b/appsrc/ODS-FeedManager/www/enews_login.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: enews_login.vspx,v 1.5.2.5 2010/10/07 13:23:03 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/error.vspx b/appsrc/ODS-FeedManager/www/error.vspx
index b69ea73..9f9bd07 100644
--- a/appsrc/ODS-FeedManager/www/error.vspx
+++ b/appsrc/ODS-FeedManager/www/error.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: error.vspx,v 1.5.2.1 2010/09/20 10:15:15 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/export.vspx b/appsrc/ODS-FeedManager/www/export.vspx
index 9411552..65d3e27 100644
--- a/appsrc/ODS-FeedManager/www/export.vspx
+++ b/appsrc/ODS-FeedManager/www/export.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: export.vspx,v 1.10.2.5 2010/10/07 13:23:03 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/folders.vspx b/appsrc/ODS-FeedManager/www/folders.vspx
index cb81e0d..871bd65 100644
--- a/appsrc/ODS-FeedManager/www/folders.vspx
+++ b/appsrc/ODS-FeedManager/www/folders.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: folders.vspx,v 1.6.2.4 2010/10/13 12:14:21 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/gems.vsp b/appsrc/ODS-FeedManager/www/gems.vsp
index a4d5e12..8f76dda 100644
--- a/appsrc/ODS-FeedManager/www/gems.vsp
+++ b/appsrc/ODS-FeedManager/www/gems.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: gems.vsp,v 1.1.2.3 2010/10/07 13:23:03 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2008 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/image/PoweredByVirtuoso.gif b/appsrc/ODS-FeedManager/www/image/PoweredByVirtuoso.gif
deleted file mode 100644
index b196db7..0000000
Binary files a/appsrc/ODS-FeedManager/www/image/PoweredByVirtuoso.gif and /dev/null differ
diff --git a/appsrc/ODS-FeedManager/www/image/enews_banner.gif b/appsrc/ODS-FeedManager/www/image/enews_banner.gif
deleted file mode 100644
index a5c9323..0000000
Binary files a/appsrc/ODS-FeedManager/www/image/enews_banner.gif and /dev/null differ
diff --git a/appsrc/ODS-FeedManager/www/image/virt_power_no_border.png b/appsrc/ODS-FeedManager/www/image/virt_power_no_border.png
deleted file mode 100644
index 93fcb80..0000000
Binary files a/appsrc/ODS-FeedManager/www/image/virt_power_no_border.png and /dev/null differ
diff --git a/appsrc/ODS-FeedManager/www/image/virtuosologo.jpg b/appsrc/ODS-FeedManager/www/image/virtuosologo.jpg
deleted file mode 100644
index 8f15047..0000000
Binary files a/appsrc/ODS-FeedManager/www/image/virtuosologo.jpg and /dev/null differ
diff --git a/appsrc/ODS-FeedManager/www/item.vspx b/appsrc/ODS-FeedManager/www/item.vspx
index 25cbd58..4e87324 100644
--- a/appsrc/ODS-FeedManager/www/item.vspx
+++ b/appsrc/ODS-FeedManager/www/item.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: item.vspx,v 1.4.2.6 2011/07/04 10:04:02 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/items.vspx b/appsrc/ODS-FeedManager/www/items.vspx
index 6820823..ca891ff 100644
--- a/appsrc/ODS-FeedManager/www/items.vspx
+++ b/appsrc/ODS-FeedManager/www/items.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: items.vspx,v 1.3.2.7 2011/07/04 10:04:02 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/js/enews.js b/appsrc/ODS-FeedManager/www/js/enews.js
index 6139ceb..2cfc933 100644
--- a/appsrc/ODS-FeedManager/www/js/enews.js
+++ b/appsrc/ODS-FeedManager/www/js/enews.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: enews.js,v 1.21.2.14 2011/06/09 17:43:16 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -508,12 +508,10 @@ Feeds.listFavourites = function ()
 Feeds.aboutDialog = function ()
 {
   var aboutDiv = $('aboutDiv');
-  if (aboutDiv) {OAT.Dom.unlink(aboutDiv);}
-  aboutDiv = OAT.Dom.create('div', {
-    width:'430px',
-    height: '170px',
-    overflow: 'hidden'
-  });
+  if (aboutDiv)
+    OAT.Dom.unlink(aboutDiv);
+
+  aboutDiv = OAT.Dom.create('div', {height: '160px', overflow: 'hidden'});
   aboutDiv.id = 'aboutDiv';
   aboutDialog = new OAT.Dialog('About ODS FeedsManager', aboutDiv, {width:445, buttons: 0, resize:0, modal:1});
 	aboutDialog.cancel = aboutDialog.hide;
@@ -1117,7 +1115,8 @@ function checkState()
         setTimeout("checkState()", 1000);
 			} else {
       progressTimer = null;
-        doPost ('F1', 'btn_Stop');
+      $('btn_Stop').value = 'Close';
+      OAT.Dom.hide('btn_Background');
 			}
 	  }
   OAT.AJAX.POST('ajax.vsp', "a=load&sa=state&id="+progressID+urlParams("sid")+urlParams("realm"), x);
@@ -1186,12 +1185,17 @@ function showProgress(progressIndex)
 }
 }
 
-function davBrowse (fld)
-{
+function davBrowse(fld, folders) {
+	/* load stylesheets */
+	OAT.Style.include("grid.css");
+	OAT.Style.include("webdav.css");
+
   var options = {
     mode: 'browser',
     onConfirmClick: function(path, fname){$(fld).value = '/DAV' + path + fname;}
   };
+  if (!folders) {folders = false;}
+  OAT.WebDav.options.foldersOnly = folders;
   OAT.WebDav.open(options);
 }
 
diff --git a/appsrc/ODS-FeedManager/www/news.vsp b/appsrc/ODS-FeedManager/www/news.vsp
index e0b357a..8939da8 100644
--- a/appsrc/ODS-FeedManager/www/news.vsp
+++ b/appsrc/ODS-FeedManager/www/news.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: news.vsp,v 1.7.2.2 2010/09/20 10:15:15 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/news.vspx b/appsrc/ODS-FeedManager/www/news.vspx
index e41364f..6face9d 100644
--- a/appsrc/ODS-FeedManager/www/news.vspx
+++ b/appsrc/ODS-FeedManager/www/news.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: news.vspx,v 1.21.2.4 2010/10/07 13:23:03 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/search.vspx b/appsrc/ODS-FeedManager/www/search.vspx
index e709fad..431cc23 100644
--- a/appsrc/ODS-FeedManager/www/search.vspx
+++ b/appsrc/ODS-FeedManager/www/search.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: search.vspx,v 1.18.2.9 2010/10/13 12:14:22 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/settings.vspx b/appsrc/ODS-FeedManager/www/settings.vspx
index 5cb7eff..1bfdbf0 100644
--- a/appsrc/ODS-FeedManager/www/settings.vspx
+++ b/appsrc/ODS-FeedManager/www/settings.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: settings.vspx,v 1.13.2.4 2010/10/13 12:14:22 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -212,6 +212,17 @@
       	    ]]>
       	  </v:on-post>
         </v:button>
+        <v:button name="clear" action="simple" value="Clear" xhtml_onclick="javascript: return confirm (\'Do you want to reset settings to default?\');" xhtml_class="form-button">
+          <v:on-post>
+            <![CDATA[
+              delete from ENEWS.WA.SETTINGS where ES_DOMAIN_ID = self.domain_id;
+              ENEWS.WA.nntp_update (self.domain_id, null, null, 1, 0);
+              commit work;
+
+              self.vc_data_bind(e);
+            ]]>
+          </v:on-post>
+        </v:button>
         <v:button action="simple" value="Cancel" xhtml_class="form-button">
           <v:on-post>
             <![CDATA[
diff --git a/appsrc/ODS-FeedManager/www/sfolders.vspx b/appsrc/ODS-FeedManager/www/sfolders.vspx
index 3eec723..5964d2b 100644
--- a/appsrc/ODS-FeedManager/www/sfolders.vspx
+++ b/appsrc/ODS-FeedManager/www/sfolders.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: sfolders.vspx,v 1.7.2.7 2011/05/02 14:16:30 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/tags.vspx b/appsrc/ODS-FeedManager/www/tags.vspx
index 6d4ca4a..a01923a 100644
--- a/appsrc/ODS-FeedManager/www/tags.vspx
+++ b/appsrc/ODS-FeedManager/www/tags.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: tags.vspx,v 1.6.2.1 2010/09/20 10:15:16 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/template/popup.vspx b/appsrc/ODS-FeedManager/www/template/popup.vspx
index 0ad03ea..46f2ace 100644
--- a/appsrc/ODS-FeedManager/www/template/popup.vspx
+++ b/appsrc/ODS-FeedManager/www/template/popup.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: popup.vspx,v 1.10.2.8 2011/07/04 10:04:02 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/www/template/template.vspx b/appsrc/ODS-FeedManager/www/template/template.vspx
index d1ad474..8830349 100644
--- a/appsrc/ODS-FeedManager/www/template/template.vspx
+++ b/appsrc/ODS-FeedManager/www/template/template.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: template.vspx,v 1.33.2.12 2011/07/04 10:04:02 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -66,11 +66,6 @@
                           connectionHeaders: {Authorization: '<?V ENEWS.WA.account_basicAuthorization (self.account_id) ?>'}
                         };
 
-      	/* load stylesheets */
-      	OAT.Style.include("grid.css");
-      	OAT.Style.include("webdav.css");
-      	OAT.Style.include("winms.css");
-
         var featureList=["ajax", "json", "anchor", "dialog", "tree", "calendar"];
         OAT.Loader.load(featureList);
       </script>
diff --git a/appsrc/ODS-FeedManager/www/template/template.xsl b/appsrc/ODS-FeedManager/www/template/template.xsl
index 5a3ccec..19882da 100644
--- a/appsrc/ODS-FeedManager/www/template/template.xsl
+++ b/appsrc/ODS-FeedManager/www/template/template.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: template.xsl,v 1.29.2.9 2011/05/02 14:16:31 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -292,7 +292,7 @@
         <div id="FT" style="display: <?V case when get_keyword ('interface', C, '') = 'js' then 'none' else '' end ?>">
         <div id="FT_L">
           <a href="http://www.openlinksw.com/virtuoso">
-              <img alt="Powered by OpenLink Virtuoso Universal Server" src="image/virt_power_no_border.png" border="0" />
+              <img alt="Powered by OpenLink Virtuoso Universal Server" src="/ods/images/virt_power_no_border.png" border="0" />
           </a>
     </div>
         <div id="FT_R">
@@ -427,7 +427,7 @@
   <!--=========================================================================-->
   <xsl:template name="vm:splash">
     <div style="padding: 1em; font-size: 0.70em;">
-      <a href="http://www.openlinksw.com/virtuoso"><img title="Powered by OpenLink Virtuoso Universal Server" src="image/PoweredByVirtuoso.gif" border="0" /></a>
+      <a href="http://www.openlinksw.com/virtuoso"><img title="Powered by OpenLink Virtuoso Universal Server" src="/ods/images/PoweredByVirtuoso.gif" border="0" /></a>
       <br />
       Server version: <?V sys_stat('st_dbms_ver') ?><br/>
       Server build date: <?V sys_stat('st_build_date') ?><br/>
diff --git a/appsrc/ODS-FeedManager/www/weblog.vspx b/appsrc/ODS-FeedManager/www/weblog.vspx
index a538aaa..4f7b60d 100644
--- a/appsrc/ODS-FeedManager/www/weblog.vspx
+++ b/appsrc/ODS-FeedManager/www/weblog.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: weblog.vspx,v 1.9.2.4 2010/10/13 12:14:22 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/xslt/foaf.xsl b/appsrc/ODS-FeedManager/xslt/foaf.xsl
index 41798cc..a25cb6a 100644
--- a/appsrc/ODS-FeedManager/xslt/foaf.xsl
+++ b/appsrc/ODS-FeedManager/xslt/foaf.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: foaf.xsl,v 1.2.2.1 2010/09/20 10:15:16 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/xslt/rss2atom.xsl b/appsrc/ODS-FeedManager/xslt/rss2atom.xsl
index 86d363d..2390919 100644
--- a/appsrc/ODS-FeedManager/xslt/rss2atom.xsl
+++ b/appsrc/ODS-FeedManager/xslt/rss2atom.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom.xsl,v 1.3.2.3 2010/09/20 10:15:16 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/xslt/rss2atom03.xsl b/appsrc/ODS-FeedManager/xslt/rss2atom03.xsl
index 3f7456d..bd79434 100644
--- a/appsrc/ODS-FeedManager/xslt/rss2atom03.xsl
+++ b/appsrc/ODS-FeedManager/xslt/rss2atom03.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom03.xsl,v 1.3.2.2 2010/09/20 10:15:16 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/xslt/rss2rdf.xsl b/appsrc/ODS-FeedManager/xslt/rss2rdf.xsl
index 26c06dc..5276e3b 100644
--- a/appsrc/ODS-FeedManager/xslt/rss2rdf.xsl
+++ b/appsrc/ODS-FeedManager/xslt/rss2rdf.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2rdf.xsl,v 1.4.2.2 2010/09/20 10:15:17 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-FeedManager/xslt/rss2xbel.xsl b/appsrc/ODS-FeedManager/xslt/rss2xbel.xsl
index 99f98d6..4fc1d71 100644
--- a/appsrc/ODS-FeedManager/xslt/rss2xbel.xsl
+++ b/appsrc/ODS-FeedManager/xslt/rss2xbel.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2xbel.xsl,v 1.2.2.1 2010/09/20 10:15:17 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/Makefile.am b/appsrc/ODS-Framework/Makefile.am
index 55b20bd..f53a359 100644
--- a/appsrc/ODS-Framework/Makefile.am
+++ b/appsrc/ODS-Framework/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2010 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -44,15 +44,18 @@ clean-local:
 	-rm -rf vad
 
 EXTRA_DIST = \
+	*.dox \
 	*.css \
 	*.html \
 	*.js \
+	*.php \
 	*.sql \
 	*.txt \
 	*.vsp \
 	*.vspx \
 	*.xml \
 	*.xsl \
+	ckeditor/*.css \
 	ckeditor/*.html \
 	ckeditor/*.js \
 	ckeditor/images/*.gif \
@@ -135,6 +138,4 @@ EXTRA_DIST = \
 	users/js/*.js \
 	users/users.jsp \
 	users/users.rb \
-	vad_version \
-	version.base \
-	version.curr
+	vad_version
diff --git a/appsrc/ODS-Framework/Makefile.in b/appsrc/ODS-Framework/Makefile.in
index d57c5da..c18741e 100644
--- a/appsrc/ODS-Framework/Makefile.in
+++ b/appsrc/ODS-Framework/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2010 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -38,9 +37,8 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -70,7 +68,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -78,23 +75,9 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(vaddir)"
+nodist_vadDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(nodist_vad_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -184,7 +167,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -268,7 +250,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -289,7 +270,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -307,15 +287,18 @@ CLEANFILES = \
 	virtuoso.trx
 
 EXTRA_DIST = \
+	*.dox \
 	*.css \
 	*.html \
 	*.js \
+	*.php \
 	*.sql \
 	*.txt \
 	*.vsp \
 	*.vspx \
 	*.xml \
 	*.xsl \
+	ckeditor/*.css \
 	ckeditor/*.html \
 	ckeditor/*.js \
 	ckeditor/images/*.gif \
@@ -398,9 +381,7 @@ EXTRA_DIST = \
 	users/js/*.js \
 	users/users.jsp \
 	users/users.rb \
-	vad_version \
-	version.base \
-	version.curr
+	vad_version
 
 all: all-am
 
@@ -409,14 +390,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu appsrc/ODS-Framework/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu appsrc/ODS-Framework/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  appsrc/ODS-Framework/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  appsrc/ODS-Framework/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -434,7 +415,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -444,23 +424,20 @@ clean-libtool:
 install-nodist_vadDATA: $(nodist_vad_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(vaddir)" || $(MKDIR_P) "$(DESTDIR)$(vaddir)"
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	for p in $$list; do \
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vaddir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(vaddir)" || exit $$?; \
+	  f=$(am__strip_dir) \
+	  echo " $(nodist_vadDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(vaddir)/$$f'"; \
+	  $(nodist_vadDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(vaddir)/$$f"; \
 	done
 
 uninstall-nodist_vadDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(vaddir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(vaddir)" && rm -f $$files
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(vaddir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(vaddir)/$$f"; \
+	done
 tags: TAGS
 TAGS:
 
@@ -484,17 +461,13 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
@@ -526,7 +499,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -545,8 +517,6 @@ dvi-am:
 
 html: html-am
 
-html-am:
-
 info: info-am
 
 info-am:
@@ -555,28 +525,18 @@ install-data-am: install-nodist_vadDATA
 
 install-dvi: install-dvi-am
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-am
 
-install-html-am:
-
 install-info: install-info-am
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-am
 
-install-pdf-am:
-
 install-ps: install-ps-am
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -617,7 +577,6 @@ ods_framework_dav.vad: $(EXTRA_DIST)
 
 clean-local:
 	-rm -rf vad
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/appsrc/ODS-Framework/ODS-Framework.dox b/appsrc/ODS-Framework/ODS-Framework.dox
new file mode 100644
index 0000000..e090018
--- /dev/null
+++ b/appsrc/ODS-Framework/ODS-Framework.dox
@@ -0,0 +1,36 @@
+/**
+\defgroup ods_module_instance ODS App Instance Management API
+
+Provides procedures for instance management like creating a new instance or retrieving an instance id.
+
+\section ods_instance_id ODS App Instance Ids
+
+Each application instance in ODS which has been created though instance.create() has a unique numerical id. This id is required
+as parameter in many methods throughout the ODS API.
+
+There are two ways to discover the id of an instance through the ODS API:
+-# If the name of the instance is known a simple call to instance.get.id() is sufficient.
+-# If the exact name is not known the instance can be searched via instance.search().
+
+FIXME: we need a method to list all instances with an optional type restriction.
+ */
+
+/**
+\defgroup ods_module_user ODS User Management API
+The user management API provides procedures for user lookup, creation, and manipulation.
+
+\attention User names in ODS are case-sensitive!
+
+\section ods_user_privacy ODS User Privacy Settings
+
+Most details of a user profile are subject to privacy settings. There are three settings:
+- public - visible to all
+- private - visible to no-one
+- ACL - Fine grained control over who is allowed to read or write the data.
+
+FIXME: add links to the important methods that deal with privacy.
+*/
+
+/**
+\defgroup ods_module_ontology ODS Ontology Management API
+*/
diff --git a/appsrc/ODS-Framework/aboutus.html b/appsrc/ODS-Framework/aboutus.html
index b2abf52..8b89fad 100644
--- a/appsrc/ODS-Framework/aboutus.html
+++ b/appsrc/ODS-Framework/aboutus.html
@@ -1,12 +1,12 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
  -
- -  $Id: aboutus.html,v 1.2.2.1 2010/09/20 10:15:17 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/access_box.vsp b/appsrc/ODS-Framework/access_box.vsp
new file mode 100644
index 0000000..814a255
--- /dev/null
+++ b/appsrc/ODS-Framework/access_box.vsp
@@ -0,0 +1,56 @@
+<?vsp
+  declare url, sid, token, ticket, auth_token, display_name varchar;
+  declare result, resultHeader any;
+
+  auth_token := null;
+  token := ODS.ODS_API.get_oauth_tok ('Box Net API');
+  if ({?'auth_token'} is not null)
+  {
+    auth_token := get_keyword ('auth_token', params);
+    ticket := get_keyword ('ticket', params);
+    url := sprintf ('https://www.box.com/api/1.0/rest?action=get_auth_token&api_key=%s&ticket=%s', token, ticket);
+    result := http_client_ext (url=>url, http_method=>'GET', headers=>resultHeader, n_redirects=>15);
+    result := xtree_doc (result);
+    if (cast (xpath_eval ('string (/response/status)', result, 1) as varchar) <> 'get_auth_token_ok')
+      return;
+
+    auth_token := xpath_eval ('string (/response/auth_token)', result, 1);
+    display_name := xpath_eval ('string (/response/user/login)', result, 1);;
+    -- person := http_get (url);
+  }
+  else
+  {
+    url := sprintf ('https://www.box.com/api/1.0/rest?action=get_ticket&api_key=%s', token);
+    result := http_client_ext (url=>url, http_method=>'GET', headers=>resultHeader, n_redirects=>15);
+    result := xtree_doc (result);
+    if (cast (xpath_eval ('string (/response/status)', result, 1) as varchar) <> 'get_ticket_ok')
+      return;
+
+    ticket := xpath_eval ('string (/response/ticket)', result, 1);
+    url := sprintf ('https://www.box.com/api/1.0/auth/%s', ticket);
+    http_status_set (302);
+    http_header (sprintf ('Location: %s\r\n', url));
+    return;
+  }
+?>
+<html>
+  <head>
+  </head>
+  <body>
+    <?vsp
+    if (auth_token is not null)
+    {
+    ?>
+    <script type="text/javascript">
+      if (window.opener && window.opener.open && !window.opener.closed) {
+        window.opener.ODRIVE.boxParams('<?V auth_token ?>', '<?V display_name ?>');
+      } else {
+        alert ('Opener not found');
+      }
+      window.close();
+    </script>
+    <?vsp
+    }
+    ?>
+  </body>
+</html>
diff --git a/appsrc/ODS-Framework/access_dropbox.vsp b/appsrc/ODS-Framework/access_dropbox.vsp
new file mode 100644
index 0000000..4a80595
--- /dev/null
+++ b/appsrc/ODS-Framework/access_dropbox.vsp
@@ -0,0 +1,59 @@
+<?vsp
+  declare url, sid, token, oauth_token, return_url, display_name, email varchar;
+  declare result, resultHeader, json any;
+
+  token := ODS.ODS_API.get_oauth_tok ('Dropbox API');
+  if ({?'oauth_token'} is not null)
+  {
+    declare header, auth any;
+
+    sid := {?'sid'};
+    url := OAUTH..sign_request ('GET', 'https://api.dropbox.com/1/oauth/access_token', '',	token, sid, 1);
+    -- result := http_get (url);
+    result := http_client_ext (url=>url, http_method=>'GET', headers=>resultHeader, n_redirects=>15);
+    sid := OAUTH..parse_response (sid, token, result);
+
+    url := OAUTH..sign_request ('GET', 'https://api.dropbox.com/1/account/info', '', token, sid, 1);
+    result := http_client_ext (url=>url, http_method=>'GET', headers=>resultHeader, n_redirects=>15);
+    result := subseq (ODS..json2obj(result), 2);
+    display_name := get_keyword ('display_name', result);
+    email := get_keyword ('email', result);
+    -- person := http_get (url);
+  }
+  else
+  {
+    sid := md5 (datestring (now ()));
+    return_url := sprintf ('http://%{WSHost}s%s?sid=%U', http_path(), sid);
+    url := OAUTH..sign_request ('GET', 'https://api.dropbox.com/1/oauth/request_token', '', token, null, 1);
+    result := http_client_ext (url=>url, http_method=>'GET', headers=>resultHeader, n_redirects=>15);
+    sid := OAUTH..parse_response (sid, token, result);
+
+    OAUTH..set_session_data (sid, params);
+    oauth_token := OAUTH..get_auth_token (sid);
+    url := sprintf ('https://www.dropbox.com/1/oauth/authorize?oauth_token=%U&oauth_callback=%U', oauth_token, return_url);
+    http_status_set (302);
+    http_header (sprintf ('Location: %s\r\n', url));
+    return;
+  }
+?>
+<html>
+  <head>
+  </head>
+  <body>
+    <?vsp
+    if ({?'sid'} is not null)
+    {
+    ?>
+    <script type="text/javascript">
+      if (window.opener && window.opener.open && !window.opener.closed) {
+        window.opener.ODRIVE.dropboxParams('<?V sid ?>', '<?V display_name ?>', '<?V email ?>');
+      } else {
+        alert ('Opener not found');
+      }
+      window.close();
+    </script>
+    <?vsp
+    }
+    ?>
+  </body>
+</html>
diff --git a/appsrc/ODS-Framework/access_google.vsp b/appsrc/ODS-Framework/access_google.vsp
new file mode 100644
index 0000000..58b68c5
--- /dev/null
+++ b/appsrc/ODS-Framework/access_google.vsp
@@ -0,0 +1,45 @@
+<?vsp
+  declare _params, _client_id, _client_secret, _return_url, _code, _url, _reqHeader, _retHeader, _body, _retValue, _json, _xml any;
+  declare _display_name, _email varchar;
+
+  _code := get_keyword ('code', params, '');
+  _json := '{\"error\" : \"invalid_request\"}';
+  if (_code <> '')
+  {
+    _client_id := (select a_key from OAUTH..APP_REG where a_name = 'Google API' and a_owner = 0);
+    _client_secret := (select a_secret from OAUTH..APP_REG where a_name = 'Google API' and a_owner = 0);
+    _return_url := sprintf ('http://%{WSHost}s/ods/access_google.vsp', http_path());
+    _url := 'https://accounts.google.com/o/oauth2/token';
+    _reqHeader := 'Content-Type: application/x-www-form-urlencoded\r\n';
+    _body := sprintf ('code=%U&client_id=%U&client_secret=%U&redirect_uri=%U&grant_type=%U', _code, _client_id, _client_secret, _return_url, 'authorization_code');
+    _retValue := http_client (url=>_url, http_method=>'POST', http_headers=>_reqHeader, body=>_body, n_redirects=>15);
+    _json := replace (_retValue, '\n', '\\n');
+
+    -- get owner info
+    _params := subseq (ODS..json2obj (_retValue), 2);
+    _url := sprintf ('https://docs.google.com/feeds/default/private/full/%U/contents/-/folder', 'folder:root');
+    _reqHeader := sprintf ('GData-Version: 3.0\r\nAuthorization: %s %s\r\n', get_keyword ('token_type', _params), get_keyword ('access_token', _params));
+    _retHeader := null;
+    _retValue := http_client_ext (url=>_url, http_method=>'GET', http_headers=>_reqHeader, headers =>_retHeader, n_redirects=>15);
+    if (not ((_retHeader[0] like 'HTTP/1._ 4__ %') or (_retHeader[0] like 'HTTP/1._ 5__ %')))
+    {
+      _xml := xtree_doc (_retValue);
+      _display_name := cast (xpath_eval ('[ xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005" ] /feed/author/name', _xml) as varchar);
+      _email := cast (xpath_eval ('[ xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005" ] /feed/author/email', _xml) as varchar);
+    }
+  }
+?>
+<html>
+  <head>
+  </head>
+  <body>
+    <script type="text/javascript">
+      if (window.opener && window.opener.open && !window.opener.closed) {
+        window.opener.ODRIVE.oauthParams('<?vsp http (_json); ?>', '<?V _display_name ?>', '<?V _email ?>');
+      } else {
+        alert ('Opener not found');
+      }
+      window.close();
+    </script>
+  </body>
+</html>
diff --git a/appsrc/ODS-Framework/access_skydrive.vsp b/appsrc/ODS-Framework/access_skydrive.vsp
new file mode 100644
index 0000000..14ca840
--- /dev/null
+++ b/appsrc/ODS-Framework/access_skydrive.vsp
@@ -0,0 +1,43 @@
+<?vsp
+  declare _params, _client_id, _client_secret, _return_url, _code, _url, _reqHeader, _retHeader, _body, _retValue, _json, _xml any;
+  declare _display_name, _email varchar;
+
+  _code := get_keyword ('code', params, '');
+  _json := '{\"error\" : \"invalid_request\"}';
+  if (_code <> '')
+  {
+    _client_id := (select a_key from OAUTH..APP_REG where a_name = 'SkyDrive API' and a_owner = 0);
+    _client_secret := (select a_secret from OAUTH..APP_REG where a_name = 'SkyDrive API' and a_owner = 0);
+    _return_url := sprintf ('http://%{WSHost}s/ods/access_skydrive.vsp', http_path());
+    _url := 'https://login.live.com/oauth20_token.srf';
+    _reqHeader := 'Content-Type: application/x-www-form-urlencoded\r\n';
+    _body := sprintf ('code=%U&client_id=%U&client_secret=%U&redirect_uri=%U&grant_type=%U', _code, _client_id, _client_secret, _return_url, 'authorization_code');
+    _retValue := http_client (url=>_url, http_method=>'POST', http_headers=>_reqHeader, body=>_body, n_redirects=>15);
+    _json := replace (_retValue, '\n', '\\n');
+
+    -- get owner info
+    _params := subseq (ODS..json2obj (_retValue), 2);
+    _url := sprintf ('https://apis.live.net/v5.0/me?access_token=%U', get_keyword ('access_token', _params));
+    _retHeader := null;
+    _retValue := http_client_ext (url=>_url, http_method=>'GET', headers =>_retHeader, n_redirects=>15);
+    if (not ((_retHeader[0] like 'HTTP/1._ 4__ %') or (_retHeader[0] like 'HTTP/1._ 5__ %')))
+    {
+      _params := subseq (ODS..json2obj (_retValue), 2);
+      _display_name := get_keyword ('name', _params);
+    }
+  }
+?>
+<html>
+  <head>
+  </head>
+  <body>
+    <script type="text/javascript">
+      if (window.opener && window.opener.open && !window.opener.closed) {
+        window.opener.ODRIVE.skydriveParams('<?vsp http (_json); ?>', '<?V _display_name ?>');
+      } else {
+        alert ('Opener not found');
+      }
+      window.close();
+    </script>
+  </body>
+</html>
diff --git a/appsrc/ODS-Framework/accounts.vspx b/appsrc/ODS-Framework/accounts.vspx
index 6fd0a2e..6f74992 100644
--- a/appsrc/ODS-Framework/accounts.vspx
+++ b/appsrc/ODS-Framework/accounts.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: accounts.vspx,v 1.7.2.1 2010/09/20 10:15:17 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/add_rule.vspx b/appsrc/ODS-Framework/add_rule.vspx
index 25bf19a..6bd44ad 100644
--- a/appsrc/ODS-Framework/add_rule.vspx
+++ b/appsrc/ODS-Framework/add_rule.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: add_rule.vspx,v 1.4.2.1 2010/09/20 10:15:17 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/admin.vspx b/appsrc/ODS-Framework/admin.vspx
index 580da4a..7e54bd6 100644
--- a/appsrc/ODS-Framework/admin.vspx
+++ b/appsrc/ODS-Framework/admin.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: admin.vspx,v 1.4.2.1 2010/09/20 10:15:17 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/advertise.html b/appsrc/ODS-Framework/advertise.html
index d8e99b7..4ffd8be 100644
--- a/appsrc/ODS-Framework/advertise.html
+++ b/appsrc/ODS-Framework/advertise.html
@@ -1,12 +1,12 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
  -
- -  $Id: advertise.html,v 1.2.2.1 2010/09/20 10:15:17 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/afoaf.xml b/appsrc/ODS-Framework/afoaf.xml
index 9d4a134..3d5e6cc 100644
--- a/appsrc/ODS-Framework/afoaf.xml
+++ b/appsrc/ODS-Framework/afoaf.xml
@@ -1,12 +1,12 @@
 <?xml version ='1.0' encoding='UTF-8'?>
 <!--
  -
- -  $Id: afoaf.xml,v 1.5.2.1 2010/09/20 10:15:17 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/app.js b/appsrc/ODS-Framework/app.js
index 528b78b..3e62452 100644
--- a/appsrc/ODS-Framework/app.js
+++ b/appsrc/ODS-Framework/app.js
@@ -3,7 +3,7 @@
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2007 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/app.vspx b/appsrc/ODS-Framework/app.vspx
index 80974f6..7fbcd14 100644
--- a/appsrc/ODS-Framework/app.vspx
+++ b/appsrc/ODS-Framework/app.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: app.vspx,v 1.6.2.1 2010/09/20 10:15:17 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/app_inst.vspx b/appsrc/ODS-Framework/app_inst.vspx
index bbccd52..15edb7d 100644
--- a/appsrc/ODS-Framework/app_inst.vspx
+++ b/appsrc/ODS-Framework/app_inst.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: app_inst.vspx,v 1.19.2.1 2010/09/20 10:15:17 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/app_instance_limits.vspx b/appsrc/ODS-Framework/app_instance_limits.vspx
index a2758ca..93c175d 100644
--- a/appsrc/ODS-Framework/app_instance_limits.vspx
+++ b/appsrc/ODS-Framework/app_instance_limits.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: app_instance_limits.vspx,v 1.4.2.1 2010/09/20 10:15:17 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/app_menu.js b/appsrc/ODS-Framework/app_menu.js
index 96ec3b7..d2fe7e7 100644
--- a/appsrc/ODS-Framework/app_menu.js
+++ b/appsrc/ODS-Framework/app_menu.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: app_menu.js,v 1.3.2.1 2010/09/20 10:15:17 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/app_menu_settings.vspx b/appsrc/ODS-Framework/app_menu_settings.vspx
index 2d4b353..ef491ee 100644
--- a/appsrc/ODS-Framework/app_menu_settings.vspx
+++ b/appsrc/ODS-Framework/app_menu_settings.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: app_menu_settings.vspx,v 1.7.2.1 2010/09/20 10:15:18 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/app_my_inst.vspx b/appsrc/ODS-Framework/app_my_inst.vspx
index 85613d7..5119e6a 100644
--- a/appsrc/ODS-Framework/app_my_inst.vspx
+++ b/appsrc/ODS-Framework/app_my_inst.vspx
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: app_my_inst.vspx,v 1.21.2.1 2010/09/20 10:15:18 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/app_sent_inv.vspx b/appsrc/ODS-Framework/app_sent_inv.vspx
index 834fedd..d28b5e0 100644
--- a/appsrc/ODS-Framework/app_sent_inv.vspx
+++ b/appsrc/ODS-Framework/app_sent_inv.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: app_sent_inv.vspx,v 1.4.2.1 2010/09/20 10:15:18 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/app_settings.vspx b/appsrc/ODS-Framework/app_settings.vspx
index b269ffd..ddc4fc5 100644
--- a/appsrc/ODS-Framework/app_settings.vspx
+++ b/appsrc/ODS-Framework/app_settings.vspx
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: app_settings.vspx,v 1.10.2.3 2011/03/08 13:28:13 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/back_nav.vspx b/appsrc/ODS-Framework/back_nav.vspx
index d2f27be..351b136 100644
--- a/appsrc/ODS-Framework/back_nav.vspx
+++ b/appsrc/ODS-Framework/back_nav.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: back_nav.vspx,v 1.5.2.1 2010/09/20 10:15:18 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/cert.vsp b/appsrc/ODS-Framework/cert.vsp
index df7bede..a28659a 100644
--- a/appsrc/ODS-Framework/cert.vsp
+++ b/appsrc/ODS-Framework/cert.vsp
@@ -18,14 +18,14 @@
    sid := {?'sid'};
    if (get_keyword ('pubkey', params) is not null)
      {
-       declare exts any;
+       declare exts, login any;
        whenever not found goto nf;
        select U_NAME, U_FULL_NAME, U_E_MAIL, WAUI_BORG, WAUI_BCOUNTRY, U_ID 
          into uname, cn, mail, o, c, uid
        	 from SYS_USERS, WA_USER_INFO, VSPX_SESSION
       	where VS_SID = sid and VS_REALM = 'wa' and VS_UID = U_NAME and U_ID = WAUI_U_ID;
        webid := sioc..person_iri (sioc..user_obj_iri (uname));
-       
+
        pk := replace (get_keyword ('pubkey', params), '\r\n', '');
        pk := replace (pk, '\n', '');
        pk := replace (pk, '\r', '');
@@ -36,7 +36,7 @@
        mail := get_keyword ('email', params, mail);
        webid := get_keyword ('webid', params, webid);
        if (length (webid))
-         {  
+         {
 	   webid := 'URI:' || replace (webid, ',', '%2C');
 	   exts := vector ('subjectAltName', webid, 'nsComment', 'Virtuoso Generated Certificate');
          }
@@ -44,6 +44,8 @@
          {
 	   exts := vector ('nsComment', 'Virtuoso Generated Certificate');
 	 }
+       exts := vector_concat (exts, vector ('keyUsage', 'critical, digitalSignature,keyEncipherment',
+					    'extendedKeyUsage', 'critical, clientAuth,emailProtection'));
        days := atoi (get_keyword ('days', params, '365'));
        hours := atof (get_keyword ('hours', params, '0.0'));
        xenc_x509_generate ('id_rsa', kname, sequence_next ('ca_id_rsa'), days,
@@ -56,9 +58,10 @@
 			exts,
 		        hours);
        cvalue := xenc_pem_export (kname);
+       login := 1;
        insert into WA_USER_CERTS (UC_U_ID, UC_CERT, UC_FINGERPRINT, UC_LOGIN, UC_TS)
-		         values (uid, cvalue, get_certificate_info (6, cvalue, 0, ''), 0, now ());
-       http_rewrite (); 
+		         values (uid, cvalue, get_certificate_info (6, cvalue, 0, ''), login, now ());
+       http_rewrite ();
        http_header ('Content-Type: application/x-x509-user-cert\r\n');
        http (decode_base64 (xenc_X509_certificate_serialize (kname)));
        xenc_key_remove (kname);
@@ -74,40 +77,40 @@
 	 svc_url := (select  top 1 WS_CERT_GEN_URL from DB.DBA.WA_SETTINGS);
          if (length (svc_url)) {
          for select U_NAME, U_FULL_NAME, U_E_MAIL, WAUI_BORG, WAUI_BCOUNTRY from SYS_USERS, VSPX_SESSION, WA_USER_INFO
-      	where VS_SID = sid and VS_REALM = 'wa' and VS_UID = U_NAME and U_ID = WAUI_U_ID do 
+      	 where VS_SID = sid and VS_REALM = 'wa' and VS_UID = U_NAME and U_ID = WAUI_U_ID do
           {
             declare url varchar;
             webid := sioc..person_iri (sioc..user_obj_iri (U_NAME));
             url := sprintf ('%s?uri=%U&name=%U&email=%U&organization=%U',
-		svc_url, webid, coalesce (U_FULL_NAME, U_NAME), coalesce (U_E_MAIL, ''), coalesce (WAUI_BORG, '')); 
-	
+		svc_url, webid, coalesce (U_FULL_NAME, U_NAME), coalesce (U_E_MAIL, ''), coalesce (WAUI_BORG, ''));
+
      ?>
      <form>
 	<div>
- 	  <a class="button" href='<?vsp http (url); ?>'>Generate</a>	
+ 	  <a class="button" href='<?vsp http (url); ?>'>Generate</a>
         </div>
      </form>
-     	     
+
      <?vsp
-       }
-	 } 
+	   }
+	 }
 	else if (regexp_match ('Mozilla.*Windows.*Firefox.*\.NET CLR .*', ua) is not null)
 	  goto make_cert;
-        else 
-	 {  ?>Certificate & Key Generation Not Supported. You can export a PKCS12 file produced by other browsers instead <?vsp } 
+        else
+	 {  ?>Certificate & Key Generation Not Supported. You can export a PKCS12 file produced by other browsers instead <?vsp }
        }
        else
        {
  	 make_cert:;
          for select U_NAME, U_FULL_NAME, U_E_MAIL, WAUI_BORG, WAUI_BCOUNTRY from SYS_USERS, VSPX_SESSION, WA_USER_INFO
-      	    where VS_SID = sid and VS_REALM = 'wa' and VS_UID = U_NAME and U_ID = WAUI_U_ID do 
+      	    where VS_SID = sid and VS_REALM = 'wa' and VS_UID = U_NAME and U_ID = WAUI_U_ID do
 	    {
 	      cn := coalesce (U_FULL_NAME, U_NAME);
               webid := sioc..person_iri (sioc..user_obj_iri (U_NAME));
 	      mail := coalesce (U_E_MAIL, '');
 	      o := WAUI_BORG;
               c := WAUI_BCOUNTRY;
-              
+
 	    }
      ?>
      <form>
@@ -115,7 +118,7 @@
 	 <table border="0">
 	     <tr>
 		 <td nowrap="1">
-		     Common Name: 
+		     Common Name:
 		 </td>
 		 <td>
 		     <input type="text" name="cn" value="<?V cn ?>" size="50"/>
@@ -123,7 +126,7 @@
 	     </tr>
 	     <tr>
 		 <td nowrap="1">
-		     Country: 
+		     Country:
 		 </td>
 		 <td>
 		     <input type="text" name="c" value="<?V c ?>" size="50"/>
@@ -131,7 +134,7 @@
 	     </tr>
 	     <tr>
 		 <td nowrap="1">
-		     Organization: 
+		     Organization:
 		 </td>
 		 <td>
 		     <input type="text" name="o" value="<?V o ?>" size="50"/>
@@ -147,7 +150,7 @@
 	     </tr>
 	     <tr>
 		 <td>
-		     WebID:       
+		     WebID:
 		 </td>
 		 <td>
 		     <input type="text" name="webid" value="<?V webid ?>" size="80" />
@@ -155,7 +158,7 @@
 	     </tr>
 	     <tr>
 		 <td>
-		     Key strength: 
+		     Key strength:
 		 </td>
 		 <td>
 		     <keygen name="pubkey" />
@@ -163,7 +166,7 @@
 	     </tr>
 	     <tr>
 		 <td rowspan="2">
-		     Valid for 
+		     Valid for
 		 </td>
 		 <td>
 		     <input type="text" name="hours" value="0.0" size="4"/> hours
diff --git a/appsrc/ODS-Framework/ckeditor/ckeditor.js b/appsrc/ODS-Framework/ckeditor/ckeditor.js
index bd85726..4c8557b 100644
--- a/appsrc/ODS-Framework/ckeditor/ckeditor.js
+++ b/appsrc/ODS-Framework/ckeditor/ckeditor.js
@@ -1,147 +1,151 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
-(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'B5GJ5GG',version:'3.6.1',revision:'7072',_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f<e.length;f++){var g=e[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(g){d=g[1];break;}}}if(d.indexOf(':/')==-1)if(d.indexOf('/')===0)d=location.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else d=location.href.match(/^[^\?]*\/(?:)/)[0]+d;if(!d)throw 'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return d;})(),getUrl:function(d){if(d.indexOf(':/')==-1&&d.indexOf('/')!==0)d=this.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!='/'&&!/[&?]t=/.test(d))d+=(d.indexOf('?')>=0?'&':'?')+'t='+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})();var a=CKEDITOR;if(!a.event){a.event=function(){};a.event.implementOn=function(b){var c=a.event.prototype;for(var d in c){if(b[d]==undefined)b[d]=c[d];}};a.event.prototype=(function(){var b=function(d){var e=d.getPrivate&&d.getPrivate()||d._||(d._={});return e.events||(e.events={});},c=function(d){this.name=d;this.listeners=[];};c.prototype={getListenerIndex:function(d){for(var e=0,f=this.listeners;e<f.length;e++){if(f[e].fn==d)return e;}return-1;}};return{on:function(d,e,f,g,h){var i=b(this),j=i[d]||(i[d]=new c(d));if(j.getListenerIndex(e)<0){var k=j.listeners;if(!f)f=this;if(isNaN(h))h=10;var l=this,m=function(o,p,q,r){var s={name:d,sender:this,editor:o,data:p,listenerData:g,stop:q,cancel:r,removeListener:function(){l.removeListener(d,e);}};e.call(f,s);return s.data;};m.fn=e;m.priority=h;for(var n=k.length-1;n>=0;n--){if(k[n].priority<=h){k.splice(n+1,0,m);return;}}k.unshift(m);}},fire:(function(){var d=false,e=function(){d=true;},f=false,g=function(){f=true;};return function(h,i,j){var k=b(this)[h],l=d,m=f;d=f=false;if(k){var n=k.listeners;if(n.length){n=n.slice(0);for(var o=0;o<n.length;o++){var p=n[o].call(this,j,i,e,g);if(typeof p!='undefined')i=p;if(d||f)break;}}}var q=f||(typeof i=='undefined'?false:i);d=l;f=m;return q;};})(),fireOnce:function(d,e,f){var g=this.fire(d,e,f);delete b(this)[d];return g;},removeListener:function(d,e){var f=b(this)[d];if(f){var g=f.getListenerIndex(e);if(g>=0)f.listeners.splice(g,1);
-}},hasListeners:function(d){var e=b(this)[d];return e&&e.listeners.length>0;}};})();}if(!a.editor){a.ELEMENT_MODE_NONE=0;a.ELEMENT_MODE_REPLACE=1;a.ELEMENT_MODE_APPENDTO=2;a.editor=function(b,c,d,e){var f=this;f._={instanceConfig:b,element:c,data:e};f.elementMode=d||0;a.event.call(f);f._init();};a.editor.replace=function(b,c){var d=b;if(typeof d!='object'){d=document.getElementById(b);if(d&&d.tagName.toLowerCase() in {style:1,script:1,base:1,link:1,meta:1,title:1})d=null;if(!d){var e=0,f=document.getElementsByName(b);while((d=f[e++])&&d.tagName.toLowerCase()!='textarea'){}}if(!d)throw '[CKEDITOR.editor.replace] The element with id or name "'+b+'" was not found.';}d.style.visibility='hidden';return new a.editor(c,d,1);};a.editor.appendTo=function(b,c,d){var e=b;if(typeof e!='object'){e=document.getElementById(b);if(!e)throw '[CKEDITOR.editor.appendTo] The element with id "'+b+'" was not found.';}return new a.editor(c,e,2,d);};a.editor.prototype={_init:function(){var b=a.editor._pending||(a.editor._pending=[]);b.push(this);},fire:function(b,c){return a.event.prototype.fire.call(this,b,c,this);},fireOnce:function(b,c){return a.event.prototype.fireOnce.call(this,b,c,this);}};a.event.implementOn(a.editor.prototype,true);}if(!a.env)a.env=(function(){var b=navigator.userAgent.toLowerCase(),c=window.opera,d={ie:/*@cc_on!@*/false,opera:!!c&&c.version,webkit:b.indexOf(' applewebkit/')>-1,air:b.indexOf(' adobeair/')>-1,mac:b.indexOf('macintosh')>-1,quirks:document.compatMode=='BackCompat',mobile:b.indexOf('mobile')>-1,isCustomDomain:function(){if(!this.ie)return false;var g=document.domain,h=window.location.hostname;return g!=h&&g!='['+h+']';},secure:location.protocol=='https:'};d.gecko=navigator.product=='Gecko'&&!d.webkit&&!d.opera;var e=0;if(d.ie){e=parseFloat(b.match(/msie (\d+)/)[1]);d.ie8=!!document.documentMode;d.ie8Compat=document.documentMode==8;d.ie9Compat=document.documentMode==9;d.ie7Compat=e==7&&!document.documentMode||document.documentMode==7;d.ie6Compat=e<7||d.quirks;}if(d.gecko){var f=b.match(/rv:([\d\.]+)/);if(f){f=f[1].split('.');e=f[0]*10000+(f[1]||0)*100+ +(f[2]||0);}}if(d.opera)e=parseFloat(c.version());if(d.air)e=parseFloat(b.match(/ adobeair\/(\d+)/)[1]);if(d.webkit)e=parseFloat(b.match(/ applewebkit\/(\d+)/)[1]);d.version=e;d.isCompatible=!d.mobile&&(d.ie&&e>=6||d.gecko&&e>=10801||d.opera&&e>=9.5||d.air&&e>=1||d.webkit&&e>=522||false);d.cssClass='cke_browser_'+(d.ie?'ie':d.gecko?'gecko':d.opera?'opera':d.webkit?'webkit':'unknown');
+(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'C3HA5RM',version:'3.6.3',revision:'7474',rnd:Math.floor(Math.random()*900)+100,_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f<e.length;f++){var g=e[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(g){d=g[1];break;}}}if(d.indexOf(':/')==-1)if(d.indexOf('/')===0)d=location.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else d=location.href.match(/^[^\?]*\/(?:)/)[0]+d;if(!d)throw 'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return d;})(),getUrl:function(d){if(d.indexOf(':/')==-1&&d.indexOf('/')!==0)d=this.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!='/'&&!/[&?]t=/.test(d))d+=(d.indexOf('?')>=0?'&':'?')+'t='+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})();var a=CKEDITOR;if(!a.event){a.event=function(){};a.event.implementOn=function(b){var c=a.event.prototype;for(var d in c){if(b[d]==undefined)b[d]=c[d];}};a.event.prototype=(function(){var b=function(d){var e=d.getPrivate&&d.getPrivate()||d._||(d._={});return e.events||(e.events={});},c=function(d){this.name=d;this.listeners=[];};c.prototype={getListenerIndex:function(d){for(var e=0,f=this.listeners;e<f.length;e++){if(f[e].fn==d)return e;}return-1;}};return{on:function(d,e,f,g,h){var i=b(this),j=i[d]||(i[d]=new c(d));if(j.getListenerIndex(e)<0){var k=j.listeners;if(!f)f=this;if(isNaN(h))h=10;var l=this,m=function(o,p,q,r){var s={name:d,sender:this,editor:o,data:p,listenerData:g,stop:q,cancel:r,removeListener:function(){l.removeListener(d,e);}};e.call(f,s);return s.data;};m.fn=e;m.priority=h;for(var n=k.length-1;n>=0;n--){if(k[n].priority<=h){k.splice(n+1,0,m);return;}}k.unshift(m);}},fire:(function(){var d=false,e=function(){d=true;},f=false,g=function(){f=true;};return function(h,i,j){var k=b(this)[h],l=d,m=f;d=f=false;if(k){var n=k.listeners;if(n.length){n=n.slice(0);for(var o=0;o<n.length;o++){var p=n[o].call(this,j,i,e,g);if(typeof p!='undefined')i=p;if(d||f)break;}}}var q=f||(typeof i=='undefined'?false:i);d=l;f=m;return q;};})(),fireOnce:function(d,e,f){var g=this.fire(d,e,f);delete b(this)[d];return g;},removeListener:function(d,e){var f=b(this)[d];if(f){var g=f.getListenerIndex(e);
+if(g>=0)f.listeners.splice(g,1);}},hasListeners:function(d){var e=b(this)[d];return e&&e.listeners.length>0;}};})();}if(!a.editor){a.ELEMENT_MODE_NONE=0;a.ELEMENT_MODE_REPLACE=1;a.ELEMENT_MODE_APPENDTO=2;a.editor=function(b,c,d,e){var f=this;f._={instanceConfig:b,element:c,data:e};f.elementMode=d||0;a.event.call(f);f._init();};a.editor.replace=function(b,c){var d=b;if(typeof d!='object'){d=document.getElementById(b);if(d&&d.tagName.toLowerCase() in {style:1,script:1,base:1,link:1,meta:1,title:1})d=null;if(!d){var e=0,f=document.getElementsByName(b);while((d=f[e++])&&d.tagName.toLowerCase()!='textarea'){}}if(!d)throw '[CKEDITOR.editor.replace] The element with id or name "'+b+'" was not found.';}d.style.visibility='hidden';return new a.editor(c,d,1);};a.editor.appendTo=function(b,c,d){var e=b;if(typeof e!='object'){e=document.getElementById(b);if(!e)throw '[CKEDITOR.editor.appendTo] The element with id "'+b+'" was not found.';}return new a.editor(c,e,2,d);};a.editor.prototype={_init:function(){var b=a.editor._pending||(a.editor._pending=[]);b.push(this);},fire:function(b,c){return a.event.prototype.fire.call(this,b,c,this);},fireOnce:function(b,c){return a.event.prototype.fireOnce.call(this,b,c,this);}};a.event.implementOn(a.editor.prototype,true);}if(!a.env)a.env=(function(){var b=navigator.userAgent.toLowerCase(),c=window.opera,d={ie:/*@cc_on!@*/false,opera:!!c&&c.version,webkit:b.indexOf(' applewebkit/')>-1,air:b.indexOf(' adobeair/')>-1,mac:b.indexOf('macintosh')>-1,quirks:document.compatMode=='BackCompat',mobile:b.indexOf('mobile')>-1,iOS:/(ipad|iphone|ipod)/.test(b),isCustomDomain:function(){if(!this.ie)return false;var g=document.domain,h=window.location.hostname;return g!=h&&g!='['+h+']';},secure:location.protocol=='https:'};d.gecko=navigator.product=='Gecko'&&!d.webkit&&!d.opera;var e=0;if(d.ie){e=parseFloat(b.match(/msie (\d+)/)[1]);d.ie8=!!document.documentMode;d.ie8Compat=document.documentMode==8;d.ie9Compat=document.documentMode==9;d.ie7Compat=e==7&&!document.documentMode||document.documentMode==7;d.ie6Compat=e<7||d.quirks;}if(d.gecko){var f=b.match(/rv:([\d\.]+)/);if(f){f=f[1].split('.');e=f[0]*10000+(f[1]||0)*100+ +(f[2]||0);}}if(d.opera)e=parseFloat(c.version());if(d.air)e=parseFloat(b.match(/ adobeair\/(\d+)/)[1]);if(d.webkit)e=parseFloat(b.match(/ applewebkit\/(\d+)/)[1]);d.version=e;d.isCompatible=d.iOS&&e>=534||!d.mobile&&(d.ie&&e>=6||d.gecko&&e>=10801||d.opera&&e>=9.5||d.air&&e>=1||d.webkit&&e>=522||false);d.cssClass='cke_browser_'+(d.ie?'ie':d.gecko?'gecko':d.opera?'opera':d.webkit?'webkit':'unknown');
 if(d.quirks)d.cssClass+=' cke_browser_quirks';if(d.ie){d.cssClass+=' cke_browser_ie'+(d.version<7?'6':d.version>=8?document.documentMode:'7');if(d.quirks)d.cssClass+=' cke_browser_iequirks';}if(d.gecko&&e<10900)d.cssClass+=' cke_browser_gecko18';if(d.air)d.cssClass+=' cke_browser_air';return d;})();var b=a.env;var c=b.ie;if(a.status=='unloaded')(function(){a.event.implementOn(a);a.loadFullCore=function(){if(a.status!='basic_ready'){a.loadFullCore._load=1;return;}delete a.loadFullCore;var e=document.createElement('script');e.type='text/javascript';e.src=a.basePath+'ckeditor.js';document.getElementsByTagName('head')[0].appendChild(e);};a.loadFullCoreTimeout=0;a.replaceClass='ckeditor';a.replaceByClassEnabled=1;var d=function(e,f,g,h){if(b.isCompatible){if(a.loadFullCore)a.loadFullCore();var i=g(e,f,h);a.add(i);return i;}return null;};a.replace=function(e,f){return d(e,f,a.editor.replace);};a.appendTo=function(e,f,g){return d(e,f,a.editor.appendTo,g);};a.add=function(e){var f=this._.pending||(this._.pending=[]);f.push(e);};a.replaceAll=function(){var e=document.getElementsByTagName('textarea');for(var f=0;f<e.length;f++){var g=null,h=e[f];if(!h.name&&!h.id)continue;if(typeof arguments[0]=='string'){var i=new RegExp('(?:^|\\s)'+arguments[0]+'(?:$|\\s)');if(!i.test(h.className))continue;}else if(typeof arguments[0]=='function'){g={};if(arguments[0](h,g)===false)continue;}this.replace(h,g);}};(function(){var e=function(){var f=a.loadFullCore,g=a.loadFullCoreTimeout;if(a.replaceByClassEnabled)a.replaceAll(a.replaceClass);a.status='basic_ready';if(f&&f._load)f();else if(g)setTimeout(function(){if(a.loadFullCore)a.loadFullCore();},g*1000);};if(window.addEventListener)window.addEventListener('load',e,false);else if(window.attachEvent)window.attachEvent('onload',e);})();a.status='basic_loaded';})();a.dom={};var d=a.dom;(function(){var e=[];a.on('reset',function(){e=[];});a.tools={arrayCompare:function(f,g){if(!f&&!g)return true;if(!f||!g||f.length!=g.length)return false;for(var h=0;h<f.length;h++){if(f[h]!=g[h])return false;}return true;},clone:function(f){var g;if(f&&f instanceof Array){g=[];for(var h=0;h<f.length;h++)g[h]=this.clone(f[h]);return g;}if(f===null||typeof f!='object'||f instanceof String||f instanceof Number||f instanceof Boolean||f instanceof Date||f instanceof RegExp)return f;g=new f.constructor();for(var i in f){var j=f[i];g[i]=this.clone(j);}return g;},capitalize:function(f){return f.charAt(0).toUpperCase()+f.substring(1).toLowerCase();},extend:function(f){var g=arguments.length,h,i;
 if(typeof (h=arguments[g-1])=='boolean')g--;else if(typeof (h=arguments[g-2])=='boolean'){i=arguments[g-1];g-=2;}for(var j=1;j<g;j++){var k=arguments[j];for(var l in k){if(h===true||f[l]==undefined)if(!i||l in i)f[l]=k[l];}}return f;},prototypedCopy:function(f){var g=function(){};g.prototype=f;return new g();},isArray:function(f){return!!f&&f instanceof Array;},isEmpty:function(f){for(var g in f){if(f.hasOwnProperty(g))return false;}return true;},cssStyleToDomStyle:(function(){var f=document.createElement('div').style,g=typeof f.cssFloat!='undefined'?'cssFloat':typeof f.styleFloat!='undefined'?'styleFloat':'float';return function(h){if(h=='float')return g;else return h.replace(/-./g,function(i){return i.substr(1).toUpperCase();});};})(),buildStyleHtml:function(f){f=[].concat(f);var g,h=[];for(var i=0;i<f.length;i++){g=f[i];if(/@import|[{}]/.test(g))h.push('<style>'+g+'</style>');else h.push('<link type="text/css" rel=stylesheet href="'+g+'">');}return h.join('');},htmlEncode:function(f){var g=function(k){var l=new d.element('span');l.setText(k);return l.getHtml();},h=g('\n').toLowerCase()=='<br>'?function(k){return g(k).replace(/<br>/gi,'\n');}:g,i=g('>')=='>'?function(k){return h(k).replace(/>/g,'>');}:h,j=g('  ')=='  '?function(k){return i(k).replace(/ /g,' ');}:i;this.htmlEncode=j;return this.htmlEncode(f);},htmlEncodeAttr:function(f){return f.replace(/"/g,'"').replace(/</g,'<').replace(/>/g,'>');},getNextNumber:(function(){var f=0;return function(){return++f;};})(),getNextId:function(){return 'cke_'+this.getNextNumber();},override:function(f,g){return g(f);},setTimeout:function(f,g,h,i,j){if(!j)j=window;if(!h)h=j;return j.setTimeout(function(){if(i)f.apply(h,[].concat(i));else f.apply(h);},g||0);},trim:(function(){var f=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(g){return g.replace(f,'');};})(),ltrim:(function(){var f=/^[ \t\n\r]+/g;return function(g){return g.replace(f,'');};})(),rtrim:(function(){var f=/[ \t\n\r]+$/g;return function(g){return g.replace(f,'');};})(),indexOf:Array.prototype.indexOf?function(f,g){return f.indexOf(g);}:function(f,g){for(var h=0,i=f.length;h<i;h++){if(f[h]===g)return h;}return-1;},bind:function(f,g){return function(){return f.apply(g,arguments);};},createClass:function(f){var g=f.$,h=f.base,i=f.privates||f._,j=f.proto,k=f.statics;if(i){var l=g;g=function(){var p=this;var m=p._||(p._={});for(var n in i){var o=i[n];m[n]=typeof o=='function'?a.tools.bind(o,p):o;}l.apply(p,arguments);};}if(h){g.prototype=this.prototypedCopy(h.prototype);
 g.prototype['constructor']=g;g.prototype.base=function(){this.base=h.prototype.base;h.apply(this,arguments);this.base=arguments.callee;};}if(j)this.extend(g.prototype,j,true);if(k)this.extend(g,k,true);return g;},addFunction:function(f,g){return e.push(function(){return f.apply(g||this,arguments);})-1;},removeFunction:function(f){e[f]=null;},callFunction:function(f){var g=e[f];return g&&g.apply(window,Array.prototype.slice.call(arguments,1));},cssLength:(function(){return function(f){return f+(!f||isNaN(Number(f))?'':'px');};})(),convertToPx:(function(){var f;return function(g){if(!f){f=d.element.createFromHtml('<div style="position:absolute;left:-9999px;top:-9999px;margin:0px;padding:0px;border:0px;"></div>',a.document);a.document.getBody().append(f);}if(!/%$/.test(g)){f.setStyle('width',g);return f.$.clientWidth;}return g;};})(),repeat:function(f,g){return new Array(g+1).join(f);},tryThese:function(){var f;for(var g=0,h=arguments.length;g<h;g++){var i=arguments[g];try{f=i();break;}catch(j){}}return f;},genKey:function(){return Array.prototype.slice.call(arguments).join('-');}};})();var e=a.tools;a.dtd=(function(){var f=e.extend,g={isindex:1,fieldset:1},h={input:1,button:1,select:1,textarea:1,label:1},i=f({a:1},h),j=f({iframe:1},i),k={hr:1,ul:1,menu:1,div:1,section:1,header:1,footer:1,nav:1,article:1,aside:1,figure:1,dialog:1,hgroup:1,mark:1,time:1,meter:1,command:1,keygen:1,output:1,progress:1,audio:1,video:1,details:1,datagrid:1,datalist:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1},l={ins:1,del:1,script:1,style:1},m=f({b:1,acronym:1,bdo:1,'var':1,'#':1,abbr:1,code:1,br:1,i:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span:1,wbr:1},l),n=f({sub:1,img:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1,mark:1},m),o=f({p:1},n),p=f({iframe:1},n,h),q={img:1,noscript:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h1:1,h3:1,h2:1,form:1,font:1,'#':1,select:1,menu:1,ins:1,abbr:1,label:1,code:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframes:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,'var':1,div:1,section:1,header:1,footer:1,nav:1,article:1,aside:1,figure:1,dialog:1,hgroup:1,mark:1,time:1,meter:1,menu:1,command:1,keygen:1,output:1,progress:1,audio:1,video:1,details:1,datagrid:1,datalist:1,object:1,sup:1,strike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acronym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:1},r=f({a:1},p),s={tr:1},t={'#':1},u=f({param:1},q),v=f({form:1},g,j,k,o),w={li:1},x={style:1,script:1},y={base:1,link:1,meta:1,title:1},z=f(y,x),A={head:1,body:1},B={html:1},C={address:1,blockquote:1,center:1,dir:1,div:1,section:1,header:1,footer:1,nav:1,article:1,aside:1,figure:1,dialog:1,hgroup:1,time:1,meter:1,menu:1,command:1,keygen:1,output:1,progress:1,audio:1,video:1,details:1,datagrid:1,datalist:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,isindex:1,noframes:1,ol:1,p:1,pre:1,table:1,ul:1};
 return{$nonBodyContent:f(B,A,y),$block:C,$blockLimit:{body:1,div:1,section:1,header:1,footer:1,nav:1,article:1,aside:1,figure:1,dialog:1,hgroup:1,time:1,meter:1,menu:1,command:1,keygen:1,output:1,progress:1,audio:1,video:1,details:1,datagrid:1,datalist:1,td:1,th:1,caption:1,form:1},$inline:r,$body:f({script:1,style:1},C),$cdata:{script:1,style:1},$empty:{area:1,base:1,br:1,col:1,hr:1,img:1,input:1,link:1,meta:1,param:1,wbr:1},$listItem:{dd:1,dt:1,li:1},$list:{ul:1,ol:1,dl:1},$nonEditable:{applet:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,script:1,textarea:1,param:1,audio:1,video:1},$captionBlock:{caption:1,legend:1},$removeEmpty:{abbr:1,acronym:1,address:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,s:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1,mark:1},$tabIndex:{a:1,area:1,button:1,input:1,object:1,select:1,textarea:1},$tableContent:{caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1},html:A,head:z,style:t,script:t,body:v,base:{},link:{},meta:{},title:t,col:{},tr:{td:1,th:1},img:{},colgroup:{col:1},noscript:v,td:v,br:{},wbr:{},th:v,center:v,kbd:r,button:f(o,k),basefont:{},h5:r,h4:r,samp:r,h6:r,ol:w,h1:r,h3:r,option:t,h2:r,form:f(g,j,k,o),select:{optgroup:1,option:1},font:r,ins:r,menu:w,abbr:r,label:r,table:{thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1},code:r,tfoot:s,cite:r,li:v,input:{},iframe:v,strong:r,textarea:t,noframes:v,big:r,small:r,span:r,hr:{},dt:r,sub:r,optgroup:{option:1},param:{},bdo:r,'var':r,div:v,object:u,sup:r,dd:v,strike:r,area:{},dir:w,map:f({area:1,form:1,p:1},g,l,k),applet:u,dl:{dt:1,dd:1},del:r,isindex:{},fieldset:f({legend:1},q),thead:s,ul:w,acronym:r,b:r,a:p,blockquote:v,caption:r,i:r,u:r,tbody:s,s:r,address:f(j,o),tt:r,legend:r,q:r,pre:f(m,i),p:r,em:r,dfn:r,section:v,header:v,footer:v,nav:v,article:v,aside:v,figure:v,dialog:v,hgroup:v,mark:r,time:r,meter:r,menu:r,command:r,keygen:r,output:r,progress:u,audio:u,video:u,details:u,datagrid:u,datalist:u};})();var f=a.dtd;d.event=function(g){this.$=g;};d.event.prototype={getKey:function(){return this.$.keyCode||this.$.which;},getKeystroke:function(){var h=this;var g=h.getKey();if(h.$.ctrlKey||h.$.metaKey)g+=1114112;if(h.$.shiftKey)g+=2228224;if(h.$.altKey)g+=4456448;return g;},preventDefault:function(g){var h=this.$;if(h.preventDefault)h.preventDefault();else h.returnValue=false;if(g)this.stopPropagation();},stopPropagation:function(){var g=this.$;if(g.stopPropagation)g.stopPropagation();else g.cancelBubble=true;
-},getTarget:function(){var g=this.$.target||this.$.srcElement;return g?new d.node(g):null;}};a.CTRL=1114112;a.SHIFT=2228224;a.ALT=4456448;d.domObject=function(g){if(g)this.$=g;};d.domObject.prototype=(function(){var g=function(h,i){return function(j){if(typeof a!='undefined')h.fire(i,new d.event(j));};};return{getPrivate:function(){var h;if(!(h=this.getCustomData('_')))this.setCustomData('_',h={});return h;},on:function(h){var k=this;var i=k.getCustomData('_cke_nativeListeners');if(!i){i={};k.setCustomData('_cke_nativeListeners',i);}if(!i[h]){var j=i[h]=g(k,h);if(k.$.attachEvent)k.$.attachEvent('on'+h,j);else if(k.$.addEventListener)k.$.addEventListener(h,j,!!a.event.useCapture);}return a.event.prototype.on.apply(k,arguments);},removeListener:function(h){var k=this;a.event.prototype.removeListener.apply(k,arguments);if(!k.hasListeners(h)){var i=k.getCustomData('_cke_nativeListeners'),j=i&&i[h];if(j){if(k.$.detachEvent)k.$.detachEvent('on'+h,j);else if(k.$.removeEventListener)k.$.removeEventListener(h,j,false);delete i[h];}}},removeAllListeners:function(){var k=this;var h=k.getCustomData('_cke_nativeListeners');for(var i in h){var j=h[i];if(k.$.detachEvent)k.$.detachEvent('on'+i,j);else if(k.$.removeEventListener)k.$.removeEventListener(i,j,false);delete h[i];}}};})();(function(g){var h={};a.on('reset',function(){h={};});g.equals=function(i){return i&&i.$===this.$;};g.setCustomData=function(i,j){var k=this.getUniqueId(),l=h[k]||(h[k]={});l[i]=j;return this;};g.getCustomData=function(i){var j=this.$['data-cke-expando'],k=j&&h[j];return k&&k[i];};g.removeCustomData=function(i){var j=this.$['data-cke-expando'],k=j&&h[j],l=k&&k[i];if(typeof l!='undefined')delete k[i];return l||null;};g.clearCustomData=function(){this.removeAllListeners();var i=this.$['data-cke-expando'];i&&delete h[i];};g.getUniqueId=function(){return this.$['data-cke-expando']||(this.$['data-cke-expando']=e.getNextNumber());};a.event.implementOn(g);})(d.domObject.prototype);d.window=function(g){d.domObject.call(this,g);};d.window.prototype=new d.domObject();e.extend(d.window.prototype,{focus:function(){if(b.webkit&&this.$.parent)this.$.parent.focus();this.$.focus();},getViewPaneSize:function(){var g=this.$.document,h=g.compatMode=='CSS1Compat';return{width:(h?g.documentElement.clientWidth:g.body.clientWidth)||0,height:(h?g.documentElement.clientHeight:g.body.clientHeight)||0};},getScrollPosition:function(){var g=this.$;if('pageXOffset' in g)return{x:g.pageXOffset||0,y:g.pageYOffset||0};else{var h=g.document;
-return{x:h.documentElement.scrollLeft||h.body.scrollLeft||0,y:h.documentElement.scrollTop||h.body.scrollTop||0};}}});d.document=function(g){d.domObject.call(this,g);};var g=d.document;g.prototype=new d.domObject();e.extend(g.prototype,{appendStyleSheet:function(h){if(this.$.createStyleSheet)this.$.createStyleSheet(h);else{var i=new d.element('link');i.setAttributes({rel:'stylesheet',type:'text/css',href:h});this.getHead().append(i);}},appendStyleText:function(h){var k=this;if(k.$.createStyleSheet){var i=k.$.createStyleSheet('');i.cssText=h;}else{var j=new d.element('style',k);j.append(new d.text(h,k));k.getHead().append(j);}},createElement:function(h,i){var j=new d.element(h,this);if(i){if(i.attributes)j.setAttributes(i.attributes);if(i.styles)j.setStyles(i.styles);}return j;},createText:function(h){return new d.text(h,this);},focus:function(){this.getWindow().focus();},getById:function(h){var i=this.$.getElementById(h);return i?new d.element(i):null;},getByAddress:function(h,i){var j=this.$.documentElement;for(var k=0;j&&k<h.length;k++){var l=h[k];if(!i){j=j.childNodes[l];continue;}var m=-1;for(var n=0;n<j.childNodes.length;n++){var o=j.childNodes[n];if(i===true&&o.nodeType==3&&o.previousSibling&&o.previousSibling.nodeType==3)continue;m++;if(m==l){j=o;break;}}}return j?new d.node(j):null;},getElementsByTag:function(h,i){if(!(c&&!(document.documentMode>8))&&i)h=i+':'+h;return new d.nodeList(this.$.getElementsByTagName(h));},getHead:function(){var h=this.$.getElementsByTagName('head')[0];if(!h)h=this.getDocumentElement().append(new d.element('head'),true);else h=new d.element(h);return(this.getHead=function(){return h;})();},getBody:function(){var h=new d.element(this.$.body);return(this.getBody=function(){return h;})();},getDocumentElement:function(){var h=new d.element(this.$.documentElement);return(this.getDocumentElement=function(){return h;})();},getWindow:function(){var h=new d.window(this.$.parentWindow||this.$.defaultView);return(this.getWindow=function(){return h;})();},write:function(h){var i=this;i.$.open('text/html','replace');b.isCustomDomain()&&(i.$.domain=document.domain);i.$.write(h);i.$.close();}});d.node=function(h){if(h){switch(h.nodeType){case 9:return new g(h);case 1:return new d.element(h);case 3:return new d.text(h);}d.domObject.call(this,h);}return this;};d.node.prototype=new d.domObject();a.NODE_ELEMENT=1;a.NODE_DOCUMENT=9;a.NODE_TEXT=3;a.NODE_COMMENT=8;a.NODE_DOCUMENT_FRAGMENT=11;a.POSITION_IDENTICAL=0;a.POSITION_DISCONNECTED=1;a.POSITION_FOLLOWING=2;
-a.POSITION_PRECEDING=4;a.POSITION_IS_CONTAINED=8;a.POSITION_CONTAINS=16;e.extend(d.node.prototype,{appendTo:function(h,i){h.append(this,i);return h;},clone:function(h,i){var j=this.$.cloneNode(h),k=function(l){if(l.nodeType!=1)return;if(!i)l.removeAttribute('id',false);l.removeAttribute('data-cke-expando',false);if(h){var m=l.childNodes;for(var n=0;n<m.length;n++)k(m[n]);}};k(j);return new d.node(j);},hasPrevious:function(){return!!this.$.previousSibling;},hasNext:function(){return!!this.$.nextSibling;},insertAfter:function(h){h.$.parentNode.insertBefore(this.$,h.$.nextSibling);return h;},insertBefore:function(h){h.$.parentNode.insertBefore(this.$,h.$);return h;},insertBeforeMe:function(h){this.$.parentNode.insertBefore(h.$,this.$);return h;},getAddress:function(h){var i=[],j=this.getDocument().$.documentElement,k=this.$;while(k&&k!=j){var l=k.parentNode;if(l)i.unshift(this.getIndex.call({$:k},h));k=l;}return i;},getDocument:function(){return new g(this.$.ownerDocument||this.$.parentNode.ownerDocument);},getIndex:function(h){var i=this.$,j=0;while(i=i.previousSibling){if(h&&i.nodeType==3&&(!i.nodeValue.length||i.previousSibling&&i.previousSibling.nodeType==3))continue;j++;}return j;},getNextSourceNode:function(h,i,j){if(j&&!j.call){var k=j;j=function(n){return!n.equals(k);};}var l=!h&&this.getFirst&&this.getFirst(),m;if(!l){if(this.type==1&&j&&j(this,true)===false)return null;l=this.getNext();}while(!l&&(m=(m||this).getParent())){if(j&&j(m,true)===false)return null;l=m.getNext();}if(!l)return null;if(j&&j(l)===false)return null;if(i&&i!=l.type)return l.getNextSourceNode(false,i,j);return l;},getPreviousSourceNode:function(h,i,j){if(j&&!j.call){var k=j;j=function(n){return!n.equals(k);};}var l=!h&&this.getLast&&this.getLast(),m;if(!l){if(this.type==1&&j&&j(this,true)===false)return null;l=this.getPrevious();}while(!l&&(m=(m||this).getParent())){if(j&&j(m,true)===false)return null;l=m.getPrevious();}if(!l)return null;if(j&&j(l)===false)return null;if(i&&l.type!=i)return l.getPreviousSourceNode(false,i,j);return l;},getPrevious:function(h){var i=this.$,j;do{i=i.previousSibling;j=i&&new d.node(i);}while(j&&h&&!h(j));return j;},getNext:function(h){var i=this.$,j;do{i=i.nextSibling;j=i&&new d.node(i);}while(j&&h&&!h(j));return j;},getParent:function(){var h=this.$.parentNode;return h&&h.nodeType==1?new d.node(h):null;},getParents:function(h){var i=this,j=[];do j[h?'push':'unshift'](i);while(i=i.getParent());return j;},getCommonAncestor:function(h){var j=this;if(h.equals(j))return j;
-if(h.contains&&h.contains(j))return h;var i=j.contains?j:j.getParent();do{if(i.contains(h))return i;}while(i=i.getParent());return null;},getPosition:function(h){var i=this.$,j=h.$;if(i.compareDocumentPosition)return i.compareDocumentPosition(j);if(i==j)return 0;if(this.type==1&&h.type==1){if(i.contains){if(i.contains(j))return 16+4;if(j.contains(i))return 8+2;}if('sourceIndex' in i)return i.sourceIndex<0||j.sourceIndex<0?1:i.sourceIndex<j.sourceIndex?4:2;}var k=this.getAddress(),l=h.getAddress(),m=Math.min(k.length,l.length);for(var n=0;n<=m-1;n++){if(k[n]!=l[n]){if(n<m)return k[n]<l[n]?4:2;break;}}return k.length<l.length?16+4:8+2;},getAscendant:function(h,i){var j=this.$,k;if(!i)j=j.parentNode;while(j){if(j.nodeName&&(k=j.nodeName.toLowerCase(),typeof h=='string'?k==h:k in h))return new d.node(j);j=j.parentNode;}return null;},hasAscendant:function(h,i){var j=this.$;if(!i)j=j.parentNode;while(j){if(j.nodeName&&j.nodeName.toLowerCase()==h)return true;j=j.parentNode;}return false;},move:function(h,i){h.append(this.remove(),i);},remove:function(h){var i=this.$,j=i.parentNode;if(j){if(h)for(var k;k=i.firstChild;)j.insertBefore(i.removeChild(k),i);j.removeChild(i);}return this;},replace:function(h){this.insertBefore(h);h.remove();},trim:function(){this.ltrim();this.rtrim();},ltrim:function(){var k=this;var h;while(k.getFirst&&(h=k.getFirst())){if(h.type==3){var i=e.ltrim(h.getText()),j=h.getLength();if(!i){h.remove();continue;}else if(i.length<j){h.split(j-i.length);k.$.removeChild(k.$.firstChild);}}break;}},rtrim:function(){var k=this;var h;while(k.getLast&&(h=k.getLast())){if(h.type==3){var i=e.rtrim(h.getText()),j=h.getLength();if(!i){h.remove();continue;}else if(i.length<j){h.split(i.length);k.$.lastChild.parentNode.removeChild(k.$.lastChild);}}break;}if(!c&&!b.opera){h=k.$.lastChild;if(h&&h.type==1&&h.nodeName.toLowerCase()=='br')h.parentNode.removeChild(h);}},isReadOnly:function(){var h=this;while(h){if(h.type==1){if(h.is('body')||!!h.data('cke-editable'))break;if(h.getAttribute('contentEditable')=='false')return h;else if(h.getAttribute('contentEditable')=='true')break;}h=h.getParent();}return false;}});d.nodeList=function(h){this.$=h;};d.nodeList.prototype={count:function(){return this.$.length;},getItem:function(h){var i=this.$[h];return i?new d.node(i):null;}};d.element=function(h,i){if(typeof h=='string')h=(i?i.$:document).createElement(h);d.domObject.call(this,h);};var h=d.element;h.get=function(i){return i&&(i.$?i:new h(i));};h.prototype=new d.node();
-h.createFromHtml=function(i,j){var k=new h('div',j);k.setHtml(i);return k.getFirst().remove();};h.setMarker=function(i,j,k,l){var m=j.getCustomData('list_marker_id')||j.setCustomData('list_marker_id',e.getNextNumber()).getCustomData('list_marker_id'),n=j.getCustomData('list_marker_names')||j.setCustomData('list_marker_names',{}).getCustomData('list_marker_names');i[m]=j;n[k]=1;return j.setCustomData(k,l);};h.clearAllMarkers=function(i){for(var j in i)h.clearMarkers(i,i[j],1);};h.clearMarkers=function(i,j,k){var l=j.getCustomData('list_marker_names'),m=j.getCustomData('list_marker_id');for(var n in l)j.removeCustomData(n);j.removeCustomData('list_marker_names');if(k){j.removeCustomData('list_marker_id');delete i[m];}};e.extend(h.prototype,{type:1,addClass:function(i){var j=this.$.className;if(j){var k=new RegExp('(?:^|\\s)'+i+'(?:\\s|$)','');if(!k.test(j))j+=' '+i;}this.$.className=j||i;},removeClass:function(i){var j=this.getAttribute('class');if(j){var k=new RegExp('(?:^|\\s+)'+i+'(?=\\s|$)','i');if(k.test(j)){j=j.replace(k,'').replace(/^\s+/,'');if(j)this.setAttribute('class',j);else this.removeAttribute('class');}}},hasClass:function(i){var j=new RegExp('(?:^|\\s+)'+i+'(?=\\s|$)','');return j.test(this.getAttribute('class'));},append:function(i,j){var k=this;if(typeof i=='string')i=k.getDocument().createElement(i);if(j)k.$.insertBefore(i.$,k.$.firstChild);else k.$.appendChild(i.$);return i;},appendHtml:function(i){var k=this;if(!k.$.childNodes.length)k.setHtml(i);else{var j=new h('div',k.getDocument());j.setHtml(i);j.moveChildren(k);}},appendText:function(i){if(this.$.text!=undefined)this.$.text+=i;else this.append(new d.text(i));},appendBogus:function(){var k=this;var i=k.getLast();while(i&&i.type==3&&!e.rtrim(i.getText()))i=i.getPrevious();if(!i||!i.is||!i.is('br')){var j=b.opera?k.getDocument().createText(''):k.getDocument().createElement('br');b.gecko&&j.setAttribute('type','_moz');k.append(j);}},breakParent:function(i){var l=this;var j=new d.range(l.getDocument());j.setStartAfter(l);j.setEndAfter(i);var k=j.extractContents();j.insertNode(l.remove());k.insertAfterNode(l);},contains:c||b.webkit?function(i){var j=this.$;return i.type!=1?j.contains(i.getParent().$):j!=i.$&&j.contains(i.$);}:function(i){return!!(this.$.compareDocumentPosition(i.$)&16);},focus:(function(){function i(){try{this.$.focus();}catch(j){}};return function(j){if(j)e.setTimeout(i,100,this);else i.call(this);};})(),getHtml:function(){var i=this.$.innerHTML;return c?i.replace(/<\?[^>]*>/g,''):i;
-},getOuterHtml:function(){var j=this;if(j.$.outerHTML)return j.$.outerHTML.replace(/<\?[^>]*>/,'');var i=j.$.ownerDocument.createElement('div');i.appendChild(j.$.cloneNode(true));return i.innerHTML;},setHtml:function(i){return this.$.innerHTML=i;},setText:function(i){h.prototype.setText=this.$.innerText!=undefined?function(j){return this.$.innerText=j;}:function(j){return this.$.textContent=j;};return this.setText(i);},getAttribute:(function(){var i=function(j){return this.$.getAttribute(j,2);};if(c&&(b.ie7Compat||b.ie6Compat))return function(j){var n=this;switch(j){case 'class':j='className';break;case 'http-equiv':j='httpEquiv';break;case 'name':return n.$.name;case 'tabindex':var k=i.call(n,j);if(k!==0&&n.$.tabIndex===0)k=null;return k;break;case 'checked':var l=n.$.attributes.getNamedItem(j),m=l.specified?l.nodeValue:n.$.checked;return m?'checked':null;case 'hspace':case 'value':return n.$[j];case 'style':return n.$.style.cssText;}return i.call(n,j);};else return i;})(),getChildren:function(){return new d.nodeList(this.$.childNodes);},getComputedStyle:c?function(i){return this.$.currentStyle[e.cssStyleToDomStyle(i)];}:function(i){return this.getWindow().$.getComputedStyle(this.$,'').getPropertyValue(i);},getDtd:function(){var i=f[this.getName()];this.getDtd=function(){return i;};return i;},getElementsByTag:g.prototype.getElementsByTag,getTabIndex:c?function(){var i=this.$.tabIndex;if(i===0&&!f.$tabIndex[this.getName()]&&parseInt(this.getAttribute('tabindex'),10)!==0)i=-1;return i;}:b.webkit?function(){var i=this.$.tabIndex;if(i==undefined){i=parseInt(this.getAttribute('tabindex'),10);if(isNaN(i))i=-1;}return i;}:function(){return this.$.tabIndex;},getText:function(){return this.$.textContent||this.$.innerText||'';},getWindow:function(){return this.getDocument().getWindow();},getId:function(){return this.$.id||null;},getNameAtt:function(){return this.$.name||null;},getName:function(){var i=this.$.nodeName.toLowerCase();if(c&&!(document.documentMode>8)){var j=this.$.scopeName;if(j!='HTML')i=j.toLowerCase()+':'+i;}return(this.getName=function(){return i;})();},getValue:function(){return this.$.value;},getFirst:function(i){var j=this.$.firstChild,k=j&&new d.node(j);if(k&&i&&!i(k))k=k.getNext(i);return k;},getLast:function(i){var j=this.$.lastChild,k=j&&new d.node(j);if(k&&i&&!i(k))k=k.getPrevious(i);return k;},getStyle:function(i){return this.$.style[e.cssStyleToDomStyle(i)];},is:function(){var i=this.getName();for(var j=0;j<arguments.length;j++){if(arguments[j]==i)return true;
-}return false;},isEditable:function(){if(this.isReadOnly())return false;var i=this.getName(),j=!f.$nonEditable[i]&&(f[i]||f.span);return j&&j['#'];},isIdentical:function(i){if(this.getName()!=i.getName())return false;var j=this.$.attributes,k=i.$.attributes,l=j.length,m=k.length;for(var n=0;n<l;n++){var o=j[n];if(o.nodeName=='_moz_dirty')continue;if((!c||o.specified&&o.nodeName!='data-cke-expando')&&o.nodeValue!=i.getAttribute(o.nodeName))return false;}if(c)for(n=0;n<m;n++){o=k[n];if(o.specified&&o.nodeName!='data-cke-expando'&&o.nodeValue!=this.getAttribute(o.nodeName))return false;}return true;},isVisible:function(){var i=!!this.$.offsetHeight&&this.getComputedStyle('visibility')!='hidden',j,k;if(i&&(b.webkit||b.opera)){j=this.getWindow();if(!j.equals(a.document.getWindow())&&(k=j.$.frameElement))i=new h(k).isVisible();}return i;},isEmptyInlineRemoveable:function(){if(!f.$removeEmpty[this.getName()])return false;var i=this.getChildren();for(var j=0,k=i.count();j<k;j++){var l=i.getItem(j);if(l.type==1&&l.data('cke-bookmark'))continue;if(l.type==1&&!l.isEmptyInlineRemoveable()||l.type==3&&e.trim(l.getText()))return false;}return true;},hasAttributes:c&&(b.ie7Compat||b.ie6Compat)?function(){var i=this.$.attributes;for(var j=0;j<i.length;j++){var k=i[j];switch(k.nodeName){case 'class':if(this.getAttribute('class'))return true;case 'data-cke-expando':continue;default:if(k.specified)return true;}}return false;}:function(){var i=this.$.attributes,j=i.length,k={'data-cke-expando':1,_moz_dirty:1};return j>0&&(j>2||!k[i[0].nodeName]||j==2&&!k[i[1].nodeName]);},hasAttribute:(function(){function i(j){var k=this.$.attributes.getNamedItem(j);return!!(k&&k.specified);};return c&&b.version<8?function(j){if(j=='name')return!!this.$.name;return i.call(this,j);}:i;})(),hide:function(){this.setStyle('display','none');},moveChildren:function(i,j){var k=this.$;i=i.$;if(k==i)return;var l;if(j)while(l=k.lastChild)i.insertBefore(k.removeChild(l),i.firstChild);else while(l=k.firstChild)i.appendChild(k.removeChild(l));},mergeSiblings:(function(){function i(j,k,l){if(k&&k.type==1){var m=[];while(k.data('cke-bookmark')||k.isEmptyInlineRemoveable()){m.push(k);k=l?k.getNext():k.getPrevious();if(!k||k.type!=1)return;}if(j.isIdentical(k)){var n=l?j.getLast():j.getFirst();while(m.length)m.shift().move(j,!l);k.moveChildren(j,!l);k.remove();if(n&&n.type==1)n.mergeSiblings();}}};return function(j){var k=this;if(!(j===false||f.$removeEmpty[k.getName()]||k.is('a')))return;i(k,k.getNext(),true);
-i(k,k.getPrevious());};})(),show:function(){this.setStyles({display:'',visibility:''});},setAttribute:(function(){var i=function(j,k){this.$.setAttribute(j,k);return this;};if(c&&(b.ie7Compat||b.ie6Compat))return function(j,k){var l=this;if(j=='class')l.$.className=k;else if(j=='style')l.$.style.cssText=k;else if(j=='tabindex')l.$.tabIndex=k;else if(j=='checked')l.$.checked=k;else i.apply(l,arguments);return l;};else if(b.ie8Compat&&b.secure)return function(j,k){if(j=='src'&&k.match(/^http:\/\//))try{i.apply(this,arguments);}catch(l){}else i.apply(this,arguments);return this;};else return i;})(),setAttributes:function(i){for(var j in i)this.setAttribute(j,i[j]);return this;},setValue:function(i){this.$.value=i;return this;},removeAttribute:(function(){var i=function(j){this.$.removeAttribute(j);};if(c&&(b.ie7Compat||b.ie6Compat))return function(j){if(j=='class')j='className';else if(j=='tabindex')j='tabIndex';i.call(this,j);};else return i;})(),removeAttributes:function(i){if(e.isArray(i))for(var j=0;j<i.length;j++)this.removeAttribute(i[j]);else for(var k in i)i.hasOwnProperty(k)&&this.removeAttribute(k);},removeStyle:function(i){var j=this;j.setStyle(i,'');if(j.$.style.removeAttribute)j.$.style.removeAttribute(e.cssStyleToDomStyle(i));if(!j.$.style.cssText)j.removeAttribute('style');},setStyle:function(i,j){this.$.style[e.cssStyleToDomStyle(i)]=j;return this;},setStyles:function(i){for(var j in i)this.setStyle(j,i[j]);return this;},setOpacity:function(i){if(c){i=Math.round(i*100);this.setStyle('filter',i>=100?'':'progid:DXImageTransform.Microsoft.Alpha(opacity='+i+')');}else this.setStyle('opacity',i);},unselectable:b.gecko?function(){this.$.style.MozUserSelect='none';this.on('dragstart',function(i){i.data.preventDefault();});}:b.webkit?function(){this.$.style.KhtmlUserSelect='none';this.on('dragstart',function(i){i.data.preventDefault();});}:function(){if(c||b.opera){var i=this.$,j,k=0;i.unselectable='on';while(j=i.all[k++])switch(j.tagName.toLowerCase()){case 'iframe':case 'textarea':case 'input':case 'select':break;default:j.unselectable='on';}}},getPositionedAncestor:function(){var i=this;while(i.getName()!='html'){if(i.getComputedStyle('position')!='static')return i;i=i.getParent();}return null;},getDocumentPosition:function(i){var D=this;var j=0,k=0,l=D.getDocument().getBody(),m=D.getDocument().$.compatMode=='BackCompat',n=D.getDocument();if(document.documentElement.getBoundingClientRect){var o=D.$.getBoundingClientRect(),p=n.$,q=p.documentElement,r=q.clientTop||l.$.clientTop||0,s=q.clientLeft||l.$.clientLeft||0,t=true;
-if(c){var u=n.getDocumentElement().contains(D),v=n.getBody().contains(D);t=m&&v||!m&&u;}if(t){j=o.left+(!m&&q.scrollLeft||l.$.scrollLeft);j-=s;k=o.top+(!m&&q.scrollTop||l.$.scrollTop);k-=r;}}else{var w=D,x=null,y;while(w&&!(w.getName()=='body'||w.getName()=='html')){j+=w.$.offsetLeft-w.$.scrollLeft;k+=w.$.offsetTop-w.$.scrollTop;if(!w.equals(D)){j+=w.$.clientLeft||0;k+=w.$.clientTop||0;}var z=x;while(z&&!z.equals(w)){j-=z.$.scrollLeft;k-=z.$.scrollTop;z=z.getParent();}x=w;w=(y=w.$.offsetParent)?new h(y):null;}}if(i){var A=D.getWindow(),B=i.getWindow();if(!A.equals(B)&&A.$.frameElement){var C=new h(A.$.frameElement).getDocumentPosition(i);j+=C.x;k+=C.y;}}if(!document.documentElement.getBoundingClientRect)if(b.gecko&&!m){j+=D.$.clientLeft?1:0;k+=D.$.clientTop?1:0;}return{x:j,y:k};},scrollIntoView:function(i){var o=this;var j=o.getWindow(),k=j.getViewPaneSize().height,l=k*-1;if(i)l+=k;else{l+=o.$.offsetHeight||0;l+=parseInt(o.getComputedStyle('marginBottom')||0,10)||0;}var m=o.getDocumentPosition();l+=m.y;l=l<0?0:l;var n=j.getScrollPosition().y;if(l>n||l<n-k)j.$.scrollTo(0,l);},setState:function(i){var j=this;switch(i){case 1:j.addClass('cke_on');j.removeClass('cke_off');j.removeClass('cke_disabled');break;case 0:j.addClass('cke_disabled');j.removeClass('cke_off');j.removeClass('cke_on');break;default:j.addClass('cke_off');j.removeClass('cke_on');j.removeClass('cke_disabled');break;}},getFrameDocument:function(){var i=this.$;try{i.contentWindow.document;}catch(j){i.src=i.src;if(c&&b.version<7)window.showModalDialog('javascript:document.write("<script>window.setTimeout(function(){window.close();},50);</script>")');}return i&&new g(i.contentWindow.document);},copyAttributes:function(i,j){var p=this;var k=p.$.attributes;j=j||{};for(var l=0;l<k.length;l++){var m=k[l],n=m.nodeName.toLowerCase(),o;if(n in j)continue;if(n=='checked'&&(o=p.getAttribute(n)))i.setAttribute(n,o);else if(m.specified||c&&m.nodeValue&&n=='value'){o=p.getAttribute(n);if(o===null)o=m.nodeValue;i.setAttribute(n,o);}}if(p.$.style.cssText!=='')i.$.style.cssText=p.$.style.cssText;},renameNode:function(i){var l=this;if(l.getName()==i)return;var j=l.getDocument(),k=new h(i,j);l.copyAttributes(k);l.moveChildren(k);l.getParent()&&l.$.parentNode.replaceChild(k.$,l.$);k.$['data-cke-expando']=l.$['data-cke-expando'];l.$=k.$;},getChild:function(i){var j=this.$;if(!i.slice)j=j.childNodes[i];else while(i.length>0&&j)j=j.childNodes[i.shift()];return j?new d.node(j):null;},getChildCount:function(){return this.$.childNodes.length;
-},disableContextMenu:function(){this.on('contextmenu',function(i){if(!i.data.getTarget().hasClass('cke_enable_context_menu'))i.data.preventDefault();});},getDirection:function(i){var j=this;return i?j.getComputedStyle('direction')||j.getDirection()||j.getDocument().$.dir||j.getDocument().getBody().getDirection(1):j.getStyle('direction')||j.getAttribute('dir');},data:function(i,j){i='data-'+i;if(j===undefined)return this.getAttribute(i);else if(j===false)this.removeAttribute(i);else this.setAttribute(i,j);return null;}});(function(){var i={width:['border-left-width','border-right-width','padding-left','padding-right'],height:['border-top-width','border-bottom-width','padding-top','padding-bottom']};function j(k){var l=0;for(var m=0,n=i[k].length;m<n;m++)l+=parseInt(this.getComputedStyle(i[k][m])||0,10)||0;return l;};h.prototype.setSize=function(k,l,m){if(typeof l=='number'){if(m&&!(c&&b.quirks))l-=j.call(this,k);this.setStyle(k,l+'px');}};h.prototype.getSize=function(k,l){var m=Math.max(this.$['offset'+e.capitalize(k)],this.$['client'+e.capitalize(k)])||0;if(l)m-=j.call(this,k);return m;};})();a.command=function(i,j){this.uiItems=[];this.exec=function(k){if(this.state==0)return false;if(this.editorFocus)i.focus();return j.exec.call(this,i,k)!==false;};e.extend(this,j,{modes:{wysiwyg:1},editorFocus:1,state:2});a.event.call(this);};a.command.prototype={enable:function(){var i=this;if(i.state==0)i.setState(!i.preserveState||typeof i.previousState=='undefined'?2:i.previousState);},disable:function(){this.setState(0);},setState:function(i){var j=this;if(j.state==i)return false;j.previousState=j.state;j.state=i;j.fire('state');return true;},toggleState:function(){var i=this;if(i.state==2)i.setState(1);else if(i.state==1)i.setState(2);}};a.event.implementOn(a.command.prototype,true);a.ENTER_P=1;a.ENTER_BR=2;a.ENTER_DIV=3;a.config={customConfig:'config.js',autoUpdateElement:true,baseHref:'',contentsCss:a.basePath+'contents.css',contentsLangDirection:'ui',contentsLanguage:'',language:'',defaultLanguage:'en',enterMode:1,forceEnterMode:false,shiftEnterMode:2,corePlugins:'',docType:'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',bodyId:'',bodyClass:'',fullPage:false,height:200,plugins:'about,a11yhelp,basicstyles,bidi,blockquote,button,clipboard,colorbutton,colordialog,contextmenu,dialogadvtab,div,elementspath,enterkey,entities,filebrowser,find,flash,font,format,forms,horizontalrule,htmldataprocessor,iframe,image,indent,justify,keystrokes,link,list,liststyle,maximize,newpage,pagebreak,pastefromword,pastetext,popup,preview,print,removeformat,resize,save,scayt,smiley,showblocks,showborders,sourcearea,stylescombo,table,tabletools,specialchar,tab,templates,toolbar,undo,wysiwygarea,wsc',extraPlugins:'',removePlugins:'',protectedSource:[],tabIndex:0,theme:'default',skin:'kama',width:'',baseFloatZIndex:10000};
-var i=a.config;a.focusManager=function(j){if(j.focusManager)return j.focusManager;this.hasFocus=false;this._={editor:j};return this;};a.focusManager.prototype={focus:function(){var k=this;if(k._.timer)clearTimeout(k._.timer);if(!k.hasFocus){if(a.currentInstance)a.currentInstance.focusManager.forceBlur();var j=k._.editor;j.container.getChild(1).addClass('cke_focus');k.hasFocus=true;j.fire('focus');}},blur:function(){var j=this;if(j._.timer)clearTimeout(j._.timer);j._.timer=setTimeout(function(){delete j._.timer;j.forceBlur();},100);},forceBlur:function(){if(this.hasFocus){var j=this._.editor;j.container.getChild(1).removeClass('cke_focus');this.hasFocus=false;j.fire('blur');}}};(function(){var j={};a.lang={languages:{af:1,ar:1,bg:1,bn:1,bs:1,ca:1,cs:1,cy:1,da:1,de:1,el:1,'en-au':1,'en-ca':1,'en-gb':1,en:1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fo:1,'fr-ca':1,fr:1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,is:1,it:1,ja:1,ka:1,km:1,ko:1,lt:1,lv:1,mn:1,ms:1,nb:1,nl:1,no:1,pl:1,'pt-br':1,pt:1,ro:1,ru:1,sk:1,sl:1,'sr-latn':1,sr:1,sv:1,th:1,tr:1,uk:1,vi:1,'zh-cn':1,zh:1},load:function(k,l,m){if(!k||!a.lang.languages[k])k=this.detect(l,k);if(!this[k])a.scriptLoader.load(a.getUrl('lang/'+k+'.js'),function(){m(k,this[k]);},this);else m(k,this[k]);},detect:function(k,l){var m=this.languages;l=l||navigator.userLanguage||navigator.language;var n=l.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),o=n[1],p=n[2];if(m[o+'-'+p])o=o+'-'+p;else if(!m[o])o=null;a.lang.detect=o?function(){return o;}:function(q){return q;};return o||k;}};})();a.scriptLoader=(function(){var j={},k={};return{load:function(l,m,n,o){var p=typeof l=='string';if(p)l=[l];if(!n)n=a;var q=l.length,r=[],s=[],t=function(y){if(m)if(p)m.call(n,y);else m.call(n,r,s);};if(q===0){t(true);return;}var u=function(y,z){(z?r:s).push(y);if(--q<=0){o&&a.document.getDocumentElement().removeStyle('cursor');t(z);}},v=function(y,z){j[y]=1;var A=k[y];delete k[y];for(var B=0;B<A.length;B++)A[B](y,z);},w=function(y){if(j[y]){u(y,true);return;}var z=k[y]||(k[y]=[]);z.push(u);if(z.length>1)return;var A=new h('script');A.setAttributes({type:'text/javascript',src:y});if(m)if(c)A.$.onreadystatechange=function(){if(A.$.readyState=='loaded'||A.$.readyState=='complete'){A.$.onreadystatechange=null;v(y,true);}};else{A.$.onload=function(){setTimeout(function(){v(y,true);},0);};A.$.onerror=function(){v(y,false);};}A.appendTo(a.document.getHead());};o&&a.document.getDocumentElement().setStyle('cursor','wait');for(var x=0;x<q;x++)w(l[x]);}};})();a.resourceManager=function(j,k){var l=this;
-l.basePath=j;l.fileName=k;l.registered={};l.loaded={};l.externals={};l._={waitingList:{}};};a.resourceManager.prototype={add:function(j,k){if(this.registered[j])throw '[CKEDITOR.resourceManager.add] The resource name "'+j+'" is already registered.';a.fire(j+e.capitalize(this.fileName)+'Ready',this.registered[j]=k||{});},get:function(j){return this.registered[j]||null;},getPath:function(j){var k=this.externals[j];return a.getUrl(k&&k.dir||this.basePath+j+'/');},getFilePath:function(j){var k=this.externals[j];return a.getUrl(this.getPath(j)+(k&&typeof k.file=='string'?k.file:this.fileName+'.js'));},addExternal:function(j,k,l){j=j.split(',');for(var m=0;m<j.length;m++){var n=j[m];this.externals[n]={dir:k,file:l};}},load:function(j,k,l){if(!e.isArray(j))j=j?[j]:[];var m=this.loaded,n=this.registered,o=[],p={},q={};for(var r=0;r<j.length;r++){var s=j[r];if(!s)continue;if(!m[s]&&!n[s]){var t=this.getFilePath(s);o.push(t);if(!(t in p))p[t]=[];p[t].push(s);}else q[s]=this.get(s);}a.scriptLoader.load(o,function(u,v){if(v.length)throw '[CKEDITOR.resourceManager.load] Resource name "'+p[v[0]].join(',')+'" was not found at "'+v[0]+'".';for(var w=0;w<u.length;w++){var x=p[u[w]];for(var y=0;y<x.length;y++){var z=x[y];q[z]=this.get(z);m[z]=1;}}k.call(l,q);},this);}};a.plugins=new a.resourceManager('plugins/','plugin');var j=a.plugins;j.load=e.override(j.load,function(k){return function(l,m,n){var o={},p=function(q){k.call(this,q,function(r){e.extend(o,r);var s=[];for(var t in r){var u=r[t],v=u&&u.requires;if(v)for(var w=0;w<v.length;w++){if(!o[v[w]])s.push(v[w]);}}if(s.length)p.call(this,s);else{for(t in o){u=o[t];if(u.onLoad&&!u.onLoad._called){u.onLoad();u.onLoad._called=1;}}if(m)m.call(n||window,o);}},this);};p.call(this,l);};});j.setLang=function(k,l,m){var n=this.get(k),o=n.langEntries||(n.langEntries={}),p=n.lang||(n.lang=[]);if(e.indexOf(p,l)==-1)p.push(l);o[l]=m;};a.skins=(function(){var k={},l={},m=function(n,o,p,q){var r=k[o];if(!n.skin){n.skin=r;if(r.init)r.init(n);}var s=function(B){for(var C=0;C<B.length;C++)B[C]=a.getUrl(l[o]+B[C]);};function t(B,C){return B.replace(/url\s*\(([\s'"]*)(.*?)([\s"']*)\)/g,function(D,E,F,G){if(/^\/|^\w?:/.test(F))return D;else return 'url('+C+E+F+G+')';});};p=r[p];var u=!p||!!p._isLoaded;if(u)q&&q();else{var v=p._pending||(p._pending=[]);v.push(q);if(v.length>1)return;var w=!p.css||!p.css.length,x=!p.js||!p.js.length,y=function(){if(w&&x){p._isLoaded=1;for(var B=0;B<v.length;B++){if(v[B])v[B]();}}};if(!w){var z=p.css;if(e.isArray(z)){s(z);
-for(var A=0;A<z.length;A++)a.document.appendStyleSheet(z[A]);}else{z=t(z,a.getUrl(l[o]));a.document.appendStyleText(z);}p.css=z;w=1;}if(!x){s(p.js);a.scriptLoader.load(p.js,function(){x=1;y();});}y();}};return{add:function(n,o){k[n]=o;o.skinPath=l[n]||(l[n]=a.getUrl('skins/'+n+'/'));},load:function(n,o,p){var q=n.skinName,r=n.skinPath;if(k[q])m(n,q,o,p);else{l[q]=r;a.scriptLoader.load(a.getUrl(r+'skin.js'),function(){m(n,q,o,p);});}}};})();a.themes=new a.resourceManager('themes/','theme');a.ui=function(k){if(k.ui)return k.ui;this._={handlers:{},items:{},editor:k};return this;};var k=a.ui;k.prototype={add:function(l,m,n){this._.items[l]={type:m,command:n.command||null,args:Array.prototype.slice.call(arguments,2)};},create:function(l){var q=this;var m=q._.items[l],n=m&&q._.handlers[m.type],o=m&&m.command&&q._.editor.getCommand(m.command),p=n&&n.create.apply(q,m.args);m&&(p=e.extend(p,q._.editor.skin[m.type],true));if(o)o.uiItems.push(p);return p;},addHandler:function(l,m){this._.handlers[l]=m;}};a.event.implementOn(k);(function(){var l=0,m=function(){var x='editor'+ ++l;return a.instances&&a.instances[x]?m():x;},n={},o=function(x){var y=x.config.customConfig;if(!y)return false;y=a.getUrl(y);var z=n[y]||(n[y]={});if(z.fn){z.fn.call(x,x.config);if(a.getUrl(x.config.customConfig)==y||!o(x))x.fireOnce('customConfigLoaded');}else a.scriptLoader.load(y,function(){if(a.editorConfig)z.fn=a.editorConfig;else z.fn=function(){};o(x);});return true;},p=function(x,y){x.on('customConfigLoaded',function(){if(y){if(y.on)for(var z in y.on)x.on(z,y.on[z]);e.extend(x.config,y,true);delete x.config.on;}q(x);});if(y&&y.customConfig!=undefined)x.config.customConfig=y.customConfig;if(!o(x))x.fireOnce('customConfigLoaded');},q=function(x){var y=x.config.skin.split(','),z=y[0],A=a.getUrl(y[1]||'skins/'+z+'/');x.skinName=z;x.skinPath=A;x.skinClass='cke_skin_'+z;x.tabIndex=x.config.tabIndex||x.element.getAttribute('tabindex')||0;x.readOnly=!!(x.config.readOnly||x.element.getAttribute('disabled'));x.fireOnce('configLoaded');t(x);},r=function(x){a.lang.load(x.config.language,x.config.defaultLanguage,function(y,z){x.langCode=y;x.lang=e.prototypedCopy(z);if(b.gecko&&b.version<10900&&x.lang.dir=='rtl')x.lang.dir='ltr';x.fire('langLoaded');var A=x.config;A.contentsLangDirection=='ui'&&(A.contentsLangDirection=x.lang.dir);s(x);});},s=function(x){var y=x.config,z=y.plugins,A=y.extraPlugins,B=y.removePlugins;if(A){var C=new RegExp('(?:^|,)(?:'+A.replace(/\s*,\s*/g,'|')+')(?=,|$)','g');z=z.replace(C,'');
-z+=','+A;}if(B){C=new RegExp('(?:^|,)(?:'+B.replace(/\s*,\s*/g,'|')+')(?=,|$)','g');z=z.replace(C,'');}b.air&&(z+=',adobeair');j.load(z.split(','),function(D){var E=[],F=[],G=[];x.plugins=D;for(var H in D){var I=D[H],J=I.lang,K=j.getPath(H),L=null;I.path=K;if(J){L=e.indexOf(J,x.langCode)>=0?x.langCode:J[0];if(!I.langEntries||!I.langEntries[L])G.push(a.getUrl(K+'lang/'+L+'.js'));else{e.extend(x.lang,I.langEntries[L]);L=null;}}F.push(L);E.push(I);}a.scriptLoader.load(G,function(){var M=['beforeInit','init','afterInit'];for(var N=0;N<M.length;N++)for(var O=0;O<E.length;O++){var P=E[O];if(N===0&&F[O]&&P.lang)e.extend(x.lang,P.langEntries[F[O]]);if(P[M[N]])P[M[N]](x);}x.fire('pluginsLoaded');u(x);});});},t=function(x){a.skins.load(x,'editor',function(){r(x);});},u=function(x){var y=x.config.theme;a.themes.load(y,function(){var z=x.theme=a.themes.get(y);z.path=a.themes.getPath(y);z.build(x);if(x.config.autoUpdateElement)v(x);});},v=function(x){var y=x.element;if(x.elementMode==1&&y.is('textarea')){var z=y.$.form&&new h(y.$.form);if(z){function A(){x.updateElement();};z.on('submit',A);if(!z.$.submit.nodeName&&!z.$.submit.length)z.$.submit=e.override(z.$.submit,function(B){return function(){x.updateElement();if(B.apply)B.apply(this,arguments);else B();};});x.on('destroy',function(){z.removeListener('submit',A);});}}};function w(){var x,y=this._.commands,z=this.mode;if(!z)return;for(var A in y){x=y[A];x[x.startDisabled?'disable':this.readOnly&&!x.readOnly?'disable':x.modes[z]?'enable':'disable']();}};a.editor.prototype._init=function(){var z=this;var x=h.get(z._.element),y=z._.instanceConfig;delete z._.element;delete z._.instanceConfig;z._.commands={};z._.styles=[];z.element=x;z.name=x&&z.elementMode==1&&(x.getId()||x.getNameAtt())||m();if(z.name in a.instances)throw '[CKEDITOR.editor] The instance "'+z.name+'" already exists.';z.id=e.getNextId();z.config=e.prototypedCopy(i);z.ui=new k(z);z.focusManager=new a.focusManager(z);a.fire('instanceCreated',null,z);z.on('mode',w,null,null,1);z.on('readOnly',w,null,null,1);p(z,y);};})();e.extend(a.editor.prototype,{addCommand:function(l,m){return this._.commands[l]=new a.command(this,m);},addCss:function(l){this._.styles.push(l);},destroy:function(l){var m=this;if(!l)m.updateElement();m.fire('destroy');m.theme&&m.theme.destroy(m);a.remove(m);a.fire('instanceDestroyed',null,m);},execCommand:function(l,m){var n=this.getCommand(l),o={name:l,commandData:m,command:n};if(n&&n.state!=0)if(this.fire('beforeCommandExec',o)!==true){o.returnValue=n.exec(o.commandData);
-if(!n.async&&this.fire('afterCommandExec',o)!==true)return o.returnValue;}return false;},getCommand:function(l){return this._.commands[l];},getData:function(){var n=this;n.fire('beforeGetData');var l=n._.data;if(typeof l!='string'){var m=n.element;if(m&&n.elementMode==1)l=m.is('textarea')?m.getValue():m.getHtml();else l='';}l={dataValue:l};n.fire('getData',l);return l.dataValue;},getSnapshot:function(){var l=this.fire('getSnapshot');if(typeof l!='string'){var m=this.element;if(m&&this.elementMode==1)l=m.is('textarea')?m.getValue():m.getHtml();}return l;},loadSnapshot:function(l){this.fire('loadSnapshot',l);},setData:function(l,m,n){if(m)this.on('dataReady',function(p){p.removeListener();m.call(p.editor);});var o={dataValue:l};!n&&this.fire('setData',o);this._.data=o.dataValue;!n&&this.fire('afterSetData',o);},setReadOnly:function(l){l=l==undefined||l;if(this.readOnly!=l){this.readOnly=l;this.fire('readOnly');}},insertHtml:function(l){this.fire('insertHtml',l);},insertText:function(l){this.fire('insertText',l);},insertElement:function(l){this.fire('insertElement',l);},checkDirty:function(){return this.mayBeDirty&&this._.previousValue!==this.getSnapshot();},resetDirty:function(){if(this.mayBeDirty)this._.previousValue=this.getSnapshot();},updateElement:function(){var n=this;var l=n.element;if(l&&n.elementMode==1){var m=n.getData();if(n.config.htmlEncodeOutput)m=e.htmlEncode(m);if(l.is('textarea'))l.setValue(m);else l.setHtml(m);}}});a.on('loaded',function(){var l=a.editor._pending;if(l){delete a.editor._pending;for(var m=0;m<l.length;m++)l[m]._init();}});a.htmlParser=function(){this._={htmlPartsRegex:new RegExp("<(?:(?:\\/([^>]+)>)|(?:!--([\\S|\\s]*?)-->)|(?:([^\\s>]+)\\s*((?:(?:\"[^\"]*\")|(?:'[^']*')|[^\"'>])*)\\/?>))",'g')};};(function(){var l=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,m={checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};a.htmlParser.prototype={onTagOpen:function(){},onTagClose:function(){},onText:function(){},onCDATA:function(){},onComment:function(){},parse:function(n){var A=this;var o,p,q=0,r;while(o=A._.htmlPartsRegex.exec(n)){var s=o.index;if(s>q){var t=n.substring(q,s);if(r)r.push(t);else A.onText(t);}q=A._.htmlPartsRegex.lastIndex;if(p=o[1]){p=p.toLowerCase();if(r&&f.$cdata[p]){A.onCDATA(r.join(''));r=null;}if(!r){A.onTagClose(p);continue;}}if(r){r.push(o[0]);continue;}if(p=o[3]){p=p.toLowerCase();if(/="/.test(p))continue;
-var u={},v,w=o[4],x=!!(w&&w.charAt(w.length-1)=='/');if(w)while(v=l.exec(w)){var y=v[1].toLowerCase(),z=v[2]||v[3]||v[4]||'';if(!z&&m[y])u[y]=y;else u[y]=z;}A.onTagOpen(p,u,x);if(!r&&f.$cdata[p])r=[];continue;}if(p=o[2])A.onComment(p);}if(n.length>q)A.onText(n.substring(q,n.length));}};})();a.htmlParser.comment=function(l){this.value=l;this._={isBlockLike:false};};a.htmlParser.comment.prototype={type:8,writeHtml:function(l,m){var n=this.value;if(m){if(!(n=m.onComment(n,this)))return;if(typeof n!='string'){n.parent=this.parent;n.writeHtml(l,m);return;}}l.comment(n);}};(function(){var l=/[\t\r\n ]{2,}|[\t\r\n]/g;a.htmlParser.text=function(m){this.value=m;this._={isBlockLike:false};};a.htmlParser.text.prototype={type:3,writeHtml:function(m,n){var o=this.value;if(n&&!(o=n.onText(o,this)))return;m.text(o);}};})();(function(){a.htmlParser.cdata=function(l){this.value=l;};a.htmlParser.cdata.prototype={type:3,writeHtml:function(l){l.write(this.value);}};})();a.htmlParser.fragment=function(){this.children=[];this.parent=null;this._={isBlockLike:true,hasInlineStarted:false};};(function(){var l=e.extend({table:1,ul:1,ol:1,dl:1},f.table,f.ul,f.ol,f.dl),m=c&&b.version<8?{dd:1,dt:1}:{},n={ol:1,ul:1},o=e.extend({},{html:1},f.html,f.body,f.head,{style:1,script:1});a.htmlParser.fragment.fromHtml=function(p,q,r){var s=new a.htmlParser(),t=r||new a.htmlParser.fragment(),u=[],v=[],w=t,x=false;function y(B){var C;if(u.length>0)for(var D=0;D<u.length;D++){var E=u[D],F=E.name,G=f[F],H=w.name&&f[w.name];if((!H||H[F])&&(!B||!G||G[B]||!f[B])){if(!C){z();C=1;}E=E.clone();E.parent=w;w=E;u.splice(D,1);D--;}}};function z(){while(v.length)w.add(v.shift());};function A(B,C,D){if(B.previous!==undefined)return;C=C||w||t;var E=w;if(q&&(!C.type||C.name=='body')){var F,G;if(B.attributes&&(G=B.attributes['data-cke-real-element-type']))F=G;else F=B.name;if(F&&!(F in f.$body||F=='body'||B.isOrphan)){w=C;s.onTagOpen(q,{});B.returnPoint=C=w;}}if(B._.isBlockLike&&B.name!='pre'){var H=B.children.length,I=B.children[H-1],J;if(I&&I.type==3)if(!(J=e.rtrim(I.value)))B.children.length=H-1;else I.value=J;}C.add(B);if(B.returnPoint){w=B.returnPoint;delete B.returnPoint;}else w=D?C:E;};s.onTagOpen=function(B,C,D,E){var F=new a.htmlParser.element(B,C);if(F.isUnknown&&D)F.isEmpty=true;F.isOptionalClose=B in m||E;if(f.$removeEmpty[B]){u.push(F);return;}else if(B=='pre')x=true;else if(B=='br'&&x){w.add(new a.htmlParser.text('\n'));return;}if(B=='br'){v.push(F);return;}while(1){var G=w.name,H=G?f[G]||(w._.isBlockLike?f.div:f.span):o;
-if(!F.isUnknown&&!w.isUnknown&&!H[B]){if(w.isOptionalClose)s.onTagClose(G);else if(B in n&&G in n){var I=w.children,J=I[I.length-1];if(!(J&&J.name=='li'))A(J=new a.htmlParser.element('li'),w);!F.returnPoint&&(F.returnPoint=w);w=J;}else if(B in f.$listItem&&G!=B)s.onTagOpen(B=='li'?'ul':'dl',{},0,1);else if(G in l&&G!=B){!F.returnPoint&&(F.returnPoint=w);w=w.parent;}else{if(G in f.$inline)u.unshift(w);if(w.parent)A(w,w.parent,1);else{F.isOrphan=1;break;}}}else break;}y(B);z();F.parent=w;if(F.isEmpty)A(F);else w=F;};s.onTagClose=function(B){for(var C=u.length-1;C>=0;C--){if(B==u[C].name){u.splice(C,1);return;}}var D=[],E=[],F=w;while(F!=t&&F.name!=B){if(!F._.isBlockLike)E.unshift(F);D.push(F);F=F.returnPoint||F.parent;}if(F!=t){for(C=0;C<D.length;C++){var G=D[C];A(G,G.parent);}w=F;if(w.name=='pre')x=false;if(F._.isBlockLike)z();A(F,F.parent);if(F==w)w=w.parent;u=u.concat(E);}if(B=='body')q=false;};s.onText=function(B){if((!w._.hasInlineStarted||v.length)&&!x){B=e.ltrim(B);if(B.length===0)return;}z();y();if(q&&(!w.type||w.name=='body')&&e.trim(B))this.onTagOpen(q,{},0,1);if(!x)B=B.replace(/[\t\r\n ]{2,}|[\t\r\n]/g,' ');w.add(new a.htmlParser.text(B));};s.onCDATA=function(B){w.add(new a.htmlParser.cdata(B));};s.onComment=function(B){z();y();w.add(new a.htmlParser.comment(B));};s.parse(p);z(!c&&1);while(w!=t)A(w,w.parent,1);return t;};a.htmlParser.fragment.prototype={add:function(p,q){var s=this;isNaN(q)&&(q=s.children.length);var r=q>0?s.children[q-1]:null;if(r){if(p._.isBlockLike&&r.type==3){r.value=e.rtrim(r.value);if(r.value.length===0){s.children.pop();s.add(p);return;}}r.next=p;}p.previous=r;p.parent=s;s.children.splice(q,0,p);s._.hasInlineStarted=p.type==3||p.type==1&&!p._.isBlockLike;},writeHtml:function(p,q){var r;this.filterChildren=function(){var s=new a.htmlParser.basicWriter();this.writeChildrenHtml.call(this,s,q,true);var t=s.getHtml();this.children=new a.htmlParser.fragment.fromHtml(t).children;r=1;};!this.name&&q&&q.onFragment(this);this.writeChildrenHtml(p,r?null:q);},writeChildrenHtml:function(p,q){for(var r=0;r<this.children.length;r++)this.children[r].writeHtml(p,q);}};})();a.htmlParser.element=function(l,m){var s=this;s.name=l;s.attributes=m||(m={});s.children=[];var n=m['data-cke-real-element-type']||l||'',o=n.match(/^cke:(.*)/);o&&(n=o[1]);var p=f,q=!!(p.$nonBodyContent[n]||p.$block[n]||p.$listItem[n]||p.$tableContent[n]||p.$nonEditable[n]||n=='br'),r=!!p.$empty[l];s.isEmpty=r;s.isUnknown=!p[l];s._={isBlockLike:q,hasInlineStarted:r||!q};};
-a.htmlParser.cssStyle=function(){var l,m=arguments[0],n={};l=m instanceof a.htmlParser.element?m.attributes.style:m;(l||'').replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(o,p,q){p=='font-family'&&(q=q.replace(/["']/g,''));n[p.toLowerCase()]=q;});return{rules:n,populate:function(o){var p=this.toString();if(p)o instanceof h?o.setAttribute('style',p):o instanceof a.htmlParser.element?o.attributes.style=p:o.style=p;},'toString':function(){var o=[];for(var p in n)n[p]&&o.push(p,':',n[p],';');return o.join('');}};};(function(){var l=function(m,n){m=m[0];n=n[0];return m<n?-1:m>n?1:0;};a.htmlParser.element.prototype={type:1,add:a.htmlParser.fragment.prototype.add,clone:function(){return new a.htmlParser.element(this.name,this.attributes);},writeHtml:function(m,n){var o=this.attributes,p=this,q=p.name,r,s,t,u;p.filterChildren=function(){if(!u){var B=new a.htmlParser.basicWriter();a.htmlParser.fragment.prototype.writeChildrenHtml.call(p,B,n);p.children=new a.htmlParser.fragment.fromHtml(B.getHtml(),0,p.clone()).children;u=1;}};if(n){for(;;){if(!(q=n.onElementName(q)))return;p.name=q;if(!(p=n.onElement(p)))return;p.parent=this.parent;if(p.name==q)break;if(p.type!=1){p.writeHtml(m,n);return;}q=p.name;if(!q){for(var v=0,w=this.children.length;v<w;v++)this.children[v].parent=p.parent;this.writeChildrenHtml.call(p,m,u?null:n);return;}}o=p.attributes;}m.openTag(q,o);var x=[];for(var y=0;y<2;y++)for(r in o){s=r;t=o[r];if(y==1)x.push([r,t]);else if(n){for(;;){if(!(s=n.onAttributeName(r))){delete o[r];break;}else if(s!=r){delete o[r];r=s;continue;}else break;}if(s)if((t=n.onAttribute(p,s,t))===false)delete o[s];else o[s]=t;}}if(m.sortAttributes)x.sort(l);var z=x.length;for(y=0;y<z;y++){var A=x[y];m.attribute(A[0],A[1]);}m.openTagClose(q,p.isEmpty);if(!p.isEmpty){this.writeChildrenHtml.call(p,m,u?null:n);m.closeTag(q);}},writeChildrenHtml:function(m,n){a.htmlParser.fragment.prototype.writeChildrenHtml.apply(this,arguments);}};})();(function(){a.htmlParser.filter=e.createClass({$:function(q){this._={elementNames:[],attributeNames:[],elements:{$length:0},attributes:{$length:0}};if(q)this.addRules(q,10);},proto:{addRules:function(q,r){var s=this;if(typeof r!='number')r=10;m(s._.elementNames,q.elementNames,r);m(s._.attributeNames,q.attributeNames,r);n(s._.elements,q.elements,r);n(s._.attributes,q.attributes,r);s._.text=o(s._.text,q.text,r)||s._.text;s._.comment=o(s._.comment,q.comment,r)||s._.comment;s._.root=o(s._.root,q.root,r)||s._.root;},onElementName:function(q){return l(q,this._.elementNames);
-},onAttributeName:function(q){return l(q,this._.attributeNames);},onText:function(q){var r=this._.text;return r?r.filter(q):q;},onComment:function(q,r){var s=this._.comment;return s?s.filter(q,r):q;},onFragment:function(q){var r=this._.root;return r?r.filter(q):q;},onElement:function(q){var v=this;var r=[v._.elements['^'],v._.elements[q.name],v._.elements.$],s,t;for(var u=0;u<3;u++){s=r[u];if(s){t=s.filter(q,v);if(t===false)return null;if(t&&t!=q)return v.onNode(t);if(q.parent&&!q.name)break;}}return q;},onNode:function(q){var r=q.type;return r==1?this.onElement(q):r==3?new a.htmlParser.text(this.onText(q.value)):r==8?new a.htmlParser.comment(this.onComment(q.value)):null;},onAttribute:function(q,r,s){var t=this._.attributes[r];if(t){var u=t.filter(s,q,this);if(u===false)return false;if(typeof u!='undefined')return u;}return s;}}});function l(q,r){for(var s=0;q&&s<r.length;s++){var t=r[s];q=q.replace(t[0],t[1]);}return q;};function m(q,r,s){if(typeof r=='function')r=[r];var t,u,v=q.length,w=r&&r.length;if(w){for(t=0;t<v&&q[t].pri<s;t++){}for(u=w-1;u>=0;u--){var x=r[u];if(x){x.pri=s;q.splice(t,0,x);}}}};function n(q,r,s){if(r)for(var t in r){var u=q[t];q[t]=o(u,r[t],s);if(!u)q.$length++;}};function o(q,r,s){if(r){r.pri=s;if(q){if(!q.splice){if(q.pri>s)q=[r,q];else q=[q,r];q.filter=p;}else m(q,r,s);return q;}else{r.filter=r;return r;}}};function p(q){var r=q.type||q instanceof a.htmlParser.fragment;for(var s=0;s<this.length;s++){if(r)var t=q.type,u=q.name;var v=this[s],w=v.apply(window,arguments);if(w===false)return w;if(r){if(w&&(w.name!=u||w.type!=t))return w;}else if(typeof w!='string')return w;w!=undefined&&(q=w);}return q;};})();a.htmlParser.basicWriter=e.createClass({$:function(){this._={output:[]};},proto:{openTag:function(l,m){this._.output.push('<',l);},openTagClose:function(l,m){if(m)this._.output.push(' />');else this._.output.push('>');},attribute:function(l,m){if(typeof m=='string')m=e.htmlEncodeAttr(m);this._.output.push(' ',l,'="',m,'"');},closeTag:function(l){this._.output.push('</',l,'>');},text:function(l){this._.output.push(l);},comment:function(l){this._.output.push('<!--',l,'-->');},write:function(l){this._.output.push(l);},reset:function(){this._.output=[];this._.indent=false;},getHtml:function(l){var m=this._.output.join('');if(l)this.reset();return m;}}});delete a.loadFullCore;a.instances={};a.document=new g(document);a.add=function(l){a.instances[l.name]=l;l.on('focus',function(){if(a.currentInstance!=l){a.currentInstance=l;a.fire('currentInstance');
-}});l.on('blur',function(){if(a.currentInstance==l){a.currentInstance=null;a.fire('currentInstance');}});};a.remove=function(l){delete a.instances[l.name];};a.on('instanceDestroyed',function(){if(e.isEmpty(this.instances))a.fire('reset');});a.TRISTATE_ON=1;a.TRISTATE_OFF=2;a.TRISTATE_DISABLED=0;d.comment=e.createClass({base:d.node,$:function(l,m){if(typeof l=='string')l=(m?m.$:document).createComment(l);this.base(l);},proto:{type:8,getOuterHtml:function(){return '<!--'+this.$.nodeValue+'-->';}}});(function(){var l={address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,dd:1,legend:1,caption:1},m={body:1,div:1,table:1,tbody:1,tr:1,td:1,th:1,form:1,fieldset:1},n=function(o){var p=o.getChildren();for(var q=0,r=p.count();q<r;q++){var s=p.getItem(q);if(s.type==1&&f.$block[s.getName()])return true;}return false;};d.elementPath=function(o){var u=this;var p=null,q=null,r=[],s=o;while(s){if(s.type==1){if(!u.lastElement)u.lastElement=s;var t=s.getName();if(c&&s.$.scopeName!='HTML')t=s.$.scopeName.toLowerCase()+':'+t;if(!q){if(!p&&l[t])p=s;if(m[t])if(!p&&t=='div'&&!n(s))p=s;else q=s;}r.push(s);if(t=='body')break;}s=s.getParent();}u.block=p;u.blockLimit=q;u.elements=r;};})();d.elementPath.prototype={compare:function(l){var m=this.elements,n=l&&l.elements;if(!n||m.length!=n.length)return false;for(var o=0;o<m.length;o++){if(!m[o].equals(n[o]))return false;}return true;},contains:function(l){var m=this.elements;for(var n=0;n<m.length;n++){if(m[n].getName() in l)return m[n];}return null;}};d.text=function(l,m){if(typeof l=='string')l=(m?m.$:document).createTextNode(l);this.$=l;};d.text.prototype=new d.node();e.extend(d.text.prototype,{type:3,getLength:function(){return this.$.nodeValue.length;},getText:function(){return this.$.nodeValue;},setText:function(l){this.$.nodeValue=l;},split:function(l){var q=this;if(c&&l==q.getLength()){var m=q.getDocument().createText('');m.insertAfter(q);return m;}var n=q.getDocument(),o=new d.text(q.$.splitText(l),n);if(b.ie8){var p=new d.text('',n);p.insertAfter(o);p.remove();}return o;},substring:function(l,m){if(typeof m!='number')return this.$.nodeValue.substr(l);else return this.$.nodeValue.substring(l,m);}});d.documentFragment=function(l){l=l||a.document;this.$=l.$.createDocumentFragment();};e.extend(d.documentFragment.prototype,h.prototype,{type:11,insertAfterNode:function(l){l=l.$;l.parentNode.insertBefore(this.$,l.nextSibling);}},true,{append:1,appendBogus:1,getFirst:1,getLast:1,appendTo:1,moveChildren:1,insertBefore:1,insertAfterNode:1,replace:1,trim:1,type:1,ltrim:1,rtrim:1,getDocument:1,getChildCount:1,getChild:1,getChildren:1});
-(function(){function l(s,t){if(this._.end)return null;var u,v=this.range,w,x=this.guard,y=this.type,z=s?'getPreviousSourceNode':'getNextSourceNode';if(!this._.start){this._.start=1;v.trim();if(v.collapsed){this.end();return null;}}if(!s&&!this._.guardLTR){var A=v.endContainer,B=A.getChild(v.endOffset);this._.guardLTR=function(F,G){return(!G||!A.equals(F))&&(!B||!F.equals(B))&&(F.type!=1||!G||F.getName()!='body');};}if(s&&!this._.guardRTL){var C=v.startContainer,D=v.startOffset>0&&C.getChild(v.startOffset-1);this._.guardRTL=function(F,G){return(!G||!C.equals(F))&&(!D||!F.equals(D))&&(F.type!=1||!G||F.getName()!='body');};}var E=s?this._.guardRTL:this._.guardLTR;if(x)w=function(F,G){if(E(F,G)===false)return false;return x(F,G);};else w=E;if(this.current)u=this.current[z](false,y,w);else if(s){u=v.endContainer;if(v.endOffset>0){u=u.getChild(v.endOffset-1);if(w(u)===false)u=null;}else u=w(u,true)===false?null:u.getPreviousSourceNode(true,y,w);}else{u=v.startContainer;u=u.getChild(v.startOffset);if(u){if(w(u)===false)u=null;}else u=w(v.startContainer,true)===false?null:v.startContainer.getNextSourceNode(true,y,w);}while(u&&!this._.end){this.current=u;if(!this.evaluator||this.evaluator(u)!==false){if(!t)return u;}else if(t&&this.evaluator)return false;u=u[z](false,y,w);}this.end();return this.current=null;};function m(s){var t,u=null;while(t=l.call(this,s))u=t;return u;};d.walker=e.createClass({$:function(s){this.range=s;this._={};},proto:{end:function(){this._.end=1;},next:function(){return l.call(this);},previous:function(){return l.call(this,1);},checkForward:function(){return l.call(this,0,1)!==false;},checkBackward:function(){return l.call(this,1,1)!==false;},lastForward:function(){return m.call(this);},lastBackward:function(){return m.call(this,1);},reset:function(){delete this.current;this._={};}}});var n={block:1,'list-item':1,table:1,'table-row-group':1,'table-header-group':1,'table-footer-group':1,'table-row':1,'table-column-group':1,'table-column':1,'table-cell':1,'table-caption':1};h.prototype.isBlockBoundary=function(s){var t=s?e.extend({},f.$block,s||{}):f.$block;return this.getComputedStyle('float')=='none'&&n[this.getComputedStyle('display')]||t[this.getName()];};d.walker.blockBoundary=function(s){return function(t,u){return!(t.type==1&&t.isBlockBoundary(s));};};d.walker.listItemBoundary=function(){return this.blockBoundary({br:1});};d.walker.bookmark=function(s,t){function u(v){return v&&v.getName&&v.getName()=='span'&&v.data('cke-bookmark');};return function(v){var w,x;
-w=v&&!v.getName&&(x=v.getParent())&&u(x);w=s?w:w||u(v);return!!(t^w);};};d.walker.whitespaces=function(s){return function(t){var u=t&&t.type==3&&!e.trim(t.getText());return!!(s^u);};};d.walker.invisible=function(s){var t=d.walker.whitespaces();return function(u){var v=t(u)||u.is&&!u.$.offsetHeight;return!!(s^v);};};d.walker.nodeType=function(s,t){return function(u){return!!(t^u.type==s);};};var o=/^[\t\r\n ]*(?: |\xa0)$/,p=d.walker.whitespaces(),q=d.walker.bookmark(),r=function(s){return q(s)||p(s)||s.type==1&&s.getName() in f.$inline&&!(s.getName() in f.$empty);};h.prototype.getBogus=function(){var s=this;do s=s.getPreviousSourceNode();while(r(s));if(s&&(!c?s.is&&s.is('br'):s.getText&&o.test(s.getText())))return s;return false;};})();d.range=function(l){var m=this;m.startContainer=null;m.startOffset=null;m.endContainer=null;m.endOffset=null;m.collapsed=true;m.document=l;};(function(){var l=function(t){t.collapsed=t.startContainer&&t.endContainer&&t.startContainer.equals(t.endContainer)&&t.startOffset==t.endOffset;},m=function(t,u,v,w){t.optimizeBookmark();var x=t.startContainer,y=t.endContainer,z=t.startOffset,A=t.endOffset,B,C;if(y.type==3)y=y.split(A);else if(y.getChildCount()>0)if(A>=y.getChildCount()){y=y.append(t.document.createText(''));C=true;}else y=y.getChild(A);if(x.type==3){x.split(z);if(x.equals(y))y=x.getNext();}else if(!z){x=x.getFirst().insertBeforeMe(t.document.createText(''));B=true;}else if(z>=x.getChildCount()){x=x.append(t.document.createText(''));B=true;}else x=x.getChild(z).getPrevious();var D=x.getParents(),E=y.getParents(),F,G,H;for(F=0;F<D.length;F++){G=D[F];H=E[F];if(!G.equals(H))break;}var I=v,J,K,L,M;for(var N=F;N<D.length;N++){J=D[N];if(I&&!J.equals(x))K=I.append(J.clone());L=J.getNext();while(L){if(L.equals(E[N])||L.equals(y))break;M=L.getNext();if(u==2)I.append(L.clone(true));else{L.remove();if(u==1)I.append(L);}L=M;}if(I)I=K;}I=v;for(var O=F;O<E.length;O++){J=E[O];if(u>0&&!J.equals(y))K=I.append(J.clone());if(!D[O]||J.$.parentNode!=D[O].$.parentNode){L=J.getPrevious();while(L){if(L.equals(D[O])||L.equals(x))break;M=L.getPrevious();if(u==2)I.$.insertBefore(L.$.cloneNode(true),I.$.firstChild);else{L.remove();if(u==1)I.$.insertBefore(L.$,I.$.firstChild);}L=M;}}if(I)I=K;}if(u==2){var P=t.startContainer;if(P.type==3){P.$.data+=P.$.nextSibling.data;P.$.parentNode.removeChild(P.$.nextSibling);}var Q=t.endContainer;if(Q.type==3&&Q.$.nextSibling){Q.$.data+=Q.$.nextSibling.data;Q.$.parentNode.removeChild(Q.$.nextSibling);}}else{if(G&&H&&(x.$.parentNode!=G.$.parentNode||y.$.parentNode!=H.$.parentNode)){var R=H.getIndex();
-if(B&&H.$.parentNode==x.$.parentNode)R--;if(w&&G.type==1){var S=h.createFromHtml('<span data-cke-bookmark="1" style="display:none"> </span>',t.document);S.insertAfter(G);G.mergeSiblings(false);t.moveToBookmark({startNode:S});}else t.setStart(H.getParent(),R);}t.collapse(true);}if(B)x.remove();if(C&&y.$.parentNode)y.remove();},n={abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1};function o(t){var u=false,v=d.walker.bookmark(true);return function(w){if(v(w))return true;if(w.type==3){if(w.hasAscendant('pre')||e.trim(w.getText()).length)return false;}else if(w.type==1)if(!n[w.getName()])if(!t&&!c&&w.getName()=='br'&&!u)u=true;else return false;return true;};};function p(t){return t.type!=3&&t.getName() in f.$removeEmpty||!e.trim(t.getText())||!!t.getParent().data('cke-bookmark');};var q=new d.walker.whitespaces(),r=new d.walker.bookmark();function s(t){return!q(t)&&!r(t);};d.range.prototype={clone:function(){var u=this;var t=new d.range(u.document);t.startContainer=u.startContainer;t.startOffset=u.startOffset;t.endContainer=u.endContainer;t.endOffset=u.endOffset;t.collapsed=u.collapsed;return t;},collapse:function(t){var u=this;if(t){u.endContainer=u.startContainer;u.endOffset=u.startOffset;}else{u.startContainer=u.endContainer;u.startOffset=u.endOffset;}u.collapsed=true;},cloneContents:function(){var t=new d.documentFragment(this.document);if(!this.collapsed)m(this,2,t);return t;},deleteContents:function(t){if(this.collapsed)return;m(this,0,null,t);},extractContents:function(t){var u=new d.documentFragment(this.document);if(!this.collapsed)m(this,1,u,t);return u;},createBookmark:function(t){var z=this;var u,v,w,x,y=z.collapsed;u=z.document.createElement('span');u.data('cke-bookmark',1);u.setStyle('display','none');u.setHtml(' ');if(t){w='cke_bm_'+e.getNextNumber();u.setAttribute('id',w+'S');}if(!y){v=u.clone();v.setHtml(' ');if(t)v.setAttribute('id',w+'E');x=z.clone();x.collapse();x.insertNode(v);}x=z.clone();x.collapse(true);x.insertNode(u);if(v){z.setStartAfter(u);z.setEndBefore(v);}else z.moveToPosition(u,4);return{startNode:t?w+'S':u,endNode:t?w+'E':v,serializable:t,collapsed:y};},createBookmark2:function(t){var B=this;var u=B.startContainer,v=B.endContainer,w=B.startOffset,x=B.endOffset,y=B.collapsed,z,A;if(!u||!v)return{start:0,end:0};if(t){if(u.type==1){z=u.getChild(w);if(z&&z.type==3&&w>0&&z.getPrevious().type==3){u=z;w=0;
-}if(z&&z.type==1)w=z.getIndex(1);}while(u.type==3&&(A=u.getPrevious())&&A.type==3){u=A;w+=A.getLength();}if(!y){if(v.type==1){z=v.getChild(x);if(z&&z.type==3&&x>0&&z.getPrevious().type==3){v=z;x=0;}if(z&&z.type==1)x=z.getIndex(1);}while(v.type==3&&(A=v.getPrevious())&&A.type==3){v=A;x+=A.getLength();}}}return{start:u.getAddress(t),end:y?null:v.getAddress(t),startOffset:w,endOffset:x,normalized:t,collapsed:y,is2:true};},moveToBookmark:function(t){var B=this;if(t.is2){var u=B.document.getByAddress(t.start,t.normalized),v=t.startOffset,w=t.end&&B.document.getByAddress(t.end,t.normalized),x=t.endOffset;B.setStart(u,v);if(w)B.setEnd(w,x);else B.collapse(true);}else{var y=t.serializable,z=y?B.document.getById(t.startNode):t.startNode,A=y?B.document.getById(t.endNode):t.endNode;B.setStartBefore(z);z.remove();if(A){B.setEndBefore(A);A.remove();}else B.collapse(true);}},getBoundaryNodes:function(){var y=this;var t=y.startContainer,u=y.endContainer,v=y.startOffset,w=y.endOffset,x;if(t.type==1){x=t.getChildCount();if(x>v)t=t.getChild(v);else if(x<1)t=t.getPreviousSourceNode();else{t=t.$;while(t.lastChild)t=t.lastChild;t=new d.node(t);t=t.getNextSourceNode()||t;}}if(u.type==1){x=u.getChildCount();if(x>w)u=u.getChild(w).getPreviousSourceNode(true);else if(x<1)u=u.getPreviousSourceNode();else{u=u.$;while(u.lastChild)u=u.lastChild;u=new d.node(u);}}if(t.getPosition(u)&2)t=u;return{startNode:t,endNode:u};},getCommonAncestor:function(t,u){var y=this;var v=y.startContainer,w=y.endContainer,x;if(v.equals(w)){if(t&&v.type==1&&y.startOffset==y.endOffset-1)x=v.getChild(y.startOffset);else x=v;}else x=v.getCommonAncestor(w);return u&&!x.is?x.getParent():x;},optimize:function(){var v=this;var t=v.startContainer,u=v.startOffset;if(t.type!=1)if(!u)v.setStartBefore(t);else if(u>=t.getLength())v.setStartAfter(t);t=v.endContainer;u=v.endOffset;if(t.type!=1)if(!u)v.setEndBefore(t);else if(u>=t.getLength())v.setEndAfter(t);},optimizeBookmark:function(){var v=this;var t=v.startContainer,u=v.endContainer;if(t.is&&t.is('span')&&t.data('cke-bookmark'))v.setStartAt(t,3);if(u&&u.is&&u.is('span')&&u.data('cke-bookmark'))v.setEndAt(u,4);},trim:function(t,u){var B=this;var v=B.startContainer,w=B.startOffset,x=B.collapsed;if((!t||x)&&v&&v.type==3){if(!w){w=v.getIndex();v=v.getParent();}else if(w>=v.getLength()){w=v.getIndex()+1;v=v.getParent();}else{var y=v.split(w);w=v.getIndex()+1;v=v.getParent();if(B.startContainer.equals(B.endContainer))B.setEnd(y,B.endOffset-B.startOffset);else if(v.equals(B.endContainer))B.endOffset+=1;
-}B.setStart(v,w);if(x){B.collapse(true);return;}}var z=B.endContainer,A=B.endOffset;if(!(u||x)&&z&&z.type==3){if(!A){A=z.getIndex();z=z.getParent();}else if(A>=z.getLength()){A=z.getIndex()+1;z=z.getParent();}else{z.split(A);A=z.getIndex()+1;z=z.getParent();}B.setEnd(z,A);}},enlarge:function(t,u){switch(t){case 1:if(this.collapsed)return;var v=this.getCommonAncestor(),w=this.document.getBody(),x,y,z,A,B,C=false,D,E,F=this.startContainer,G=this.startOffset;if(F.type==3){if(G){F=!e.trim(F.substring(0,G)).length&&F;C=!!F;}if(F)if(!(A=F.getPrevious()))z=F.getParent();}else{if(G)A=F.getChild(G-1)||F.getLast();if(!A)z=F;}while(z||A){if(z&&!A){if(!B&&z.equals(v))B=true;if(!w.contains(z))break;if(!C||z.getComputedStyle('display')!='inline'){C=false;if(B)x=z;else this.setStartBefore(z);}A=z.getPrevious();}while(A){D=false;if(A.type==3){E=A.getText();if(/[^\s\ufeff]/.test(E))A=null;D=/[\s\ufeff]$/.test(E);}else if((A.$.offsetWidth>0||u&&A.is('br'))&&!A.data('cke-bookmark'))if(C&&f.$removeEmpty[A.getName()]){E=A.getText();if(/[^\s\ufeff]/.test(E))A=null;else{var H=A.$.all||A.$.getElementsByTagName('*');for(var I=0,J;J=H[I++];){if(!f.$removeEmpty[J.nodeName.toLowerCase()]){A=null;break;}}}if(A)D=!!E.length;}else A=null;if(D)if(C){if(B)x=z;else if(z)this.setStartBefore(z);}else C=true;if(A){var K=A.getPrevious();if(!z&&!K){z=A;A=null;break;}A=K;}else z=null;}if(z)z=z.getParent();}F=this.endContainer;G=this.endOffset;z=A=null;B=C=false;if(F.type==3){F=!e.trim(F.substring(G)).length&&F;C=!(F&&F.getLength());if(F)if(!(A=F.getNext()))z=F.getParent();}else{A=F.getChild(G);if(!A)z=F;}while(z||A){if(z&&!A){if(!B&&z.equals(v))B=true;if(!w.contains(z))break;if(!C||z.getComputedStyle('display')!='inline'){C=false;if(B)y=z;else if(z)this.setEndAfter(z);}A=z.getNext();}while(A){D=false;if(A.type==3){E=A.getText();if(/[^\s\ufeff]/.test(E))A=null;D=/^[\s\ufeff]/.test(E);}else if((A.$.offsetWidth>0||u&&A.is('br'))&&!A.data('cke-bookmark'))if(C&&f.$removeEmpty[A.getName()]){E=A.getText();if(/[^\s\ufeff]/.test(E))A=null;else{H=A.$.all||A.$.getElementsByTagName('*');for(I=0;J=H[I++];){if(!f.$removeEmpty[J.nodeName.toLowerCase()]){A=null;break;}}}if(A)D=!!E.length;}else A=null;if(D)if(C)if(B)y=z;else this.setEndAfter(z);if(A){K=A.getNext();if(!z&&!K){z=A;A=null;break;}A=K;}else z=null;}if(z)z=z.getParent();}if(x&&y){v=x.contains(y)?y:x;this.setStartBefore(v);this.setEndAfter(v);}break;case 2:case 3:var L=new d.range(this.document);w=this.document.getBody();L.setStartAt(w,1);L.setEnd(this.startContainer,this.startOffset);
-var M=new d.walker(L),N,O,P=d.walker.blockBoundary(t==3?{br:1}:null),Q=function(S){var T=P(S);if(!T)N=S;return T;},R=function(S){var T=Q(S);if(!T&&S.is&&S.is('br'))O=S;return T;};M.guard=Q;z=M.lastBackward();N=N||w;this.setStartAt(N,!N.is('br')&&(!z&&this.checkStartOfBlock()||z&&N.contains(z))?1:4);L=this.clone();L.collapse();L.setEndAt(w,2);M=new d.walker(L);M.guard=t==3?R:Q;N=null;z=M.lastForward();N=N||w;this.setEndAt(N,!z&&this.checkEndOfBlock()||z&&N.contains(z)?2:3);if(O)this.setEndAfter(O);}},shrink:function(t,u){if(!this.collapsed){t=t||2;var v=this.clone(),w=this.startContainer,x=this.endContainer,y=this.startOffset,z=this.endOffset,A=this.collapsed,B=1,C=1;if(w&&w.type==3)if(!y)v.setStartBefore(w);else if(y>=w.getLength())v.setStartAfter(w);else{v.setStartBefore(w);B=0;}if(x&&x.type==3)if(!z)v.setEndBefore(x);else if(z>=x.getLength())v.setEndAfter(x);else{v.setEndAfter(x);C=0;}var D=new d.walker(v),E=d.walker.bookmark();D.evaluator=function(I){return I.type==(t==1?1:3);};var F;D.guard=function(I,J){if(E(I))return true;if(t==1&&I.type==3)return false;if(J&&I.equals(F))return false;if(!J&&I.type==1)F=I;return true;};if(B){var G=D[t==1?'lastForward':'next']();G&&this.setStartAt(G,u?1:3);}if(C){D.reset();var H=D[t==1?'lastBackward':'previous']();H&&this.setEndAt(H,u?2:4);}return!!(B||C);}},insertNode:function(t){var x=this;x.optimizeBookmark();x.trim(false,true);var u=x.startContainer,v=x.startOffset,w=u.getChild(v);if(w)t.insertBefore(w);else u.append(t);if(t.getParent().equals(x.endContainer))x.endOffset++;x.setStartBefore(t);},moveToPosition:function(t,u){this.setStartAt(t,u);this.collapse(true);},selectNodeContents:function(t){this.setStart(t,0);this.setEnd(t,t.type==3?t.getLength():t.getChildCount());},setStart:function(t,u){var v=this;if(t.type==1&&f.$empty[t.getName()])u=t.getIndex(),t=t.getParent();v.startContainer=t;v.startOffset=u;if(!v.endContainer){v.endContainer=t;v.endOffset=u;}l(v);},setEnd:function(t,u){var v=this;if(t.type==1&&f.$empty[t.getName()])u=t.getIndex()+1,t=t.getParent();v.endContainer=t;v.endOffset=u;if(!v.startContainer){v.startContainer=t;v.startOffset=u;}l(v);},setStartAfter:function(t){this.setStart(t.getParent(),t.getIndex()+1);},setStartBefore:function(t){this.setStart(t.getParent(),t.getIndex());},setEndAfter:function(t){this.setEnd(t.getParent(),t.getIndex()+1);},setEndBefore:function(t){this.setEnd(t.getParent(),t.getIndex());},setStartAt:function(t,u){var v=this;switch(u){case 1:v.setStart(t,0);break;case 2:if(t.type==3)v.setStart(t,t.getLength());
-else v.setStart(t,t.getChildCount());break;case 3:v.setStartBefore(t);break;case 4:v.setStartAfter(t);}l(v);},setEndAt:function(t,u){var v=this;switch(u){case 1:v.setEnd(t,0);break;case 2:if(t.type==3)v.setEnd(t,t.getLength());else v.setEnd(t,t.getChildCount());break;case 3:v.setEndBefore(t);break;case 4:v.setEndAfter(t);}l(v);},fixBlock:function(t,u){var x=this;var v=x.createBookmark(),w=x.document.createElement(u);x.collapse(t);x.enlarge(2);x.extractContents().appendTo(w);w.trim();if(!c)w.appendBogus();x.insertNode(w);x.moveToBookmark(v);return w;},splitBlock:function(t){var D=this;var u=new d.elementPath(D.startContainer),v=new d.elementPath(D.endContainer),w=u.blockLimit,x=v.blockLimit,y=u.block,z=v.block,A=null;if(!w.equals(x))return null;if(t!='br'){if(!y){y=D.fixBlock(true,t);z=new d.elementPath(D.endContainer).block;}if(!z)z=D.fixBlock(false,t);}var B=y&&D.checkStartOfBlock(),C=z&&D.checkEndOfBlock();D.deleteContents();if(y&&y.equals(z))if(C){A=new d.elementPath(D.startContainer);D.moveToPosition(z,4);z=null;}else if(B){A=new d.elementPath(D.startContainer);D.moveToPosition(y,3);y=null;}else{z=D.splitElement(y);if(!c&&!y.is('ul','ol'))y.appendBogus();}return{previousBlock:y,nextBlock:z,wasStartOfBlock:B,wasEndOfBlock:C,elementPath:A};},splitElement:function(t){var w=this;if(!w.collapsed)return null;w.setEndAt(t,2);var u=w.extractContents(),v=t.clone(false);u.appendTo(v);v.insertAfter(t);w.moveToPosition(t,4);return v;},checkBoundaryOfElement:function(t,u){var v=u==1,w=this.clone();w.collapse(v);w[v?'setStartAt':'setEndAt'](t,v?1:2);var x=new d.walker(w);x.evaluator=p;return x[v?'checkBackward':'checkForward']();},checkStartOfBlock:function(){var z=this;var t=z.startContainer,u=z.startOffset;if(u&&t.type==3){var v=e.ltrim(t.substring(0,u));if(v.length)return false;}z.trim();var w=new d.elementPath(z.startContainer),x=z.clone();x.collapse(true);x.setStartAt(w.block||w.blockLimit,1);var y=new d.walker(x);y.evaluator=o(true);return y.checkBackward();},checkEndOfBlock:function(){var z=this;var t=z.endContainer,u=z.endOffset;if(t.type==3){var v=e.rtrim(t.substring(u));if(v.length)return false;}z.trim();var w=new d.elementPath(z.endContainer),x=z.clone();x.collapse(false);x.setEndAt(w.block||w.blockLimit,2);var y=new d.walker(x);y.evaluator=o(false);return y.checkForward();},checkReadOnly:(function(){function t(u,v){while(u){if(u.type==1)if(u.getAttribute('contentEditable')=='false'&&!u.data('cke-editable'))return 0;else if(u.is('html')||u.getAttribute('contentEditable')=='true'&&(u.contains(v)||u.equals(v)))break;
-u=u.getParent();}return 1;};return function(){var u=this.startContainer,v=this.endContainer;return!(t(u,v)&&t(v,u));};})(),moveToElementEditablePosition:function(t,u){var v;if(f.$empty[t.getName()])return false;while(t&&t.type==1){v=t.isEditable();if(v)this.moveToPosition(t,u?2:1);else if(f.$inline[t.getName()]){this.moveToPosition(t,u?4:3);return true;}if(f.$empty[t.getName()])t=t[u?'getPrevious':'getNext'](s);else t=t[u?'getLast':'getFirst'](s);if(t&&t.type==3){this.moveToPosition(t,u?4:3);return true;}}return v;},moveToElementEditStart:function(t){return this.moveToElementEditablePosition(t);},moveToElementEditEnd:function(t){return this.moveToElementEditablePosition(t,true);},getEnclosedNode:function(){var t=this.clone();t.optimize();if(t.startContainer.type!=1||t.endContainer.type!=1)return null;var u=new d.walker(t),v=d.walker.bookmark(true),w=d.walker.whitespaces(true),x=function(z){return w(z)&&v(z);};t.evaluator=x;var y=u.next();u.reset();return y&&y.equals(u.previous())?y:null;},getTouchedStartNode:function(){var t=this.startContainer;if(this.collapsed||t.type!=1)return t;return t.getChild(this.startOffset)||t;},getTouchedEndNode:function(){var t=this.endContainer;if(this.collapsed||t.type!=1)return t;return t.getChild(this.endOffset-1)||t;}};})();a.POSITION_AFTER_START=1;a.POSITION_BEFORE_END=2;a.POSITION_BEFORE_START=3;a.POSITION_AFTER_END=4;a.ENLARGE_ELEMENT=1;a.ENLARGE_BLOCK_CONTENTS=2;a.ENLARGE_LIST_ITEM_CONTENTS=3;a.START=1;a.END=2;a.STARTEND=3;a.SHRINK_ELEMENT=1;a.SHRINK_TEXT=2;(function(){d.rangeList=function(n){if(n instanceof d.rangeList)return n;if(!n)n=[];else if(n instanceof d.range)n=[n];return e.extend(n,l);};var l={createIterator:function(){var n=this,o=d.walker.bookmark(),p=function(s){return!(s.is&&s.is('tr'));},q=[],r;return{getNextRange:function(s){r=r==undefined?0:r+1;var t=n[r];if(t&&n.length>1){if(!r)for(var u=n.length-1;u>=0;u--)q.unshift(n[u].createBookmark(true));if(s){var v=0;while(n[r+v+1]){var w=t.document,x=0,y=w.getById(q[v].endNode),z=w.getById(q[v+1].startNode),A;while(1){A=y.getNextSourceNode(false);if(!z.equals(A)){if(o(A)||A.type==1&&A.isBlockBoundary()){y=A;continue;}}else x=1;break;}if(!x)break;v++;}}t.moveToBookmark(q.shift());while(v--){A=n[++r];A.moveToBookmark(q.shift());t.setEnd(A.endContainer,A.endOffset);}}return t;}};},createBookmarks:function(n){var s=this;var o=[],p;for(var q=0;q<s.length;q++){o.push(p=s[q].createBookmark(n,true));for(var r=q+1;r<s.length;r++){s[r]=m(p,s[r]);s[r]=m(p,s[r],true);}}return o;
-},createBookmarks2:function(n){var o=[];for(var p=0;p<this.length;p++)o.push(this[p].createBookmark2(n));return o;},moveToBookmarks:function(n){for(var o=0;o<this.length;o++)this[o].moveToBookmark(n[o]);}};function m(n,o,p){var q=n.serializable,r=o[p?'endContainer':'startContainer'],s=p?'endOffset':'startOffset',t=q?o.document.getById(n.startNode):n.startNode,u=q?o.document.getById(n.endNode):n.endNode;if(r.equals(t.getPrevious())){o.startOffset=o.startOffset-r.getLength()-u.getPrevious().getLength();r=u.getNext();}else if(r.equals(u.getPrevious())){o.startOffset=o.startOffset-r.getLength();r=u.getNext();}r.equals(t.getParent())&&o[s]++;r.equals(u.getParent())&&o[s]++;o[p?'endContainer':'startContainer']=r;return o;};})();(function(){if(b.webkit){b.hc=false;return;}var l=h.createFromHtml('<div style="width:0px;height:0px;position:absolute;left:-10000px;border: 1px solid;border-color: red blue;"></div>',a.document);l.appendTo(a.document.getHead());try{b.hc=l.getComputedStyle('border-top-color')==l.getComputedStyle('border-right-color');}catch(m){b.hc=false;}if(b.hc)b.cssClass+=' cke_hc';l.remove();})();j.load(i.corePlugins.split(','),function(){a.status='loaded';a.fire('loaded');var l=a._.pending;if(l){delete a._.pending;for(var m=0;m<l.length;m++)a.add(l[m]);}});if(c)try{document.execCommand('BackgroundImageCache',false,true);}catch(l){}a.skins.add('kama',(function(){var m='cke_ui_color';return{editor:{css:['editor.css']},dialog:{css:['dialog.css']},richcombo:{canGroup:false},templates:{css:['templates.css']},margins:[0,0,0,0],init:function(n){if(n.config.width&&!isNaN(n.config.width))n.config.width-=12;var o=[],p=/\$color/g,q='/* UI Color Support */.cke_skin_kama .cke_menuitem .cke_icon_wrapper{\tbackground-color: $color !important;\tborder-color: $color !important;}.cke_skin_kama .cke_menuitem a:hover .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a:focus .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a:active .cke_icon_wrapper{\tbackground-color: $color !important;\tborder-color: $color !important;}.cke_skin_kama .cke_menuitem a:hover .cke_label,.cke_skin_kama .cke_menuitem a:focus .cke_label,.cke_skin_kama .cke_menuitem a:active .cke_label{\tbackground-color: $color !important;}.cke_skin_kama .cke_menuitem a.cke_disabled:hover .cke_label,.cke_skin_kama .cke_menuitem a.cke_disabled:focus .cke_label,.cke_skin_kama .cke_menuitem a.cke_disabled:active .cke_label{\tbackground-color: transparent !important;}.cke_skin_kama .cke_menuitem a.cke_disabled:hover .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a.cke_disabled:focus .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a.cke_disabled:active .cke_icon_wrapper{\tbackground-color: $color !important;\tborder-color: $color !important;}.cke_skin_kama .cke_menuitem a.cke_disabled .cke_icon_wrapper{\tbackground-color: $color !important;\tborder-color: $color !important;}.cke_skin_kama .cke_menuseparator{\tbackground-color: $color !important;}.cke_skin_kama .cke_menuitem a:hover,.cke_skin_kama .cke_menuitem a:focus,.cke_skin_kama .cke_menuitem a:active{\tbackground-color: $color !important;}';
-if(b.webkit){q=q.split('}').slice(0,-1);for(var r=0;r<q.length;r++)q[r]=q[r].split('{');}function s(v){var w=v.getById(m);if(!w){w=v.getHead().append('style');w.setAttribute('id',m);w.setAttribute('type','text/css');}return w;};function t(v,w,x){var y,z,A;for(var B=0;B<v.length;B++){if(b.webkit)for(z=0;z<w.length;z++){A=w[z][1];for(y=0;y<x.length;y++)A=A.replace(x[y][0],x[y][1]);v[B].$.sheet.addRule(w[z][0],A);}else{A=w;for(y=0;y<x.length;y++)A=A.replace(x[y][0],x[y][1]);if(c)v[B].$.styleSheet.cssText+=A;else v[B].$.innerHTML+=A;}}};var u=/\$color/g;e.extend(n,{uiColor:null,getUiColor:function(){return this.uiColor;},setUiColor:function(v){var w,x=s(a.document),y='.'+n.id,z=[y+' .cke_wrapper',y+'_dialog .cke_dialog_contents',y+'_dialog a.cke_dialog_tab',y+'_dialog .cke_dialog_footer'].join(','),A='background-color: $color !important;';if(b.webkit)w=[[z,A]];else w=z+'{'+A+'}';return(this.setUiColor=function(B){var C=[[u,B]];n.uiColor=B;t([x],w,C);t(o,q,C);})(v);}});n.on('menuShow',function(v){var w=v.data[0],x=w.element.getElementsByTag('iframe').getItem(0).getFrameDocument();if(!x.getById('cke_ui_color')){var y=s(x);o.push(y);var z=n.getUiColor();if(z)t([y],q,[[u,z]]);}});if(n.config.uiColor)n.setUiColor(n.config.uiColor);}};})());(function(){a.dialog?m():a.on('dialogPluginReady',m);function m(){a.dialog.on('resize',function(n){var o=n.data,p=o.width,q=o.height,r=o.dialog,s=r.parts.contents;if(o.skin!='kama')return;s.setStyles({width:p+'px',height:q+'px'});});};})();j.add('about',{requires:['dialog'],init:function(m){var n=m.addCommand('about',new a.dialogCommand('about'));n.modes={wysiwyg:1,source:1};n.canUndo=false;n.readOnly=1;m.ui.addButton('About',{label:m.lang.about.title,command:'about'});a.dialog.add('about',this.path+'dialogs/about.js');}});(function(){var m='a11yhelp',n='a11yHelp';j.add(m,{availableLangs:{en:1,he:1},init:function(o){var p=this;o.addCommand(n,{exec:function(){var q=o.langCode;q=p.availableLangs[q]?q:'en';a.scriptLoader.load(a.getUrl(p.path+'lang/'+q+'.js'),function(){e.extend(o.lang,p.langEntries[q]);o.openDialog(n);});},modes:{wysiwyg:1,source:1},readOnly:1,canUndo:false});a.dialog.add(n,this.path+'dialogs/a11yhelp.js');}});})();j.add('basicstyles',{requires:['styles','button'],init:function(m){var n=function(q,r,s,t){var u=new a.style(t);m.attachStyleStateChange(u,function(v){!m.readOnly&&m.getCommand(s).setState(v);});m.addCommand(s,new a.styleCommand(u));m.ui.addButton(q,{label:r,command:s});},o=m.config,p=m.lang;n('Bold',p.bold,'bold',o.coreStyles_bold);
-n('Italic',p.italic,'italic',o.coreStyles_italic);n('Underline',p.underline,'underline',o.coreStyles_underline);n('Strike',p.strike,'strike',o.coreStyles_strike);n('Subscript',p.subscript,'subscript',o.coreStyles_subscript);n('Superscript',p.superscript,'superscript',o.coreStyles_superscript);}});i.coreStyles_bold={element:'strong',overrides:'b'};i.coreStyles_italic={element:'em',overrides:'i'};i.coreStyles_underline={element:'u'};i.coreStyles_strike={element:'strike'};i.coreStyles_subscript={element:'sub'};i.coreStyles_superscript={element:'sup'};(function(){var m={table:1,ul:1,ol:1,blockquote:1,div:1},n={},o={};e.extend(n,m,{tr:1,p:1,div:1,li:1});e.extend(o,n,{td:1});function p(B){q(B);r(B);};function q(B){var C=B.editor,D=B.data.path;if(C.readOnly)return;var E=C.config.useComputedState,F;E=E===undefined||E;if(!E)F=s(D.lastElement);F=F||D.block||D.blockLimit;if(F.is('body')){var G=C.getSelection().getRanges()[0].getEnclosedNode();G&&G.type==1&&(F=G);}if(!F)return;var H=E?F.getComputedStyle('direction'):F.getStyle('direction')||F.getAttribute('dir');C.getCommand('bidirtl').setState(H=='rtl'?1:2);C.getCommand('bidiltr').setState(H=='ltr'?1:2);};function r(B){var C=B.editor,D=B.data.path.block||B.data.path.blockLimit;C.fire('contentDirChanged',D?D.getComputedStyle('direction'):C.lang.dir);};function s(B){while(B&&!(B.getName() in o||B.is('body'))){var C=B.getParent();if(!C)break;B=C;}return B;};function t(B,C,D,E){if(B.isReadOnly())return;h.setMarker(E,B,'bidi_processed',1);var F=B;while((F=F.getParent())&&!F.is('body')){if(F.getCustomData('bidi_processed')){B.removeStyle('direction');B.removeAttribute('dir');return;}}var G='useComputedState' in D.config?D.config.useComputedState:1,H=G?B.getComputedStyle('direction'):B.getStyle('direction')||B.hasAttribute('dir');if(H==C)return;B.removeStyle('direction');if(G){B.removeAttribute('dir');if(C!=B.getComputedStyle('direction'))B.setAttribute('dir',C);}else B.setAttribute('dir',C);D.forceNextSelectionCheck();};function u(B,C,D){var E=B.getCommonAncestor(false,true);B=B.clone();B.enlarge(D==2?3:2);if(B.checkBoundaryOfElement(E,1)&&B.checkBoundaryOfElement(E,2)){var F;while(E&&E.type==1&&(F=E.getParent())&&F.getChildCount()==1&&!(E.getName() in C))E=F;return E.type==1&&E.getName() in C&&E;}};function v(B){return function(C){var D=C.getSelection(),E=C.config.enterMode,F=D.getRanges();if(F&&F.length){var G={},H=D.createBookmarks(),I=F.createIterator(),J,K=0;while(J=I.getNextRange(1)){var L=J.getEnclosedNode();if(!L||L&&!(L.type==1&&L.getName() in n))L=u(J,m,E);
-L&&t(L,B,C,G);var M,N,O=new d.walker(J),P=H[K].startNode,Q=H[K++].endNode;O.evaluator=function(R){return!!(R.type==1&&R.getName() in m&&!(R.getName()==(E==1?'p':'div')&&R.getParent().type==1&&R.getParent().getName()=='blockquote')&&R.getPosition(P)&2&&(R.getPosition(Q)&4+16)==4);};while(N=O.next())t(N,B,C,G);M=J.createIterator();M.enlargeBr=E!=2;while(N=M.getNextParagraph(E==1?'p':'div'))t(N,B,C,G);}h.clearAllMarkers(G);C.forceNextSelectionCheck();D.selectBookmarks(H);C.focus();}};};j.add('bidi',{requires:['styles','button'],init:function(B){var C=function(E,F,G,H){B.addCommand(G,new a.command(B,{exec:H}));B.ui.addButton(E,{label:F,command:G});},D=B.lang.bidi;C('BidiLtr',D.ltr,'bidiltr',v('ltr'));C('BidiRtl',D.rtl,'bidirtl',v('rtl'));B.on('selectionChange',p);B.on('contentDom',function(){B.document.on('dirChanged',function(E){B.fire('dirChanged',{node:E.data,dir:E.data.getDirection(1)});});});}});function w(B){var C=B.getDocument().getBody().getParent();while(B){if(B.equals(C))return false;B=B.getParent();}return true;};function x(B){var C=B==y.setAttribute,D=B==y.removeAttribute,E=/\bdirection\s*:\s*(.*?)\s*(:?$|;)/;return function(F,G){var J=this;if(!J.getDocument().equals(a.document)){var H;if((F==(C||D?'dir':'direction')||F=='style'&&(D||E.test(G)))&&!w(J)){H=J.getDirection(1);var I=B.apply(J,arguments);if(H!=J.getDirection(1)){J.getDocument().fire('dirChanged',J);return I;}}}return B.apply(J,arguments);};};var y=h.prototype,z=['setStyle','removeStyle','setAttribute','removeAttribute'];for(var A=0;A<z.length;A++)y[z[A]]=e.override(y[z[A]],x);})();(function(){function m(q,r){var s=r.block||r.blockLimit;if(!s||s.getName()=='body')return 2;if(s.getAscendant('blockquote',true))return 1;return 2;};function n(q){var r=q.editor;if(r.readOnly)return;var s=r.getCommand('blockquote');s.state=m(r,q.data.path);s.fire('state');};function o(q){for(var r=0,s=q.getChildCount(),t;r<s&&(t=q.getChild(r));r++){if(t.type==1&&t.isBlockBoundary())return false;}return true;};var p={exec:function(q){var r=q.getCommand('blockquote').state,s=q.getSelection(),t=s&&s.getRanges(true)[0];if(!t)return;var u=s.createBookmarks();if(c){var v=u[0].startNode,w=u[0].endNode,x;if(v&&v.getParent().getName()=='blockquote'){x=v;while(x=x.getNext()){if(x.type==1&&x.isBlockBoundary()){v.move(x,true);break;}}}if(w&&w.getParent().getName()=='blockquote'){x=w;while(x=x.getPrevious()){if(x.type==1&&x.isBlockBoundary()){w.move(x);break;}}}}var y=t.createIterator(),z;y.enlargeBr=q.config.enterMode!=2;if(r==2){var A=[];
-while(z=y.getNextParagraph())A.push(z);if(A.length<1){var B=q.document.createElement(q.config.enterMode==1?'p':'div'),C=u.shift();t.insertNode(B);B.append(new d.text('\ufeff',q.document));t.moveToBookmark(C);t.selectNodeContents(B);t.collapse(true);C=t.createBookmark();A.push(B);u.unshift(C);}var D=A[0].getParent(),E=[];for(var F=0;F<A.length;F++){z=A[F];D=D.getCommonAncestor(z.getParent());}var G={table:1,tbody:1,tr:1,ol:1,ul:1};while(G[D.getName()])D=D.getParent();var H=null;while(A.length>0){z=A.shift();while(!z.getParent().equals(D))z=z.getParent();if(!z.equals(H))E.push(z);H=z;}while(E.length>0){z=E.shift();if(z.getName()=='blockquote'){var I=new d.documentFragment(q.document);while(z.getFirst()){I.append(z.getFirst().remove());A.push(I.getLast());}I.replace(z);}else A.push(z);}var J=q.document.createElement('blockquote');J.insertBefore(A[0]);while(A.length>0){z=A.shift();J.append(z);}}else if(r==1){var K=[],L={};while(z=y.getNextParagraph()){var M=null,N=null;while(z.getParent()){if(z.getParent().getName()=='blockquote'){M=z.getParent();N=z;break;}z=z.getParent();}if(M&&N&&!N.getCustomData('blockquote_moveout')){K.push(N);h.setMarker(L,N,'blockquote_moveout',true);}}h.clearAllMarkers(L);var O=[],P=[];L={};while(K.length>0){var Q=K.shift();J=Q.getParent();if(!Q.getPrevious())Q.remove().insertBefore(J);else if(!Q.getNext())Q.remove().insertAfter(J);else{Q.breakParent(Q.getParent());P.push(Q.getNext());}if(!J.getCustomData('blockquote_processed')){P.push(J);h.setMarker(L,J,'blockquote_processed',true);}O.push(Q);}h.clearAllMarkers(L);for(F=P.length-1;F>=0;F--){J=P[F];if(o(J))J.remove();}if(q.config.enterMode==2){var R=true;while(O.length){Q=O.shift();if(Q.getName()=='div'){I=new d.documentFragment(q.document);var S=R&&Q.getPrevious()&&!(Q.getPrevious().type==1&&Q.getPrevious().isBlockBoundary());if(S)I.append(q.document.createElement('br'));var T=Q.getNext()&&!(Q.getNext().type==1&&Q.getNext().isBlockBoundary());while(Q.getFirst())Q.getFirst().remove().appendTo(I);if(T)I.append(q.document.createElement('br'));I.replace(Q);R=false;}}}}s.selectBookmarks(u);q.focus();}};j.add('blockquote',{init:function(q){q.addCommand('blockquote',p);q.ui.addButton('Blockquote',{label:q.lang.blockquote,command:'blockquote'});q.on('selectionChange',n);},requires:['domiterator']});})();j.add('button',{beforeInit:function(m){m.ui.addHandler('button',k.button.handler);}});a.UI_BUTTON='button';k.button=function(m){e.extend(this,m,{title:m.label,className:m.className||m.command&&'cke_button_'+m.command||'',click:m.click||(function(n){n.execCommand(m.command);
-})});this._={};};k.button.handler={create:function(m){return new k.button(m);}};(function(){k.button.prototype={render:function(m,n){var o=b,p=this._.id=e.getNextId(),q='',r=this.command,s;this._.editor=m;var t={id:p,button:this,editor:m,focus:function(){var z=a.document.getById(p);z.focus();},execute:function(){if(c&&b.version<7)e.setTimeout(function(){this.button.click(m);},0,this);else this.button.click(m);}},u=e.addFunction(function(z){if(t.onkey){z=new d.event(z);return t.onkey(t,z.getKeystroke())!==false;}}),v=e.addFunction(function(z){var A;if(t.onfocus)A=t.onfocus(t,new d.event(z))!==false;if(b.gecko&&b.version<10900)z.preventBubble();return A;});t.clickFn=s=e.addFunction(t.execute,t);if(this.modes){var w={};function x(){var z=m.mode;if(z){var A=this.modes[z]?w[z]!=undefined?w[z]:2:0;this.setState(m.readOnly&&!this.readOnly?0:A);}};m.on('beforeModeUnload',function(){if(m.mode&&this._.state!=0)w[m.mode]=this._.state;},this);m.on('mode',x,this);!this.readOnly&&m.on('readOnly',x,this);}else if(r){r=m.getCommand(r);if(r){r.on('state',function(){this.setState(r.state);},this);q+='cke_'+(r.state==1?'on':r.state==0?'disabled':'off');}}if(!r)q+='cke_off';if(this.className)q+=' '+this.className;n.push('<span class="cke_button'+(this.icon&&this.icon.indexOf('.png')==-1?' cke_noalphafix':'')+'">','<a id="',p,'" class="',q,'"',o.gecko&&o.version>=10900&&!o.hc?'':'" href="javascript:void(\''+(this.title||'').replace("'",'')+"')\"",' title="',this.title,'" tabindex="-1" hidefocus="true" role="button" aria-labelledby="'+p+'_label"'+(this.hasArrow?' aria-haspopup="true"':''));if(o.opera||o.gecko&&o.mac)n.push(' onkeypress="return false;"');if(o.gecko)n.push(' onblur="this.style.cssText = this.style.cssText;"');n.push(' onkeydown="return CKEDITOR.tools.callFunction(',u,', event);" onfocus="return CKEDITOR.tools.callFunction(',v,', event);" '+(c?'onclick="return false;" onmouseup':'onclick')+'="CKEDITOR.tools.callFunction(',s,', this); return false;"><span class="cke_icon"');if(this.icon){var y=(this.iconOffset||0)*-16;n.push(' style="background-image:url(',a.getUrl(this.icon),');background-position:0 '+y+'px;"');}n.push('> </span><span id="',p,'_label" class="cke_label">',this.label,'</span>');if(this.hasArrow)n.push('<span class="cke_buttonarrow">'+(b.hc?'▼':' ')+'</span>');n.push('</a>','</span>');if(this.onRender)this.onRender();return t;},setState:function(m){if(this._.state==m)return false;this._.state=m;var n=a.document.getById(this._.id);if(n){n.setState(m);
-m==0?n.setAttribute('aria-disabled',true):n.removeAttribute('aria-disabled');m==1?n.setAttribute('aria-pressed',true):n.removeAttribute('aria-pressed');return true;}else return false;}};})();k.prototype.addButton=function(m,n){this.add(m,'button',n);};(function(){var m=function(y,z){var A=y.document,B=A.getBody(),C=0,D=function(){C=1;};B.on(z,D);(b.version>7?A.$:A.$.selection.createRange()).execCommand(z);B.removeListener(z,D);return C;},n=c?function(y,z){return m(y,z);}:function(y,z){try{return y.document.$.execCommand(z,false,null);}catch(A){return false;}},o=function(y){var z=this;z.type=y;z.canUndo=z.type=='cut';z.startDisabled=true;};o.prototype={exec:function(y,z){this.type=='cut'&&t(y);var A=n(y,this.type);if(!A)alert(y.lang.clipboard[this.type+'Error']);return A;}};var p={canUndo:false,exec:c?function(y){y.focus();if(!y.document.getBody().fire('beforepaste')&&!m(y,'paste')){y.fire('pasteDialog');return false;}}:function(y){try{if(!y.document.getBody().fire('beforepaste')&&!y.document.$.execCommand('Paste',false,null))throw 0;}catch(z){setTimeout(function(){y.fire('pasteDialog');},0);return false;}}},q=function(y){if(this.mode!='wysiwyg')return;switch(y.data.keyCode){case 1114112+86:case 2228224+45:var z=this.document.getBody();if(!c&&z.fire('beforepaste'))y.cancel();else if(b.opera||b.gecko&&b.version<10900)z.fire('paste');return;case 1114112+88:case 2228224+46:var A=this;this.fire('saveSnapshot');setTimeout(function(){A.fire('saveSnapshot');},0);}};function r(y){y.cancel();};function s(y,z,A){var B=this.document;if(B.getById('cke_pastebin'))return;if(z=='text'&&y.data&&y.data.$.clipboardData){var C=y.data.$.clipboardData.getData('text/plain');if(C){y.data.preventDefault();A(C);return;}}var D=this.getSelection(),E=new d.range(B),F=new h(z=='text'?'textarea':b.webkit?'body':'div',B);F.setAttribute('id','cke_pastebin');b.webkit&&F.append(B.createText('\xa0'));B.getBody().append(F);F.setStyles({position:'absolute',top:D.getStartElement().getDocumentPosition().y+'px',width:'1px',height:'1px',overflow:'hidden'});F.setStyle(this.config.contentsLangDirection=='ltr'?'left':'right','-1000px');var G=D.createBookmarks();this.on('selectionChange',r,null,null,0);if(z=='text')F.$.focus();else{E.setStartAt(F,1);E.setEndAt(F,2);E.select(true);}var H=this;window.setTimeout(function(){z=='text'&&b.gecko&&H.focusGrabber.focus();F.remove();H.removeListener('selectionChange',r);var I;F=b.webkit&&(I=F.getFirst())&&I.is&&I.hasClass('Apple-style-span')?I:F;D.selectBookmarks(G);
-A(F['get'+(z=='text'?'Value':'Html')]());},0);};function t(y){if(!c||b.quirks)return;var z=y.getSelection(),A;if(z.getType()==3&&(A=z.getSelectedElement())){var B=z.getRanges()[0],C=y.document.createText('');C.insertBefore(A);B.setStartBefore(C);B.setEndAfter(A);z.selectRanges([B]);setTimeout(function(){if(A.getParent()){C.remove();z.selectElement(A);}},0);}};var u;function v(y,z){c&&(u=1);var A=2;try{A=z.document.$.queryCommandEnabled(y)?2:0;}catch(B){}u=0;return A;};var w;function x(){var z=this;if(z.mode!='wysiwyg')return;z.getCommand('cut').setState(w?0:v('Cut',z));z.getCommand('copy').setState(v('Copy',z));var y=w?0:b.webkit?2:v('Paste',z);z.fire('pasteState',y);};j.add('clipboard',{requires:['dialog','htmldataprocessor'],init:function(y){y.on('paste',function(A){var B=A.data;if(B.html)y.insertHtml(B.html);else if(B.text)y.insertText(B.text);setTimeout(function(){y.fire('afterPaste');},0);},null,null,1000);y.on('pasteDialog',function(A){setTimeout(function(){y.openDialog('paste');},0);});y.on('pasteState',function(A){y.getCommand('paste').setState(A.data);});function z(A,B,C,D){var E=y.lang[B];y.addCommand(B,C);y.ui.addButton(A,{label:E,command:B});if(y.addMenuItems)y.addMenuItem(B,{label:E,command:B,group:'clipboard',order:D});};z('Cut','cut',new o('cut'),1);z('Copy','copy',new o('copy'),4);z('Paste','paste',p,8);a.dialog.add('paste',a.getUrl(this.path+'dialogs/paste.js'));y.on('key',q,y);y.on('contentDom',function(){var A=y.document.getBody();A.on(b.webkit?'paste':'beforepaste',function(B){if(u)return;var C={mode:'html'};y.fire('beforePaste',C);s.call(y,B,C.mode,function(D){if(!(D=e.trim(D.replace(/<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig,''))))return;var E={};E[C.mode]=D;y.fire('paste',E);});});A.on('contextmenu',function(){u=1;setTimeout(function(){u=0;},10);});A.on('beforecut',function(){!u&&t(y);});A.on('mouseup',function(){setTimeout(function(){x.call(y);},0);},y);A.on('keyup',x,y);});y.on('selectionChange',function(A){w=A.data.selection.getRanges()[0].checkReadOnly();x.call(y);});if(y.contextMenu)y.contextMenu.addListener(function(A,B){var C=B.getRanges()[0].checkReadOnly();return{cut:!C&&v('Cut',y),copy:v('Copy',y),paste:!C&&(b.webkit?2:v('Paste',y))};});}});})();j.add('colorbutton',{requires:['panelbutton','floatpanel','styles'],init:function(m){var n=m.config,o=m.lang.colorButton,p;if(!b.hc){q('TextColor','fore',o.textColorTitle);q('BGColor','back',o.bgColorTitle);}function q(t,u,v){var w=e.getNextId()+'_colorBox';m.ui.add(t,'panelbutton',{label:v,title:v,className:'cke_button_'+t.toLowerCase(),modes:{wysiwyg:1},panel:{css:m.skin.editor.css,attributes:{role:'listbox','aria-label':o.panelTitle}},onBlock:function(x,y){y.autoSize=true;
-y.element.addClass('cke_colorblock');y.element.setHtml(r(x,u,w));y.element.getDocument().getBody().setStyle('overflow','hidden');k.fire('ready',this);var z=y.keys,A=m.lang.dir=='rtl';z[A?37:39]='next';z[40]='next';z[9]='next';z[A?39:37]='prev';z[38]='prev';z[2228224+9]='prev';z[32]='click';},onOpen:function(){var x=m.getSelection(),y=x&&x.getStartElement(),z=new d.elementPath(y),A;y=z.block||z.blockLimit||m.document.getBody();do A=y&&y.getComputedStyle(u=='back'?'background-color':'color')||'transparent';while(u=='back'&&A=='transparent'&&y&&(y=y.getParent()));if(!A||A=='transparent')A='#ffffff';this._.panel._.iframe.getFrameDocument().getById(w).setStyle('background-color',A);}});};function r(t,u,v){var w=[],x=n.colorButton_colors.split(','),y=x.length+(n.colorButton_enableMore?2:1),z=e.addFunction(function(F,G){if(F=='?'){var H=arguments.callee;function I(K){this.removeListener('ok',I);this.removeListener('cancel',I);K.name=='ok'&&H(this.getContentElement('picker','selectedColor').getValue(),G);};m.openDialog('colordialog',function(){this.on('ok',I);this.on('cancel',I);});return;}m.focus();t.hide(false);m.fire('saveSnapshot');new a.style(n['colorButton_'+G+'Style'],{color:'inherit'}).remove(m.document);if(F){var J=n['colorButton_'+G+'Style'];J.childRule=G=='back'?function(K){return s(K);}:function(K){return K.getName()!='a'||s(K);};new a.style(J,{color:F}).apply(m.document);}m.fire('saveSnapshot');});w.push('<a class="cke_colorauto" _cke_focus=1 hidefocus=true title="',o.auto,'" onclick="CKEDITOR.tools.callFunction(',z,",null,'",u,"');return false;\" href=\"javascript:void('",o.auto,'\')" role="option" aria-posinset="1" aria-setsize="',y,'"><table role="presentation" cellspacing=0 cellpadding=0 width="100%"><tr><td><span class="cke_colorbox" id="',v,'"></span></td><td colspan=7 align=center>',o.auto,'</td></tr></table></a><table role="presentation" cellspacing=0 cellpadding=0 width="100%">');for(var A=0;A<x.length;A++){if(A%8===0)w.push('</tr><tr>');var B=x[A].split('/'),C=B[0],D=B[1]||C;if(!B[1])C='#'+C.replace(/^(.)(.)(.)$/,'$1$1$2$2$3$3');var E=m.lang.colors[D]||D;w.push('<td><a class="cke_colorbox" _cke_focus=1 hidefocus=true title="',E,'" onclick="CKEDITOR.tools.callFunction(',z,",'",C,"','",u,"'); return false;\" href=\"javascript:void('",E,'\')" role="option" aria-posinset="',A+2,'" aria-setsize="',y,'"><span class="cke_colorbox" style="background-color:#',D,'"></span></a></td>');}if(n.colorButton_enableMore===undefined||n.colorButton_enableMore)w.push('</tr><tr><td colspan=8 align=center><a class="cke_colormore" _cke_focus=1 hidefocus=true title="',o.more,'" onclick="CKEDITOR.tools.callFunction(',z,",'?','",u,"');return false;\" href=\"javascript:void('",o.more,"')\"",' role="option" aria-posinset="',y,'" aria-setsize="',y,'">',o.more,'</a></td>');
-w.push('</tr></table>');return w.join('');};function s(t){return t.getAttribute('contentEditable')=='false'||t.getAttribute('data-nostyle');};}});i.colorButton_colors='000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF';i.colorButton_foreStyle={element:'span',styles:{color:'#(color)'},overrides:[{element:'font',attributes:{color:null}}]};i.colorButton_backStyle={element:'span',styles:{'background-color':'#(color)'}};j.colordialog={init:function(m){m.addCommand('colordialog',new a.dialogCommand('colordialog'));a.dialog.add('colordialog',this.path+'dialogs/colordialog.js');}};j.add('colordialog',j.colordialog);j.add('contextmenu',{requires:['menu'],onLoad:function(){j.contextMenu=e.createClass({base:a.menu,$:function(m){this.base.call(this,m,{panel:{className:m.skinClass+' cke_contextmenu',attributes:{'aria-label':m.lang.contextmenu.options}}});},proto:{addTarget:function(m,n){if(b.opera&&!('oncontextmenu' in document.body)){var o;m.on('mousedown',function(s){s=s.data;if(s.$.button!=2){if(s.getKeystroke()==1114112+1)m.fire('contextmenu',s);return;}if(n&&(b.mac?s.$.metaKey:s.$.ctrlKey))return;var t=s.getTarget();if(!o){var u=t.getDocument();o=u.createElement('input');o.$.type='button';u.getBody().append(o);}o.setAttribute('style','position:absolute;top:'+(s.$.clientY-2)+'px;left:'+(s.$.clientX-2)+'px;width:5px;height:5px;opacity:0.01');});m.on('mouseup',function(s){if(o){o.remove();o=undefined;m.fire('contextmenu',s.data);}});}m.on('contextmenu',function(s){var t=s.data;if(n&&(b.webkit?p:b.mac?t.$.metaKey:t.$.ctrlKey))return;t.preventDefault();var u=t.getTarget().getDocument().getDocumentElement(),v=t.$.clientX,w=t.$.clientY;e.setTimeout(function(){this.open(u,null,v,w);},0,this);},this);if(b.opera)m.on('keypress',function(s){var t=s.data;if(t.$.keyCode===0)t.preventDefault();});if(b.webkit){var p,q=function(s){p=b.mac?s.data.$.metaKey:s.data.$.ctrlKey;},r=function(){p=0;};m.on('keydown',q);m.on('keyup',r);m.on('contextmenu',r);}},open:function(m,n,o,p){this.editor.focus();m=m||a.document.getDocumentElement();this.show(m,n,o,p);}}});},beforeInit:function(m){m.contextMenu=new j.contextMenu(m);m.addCommand('contextMenu',{exec:function(){m.contextMenu.open(m.document.getBody());}});}});(function(){function m(o){var p=this.att,q=o&&o.hasAttribute(p)&&o.getAttribute(p)||'';
-if(q!==undefined)this.setValue(q);};function n(){var o;for(var p=0;p<arguments.length;p++){if(arguments[p] instanceof h){o=arguments[p];break;}}if(o){var q=this.att,r=this.getValue();if(r)o.setAttribute(q,r);else o.removeAttribute(q,r);}};j.add('dialogadvtab',{createAdvancedTab:function(o,p){if(!p)p={id:1,dir:1,classes:1,styles:1};var q=o.lang.common,r={id:'advanced',label:q.advancedTab,title:q.advancedTab,elements:[{type:'vbox',padding:1,children:[]}]},s=[];if(p.id||p.dir){if(p.id)s.push({id:'advId',att:'id',type:'text',label:q.id,setup:m,commit:n});if(p.dir)s.push({id:'advLangDir',att:'dir',type:'select',label:q.langDir,'default':'',style:'width:100%',items:[[q.notSet,''],[q.langDirLTR,'ltr'],[q.langDirRTL,'rtl']],setup:m,commit:n});r.elements[0].children.push({type:'hbox',widths:['50%','50%'],children:[].concat(s)});}if(p.styles||p.classes){s=[];if(p.styles)s.push({id:'advStyles',att:'style',type:'text',label:q.styles,'default':'',onChange:function(){},getStyle:function(t,u){var v=this.getValue().match(new RegExp(t+'\\s*:\\s*([^;]*)','i'));return v?v[1]:u;},updateStyle:function(t,u){var v=this.getValue();if(v)v=v.replace(new RegExp('\\s*'+t+'s*:[^;]*(?:$|;s*)','i'),'').replace(/^[;\s]+/,'').replace(/\s+$/,'');if(u){v&&!/;\s*$/.test(v)&&(v+='; ');v+=t+': '+u;}this.setValue(v,1);},setup:m,commit:n});if(p.classes)s.push({type:'hbox',widths:['45%','55%'],children:[{id:'advCSSClasses',att:'class',type:'text',label:q.cssClasses,'default':'',setup:m,commit:n}]});r.elements[0].children.push({type:'hbox',widths:['50%','50%'],children:[].concat(s)});}return r;}});})();(function(){j.add('div',{requires:['editingblock','domiterator','styles'],init:function(m){var n=m.lang.div;m.addCommand('creatediv',new a.dialogCommand('creatediv'));m.addCommand('editdiv',new a.dialogCommand('editdiv'));m.addCommand('removediv',{exec:function(o){var p=o.getSelection(),q=p&&p.getRanges(),r,s=p.createBookmarks(),t,u=[];function v(x){var y=new d.elementPath(x),z=y.blockLimit,A=z.is('div')&&z;if(A&&!A.data('cke-div-added')){u.push(A);A.data('cke-div-added');}};for(var w=0;w<q.length;w++){r=q[w];if(r.collapsed)v(p.getStartElement());else{t=new d.walker(r);t.evaluator=v;t.lastForward();}}for(w=0;w<u.length;w++)u[w].remove(true);p.selectBookmarks(s);}});m.ui.addButton('CreateDiv',{label:n.toolbar,command:'creatediv'});if(m.addMenuItems){m.addMenuItems({editdiv:{label:n.edit,command:'editdiv',group:'div',order:1},removediv:{label:n.remove,command:'removediv',group:'div',order:5}});if(m.contextMenu)m.contextMenu.addListener(function(o,p){if(!o||o.isReadOnly())return null;
-var q=new d.elementPath(o),r=q.blockLimit;if(r&&r.getAscendant('div',true))return{editdiv:2,removediv:2};return null;});}a.dialog.add('creatediv',this.path+'dialogs/div.js');a.dialog.add('editdiv',this.path+'dialogs/div.js');}});})();(function(){var m={toolbarFocus:{editorFocus:false,readOnly:1,exec:function(o){var p=o._.elementsPath.idBase,q=a.document.getById(p+'0');q&&q.focus(c||b.air);}}},n='<span class="cke_empty"> </span>';j.add('elementspath',{requires:['selection'],init:function(o){var p='cke_path_'+o.name,q,r=function(){if(!q)q=a.document.getById(p);return q;},s='cke_elementspath_'+e.getNextNumber()+'_';o._.elementsPath={idBase:s,filters:[]};o.on('themeSpace',function(x){if(x.data.space=='bottom')x.data.html+='<span id="'+p+'_label" class="cke_voice_label">'+o.lang.elementsPath.eleLabel+'</span>'+'<div id="'+p+'" class="cke_path" role="group" aria-labelledby="'+p+'_label">'+n+'</div>';});function t(x){o.focus();var y=o._.elementsPath.list[x];if(y.is('body')){var z=new d.range(o.document);z.selectNodeContents(y);z.select();}else o.getSelection().selectElement(y);};var u=e.addFunction(t),v=e.addFunction(function(x,y){var z=o._.elementsPath.idBase,A;y=new d.event(y);var B=o.lang.dir=='rtl';switch(y.getKeystroke()){case B?39:37:case 9:A=a.document.getById(z+(x+1));if(!A)A=a.document.getById(z+'0');A.focus();return false;case B?37:39:case 2228224+9:A=a.document.getById(z+(x-1));if(!A)A=a.document.getById(z+(o._.elementsPath.list.length-1));A.focus();return false;case 27:o.focus();return false;case 13:case 32:t(x);return false;}return true;});o.on('selectionChange',function(x){var y=b,z=x.data.selection,A=z.getStartElement(),B=[],C=x.editor,D=C._.elementsPath.list=[],E=C._.elementsPath.filters;while(A){var F=0,G;if(A.data('cke-display-name'))G=A.data('cke-display-name');else if(A.data('cke-real-element-type'))G=A.data('cke-real-element-type');else G=A.getName();for(var H=0;H<E.length;H++){var I=E[H](A,G);if(I===false){F=1;break;}G=I||G;}if(!F){var J=D.push(A)-1,K='';if(y.opera||y.gecko&&y.mac)K+=' onkeypress="return false;"';if(y.gecko)K+=' onblur="this.style.cssText = this.style.cssText;"';var L=C.lang.elementsPath.eleTitle.replace(/%1/,G);B.unshift('<a id="',s,J,'" href="javascript:void(\'',G,'\')" tabindex="-1" title="',L,'"'+(b.gecko&&b.version<10900?' onfocus="event.preventBubble();"':'')+' hidefocus="true" '+' onkeydown="return CKEDITOR.tools.callFunction(',v,',',J,', event );"'+K,' onclick="CKEDITOR.tools.callFunction('+u,',',J,'); return false;"',' role="button" aria-labelledby="'+s+J+'_label">',G,'<span id="',s,J,'_label" class="cke_label">'+L+'</span>','</a>');
-}if(G=='body')break;A=A.getParent();}var M=r();M.setHtml(B.join('')+n);C.fire('elementsPathUpdate',{space:M});});function w(){q&&q.setHtml(n);delete o._.elementsPath.list;};o.on('readOnly',w);o.on('contentDomUnload',w);o.addCommand('elementsPathFocus',m.toolbarFocus);}});})();(function(){j.add('enterkey',{requires:['keystrokes','indent'],init:function(t){t.addCommand('enter',{modes:{wysiwyg:1},editorFocus:false,exec:function(v){r(v);}});t.addCommand('shiftEnter',{modes:{wysiwyg:1},editorFocus:false,exec:function(v){q(v);}});var u=t.keystrokeHandler.keystrokes;u[13]='enter';u[2228224+13]='shiftEnter';}});j.enterkey={enterBlock:function(t,u,v,w){v=v||s(t);if(!v)return;var x=v.document,y=v.checkStartOfBlock(),z=v.checkEndOfBlock(),A=new d.elementPath(v.startContainer),B=A.block;if(y&&z){if(B&&(B.is('li')||B.getParent().is('li'))){t.execCommand('outdent');return;}}else if(B&&B.is('pre')){if(!z){n(t,u,v,w);return;}}else if(B&&f.$captionBlock[B.getName()]){n(t,u,v,w);return;}var C=u==3?'div':'p',D=v.splitBlock(C);if(!D)return;var E=D.previousBlock,F=D.nextBlock,G=D.wasStartOfBlock,H=D.wasEndOfBlock,I;if(F){I=F.getParent();if(I.is('li')){F.breakParent(I);F.move(F.getNext(),1);}}else if(E&&(I=E.getParent())&&I.is('li')){E.breakParent(I);I=E.getNext();v.moveToElementEditStart(I);E.move(E.getPrevious());}if(!G&&!H){if(F.is('li')&&(I=F.getFirst(d.walker.invisible(true)))&&I.is&&I.is('ul','ol'))(c?x.createText('\xa0'):x.createElement('br')).insertBefore(I);if(F)v.moveToElementEditStart(F);}else{var J,K;if(E){if(E.is('li')||!(p.test(E.getName())||E.is('pre')))J=E.clone();}else if(F)J=F.clone();if(!J){if(I&&I.is('li'))J=I;else{J=x.createElement(C);if(E&&(K=E.getDirection()))J.setAttribute('dir',K);}}else if(w&&!J.is('li'))J.renameNode(C);var L=D.elementPath;if(L)for(var M=0,N=L.elements.length;M<N;M++){var O=L.elements[M];if(O.equals(L.block)||O.equals(L.blockLimit))break;if(f.$removeEmpty[O.getName()]){O=O.clone();J.moveChildren(O);J.append(O);}}if(!c)J.appendBogus();if(!J.getParent())v.insertNode(J);J.is('li')&&J.removeAttribute('value');if(c&&G&&(!H||!E.getChildCount())){v.moveToElementEditStart(H?E:J);v.select();}v.moveToElementEditStart(G&&!H?F:J);}if(!c)if(F){var P=x.createElement('span');P.setHtml(' ');v.insertNode(P);P.scrollIntoView();v.deleteContents();}else J.scrollIntoView();v.select();},enterBr:function(t,u,v,w){v=v||s(t);if(!v)return;var x=v.document,y=u==3?'div':'p',z=v.checkEndOfBlock(),A=new d.elementPath(t.getSelection().getStartElement()),B=A.block,C=B&&A.block.getName(),D=false;
-if(!w&&C=='li'){o(t,u,v,w);return;}if(!w&&z&&p.test(C)){var E,F;if(F=B.getDirection()){E=x.createElement('div');E.setAttribute('dir',F);E.insertAfter(B);v.setStart(E,0);}else{x.createElement('br').insertAfter(B);if(b.gecko)x.createText('').insertAfter(B);v.setStartAt(B.getNext(),c?3:1);}}else{var G;D=C=='pre';if(D&&!b.gecko)G=x.createText(c?'\r':'\n');else G=x.createElement('br');v.deleteContents();v.insertNode(G);if(c)v.setStartAt(G,4);else{x.createText('\ufeff').insertAfter(G);if(z)G.getParent().appendBogus();G.getNext().$.nodeValue='';v.setStartAt(G.getNext(),1);var H=null;if(!b.gecko){H=x.createElement('span');H.setHtml(' ');}else H=x.createElement('br');H.insertBefore(G.getNext());H.scrollIntoView();H.remove();}}v.collapse(true);v.select(D);}};var m=j.enterkey,n=m.enterBr,o=m.enterBlock,p=/^h[1-6]$/;function q(t){if(t.mode!='wysiwyg')return false;return r(t,t.config.shiftEnterMode,1);};function r(t,u,v){v=t.config.forceEnterMode||v;if(t.mode!='wysiwyg')return false;if(!u)u=t.config.enterMode;setTimeout(function(){t.fire('saveSnapshot');if(u==2)n(t,u,null,v);else o(t,u,null,v);},0);return true;};function s(t){var u=t.getSelection().getRanges(true);for(var v=u.length-1;v>0;v--)u[v].deleteContents();return u[0];};})();(function(){var m='nbsp,gt,lt,amp',n='quot,iexcl,cent,pound,curren,yen,brvbar,sect,uml,copy,ordf,laquo,not,shy,reg,macr,deg,plusmn,sup2,sup3,acute,micro,para,middot,cedil,sup1,ordm,raquo,frac14,frac12,frac34,iquest,times,divide,fnof,bull,hellip,prime,Prime,oline,frasl,weierp,image,real,trade,alefsym,larr,uarr,rarr,darr,harr,crarr,lArr,uArr,rArr,dArr,hArr,forall,part,exist,empty,nabla,isin,notin,ni,prod,sum,minus,lowast,radic,prop,infin,ang,and,or,cap,cup,int,there4,sim,cong,asymp,ne,equiv,le,ge,sub,sup,nsub,sube,supe,oplus,otimes,perp,sdot,lceil,rceil,lfloor,rfloor,lang,rang,loz,spades,clubs,hearts,diams,circ,tilde,ensp,emsp,thinsp,zwnj,zwj,lrm,rlm,ndash,mdash,lsquo,rsquo,sbquo,ldquo,rdquo,bdquo,dagger,Dagger,permil,lsaquo,rsaquo,euro',o='Agrave,Aacute,Acirc,Atilde,Auml,Aring,AElig,Ccedil,Egrave,Eacute,Ecirc,Euml,Igrave,Iacute,Icirc,Iuml,ETH,Ntilde,Ograve,Oacute,Ocirc,Otilde,Ouml,Oslash,Ugrave,Uacute,Ucirc,Uuml,Yacute,THORN,szlig,agrave,aacute,acirc,atilde,auml,aring,aelig,ccedil,egrave,eacute,ecirc,euml,igrave,iacute,icirc,iuml,eth,ntilde,ograve,oacute,ocirc,otilde,ouml,oslash,ugrave,uacute,ucirc,uuml,yacute,thorn,yuml,OElig,oelig,Scaron,scaron,Yuml',p='Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,Mu,Nu,Xi,Omicron,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi,Psi,Omega,alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,mu,nu,xi,omicron,pi,rho,sigmaf,sigma,tau,upsilon,phi,chi,psi,omega,thetasym,upsih,piv';
-function q(r,s){var t={},u=[],v={nbsp:'\xa0',shy:'­',gt:'>',lt:'<',amp:'&'};r=r.replace(/\b(nbsp|shy|gt|lt|amp)(?:,|$)/g,function(A,B){var C=s?'&'+B+';':v[B],D=s?v[B]:'&'+B+';';t[C]=D;u.push(C);return '';});if(!s&&r){r=r.split(',');var w=document.createElement('div'),x;w.innerHTML='&'+r.join(';&')+';';x=w.innerHTML;w=null;for(var y=0;y<x.length;y++){var z=x.charAt(y);t[z]='&'+r[y]+';';u.push(z);}}t.regex=u.join(s?'|':'');return t;};j.add('entities',{afterInit:function(r){var s=r.config,t=r.dataProcessor,u=t&&t.htmlFilter;if(u){var v='';if(s.basicEntities!==false)v+=m;if(s.entities){v+=','+n;if(s.entities_latin)v+=','+o;if(s.entities_greek)v+=','+p;if(s.entities_additional)v+=','+s.entities_additional;}var w=q(v),x=w.regex?'['+w.regex+']':'a^';delete w.regex;if(s.entities&&s.entities_processNumerical)x='[^ -~]|'+x;x=new RegExp(x,'g');function y(C){return s.entities_processNumerical=='force'||!w[C]?'&#'+C.charCodeAt(0)+';':w[C];};var z=q([m,'shy'].join(','),true),A=new RegExp(z.regex,'g');function B(C){return z[C];};u.addRules({text:function(C){return C.replace(A,B).replace(x,y);}});}}});})();i.basicEntities=true;i.entities=true;i.entities_latin=true;i.entities_greek=true;i.entities_additional='#39';(function(){function m(v,w){var x=[];if(!w)return v;else for(var y in w)x.push(y+'='+encodeURIComponent(w[y]));return v+(v.indexOf('?')!=-1?'&':'?')+x.join('&');};function n(v){v+='';var w=v.charAt(0).toUpperCase();return w+v.substr(1);};function o(v){var C=this;var w=C.getDialog(),x=w.getParentEditor();x._.filebrowserSe=C;var y=x.config['filebrowser'+n(w.getName())+'WindowWidth']||x.config.filebrowserWindowWidth||'80%',z=x.config['filebrowser'+n(w.getName())+'WindowHeight']||x.config.filebrowserWindowHeight||'70%',A=C.filebrowser.params||{};A.CKEditor=x.name;A.CKEditorFuncNum=x._.filebrowserFn;if(!A.langCode)A.langCode=x.langCode;var B=m(C.filebrowser.url,A);x.popup(B,y,z,x.config.fileBrowserWindowFeatures);};function p(v){var y=this;var w=y.getDialog(),x=w.getParentEditor();x._.filebrowserSe=y;if(!w.getContentElement(y['for'][0],y['for'][1]).getInputElement().$.value)return false;if(!w.getContentElement(y['for'][0],y['for'][1]).getAction())return false;return true;};function q(v,w,x){var y=x.params||{};y.CKEditor=v.name;y.CKEditorFuncNum=v._.filebrowserFn;if(!y.langCode)y.langCode=v.langCode;w.action=m(x.url,y);w.filebrowser=x;};function r(v,w,x,y){var z,A;for(var B in y){z=y[B];if(z.type=='hbox'||z.type=='vbox')r(v,w,x,z.children);if(!z.filebrowser)continue;if(typeof z.filebrowser=='string'){var C={action:z.type=='fileButton'?'QuickUpload':'Browse',target:z.filebrowser};
-z.filebrowser=C;}if(z.filebrowser.action=='Browse'){var D=z.filebrowser.url;if(D===undefined){D=v.config['filebrowser'+n(w)+'BrowseUrl'];if(D===undefined)D=v.config.filebrowserBrowseUrl;}if(D){z.onClick=o;z.filebrowser.url=D;z.hidden=false;}}else if(z.filebrowser.action=='QuickUpload'&&z['for']){D=z.filebrowser.url;if(D===undefined){D=v.config['filebrowser'+n(w)+'UploadUrl'];if(D===undefined)D=v.config.filebrowserUploadUrl;}if(D){var E=z.onClick;z.onClick=function(F){var G=F.sender;if(E&&E.call(G,F)===false)return false;return p.call(G,F);};z.filebrowser.url=D;z.hidden=false;q(v,x.getContents(z['for'][0]).get(z['for'][1]),z.filebrowser);}}}};function s(v,w){var x=w.getDialog(),y=w.filebrowser.target||null;v=v.replace(/#/g,'%23');if(y){var z=y.split(':'),A=x.getContentElement(z[0],z[1]);if(A){A.setValue(v);x.selectPage(z[0]);}}};function t(v,w,x){if(x.indexOf(';')!==-1){var y=x.split(';');for(var z=0;z<y.length;z++){if(t(v,w,y[z]))return true;}return false;}var A=v.getContents(w).get(x).filebrowser;return A&&A.url;};function u(v,w){var A=this;var x=A._.filebrowserSe.getDialog(),y=A._.filebrowserSe['for'],z=A._.filebrowserSe.filebrowser.onSelect;if(y)x.getContentElement(y[0],y[1]).reset();if(typeof w=='function'&&w.call(A._.filebrowserSe)===false)return;if(z&&z.call(A._.filebrowserSe,v,w)===false)return;if(typeof w=='string'&&w)alert(w);if(v)s(v,A._.filebrowserSe);};j.add('filebrowser',{init:function(v,w){v._.filebrowserFn=e.addFunction(u,v);v.on('destroy',function(){e.removeFunction(this._.filebrowserFn);});}});a.on('dialogDefinition',function(v){var w=v.data.definition,x;for(var y in w.contents){if(x=w.contents[y]){r(v.editor,v.data.name,w,x.elements);if(x.hidden&&x.filebrowser)x.hidden=!t(w,x.id,x.filebrowser);}}});})();j.add('find',{init:function(m){var n=j.find;m.ui.addButton('Find',{label:m.lang.findAndReplace.find,command:'find'});var o=m.addCommand('find',new a.dialogCommand('find'));o.canUndo=false;o.readOnly=1;m.ui.addButton('Replace',{label:m.lang.findAndReplace.replace,command:'replace'});var p=m.addCommand('replace',new a.dialogCommand('replace'));p.canUndo=false;a.dialog.add('find',this.path+'dialogs/find.js');a.dialog.add('replace',this.path+'dialogs/find.js');},requires:['styles']});i.find_highlight={element:'span',styles:{'background-color':'#004',color:'#fff'}};(function(){var m=/\.swf(?:$|\?)/i;function n(p){var q=p.attributes;return q.type=='application/x-shockwave-flash'||m.test(q.src||'');};function o(p,q){return p.createFakeParserElement(q,'cke_flash','flash',true);
-};j.add('flash',{init:function(p){p.addCommand('flash',new a.dialogCommand('flash'));p.ui.addButton('Flash',{label:p.lang.common.flash,command:'flash'});a.dialog.add('flash',this.path+'dialogs/flash.js');p.addCss('img.cke_flash{background-image: url('+a.getUrl(this.path+'images/placeholder.png')+');'+'background-position: center center;'+'background-repeat: no-repeat;'+'border: 1px solid #a9a9a9;'+'width: 80px;'+'height: 80px;'+'}');if(p.addMenuItems)p.addMenuItems({flash:{label:p.lang.flash.properties,command:'flash',group:'flash'}});p.on('doubleclick',function(q){var r=q.data.element;if(r.is('img')&&r.data('cke-real-element-type')=='flash')q.data.dialog='flash';});if(p.contextMenu)p.contextMenu.addListener(function(q,r){if(q&&q.is('img')&&!q.isReadOnly()&&q.data('cke-real-element-type')=='flash')return{flash:2};});},afterInit:function(p){var q=p.dataProcessor,r=q&&q.dataFilter;if(r)r.addRules({elements:{'cke:object':function(s){var t=s.attributes,u=t.classid&&String(t.classid).toLowerCase();if(!u&&!n(s)){for(var v=0;v<s.children.length;v++){if(s.children[v].name=='cke:embed'){if(!n(s.children[v]))return null;return o(p,s);}}return null;}return o(p,s);},'cke:embed':function(s){if(!n(s))return null;return o(p,s);}}},5);},requires:['fakeobjects']});})();e.extend(i,{flashEmbedTagOnly:false,flashAddEmbedTag:true,flashConvertOnEdit:false});(function(){function m(n,o,p,q,r,s,t){var u=n.config,v=r.split(';'),w=[],x={};for(var y=0;y<v.length;y++){var z=v[y];if(z){z=z.split('/');var A={},B=v[y]=z[0];A[p]=w[y]=z[1]||B;x[B]=new a.style(t,A);x[B]._.definition.name=B;}else v.splice(y--,1);}n.ui.addRichCombo(o,{label:q.label,title:q.panelTitle,className:'cke_'+(p=='size'?'fontSize':'font'),panel:{css:n.skin.editor.css.concat(u.contentsCss),multiSelect:false,attributes:{'aria-label':q.panelTitle}},init:function(){this.startGroup(q.panelTitle);for(var C=0;C<v.length;C++){var D=v[C];this.add(D,x[D].buildPreview(),D);}},onClick:function(C){n.focus();n.fire('saveSnapshot');var D=x[C];if(this.getValue()==C)D.remove(n.document);else D.apply(n.document);n.fire('saveSnapshot');},onRender:function(){n.on('selectionChange',function(C){var D=this.getValue(),E=C.data.path,F=E.elements;for(var G=0,H;G<F.length;G++){H=F[G];for(var I in x){if(x[I].checkElementRemovable(H,true)){if(I!=D)this.setValue(I);return;}}}this.setValue('',s);},this);}});};j.add('font',{requires:['richcombo','styles'],init:function(n){var o=n.config;m(n,'Font','family',n.lang.font,o.font_names,o.font_defaultLabel,o.font_style);
-m(n,'FontSize','size',n.lang.fontSize,o.fontSize_sizes,o.fontSize_defaultLabel,o.fontSize_style);}});})();i.font_names='Arial/Arial, Helvetica, sans-serif;Comic Sans MS/Comic Sans MS, cursive;Courier New/Courier New, Courier, monospace;Georgia/Georgia, serif;Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;Tahoma/Tahoma, Geneva, sans-serif;Times New Roman/Times New Roman, Times, serif;Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;Verdana/Verdana, Geneva, sans-serif';i.font_defaultLabel='';i.font_style={element:'span',styles:{'font-family':'#(family)'},overrides:[{element:'font',attributes:{face:null}}]};i.fontSize_sizes='8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px';i.fontSize_defaultLabel='';i.fontSize_style={element:'span',styles:{'font-size':'#(size)'},overrides:[{element:'font',attributes:{size:null}}]};j.add('format',{requires:['richcombo','styles'],init:function(m){var n=m.config,o=m.lang.format,p=n.format_tags.split(';'),q={};for(var r=0;r<p.length;r++){var s=p[r];q[s]=new a.style(n['format_'+s]);q[s]._.enterMode=m.config.enterMode;}m.ui.addRichCombo('Format',{label:o.label,title:o.panelTitle,className:'cke_format',panel:{css:m.skin.editor.css.concat(n.contentsCss),multiSelect:false,attributes:{'aria-label':o.panelTitle}},init:function(){this.startGroup(o.panelTitle);for(var t in q){var u=o['tag_'+t];this.add(t,q[t].buildPreview(u),u);}},onClick:function(t){m.focus();m.fire('saveSnapshot');var u=q[t],v=new d.elementPath(m.getSelection().getStartElement());u[u.checkActive(v)?'remove':'apply'](m.document);setTimeout(function(){m.fire('saveSnapshot');},0);},onRender:function(){m.on('selectionChange',function(t){var u=this.getValue(),v=t.data.path;for(var w in q){if(q[w].checkActive(v)){if(w!=u)this.setValue(w,m.lang.format['tag_'+w]);return;}}this.setValue('');},this);}});}});i.format_tags='p;h1;h2;h3;h4;h5;h6;pre;address;div';i.format_p={element:'p'};i.format_div={element:'div'};i.format_pre={element:'pre'};i.format_address={element:'address'};i.format_h1={element:'h1'};i.format_h2={element:'h2'};i.format_h3={element:'h3'};i.format_h4={element:'h4'};i.format_h5={element:'h5'};i.format_h6={element:'h6'};j.add('forms',{init:function(m){var n=m.lang;m.addCss('form{border: 1px dotted #FF0000;padding: 2px;}\n');m.addCss('img.cke_hidden{background-image: url('+a.getUrl(this.path+'images/hiddenfield.gif')+');'+'background-position: center center;'+'background-repeat: no-repeat;'+'border: 1px solid #a9a9a9;'+'width: 16px !important;'+'height: 16px !important;'+'}');
-var o=function(q,r,s){m.addCommand(r,new a.dialogCommand(r));m.ui.addButton(q,{label:n.common[q.charAt(0).toLowerCase()+q.slice(1)],command:r});a.dialog.add(r,s);},p=this.path+'dialogs/';o('Form','form',p+'form.js');o('Checkbox','checkbox',p+'checkbox.js');o('Radio','radio',p+'radio.js');o('TextField','textfield',p+'textfield.js');o('Textarea','textarea',p+'textarea.js');o('Select','select',p+'select.js');o('Button','button',p+'button.js');o('ImageButton','imagebutton',j.getPath('image')+'dialogs/image.js');o('HiddenField','hiddenfield',p+'hiddenfield.js');if(m.addMenuItems)m.addMenuItems({form:{label:n.form.menu,command:'form',group:'form'},checkbox:{label:n.checkboxAndRadio.checkboxTitle,command:'checkbox',group:'checkbox'},radio:{label:n.checkboxAndRadio.radioTitle,command:'radio',group:'radio'},textfield:{label:n.textfield.title,command:'textfield',group:'textfield'},hiddenfield:{label:n.hidden.title,command:'hiddenfield',group:'hiddenfield'},imagebutton:{label:n.image.titleButton,command:'imagebutton',group:'imagebutton'},button:{label:n.button.title,command:'button',group:'button'},select:{label:n.select.title,command:'select',group:'select'},textarea:{label:n.textarea.title,command:'textarea',group:'textarea'}});if(m.contextMenu){m.contextMenu.addListener(function(q){if(q&&q.hasAscendant('form',true)&&!q.isReadOnly())return{form:2};});m.contextMenu.addListener(function(q){if(q&&!q.isReadOnly()){var r=q.getName();if(r=='select')return{select:2};if(r=='textarea')return{textarea:2};if(r=='input')switch(q.getAttribute('type')){case 'button':case 'submit':case 'reset':return{button:2};case 'checkbox':return{checkbox:2};case 'radio':return{radio:2};case 'image':return{imagebutton:2};default:return{textfield:2};}if(r=='img'&&q.data('cke-real-element-type')=='hiddenfield')return{hiddenfield:2};}});}m.on('doubleclick',function(q){var r=q.data.element;if(r.is('form'))q.data.dialog='form';else if(r.is('select'))q.data.dialog='select';else if(r.is('textarea'))q.data.dialog='textarea';else if(r.is('img')&&r.data('cke-real-element-type')=='hiddenfield')q.data.dialog='hiddenfield';else if(r.is('input'))switch(r.getAttribute('type')){case 'button':case 'submit':case 'reset':q.data.dialog='button';break;case 'checkbox':q.data.dialog='checkbox';break;case 'radio':q.data.dialog='radio';break;case 'image':q.data.dialog='imagebutton';break;default:q.data.dialog='textfield';break;}});},afterInit:function(m){var n=m.dataProcessor,o=n&&n.htmlFilter,p=n&&n.dataFilter;if(c)o&&o.addRules({elements:{input:function(q){var r=q.attributes,s=r.type;
-if(!s)r.type='text';if(s=='checkbox'||s=='radio')r.value=='on'&&delete r.value;}}});if(p)p.addRules({elements:{input:function(q){if(q.attributes.type=='hidden')return m.createFakeParserElement(q,'cke_hidden','hiddenfield');}}});},requires:['image','fakeobjects']});if(c)h.prototype.hasAttribute=e.override(h.prototype.hasAttribute,function(m){return function(n){var q=this;var o=q.$.attributes.getNamedItem(n);if(q.getName()=='input')switch(n){case 'class':return q.$.className.length>0;case 'checked':return!!q.$.checked;case 'value':var p=q.getAttribute('type');return p=='checkbox'||p=='radio'?q.$.value!='on':q.$.value;}return m.apply(q,arguments);};});(function(){var m={canUndo:false,exec:function(o){var p=o.document.createElement('hr'),q=new d.range(o.document);o.insertElement(p);q.moveToPosition(p,4);var r=p.getNext();if(!r||r.type==1&&!r.isEditable())q.fixBlock(true,o.config.enterMode==3?'div':'p');q.select();}},n='horizontalrule';j.add(n,{init:function(o){o.addCommand(n,m);o.ui.addButton('HorizontalRule',{label:o.lang.horizontalrule,command:n});}});})();(function(){var m=/^[\t\r\n ]*(?: |\xa0)$/,n='{cke_protected}';function o(T){var U=T.children.length,V=T.children[U-1];while(V&&V.type==3&&!e.trim(V.value))V=T.children[--U];return V;};function p(T,U){var V=T.children,W=o(T);if(W){if((U||!c)&&W.type==1&&W.name=='br')V.pop();if(W.type==3&&m.test(W.value))V.pop();}};function q(T,U,V){if(!U&&(!V||typeof V=='function'&&V(T)===false))return false;if(U&&c&&(document.documentMode>7||T.name in f.tr||T.name in f.$listItem))return false;var W=o(T);return!W||W&&(W.type==1&&W.name=='br'||T.name=='form'&&W.name=='input');};function r(T,U){return function(V){p(V,!T);if(q(V,!T,U))if(T||c)V.add(new a.htmlParser.text('\xa0'));else V.add(new a.htmlParser.element('br',{}));};};var s=f,t=['caption','colgroup','col','thead','tfoot','tbody'],u=e.extend({},s.$block,s.$listItem,s.$tableContent);for(var v in u){if(!('br' in s[v]))delete u[v];}delete u.pre;var w={elements:{},attributeNames:[[/^on/,'data-cke-pa-on']]},x={elements:{}};for(v in u)x.elements[v]=r();var y={elementNames:[[/^cke:/,''],[/^\?xml:namespace$/,'']],attributeNames:[[/^data-cke-(saved|pa)-/,''],[/^data-cke-.*/,''],['hidefocus','']],elements:{$:function(T){var U=T.attributes;if(U){if(U['data-cke-temp'])return false;var V=['name','href','src'],W;for(var X=0;X<V.length;X++){W='data-cke-saved-'+V[X];W in U&&delete U[V[X]];}}return T;},table:function(T){var U=T.children;U.sort(function(V,W){return V.type==1&&W.type==V.type?e.indexOf(t,V.name)>e.indexOf(t,W.name)?1:-1:0;
-});},embed:function(T){var U=T.parent;if(U&&U.name=='object'){var V=U.attributes.width,W=U.attributes.height;V&&(T.attributes.width=V);W&&(T.attributes.height=W);}},param:function(T){T.children=[];T.isEmpty=true;return T;},a:function(T){if(!(T.children.length||T.attributes.name||T.attributes['data-cke-saved-name']))return false;},span:function(T){if(T.attributes['class']=='Apple-style-span')delete T.name;},pre:function(T){c&&p(T);},html:function(T){delete T.attributes.contenteditable;delete T.attributes['class'];},body:function(T){delete T.attributes.spellcheck;delete T.attributes.contenteditable;},style:function(T){var U=T.children[0];U&&U.value&&(U.value=e.trim(U.value));if(!T.attributes.type)T.attributes.type='text/css';},title:function(T){var U=T.children[0];U&&(U.value=T.attributes['data-cke-title']||'');}},attributes:{'class':function(T,U){return e.ltrim(T.replace(/(?:^|\s+)cke_[^\s]*/g,''))||false;}}};if(c)y.attributes.style=function(T,U){return T.replace(/(^|;)([^\:]+)/g,function(V){return V.toLowerCase();});};function z(T){var U=T.attributes;if(U.contenteditable!='false')U['data-cke-editable']=U.contenteditable?'true':1;U.contenteditable='false';};function A(T){var U=T.attributes;switch(U['data-cke-editable']){case 'true':U.contenteditable='true';break;case '1':delete U.contenteditable;break;}};for(v in {input:1,textarea:1}){w.elements[v]=z;y.elements[v]=A;}var B=/<(a|area|img|input)\b([^>]*)>/gi,C=/\b(href|src|name)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,D=/(?:<style(?=[ >])[^>]*>[\s\S]*<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,E=/<cke:encoded>([^<]*)<\/cke:encoded>/gi,F=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,G=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,H=/<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi;function I(T){return T.replace(B,function(U,V,W){return '<'+V+W.replace(C,function(X,Y){if(W.indexOf('data-cke-saved-'+Y)==-1)return ' data-cke-saved-'+X+' '+X;return X;})+'>';});};function J(T){return T.replace(D,function(U){return '<cke:encoded>'+encodeURIComponent(U)+'</cke:encoded>';});};function K(T){return T.replace(E,function(U,V){return decodeURIComponent(V);});};function L(T){return T.replace(F,'$1cke:$2');};function M(T){return T.replace(G,'$1$2');};function N(T){return T.replace(H,'<cke:$1$2></cke:$1>');};function O(T){return T.replace(/(<pre\b[^>]*>)(\r\n|\n)/g,'$1$2$2');};function P(T){return T.replace(/<!--(?!{cke_protected})[\s\S]+?-->/g,function(U){return '<!--'+n+'{C}'+encodeURIComponent(U).replace(/--/g,'%2D%2D')+'-->';
-});};function Q(T){return T.replace(/<!--\{cke_protected\}\{C\}([\s\S]+?)-->/g,function(U,V){return decodeURIComponent(V);});};function R(T,U){var V=U._.dataStore;return T.replace(/<!--\{cke_protected\}([\s\S]+?)-->/g,function(W,X){return decodeURIComponent(X);}).replace(/\{cke_protected_(\d+)\}/g,function(W,X){return V&&V[X]||'';});};function S(T,U){var V=[],W=U.config.protectedSource,X=U._.dataStore||(U._.dataStore={id:1}),Y=/<\!--\{cke_temp(comment)?\}(\d*?)-->/g,Z=[/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi].concat(W);T=T.replace(/<!--[\s\S]*?-->/g,function(ab){return '<!--{cke_tempcomment}'+(V.push(ab)-1)+'-->';});for(var aa=0;aa<Z.length;aa++)T=T.replace(Z[aa],function(ab){ab=ab.replace(Y,function(ac,ad,ae){return V[ae];});return/cke_temp(comment)?/.test(ab)?ab:'<!--{cke_temp}'+(V.push(ab)-1)+'-->';});T=T.replace(Y,function(ab,ac,ad){return '<!--'+n+(ac?'{C}':'')+encodeURIComponent(V[ad]).replace(/--/g,'%2D%2D')+'-->';});return T.replace(/(['"]).*?\1/g,function(ab){return ab.replace(/<!--\{cke_protected\}([\s\S]+?)-->/g,function(ac,ad){X[X.id]=decodeURIComponent(ad);return '{cke_protected_'+X.id++ +'}';});});};j.add('htmldataprocessor',{requires:['htmlwriter'],init:function(T){var U=T.dataProcessor=new a.htmlDataProcessor(T);U.writer.forceSimpleAmpersand=T.config.forceSimpleAmpersand;U.dataFilter.addRules(w);U.dataFilter.addRules(x);U.htmlFilter.addRules(y);var V={elements:{}};for(v in u)V.elements[v]=r(true,T.config.fillEmptyBlocks);U.htmlFilter.addRules(V);},onLoad:function(){!('fillEmptyBlocks' in i)&&(i.fillEmptyBlocks=1);}});a.htmlDataProcessor=function(T){var U=this;U.editor=T;U.writer=new a.htmlWriter();U.dataFilter=new a.htmlParser.filter();U.htmlFilter=new a.htmlParser.filter();};a.htmlDataProcessor.prototype={toHtml:function(T,U){T=S(T,this.editor);T=I(T);T=J(T);T=L(T);T=N(T);T=O(T);var V=new h('div');V.setHtml('a'+T);T=V.getHtml().substr(1);T=M(T);T=K(T);T=Q(T);var W=a.htmlParser.fragment.fromHtml(T,U),X=new a.htmlParser.basicWriter();W.writeHtml(X,this.dataFilter);T=X.getHtml(true);T=P(T);return T;},toDataFormat:function(T,U){var V=this.writer,W=a.htmlParser.fragment.fromHtml(T,U);V.reset();W.writeHtml(V,this.htmlFilter);var X=V.getHtml(true);X=Q(X);X=R(X,this.editor);return X;}};})();(function(){j.add('iframe',{requires:['dialog','fakeobjects'],init:function(m){var n='iframe',o=m.lang.iframe;a.dialog.add(n,this.path+'dialogs/iframe.js');m.addCommand(n,new a.dialogCommand(n));m.addCss('img.cke_iframe{background-image: url('+a.getUrl(this.path+'images/placeholder.png')+');'+'background-position: center center;'+'background-repeat: no-repeat;'+'border: 1px solid #a9a9a9;'+'width: 80px;'+'height: 80px;'+'}');
-m.ui.addButton('Iframe',{label:o.toolbar,command:n});m.on('doubleclick',function(p){var q=p.data.element;if(q.is('img')&&q.data('cke-real-element-type')=='iframe')p.data.dialog='iframe';});if(m.addMenuItems)m.addMenuItems({iframe:{label:o.title,command:'iframe',group:'image'}});if(m.contextMenu)m.contextMenu.addListener(function(p,q){if(p&&p.is('img')&&p.data('cke-real-element-type')=='iframe')return{iframe:2};});},afterInit:function(m){var n=m.dataProcessor,o=n&&n.dataFilter;if(o)o.addRules({elements:{iframe:function(p){return m.createFakeParserElement(p,'cke_iframe','iframe',true);}}});}});})();j.add('image',{init:function(m){var n='image';a.dialog.add(n,this.path+'dialogs/image.js');m.addCommand(n,new a.dialogCommand(n));m.ui.addButton('Image',{label:m.lang.common.image,command:n});m.on('doubleclick',function(o){var p=o.data.element;if(p.is('img')&&!p.data('cke-realelement')&&!p.isReadOnly())o.data.dialog='image';});if(m.addMenuItems)m.addMenuItems({image:{label:m.lang.image.menu,command:'image',group:'image'}});if(m.contextMenu)m.contextMenu.addListener(function(o,p){if(!o||!o.is('img')||o.data('cke-realelement')||o.isReadOnly())return null;return{image:2};});}});i.image_removeLinkByEmptyURL=true;(function(){var m={ol:1,ul:1},n=d.walker.whitespaces(true),o=d.walker.bookmark(false,true);function p(t){var B=this;if(t.editor.readOnly)return null;var u=t.editor,v=t.data.path,w=v&&v.contains(m),x=v.block||v.blockLimit;if(w)return B.setState(2);if(!B.useIndentClasses&&B.name=='indent')return B.setState(2);if(!x)return B.setState(0);if(B.useIndentClasses){var y=x.$.className.match(B.classNameRegex),z=0;if(y){y=y[1];z=B.indentClassMap[y];}if(B.name=='outdent'&&!z||B.name=='indent'&&z==u.config.indentClasses.length)return B.setState(0);return B.setState(2);}else{var A=parseInt(x.getStyle(r(x)),10);if(isNaN(A))A=0;if(A<=0)return B.setState(0);return B.setState(2);}};function q(t,u){var w=this;w.name=u;w.useIndentClasses=t.config.indentClasses&&t.config.indentClasses.length>0;if(w.useIndentClasses){w.classNameRegex=new RegExp('(?:^|\\s+)('+t.config.indentClasses.join('|')+')(?=$|\\s)');w.indentClassMap={};for(var v=0;v<t.config.indentClasses.length;v++)w.indentClassMap[t.config.indentClasses[v]]=v+1;}w.startDisabled=u=='outdent';};function r(t,u){return(u||t.getComputedStyle('direction'))=='ltr'?'margin-left':'margin-right';};function s(t){return t.type=1&&t.is('li');};q.prototype={exec:function(t){var u=this,v={};function w(M){var N=C.startContainer,O=C.endContainer;
-while(N&&!N.getParent().equals(M))N=N.getParent();while(O&&!O.getParent().equals(M))O=O.getParent();if(!N||!O)return;var P=N,Q=[],R=false;while(!R){if(P.equals(O))R=true;Q.push(P);P=P.getNext();}if(Q.length<1)return;var S=M.getParents(true);for(var T=0;T<S.length;T++){if(S[T].getName&&m[S[T].getName()]){M=S[T];break;}}var U=u.name=='indent'?1:-1,V=Q[0],W=Q[Q.length-1],X=j.list.listToArray(M,v),Y=X[W.getCustomData('listarray_index')].indent;for(T=V.getCustomData('listarray_index');T<=W.getCustomData('listarray_index');T++){X[T].indent+=U;var Z=X[T].parent;X[T].parent=new h(Z.getName(),Z.getDocument());}for(T=W.getCustomData('listarray_index')+1;T<X.length&&X[T].indent>Y;T++)X[T].indent+=U;var aa=j.list.arrayToList(X,v,null,t.config.enterMode,M.getDirection());if(u.name=='outdent'){var ab;if((ab=M.getParent())&&ab.is('li')){var ac=aa.listNode.getChildren(),ad=[],ae=ac.count(),af;for(T=ae-1;T>=0;T--){if((af=ac.getItem(T))&&af.is&&af.is('li'))ad.push(af);}}}if(aa)aa.listNode.replace(M);if(ad&&ad.length)for(T=0;T<ad.length;T++){var ag=ad[T],ah=ag;while((ah=ah.getNext())&&ah.is&&ah.getName() in m){if(c&&!ag.getFirst(function(ai){return n(ai)&&o(ai);}))ag.append(C.document.createText('\xa0'));ag.append(ah);}ag.insertAfter(ab);}};function x(){var M=C.createIterator(),N=t.config.enterMode;M.enforceRealBlocks=true;M.enlargeBr=N!=2;var O;while(O=M.getNextParagraph(N==1?'p':'div'))y(O);};function y(M,N){if(M.getCustomData('indent_processed'))return false;if(u.useIndentClasses){var O=M.$.className.match(u.classNameRegex),P=0;if(O){O=O[1];P=u.indentClassMap[O];}if(u.name=='outdent')P--;else P++;if(P<0)return false;P=Math.min(P,t.config.indentClasses.length);P=Math.max(P,0);M.$.className=e.ltrim(M.$.className.replace(u.classNameRegex,''));if(P>0)M.addClass(t.config.indentClasses[P-1]);}else{var Q=r(M,N),R=parseInt(M.getStyle(Q),10);if(isNaN(R))R=0;var S=t.config.indentOffset||40;R+=(u.name=='indent'?1:-1)*S;if(R<0)return false;R=Math.max(R,0);R=Math.ceil(R/S)*S;M.setStyle(Q,R?R+(t.config.indentUnit||'px'):'');if(M.getAttribute('style')==='')M.removeAttribute('style');}h.setMarker(v,M,'indent_processed',1);return true;};var z=t.getSelection(),A=z.createBookmarks(1),B=z&&z.getRanges(1),C,D=B.createIterator();while(C=D.getNextRange()){var E=C.getCommonAncestor(),F=E;while(F&&!(F.type==1&&m[F.getName()]))F=F.getParent();if(!F){var G=C.getEnclosedNode();if(G&&G.type==1&&G.getName() in m){C.setStartAt(G,1);C.setEndAt(G,2);F=G;}}if(F&&C.startContainer.type==1&&C.startContainer.getName() in m){var H=new d.walker(C);
-H.evaluator=s;C.startContainer=H.next();}if(F&&C.endContainer.type==1&&C.endContainer.getName() in m){H=new d.walker(C);H.evaluator=s;C.endContainer=H.previous();}if(F){var I=F.getFirst(s),J=!!I.getNext(s),K=C.startContainer,L=I.equals(K)||I.contains(K);if(!(L&&(u.name=='indent'||u.useIndentClasses||parseInt(F.getStyle(r(F)),10))&&y(F,!J&&I.getDirection())))w(F);}else x();}h.clearAllMarkers(v);t.forceNextSelectionCheck();z.selectBookmarks(A);}};j.add('indent',{init:function(t){var u=t.addCommand('indent',new q(t,'indent')),v=t.addCommand('outdent',new q(t,'outdent'));t.ui.addButton('Indent',{label:t.lang.indent,command:'indent'});t.ui.addButton('Outdent',{label:t.lang.outdent,command:'outdent'});t.on('selectionChange',e.bind(p,u));t.on('selectionChange',e.bind(p,v));if(b.ie6Compat||b.ie7Compat)t.addCss('ul,ol{\tmargin-left: 0px;\tpadding-left: 40px;}');t.on('dirChanged',function(w){var x=new d.range(t.document);x.setStartBefore(w.data.node);x.setEndAfter(w.data.node);var y=new d.walker(x),z;while(z=y.next()){if(z.type==1){if(!z.equals(w.data.node)&&z.getDirection()){x.setStartAfter(z);y=new d.walker(x);continue;}var A=t.config.indentClasses;if(A){var B=w.data.dir=='ltr'?['_rtl','']:['','_rtl'];for(var C=0;C<A.length;C++){if(z.hasClass(A[C]+B[0])){z.removeClass(A[C]+B[0]);z.addClass(A[C]+B[1]);}}}var D=z.getStyle('margin-right'),E=z.getStyle('margin-left');D?z.setStyle('margin-left',D):z.removeStyle('margin-left');E?z.setStyle('margin-right',E):z.removeStyle('margin-right');}}});},requires:['domiterator','list']});})();(function(){function m(r,s){var t=s.block||s.blockLimit;if(!t||t.getName()=='body')return 2;return n(t,r.config.useComputedState)==this.value?1:2;};function n(r,s){s=s===undefined||s;var t;if(s)t=r.getComputedStyle('text-align');else{while(!r.hasAttribute||!(r.hasAttribute('align')||r.getStyle('text-align'))){var u=r.getParent();if(!u)break;r=u;}t=r.getStyle('text-align')||r.getAttribute('align')||'';}t&&(t=t.replace(/-moz-|-webkit-|start|auto/i,''));!t&&s&&(t=r.getComputedStyle('direction')=='rtl'?'right':'left');return t;};function o(r){if(r.editor.readOnly)return;var s=r.editor.getCommand(this.name);s.state=m.call(this,r.editor,r.data.path);s.fire('state');};function p(r,s,t){var v=this;v.name=s;v.value=t;var u=r.config.justifyClasses;if(u){switch(t){case 'left':v.cssClassName=u[0];break;case 'center':v.cssClassName=u[1];break;case 'right':v.cssClassName=u[2];break;case 'justify':v.cssClassName=u[3];break;}v.cssClassRegex=new RegExp('(?:^|\\s+)(?:'+u.join('|')+')(?=$|\\s)');
-}};function q(r){var s=r.editor,t=new d.range(s.document);t.setStartBefore(r.data.node);t.setEndAfter(r.data.node);var u=new d.walker(t),v;while(v=u.next()){if(v.type==1){if(!v.equals(r.data.node)&&v.getDirection()){t.setStartAfter(v);u=new d.walker(t);continue;}var w=s.config.justifyClasses;if(w)if(v.hasClass(w[0])){v.removeClass(w[0]);v.addClass(w[2]);}else if(v.hasClass(w[2])){v.removeClass(w[2]);v.addClass(w[0]);}var x='text-align',y=v.getStyle(x);if(y=='left')v.setStyle(x,'right');else if(y=='right')v.setStyle(x,'left');}}};p.prototype={exec:function(r){var D=this;var s=r.getSelection(),t=r.config.enterMode;if(!s)return;var u=s.createBookmarks(),v=s.getRanges(true),w=D.cssClassName,x,y,z=r.config.useComputedState;z=z===undefined||z;for(var A=v.length-1;A>=0;A--){x=v[A].createIterator();x.enlargeBr=t!=2;while(y=x.getNextParagraph(t==1?'p':'div')){y.removeAttribute('align');y.removeStyle('text-align');var B=w&&(y.$.className=e.ltrim(y.$.className.replace(D.cssClassRegex,''))),C=D.state==2&&(!z||n(y,true)!=D.value);if(w){if(C)y.addClass(w);else if(!B)y.removeAttribute('class');}else if(C)y.setStyle('text-align',D.value);}}r.focus();r.forceNextSelectionCheck();s.selectBookmarks(u);}};j.add('justify',{init:function(r){var s=new p(r,'justifyleft','left'),t=new p(r,'justifycenter','center'),u=new p(r,'justifyright','right'),v=new p(r,'justifyblock','justify');r.addCommand('justifyleft',s);r.addCommand('justifycenter',t);r.addCommand('justifyright',u);r.addCommand('justifyblock',v);r.ui.addButton('JustifyLeft',{label:r.lang.justify.left,command:'justifyleft'});r.ui.addButton('JustifyCenter',{label:r.lang.justify.center,command:'justifycenter'});r.ui.addButton('JustifyRight',{label:r.lang.justify.right,command:'justifyright'});r.ui.addButton('JustifyBlock',{label:r.lang.justify.block,command:'justifyblock'});r.on('selectionChange',e.bind(o,s));r.on('selectionChange',e.bind(o,u));r.on('selectionChange',e.bind(o,t));r.on('selectionChange',e.bind(o,v));r.on('dirChanged',q);},requires:['domiterator']});})();j.add('keystrokes',{beforeInit:function(m){m.keystrokeHandler=new a.keystrokeHandler(m);m.specialKeys={};},init:function(m){var n=m.config.keystrokes,o=m.config.blockedKeystrokes,p=m.keystrokeHandler.keystrokes,q=m.keystrokeHandler.blockedKeystrokes;for(var r=0;r<n.length;r++)p[n[r][0]]=n[r][1];for(r=0;r<o.length;r++)q[o[r]]=1;}});a.keystrokeHandler=function(m){var n=this;if(m.keystrokeHandler)return m.keystrokeHandler;n.keystrokes={};n.blockedKeystrokes={};n._={editor:m};
-return n;};(function(){var m,n=function(p){p=p.data;var q=p.getKeystroke(),r=this.keystrokes[q],s=this._.editor;m=s.fire('key',{keyCode:q})===true;if(!m){if(r){var t={from:'keystrokeHandler'};m=s.execCommand(r,t)!==false;}if(!m){var u=s.specialKeys[q];m=u&&u(s)===true;if(!m)m=!!this.blockedKeystrokes[q];}}if(m)p.preventDefault(true);return!m;},o=function(p){if(m){m=false;p.data.preventDefault(true);}};a.keystrokeHandler.prototype={attach:function(p){p.on('keydown',n,this);if(b.opera||b.gecko&&b.mac)p.on('keypress',o,this);}};})();i.blockedKeystrokes=[1114112+66,1114112+73,1114112+85];i.keystrokes=[[4456448+121,'toolbarFocus'],[4456448+122,'elementsPathFocus'],[2228224+121,'contextMenu'],[1114112+2228224+121,'contextMenu'],[1114112+90,'undo'],[1114112+89,'redo'],[1114112+2228224+90,'redo'],[1114112+76,'link'],[1114112+66,'bold'],[1114112+73,'italic'],[1114112+85,'underline'],[4456448+(c||b.webkit?189:109),'toolbarCollapse'],[4456448+48,'a11yHelp']];j.add('link',{init:function(m){m.addCommand('link',new a.dialogCommand('link'));m.addCommand('anchor',new a.dialogCommand('anchor'));m.addCommand('unlink',new a.unlinkCommand());m.addCommand('removeAnchor',new a.removeAnchorCommand());m.ui.addButton('Link',{label:m.lang.link.toolbar,command:'link'});m.ui.addButton('Unlink',{label:m.lang.unlink,command:'unlink'});m.ui.addButton('Anchor',{label:m.lang.anchor.toolbar,command:'anchor'});a.dialog.add('link',this.path+'dialogs/link.js');a.dialog.add('anchor',this.path+'dialogs/anchor.js');var n=m.lang.dir=='rtl'?'right':'left',o='background:url('+a.getUrl(this.path+'images/anchor.gif')+') no-repeat '+n+' center;'+'border:1px dotted #00f;';m.addCss('a.cke_anchor,a.cke_anchor_empty'+(c&&b.version<7?'':',a[name],a[data-cke-saved-name]')+'{'+o+'padding-'+n+':18px;'+'cursor:auto;'+'}'+(c?'a.cke_anchor_empty{display:inline-block;}':'')+'img.cke_anchor'+'{'+o+'width:16px;'+'min-height:15px;'+'height:1.15em;'+'vertical-align:'+(b.opera?'middle':'text-bottom')+';'+'}');m.on('selectionChange',function(p){if(m.readOnly)return;var q=m.getCommand('unlink'),r=p.data.path.lastElement&&p.data.path.lastElement.getAscendant('a',true);if(r&&r.getName()=='a'&&r.getAttribute('href')&&r.getChildCount())q.setState(2);else q.setState(0);});m.on('doubleclick',function(p){var q=j.link.getSelectedLink(m)||p.data.element;if(!q.isReadOnly())if(q.is('a')){p.data.dialog=q.getAttribute('name')&&(!q.getAttribute('href')||!q.getChildCount())?'anchor':'link';m.getSelection().selectElement(q);}else if(j.link.tryRestoreFakeAnchor(m,q))p.data.dialog='anchor';
-});if(m.addMenuItems)m.addMenuItems({anchor:{label:m.lang.anchor.menu,command:'anchor',group:'anchor',order:1},removeAnchor:{label:m.lang.anchor.remove,command:'removeAnchor',group:'anchor',order:5},link:{label:m.lang.link.menu,command:'link',group:'link',order:1},unlink:{label:m.lang.unlink,command:'unlink',group:'link',order:5}});if(m.contextMenu)m.contextMenu.addListener(function(p,q){if(!p||p.isReadOnly())return null;var r=j.link.tryRestoreFakeAnchor(m,p);if(!r&&!(r=j.link.getSelectedLink(m)))return null;var s={};if(r.getAttribute('href')&&r.getChildCount())s={link:2,unlink:2};if(r&&r.hasAttribute('name'))s.anchor=s.removeAnchor=2;return s;});},afterInit:function(m){var n=m.dataProcessor,o=n&&n.dataFilter,p=n&&n.htmlFilter,q=m._.elementsPath&&m._.elementsPath.filters;if(o)o.addRules({elements:{a:function(r){var s=r.attributes;if(!s.name)return null;var t=!r.children.length;if(j.link.synAnchorSelector){var u=t?'cke_anchor_empty':'cke_anchor',v=s['class'];if(s.name&&(!v||v.indexOf(u)<0))s['class']=(v||'')+' '+u;if(t&&j.link.emptyAnchorFix){s.contenteditable='false';s['data-cke-editable']=1;}}else if(j.link.fakeAnchor&&t)return m.createFakeParserElement(r,'cke_anchor','anchor');return null;}}});if(j.link.emptyAnchorFix&&p)p.addRules({elements:{a:function(r){delete r.attributes.contenteditable;}}});if(q)q.push(function(r,s){if(s=='a')if(j.link.tryRestoreFakeAnchor(m,r)||r.getAttribute('name')&&(!r.getAttribute('href')||!r.getChildCount()))return 'anchor';});},requires:['fakeobjects']});j.link={getSelectedLink:function(m){try{var n=m.getSelection();if(n.getType()==3){var o=n.getSelectedElement();if(o.is('a'))return o;}var p=n.getRanges(true)[0];p.shrink(2);var q=p.getCommonAncestor();return q.getAscendant('a',true);}catch(r){return null;}},fakeAnchor:b.opera||b.webkit,synAnchorSelector:c,emptyAnchorFix:c&&b.version<8,tryRestoreFakeAnchor:function(m,n){if(n&&n.data('cke-real-element-type')&&n.data('cke-real-element-type')=='anchor'){var o=m.restoreRealElement(n);if(o.data('cke-saved-name'))return o;}}};a.unlinkCommand=function(){};a.unlinkCommand.prototype={exec:function(m){var n=m.getSelection(),o=n.createBookmarks(),p=n.getRanges(),q,r;for(var s=0;s<p.length;s++){q=p[s].getCommonAncestor(true);r=q.getAscendant('a',true);if(!r)continue;p[s].selectNodeContents(r);}n.selectRanges(p);m.document.$.execCommand('unlink',false,null);n.selectBookmarks(o);},startDisabled:true};a.removeAnchorCommand=function(){};a.removeAnchorCommand.prototype={exec:function(m){var n=m.getSelection(),o=n.createBookmarks(),p;
-if(n&&(p=n.getSelectedElement())&&(j.link.fakeAnchor&&!p.getChildCount()?j.link.tryRestoreFakeAnchor(m,p):p.is('a')))p.remove(1);else if(p=j.link.getSelectedLink(m))if(p.hasAttribute('href')){p.removeAttributes({name:1,'data-cke-saved-name':1});p.removeClass('cke_anchor');}else p.remove(1);n.selectBookmarks(o);}};e.extend(i,{linkShowAdvancedTab:true,linkShowTargetTab:true});(function(){var m={ol:1,ul:1},n=/^[\n\r\t ]*$/,o=d.walker.whitespaces(),p=d.walker.bookmark(),q=function(E){return!(o(E)||p(E));};j.list={listToArray:function(E,F,G,H,I){if(!m[E.getName()])return[];if(!H)H=0;if(!G)G=[];for(var J=0,K=E.getChildCount();J<K;J++){var L=E.getChild(J);if(L.type==1&&L.getName() in f.$list)j.list.listToArray(L,F,G,H+1);if(L.$.nodeName.toLowerCase()!='li')continue;var M={parent:E,indent:H,element:L,contents:[]};if(!I){M.grandparent=E.getParent();if(M.grandparent&&M.grandparent.$.nodeName.toLowerCase()=='li')M.grandparent=M.grandparent.getParent();}else M.grandparent=I;if(F)h.setMarker(F,L,'listarray_index',G.length);G.push(M);for(var N=0,O=L.getChildCount(),P;N<O;N++){P=L.getChild(N);if(P.type==1&&m[P.getName()])j.list.listToArray(P,F,G,H+1,M.grandparent);else M.contents.push(P);}}return G;},arrayToList:function(E,F,G,H,I){if(!G)G=0;if(!E||E.length<G+1)return null;var J=E[G].parent.getDocument(),K=new d.documentFragment(J),L=null,M=G,N=Math.max(E[G].indent,0),O=null,P,Q=H==1?'p':'div';while(1){var R=E[M];P=R.element.getDirection(1);if(R.indent==N){if(!L||E[M].parent.getName()!=L.getName()){L=E[M].parent.clone(false,1);I&&L.setAttribute('dir',I);K.append(L);}O=L.append(R.element.clone(0,1));if(P!=L.getDirection(1))O.setAttribute('dir',P);else O.removeAttribute('dir');for(var S=0;S<R.contents.length;S++)O.append(R.contents[S].clone(1,1));M++;}else if(R.indent==Math.max(N,0)+1){var T=E[M-1].element.getDirection(1),U=j.list.arrayToList(E,null,M,H,T!=P?P:null);if(!O.getChildCount()&&c&&!(J.$.documentMode>7))O.append(J.createText('\xa0'));O.append(U.listNode);M=U.nextIndex;}else if(R.indent==-1&&!G&&R.grandparent){if(m[R.grandparent.getName()])O=R.element.clone(false,true);else if(I||R.element.hasAttributes()||H!=2){O=J.createElement(Q);R.element.copyAttributes(O,{type:1,value:1});if(!I&&H==2&&!O.hasAttributes())O=new d.documentFragment(J);}else O=new d.documentFragment(J);if(O.type==1)if(R.grandparent.getDirection(1)!=P)O.setAttribute('dir',P);else O.removeAttribute('dir');for(S=0;S<R.contents.length;S++)O.append(R.contents[S].clone(1,1));if(O.type==11&&M!=E.length-1){var V=O.getLast();
-if(V&&V.type==1&&V.getAttribute('type')=='_moz')V.remove();if(!(V=O.getLast(q)&&V.type==1&&V.getName() in f.$block))O.append(J.createElement('br'));}if(O.type==1&&O.getName()==Q&&O.$.firstChild){O.trim();var W=O.getFirst();if(W.type==1&&W.isBlockBoundary()){var X=new d.documentFragment(J);O.moveChildren(X);O=X;}}var Y=O.$.nodeName.toLowerCase();if(!c&&(Y=='div'||Y=='p'))O.appendBogus();K.append(O);L=null;M++;}else return null;if(E.length<=M||Math.max(E[M].indent,0)<N)break;}if(F){var Z=K.getFirst();while(Z){if(Z.type==1)h.clearMarkers(F,Z);Z=Z.getNextSourceNode();}}return{listNode:K,nextIndex:M};}};function r(E){if(E.editor.readOnly)return null;var F=E.data.path,G=F.blockLimit,H=F.elements,I,J;for(J=0;J<H.length&&(I=H[J])&&!I.equals(G);J++){if(m[H[J].getName()])return this.setState(this.type==H[J].getName()?1:2);}return this.setState(2);};function s(E,F,G,H){var I=j.list.listToArray(F.root,G),J=[];for(var K=0;K<F.contents.length;K++){var L=F.contents[K];L=L.getAscendant('li',true);if(!L||L.getCustomData('list_item_processed'))continue;J.push(L);h.setMarker(G,L,'list_item_processed',true);}var M=F.root,N=M.getDocument().createElement(this.type);M.copyAttributes(N,{start:1,type:1});N.removeStyle('list-style-type');for(K=0;K<J.length;K++){var O=J[K].getCustomData('listarray_index');I[O].parent=N;}var P=j.list.arrayToList(I,G,null,E.config.enterMode),Q,R=P.listNode.getChildCount();for(K=0;K<R&&(Q=P.listNode.getChild(K));K++){if(Q.getName()==this.type)H.push(Q);}P.listNode.replace(F.root);};var t=/^h[1-6]$/;function u(E,F,G){var H=F.contents,I=F.root.getDocument(),J=[];if(H.length==1&&H[0].equals(F.root)){var K=I.createElement('div');H[0].moveChildren&&H[0].moveChildren(K);H[0].append(K);H[0]=K;}var L=F.contents[0].getParent();for(var M=0;M<H.length;M++)L=L.getCommonAncestor(H[M].getParent());var N=E.config.useComputedState,O,P;N=N===undefined||N;for(M=0;M<H.length;M++){var Q=H[M],R;while(R=Q.getParent()){if(R.equals(L)){J.push(Q);if(!P&&Q.getDirection())P=1;var S=Q.getDirection(N);if(O!==null)if(O&&O!=S)O=null;else O=S;break;}Q=R;}}if(J.length<1)return;var T=J[J.length-1].getNext(),U=I.createElement(this.type);G.push(U);var V,W;while(J.length){V=J.shift();W=I.createElement('li');if(V.is('pre')||t.test(V.getName()))V.appendTo(W);else{V.copyAttributes(W);if(O&&V.getDirection()){W.removeStyle('direction');W.removeAttribute('dir');}V.moveChildren(W);V.remove();}W.appendTo(U);}if(O&&P)U.setAttribute('dir',O);if(T)U.insertBefore(T);else U.appendTo(L);};function v(E,F,G){var H=j.list.listToArray(F.root,G),I=[];
-for(var J=0;J<F.contents.length;J++){var K=F.contents[J];K=K.getAscendant('li',true);if(!K||K.getCustomData('list_item_processed'))continue;I.push(K);h.setMarker(G,K,'list_item_processed',true);}var L=null;for(J=0;J<I.length;J++){var M=I[J].getCustomData('listarray_index');H[M].indent=-1;L=M;}for(J=L+1;J<H.length;J++){if(H[J].indent>H[J-1].indent+1){var N=H[J-1].indent+1-H[J].indent,O=H[J].indent;while(H[J]&&H[J].indent>=O){H[J].indent+=N;J++;}J--;}}var P=j.list.arrayToList(H,G,null,E.config.enterMode,F.root.getAttribute('dir')),Q=P.listNode,R,S;function T(U){if((R=Q[U?'getFirst':'getLast']())&&!(R.is&&R.isBlockBoundary())&&(S=F.root[U?'getPrevious':'getNext'](d.walker.whitespaces(true)))&&!(S.is&&S.isBlockBoundary({br:1})))E.document.createElement('br')[U?'insertBefore':'insertAfter'](R);};T(true);T();Q.replace(F.root);};function w(E,F){this.name=E;this.type=F;};w.prototype={exec:function(E){var F=E.document,G=E.config,H=E.getSelection(),I=H&&H.getRanges(true);if(!I||I.length<1)return;if(this.state==2){var J=F.getBody();if(!J.getFirst(q)){G.enterMode==2?J.appendBogus():I[0].fixBlock(1,G.enterMode==1?'p':'div');H.selectRanges(I);}else{var K=I.length==1&&I[0],L=K&&K.getEnclosedNode();if(L&&L.is&&this.type==L.getName())this.setState(1);}}var M=H.createBookmarks(true),N=[],O={},P=I.createIterator(),Q=0;while((K=P.getNextRange())&&++Q){var R=K.getBoundaryNodes(),S=R.startNode,T=R.endNode;if(S.type==1&&S.getName()=='td')K.setStartAt(R.startNode,1);if(T.type==1&&T.getName()=='td')K.setEndAt(R.endNode,2);var U=K.createIterator(),V;U.forceBrBreak=this.state==2;while(V=U.getNextParagraph()){if(V.getCustomData('list_block'))continue;else h.setMarker(O,V,'list_block',1);var W=new d.elementPath(V),X=W.elements,Y=X.length,Z=null,aa=0,ab=W.blockLimit,ac;for(var ad=Y-1;ad>=0&&(ac=X[ad]);ad--){if(m[ac.getName()]&&ab.contains(ac)){ab.removeCustomData('list_group_object_'+Q);var ae=ac.getCustomData('list_group_object');if(ae)ae.contents.push(V);else{ae={root:ac,contents:[V]};N.push(ae);h.setMarker(O,ac,'list_group_object',ae);}aa=1;break;}}if(aa)continue;var af=ab;if(af.getCustomData('list_group_object_'+Q))af.getCustomData('list_group_object_'+Q).contents.push(V);else{ae={root:af,contents:[V]};h.setMarker(O,af,'list_group_object_'+Q,ae);N.push(ae);}}}var ag=[];while(N.length>0){ae=N.shift();if(this.state==2){if(m[ae.root.getName()])s.call(this,E,ae,O,ag);else u.call(this,E,ae,ag);}else if(this.state==1&&m[ae.root.getName()])v.call(this,E,ae,O);}for(ad=0;ad<ag.length;ad++){Z=ag[ad];
-var ah,ai=this;(ah=function(aj){var ak=Z[aj?'getPrevious':'getNext'](d.walker.whitespaces(true));if(ak&&ak.getName&&ak.getName()==ai.type){ak.remove();ak.moveChildren(Z,aj);}})();ah(1);}h.clearAllMarkers(O);H.selectBookmarks(M);E.focus();}};var x=f,y=/[\t\r\n ]*(?: |\xa0)$/;function z(E,F){var G,H=E.children,I=H.length;for(var J=0;J<I;J++){G=H[J];if(G.name&&G.name in F)return J;}return I;};function A(E){return function(F){var G=F.children,H=z(F,x.$list),I=G[H],J=I&&I.previous,K;if(J&&(J.name&&J.name=='br'||J.value&&(K=J.value.match(y)))){var L=J;if(!(K&&K.index)&&L==G[0])G[0]=E||c?new a.htmlParser.text('\xa0'):new a.htmlParser.element('br',{});else if(L.name=='br')G.splice(H-1,1);else L.value=L.value.replace(y,'');}};};var B={elements:{}};for(var C in x.$listItem)B.elements[C]=A();var D={elements:{}};for(C in x.$listItem)D.elements[C]=A(true);j.add('list',{init:function(E){var F=E.addCommand('numberedlist',new w('numberedlist','ol')),G=E.addCommand('bulletedlist',new w('bulletedlist','ul'));E.ui.addButton('NumberedList',{label:E.lang.numberedlist,command:'numberedlist'});E.ui.addButton('BulletedList',{label:E.lang.bulletedlist,command:'bulletedlist'});E.on('selectionChange',e.bind(r,F));E.on('selectionChange',e.bind(r,G));},afterInit:function(E){var F=E.dataProcessor;if(F){F.dataFilter.addRules(B);F.htmlFilter.addRules(D);}},requires:['domiterator']});})();(function(){j.liststyle={requires:['dialog'],init:function(m){m.addCommand('numberedListStyle',new a.dialogCommand('numberedListStyle'));a.dialog.add('numberedListStyle',this.path+'dialogs/liststyle.js');m.addCommand('bulletedListStyle',new a.dialogCommand('bulletedListStyle'));a.dialog.add('bulletedListStyle',this.path+'dialogs/liststyle.js');if(m.addMenuItems){m.addMenuGroup('list',108);m.addMenuItems({numberedlist:{label:m.lang.list.numberedTitle,group:'list',command:'numberedListStyle'},bulletedlist:{label:m.lang.list.bulletedTitle,group:'list',command:'bulletedListStyle'}});}if(m.contextMenu)m.contextMenu.addListener(function(n,o){if(!n||n.isReadOnly())return null;while(n){var p=n.getName();if(p=='ol')return{numberedlist:2};else if(p=='ul')return{bulletedlist:2};n=n.getParent();}return null;});}};j.add('liststyle',j.liststyle);})();(function(){function m(s){if(!s||s.type!=1||s.getName()!='form')return[];var t=[],u=['style','className'];for(var v=0;v<u.length;v++){var w=u[v],x=s.$.elements.namedItem(w);if(x){var y=new h(x);t.push([y,y.nextSibling]);y.remove();}}return t;};function n(s,t){if(!s||s.type!=1||s.getName()!='form')return;
-if(t.length>0)for(var u=t.length-1;u>=0;u--){var v=t[u][0],w=t[u][1];if(w)v.insertBefore(w);else v.appendTo(s);}};function o(s,t){var u=m(s),v={},w=s.$;if(!t){v['class']=w.className||'';w.className='';}v.inline=w.style.cssText||'';if(!t)w.style.cssText='position: static; overflow: visible';n(u);return v;};function p(s,t){var u=m(s),v=s.$;if('class' in t)v.className=t['class'];if('inline' in t)v.style.cssText=t.inline;n(u);};function q(s){var t=a.instances;for(var u in t){var v=t[u];if(v.mode=='wysiwyg'&&!v.readOnly){var w=v.document.getBody();w.setAttribute('contentEditable',false);w.setAttribute('contentEditable',true);}}if(s.focusManager.hasFocus){s.toolbox.focus();s.focus();}};function r(s){if(!c||b.version>6)return null;var t=h.createFromHtml('<iframe frameborder="0" tabindex="-1" src="javascript:void((function(){document.open();'+(b.isCustomDomain()?"document.domain='"+this.getDocument().$.domain+"';":'')+'document.close();'+'})())"'+' style="display:block;position:absolute;z-index:-1;'+'progid:DXImageTransform.Microsoft.Alpha(opacity=0);'+'"></iframe>');return s.append(t,true);};j.add('maximize',{init:function(s){var t=s.lang,u=a.document,v=u.getWindow(),w,x,y,z;function A(){var C=v.getViewPaneSize();z&&z.setStyles({width:C.width+'px',height:C.height+'px'});s.resize(C.width,C.height,null,true);};var B=2;s.addCommand('maximize',{modes:{wysiwyg:1,source:1},readOnly:1,editorFocus:false,exec:function(){var C=s.container.getChild(1),D=s.getThemeSpace('contents');if(s.mode=='wysiwyg'){var E=s.getSelection();w=E&&E.getRanges();x=v.getScrollPosition();}else{var F=s.textarea.$;w=!c&&[F.selectionStart,F.selectionEnd];x=[F.scrollLeft,F.scrollTop];}if(this.state==2){v.on('resize',A);y=v.getScrollPosition();var G=s.container;while(G=G.getParent()){G.setCustomData('maximize_saved_styles',o(G));G.setStyle('z-index',s.config.baseFloatZIndex-1);}D.setCustomData('maximize_saved_styles',o(D,true));C.setCustomData('maximize_saved_styles',o(C,true));var H={overflow:b.webkit?'':'hidden',width:0,height:0};u.getDocumentElement().setStyles(H);!b.gecko&&u.getDocumentElement().setStyle('position','fixed');!(b.gecko&&b.quirks)&&u.getBody().setStyles(H);c?setTimeout(function(){v.$.scrollTo(0,0);},0):v.$.scrollTo(0,0);C.setStyle('position',b.gecko&&b.quirks?'fixed':'absolute');C.$.offsetLeft;C.setStyles({'z-index':s.config.baseFloatZIndex-1,left:'0px',top:'0px'});z=r(C);C.addClass('cke_maximized');A();var I=C.getDocumentPosition();C.setStyles({left:-1*I.x+'px',top:-1*I.y+'px'});b.gecko&&q(s);
-}else if(this.state==1){v.removeListener('resize',A);var J=[D,C];for(var K=0;K<J.length;K++){p(J[K],J[K].getCustomData('maximize_saved_styles'));J[K].removeCustomData('maximize_saved_styles');}G=s.container;while(G=G.getParent()){p(G,G.getCustomData('maximize_saved_styles'));G.removeCustomData('maximize_saved_styles');}c?setTimeout(function(){v.$.scrollTo(y.x,y.y);},0):v.$.scrollTo(y.x,y.y);C.removeClass('cke_maximized');if(b.webkit){C.setStyle('display','inline');setTimeout(function(){C.setStyle('display','block');},0);}if(z){z.remove();z=null;}s.fire('resize');}this.toggleState();var L=this.uiItems[0];if(L){var M=this.state==2?t.maximize:t.minimize,N=s.element.getDocument().getById(L._.id);N.getChild(1).setHtml(M);N.setAttribute('title',M);N.setAttribute('href','javascript:void("'+M+'");');}if(s.mode=='wysiwyg'){if(w){b.gecko&&q(s);s.getSelection().selectRanges(w);var O=s.getSelection().getStartElement();O&&O.scrollIntoView(true);}else v.$.scrollTo(x.x,x.y);}else{if(w){F.selectionStart=w[0];F.selectionEnd=w[1];}F.scrollLeft=x[0];F.scrollTop=x[1];}w=x=null;B=this.state;},canUndo:false});s.ui.addButton('Maximize',{label:t.maximize,command:'maximize'});s.on('mode',function(){var C=s.getCommand('maximize');C.setState(C.state==0?0:B);},null,null,100);}});})();j.add('newpage',{init:function(m){m.addCommand('newpage',{modes:{wysiwyg:1,source:1},exec:function(n){var o=this;n.setData(n.config.newpage_html||'',function(){setTimeout(function(){n.fire('afterCommandExec',{name:o.name,command:o});n.selectionChange();},200);});n.focus();},async:true});m.ui.addButton('NewPage',{label:m.lang.newPage,command:'newpage'});}});j.add('pagebreak',{init:function(m){m.addCommand('pagebreak',j.pagebreakCmd);m.ui.addButton('PageBreak',{label:m.lang.pagebreak,command:'pagebreak'});var n=['{','background: url('+a.getUrl(this.path+'images/pagebreak.gif')+') no-repeat center center;','clear: both;','width:100%; _width:99.9%;','border-top: #999999 1px dotted;','border-bottom: #999999 1px dotted;','padding:0;','height: 5px;','cursor: default;','}'].join('').replace(/;/g,' !important;');m.addCss('div.cke_pagebreak'+n);b.opera&&m.on('contentDom',function(){m.document.on('click',function(o){var p=o.data.getTarget();if(p.is('div')&&p.hasClass('cke_pagebreak'))m.getSelection().selectElement(p);});});},afterInit:function(m){var n=m.lang.pagebreakAlt,o=m.dataProcessor,p=o&&o.dataFilter,q=o&&o.htmlFilter;if(q)q.addRules({attributes:{'class':function(r,s){var t=r.replace('cke_pagebreak','');if(t!=r){var u=a.htmlParser.fragment.fromHtml('<span style="display: none;"> </span>');
-s.children.length=0;s.add(u);var v=s.attributes;delete v['aria-label'];delete v.contenteditable;delete v.title;}return t;}}},5);if(p)p.addRules({elements:{div:function(r){var s=r.attributes,t=s&&s.style,u=t&&r.children.length==1&&r.children[0],v=u&&u.name=='span'&&u.attributes.style;if(v&&/page-break-after\s*:\s*always/i.test(t)&&/display\s*:\s*none/i.test(v)){s.contenteditable='false';s['class']='cke_pagebreak';s['data-cke-display-name']='pagebreak';s['aria-label']=n;s.title=n;r.children.length=0;}}}});},requires:['fakeobjects']});j.pagebreakCmd={exec:function(m){var n=m.lang.pagebreakAlt,o=h.createFromHtml('<div style="page-break-after: always;"contenteditable="false" title="'+n+'" '+'aria-label="'+n+'" '+'data-cke-display-name="pagebreak" '+'class="cke_pagebreak">'+'</div>',m.document),p=m.getSelection().getRanges(true);m.fire('saveSnapshot');for(var q,r=p.length-1;r>=0;r--){q=p[r];if(r<p.length-1)o=o.clone(true);q.splitBlock('p');q.insertNode(o);if(r==p.length-1){var s=o.getNext();q.moveToPosition(o,4);if(!s||s.type==1&&!s.isEditable())q.fixBlock(true,m.config.enterMode==3?'div':'p');q.select();}}m.fire('saveSnapshot');}};(function(){function m(n){n.data.mode='html';};j.add('pastefromword',{init:function(n){var o=0,p=function(q){q&&q.removeListener();n.removeListener('beforePaste',m);o&&setTimeout(function(){o=0;},0);};n.addCommand('pastefromword',{canUndo:false,exec:function(){o=1;n.on('beforePaste',m);if(n.execCommand('paste','html')===false){n.on('dialogShow',function(q){q.removeListener();q.data.on('cancel',p);});n.on('dialogHide',function(q){q.data.removeListener('cancel',p);});}n.on('afterPaste',p);}});n.ui.addButton('PasteFromWord',{label:n.lang.pastefromword.toolbar,command:'pastefromword'});n.on('pasteState',function(q){n.getCommand('pastefromword').setState(q.data);});n.on('paste',function(q){var r=q.data,s;if((s=r.html)&&(o||/(class=\"?Mso|style=\"[^\"]*\bmso\-|w:WordDocument)/.test(s))){var t=this.loadFilterRules(function(){if(t)n.fire('paste',r);else if(!n.config.pasteFromWordPromptCleanup||o||confirm(n.lang.pastefromword.confirmCleanup))r.html=a.cleanWord(s,n);});t&&q.cancel();}},this);},loadFilterRules:function(n){var o=a.cleanWord;if(o)n();else{var p=a.getUrl(i.pasteFromWordCleanupFile||this.path+'filter/default.js');a.scriptLoader.load(p,n,null,true);}return!o;},requires:['clipboard']});})();(function(){var m={exec:function(n){var o=e.tryThese(function(){var p=window.clipboardData.getData('Text');if(!p)throw 0;return p;});if(!o){n.openDialog('pastetext');
-return false;}else n.fire('paste',{text:o});return true;}};j.add('pastetext',{init:function(n){var o='pastetext',p=n.addCommand(o,m);n.ui.addButton('PasteText',{label:n.lang.pasteText.button,command:o});a.dialog.add(o,a.getUrl(this.path+'dialogs/pastetext.js'));if(n.config.forcePasteAsPlainText){n.on('beforeCommandExec',function(q){var r=q.data.commandData;if(q.data.name=='paste'&&r!='html'){n.execCommand('pastetext');q.cancel();}},null,null,0);n.on('beforePaste',function(q){q.data.mode='text';});}n.on('pasteState',function(q){n.getCommand('pastetext').setState(q.data);});},requires:['clipboard']});})();j.add('popup');e.extend(a.editor.prototype,{popup:function(m,n,o,p){n=n||'80%';o=o||'70%';if(typeof n=='string'&&n.length>1&&n.substr(n.length-1,1)=='%')n=parseInt(window.screen.width*parseInt(n,10)/100,10);if(typeof o=='string'&&o.length>1&&o.substr(o.length-1,1)=='%')o=parseInt(window.screen.height*parseInt(o,10)/100,10);if(n<640)n=640;if(o<420)o=420;var q=parseInt((window.screen.height-o)/2,10),r=parseInt((window.screen.width-n)/2,10);p=(p||'location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes')+',width='+n+',height='+o+',top='+q+',left='+r;var s=window.open('',null,p,true);if(!s)return false;try{s.moveTo(r,q);s.resizeTo(n,o);s.focus();s.location.href=m;}catch(t){s=window.open(m,null,p,true);}return true;}});(function(){var m={modes:{wysiwyg:1,source:1},canUndo:false,readOnly:1,exec:function(o){var p,q=o.config,r=q.baseHref?'<base href="'+q.baseHref+'"/>':'',s=b.isCustomDomain();if(q.fullPage)p=o.getData().replace(/<head>/,'$&'+r).replace(/[^>]*(?=<\/title>)/,'$& — '+o.lang.preview);else{var t='<body ',u=o.document&&o.document.getBody();if(u){if(u.getAttribute('id'))t+='id="'+u.getAttribute('id')+'" ';if(u.getAttribute('class'))t+='class="'+u.getAttribute('class')+'" ';}t+='>';p=o.config.docType+'<html dir="'+o.config.contentsLangDirection+'">'+'<head>'+r+'<title>'+o.lang.preview+'</title>'+e.buildStyleHtml(o.config.contentsCss)+'</head>'+t+o.getData()+'</body></html>';}var v=640,w=420,x=80;try{var y=window.screen;v=Math.round(y.width*0.8);w=Math.round(y.height*0.7);x=Math.round(y.width*0.1);}catch(B){}var z='';if(s){window._cke_htmlToLoad=p;z='javascript:void( (function(){document.open();document.domain="'+document.domain+'";'+'document.write( window.opener._cke_htmlToLoad );'+'document.close();'+'window.opener._cke_htmlToLoad = null;'+'})() )';}var A=window.open(z,null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+v+',height='+w+',left='+x);
-if(!s){A.document.open();A.document.write(p);A.document.close();}}},n='preview';j.add(n,{init:function(o){o.addCommand(n,m);o.ui.addButton('Preview',{label:o.lang.preview,command:n});}});})();j.add('print',{init:function(m){var n='print',o=m.addCommand(n,j.print);m.ui.addButton('Print',{label:m.lang.print,command:n});}});j.print={exec:function(m){if(b.opera)return;else if(b.gecko)m.window.$.print();else m.document.$.execCommand('Print');},canUndo:false,readOnly:1,modes:{wysiwyg:!b.opera}};j.add('removeformat',{requires:['selection'],init:function(m){m.addCommand('removeFormat',j.removeformat.commands.removeformat);m.ui.addButton('RemoveFormat',{label:m.lang.removeFormat,command:'removeFormat'});m._.removeFormat={filters:[]};}});j.removeformat={commands:{removeformat:{exec:function(m){var n=m._.removeFormatRegex||(m._.removeFormatRegex=new RegExp('^(?:'+m.config.removeFormatTags.replace(/,/g,'|')+')$','i')),o=m._.removeAttributes||(m._.removeAttributes=m.config.removeFormatAttributes.split(',')),p=j.removeformat.filter,q=m.getSelection().getRanges(1),r=q.createIterator(),s;while(s=r.getNextRange()){if(!s.collapsed)s.enlarge(1);var t=s.createBookmark(),u=t.startNode,v=t.endNode,w,x=function(z){var A=new d.elementPath(z),B=A.elements;for(var C=1,D;D=B[C];C++){if(D.equals(A.block)||D.equals(A.blockLimit))break;if(n.test(D.getName())&&p(m,D))z.breakParent(D);}};x(u);if(v){x(v);w=u.getNextSourceNode(true,1);while(w){if(w.equals(v))break;var y=w.getNextSourceNode(false,1);if(!(w.getName()=='img'&&w.data('cke-realelement'))&&p(m,w))if(n.test(w.getName()))w.remove(1);else{w.removeAttributes(o);m.fire('removeFormatCleanup',w);}w=y;}}s.moveToBookmark(t);}m.getSelection().selectRanges(q);}}},filter:function(m,n){var o=m._.removeFormat.filters;for(var p=0;p<o.length;p++){if(o[p](n)===false)return false;}return true;}};a.editor.prototype.addRemoveFormatFilter=function(m){this._.removeFormat.filters.push(m);};i.removeFormatTags='b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var';i.removeFormatAttributes='class,style,lang,width,height,align,hspace,valign';j.add('resize',{init:function(m){var n=m.config,o=m.element.getDirection(1);!n.resize_dir&&(n.resize_dir='both');n.resize_maxWidth==undefined&&(n.resize_maxWidth=3000);n.resize_maxHeight==undefined&&(n.resize_maxHeight=3000);n.resize_minWidth==undefined&&(n.resize_minWidth=750);n.resize_minHeight==undefined&&(n.resize_minHeight=250);if(n.resize_enabled!==false){var p=null,q,r,s=(n.resize_dir=='both'||n.resize_dir=='horizontal')&&n.resize_minWidth!=n.resize_maxWidth,t=(n.resize_dir=='both'||n.resize_dir=='vertical')&&n.resize_minHeight!=n.resize_maxHeight;
-function u(x){var y=x.data.$.screenX-q.x,z=x.data.$.screenY-q.y,A=r.width,B=r.height,C=A+y*(o=='rtl'?-1:1),D=B+z;if(s)A=Math.max(n.resize_minWidth,Math.min(C,n.resize_maxWidth));if(t)B=Math.max(n.resize_minHeight,Math.min(D,n.resize_maxHeight));m.resize(A,B);};function v(x){a.document.removeListener('mousemove',u);a.document.removeListener('mouseup',v);if(m.document){m.document.removeListener('mousemove',u);m.document.removeListener('mouseup',v);}};var w=e.addFunction(function(x){if(!p)p=m.getResizable();r={width:p.$.offsetWidth||0,height:p.$.offsetHeight||0};q={x:x.screenX,y:x.screenY};n.resize_minWidth>r.width&&(n.resize_minWidth=r.width);n.resize_minHeight>r.height&&(n.resize_minHeight=r.height);a.document.on('mousemove',u);a.document.on('mouseup',v);if(m.document){m.document.on('mousemove',u);m.document.on('mouseup',v);}});m.on('destroy',function(){e.removeFunction(w);});m.on('themeSpace',function(x){if(x.data.space=='bottom'){var y='';if(s&&!t)y=' cke_resizer_horizontal';if(!s&&t)y=' cke_resizer_vertical';var z='<div class="cke_resizer'+y+' cke_resizer_'+o+'"'+' title="'+e.htmlEncode(m.lang.resize)+'"'+' onmousedown="CKEDITOR.tools.callFunction('+w+', event)"'+'></div>';o=='ltr'&&y=='ltr'?x.data.html+=z:x.data.html=z+x.data.html;}},m,null,100);}}});(function(){var m={modes:{wysiwyg:1,source:1},readOnly:1,exec:function(o){var p=o.element.$.form;if(p)try{p.submit();}catch(q){if(p.submit.click)p.submit.click();}}},n='save';j.add(n,{init:function(o){var p=o.addCommand(n,m);p.modes={wysiwyg:!!o.element.$.form};o.ui.addButton('Save',{label:o.lang.save,command:n});}});})();(function(){var m='scaytcheck',n='';function o(t,u){var v=0,w;for(w in u){if(u[w]==t){v=1;break;}}return v;};var p=function(){var t=this,u=function(){var y=t.config,z={};z.srcNodeRef=t.document.getWindow().$.frameElement;z.assocApp='CKEDITOR.'+a.version+'@'+a.revision;z.customerid=y.scayt_customerid||'1:WvF0D4-UtPqN1-43nkD4-NKvUm2-daQqk3-LmNiI-z7Ysb4-mwry24-T8YrS3-Q2tpq2';z.customDictionaryIds=y.scayt_customDictionaryIds||'';z.userDictionaryName=y.scayt_userDictionaryName||'';z.sLang=y.scayt_sLang||'en_US';z.onLoad=function(){if(!(c&&b.version<8))this.addStyle(this.selectorCss(),'padding-bottom: 2px !important;');if(t.focusManager.hasFocus&&!q.isControlRestored(t))this.focus();};z.onBeforeChange=function(){if(q.getScayt(t)&&!t.checkDirty())setTimeout(function(){t.resetDirty();},0);};var A=window.scayt_custom_params;if(typeof A=='object')for(var B in A)z[B]=A[B];if(q.getControlId(t))z.id=q.getControlId(t);
-var C=new window.scayt(z);C.afterMarkupRemove.push(function(E){new h(E,C.document).mergeSiblings();});var D=q.instances[t.name];if(D){C.sLang=D.sLang;C.option(D.option());C.paused=D.paused;}q.instances[t.name]=C;try{C.setDisabled(q.isPaused(t)===false);}catch(E){}t.fire('showScaytState');};t.on('contentDom',u);t.on('contentDomUnload',function(){var y=a.document.getElementsByTag('script'),z=/^dojoIoScript(\d+)$/i,A=/^https?:\/\/svc\.spellchecker\.net\/spellcheck\/script\/ssrv\.cgi/i;for(var B=0;B<y.count();B++){var C=y.getItem(B),D=C.getId(),E=C.getAttribute('src');if(D&&E&&D.match(z)&&E.match(A))C.remove();}});t.on('beforeCommandExec',function(y){if((y.data.name=='source'||y.data.name=='newpage')&&t.mode=='wysiwyg'){var z=q.getScayt(t);if(z){q.setPaused(t,!z.disabled);q.setControlId(t,z.id);z.destroy(true);delete q.instances[t.name];}}else if(y.data.name=='source'&&t.mode=='source')q.markControlRestore(t);});t.on('afterCommandExec',function(y){if(!q.isScaytEnabled(t))return;if(t.mode=='wysiwyg'&&(y.data.name=='undo'||y.data.name=='redo'))window.setTimeout(function(){q.getScayt(t).refresh();},10);});t.on('destroy',function(y){var z=y.editor,A=q.getScayt(z);if(!A)return;delete q.instances[z.name];q.setControlId(z,A.id);A.destroy(true);});t.on('afterSetData',function(){if(q.isScaytEnabled(t))window.setTimeout(function(){var y=q.getScayt(t);y&&y.refresh();},10);});t.on('insertElement',function(){var y=q.getScayt(t);if(q.isScaytEnabled(t)){if(c)t.getSelection().unlock(true);window.setTimeout(function(){y.focus();y.refresh();},10);}},this,null,50);t.on('insertHtml',function(){var y=q.getScayt(t);if(q.isScaytEnabled(t)){if(c)t.getSelection().unlock(true);window.setTimeout(function(){y.focus();y.refresh();},10);}},this,null,50);t.on('scaytDialog',function(y){y.data.djConfig=window.djConfig;y.data.scayt_control=q.getScayt(t);y.data.tab=n;y.data.scayt=window.scayt;});var v=t.dataProcessor,w=v&&v.htmlFilter;if(w)w.addRules({elements:{span:function(y){if(y.attributes['data-scayt_word']&&y.attributes['data-scaytid']){delete y.name;return y;}}}});var x=j.undo.Image.prototype;x.equals=e.override(x.equals,function(y){return function(z){var E=this;var A=E.contents,B=z.contents,C=q.getScayt(E.editor);if(C&&q.isScaytReady(E.editor)){E.contents=C.reset(A)||'';z.contents=C.reset(B)||'';}var D=y.apply(E,arguments);E.contents=A;z.contents=B;return D;};});if(t.document)u();};j.scayt={engineLoaded:false,instances:{},controlInfo:{},setControlInfo:function(t,u){if(t&&t.name&&typeof this.controlInfo[t.name]!='object')this.controlInfo[t.name]={};
-for(var v in u)this.controlInfo[t.name][v]=u[v];},isControlRestored:function(t){if(t&&t.name&&this.controlInfo[t.name])return this.controlInfo[t.name].restored;return false;},markControlRestore:function(t){this.setControlInfo(t,{restored:true});},setControlId:function(t,u){this.setControlInfo(t,{id:u});},getControlId:function(t){if(t&&t.name&&this.controlInfo[t.name]&&this.controlInfo[t.name].id)return this.controlInfo[t.name].id;return null;},setPaused:function(t,u){this.setControlInfo(t,{paused:u});},isPaused:function(t){if(t&&t.name&&this.controlInfo[t.name])return this.controlInfo[t.name].paused;return undefined;},getScayt:function(t){return this.instances[t.name];},isScaytReady:function(t){return this.engineLoaded===true&&'undefined'!==typeof window.scayt&&this.getScayt(t);},isScaytEnabled:function(t){var u=this.getScayt(t);return u?u.disabled===false:false;},getUiTabs:function(t){var u=[],v=t.config.scayt_uiTabs||'1,1,1';v=v.split(',');v[3]='1';for(var w=0;w<4;w++)u[w]=typeof window.scayt!='undefined'&&typeof window.scayt.uiTags!='undefined'?parseInt(v[w],10)&&window.scayt.uiTags[w]:parseInt(v[w],10);return u;},loadEngine:function(t){if(b.gecko&&b.version<10900||b.opera||b.air)return t.fire('showScaytState');if(this.engineLoaded===true)return p.apply(t);else if(this.engineLoaded==-1)return a.on('scaytReady',function(){p.apply(t);});a.on('scaytReady',p,t);a.on('scaytReady',function(){this.engineLoaded=true;},this,null,0);this.engineLoaded=-1;var u=document.location.protocol;u=u.search(/https?:/)!=-1?u:'http:';var v='svc.spellchecker.net/scayt26/loader__base.js',w=t.config.scayt_srcUrl||u+'//'+v,x=q.parseUrl(w).path+'/';if(window.scayt==undefined){a._djScaytConfig={baseUrl:x,addOnLoad:[function(){a.fireOnce('scaytReady');}],isDebug:false};a.document.getHead().append(a.document.createElement('script',{attributes:{type:'text/javascript',async:'true',src:w}}));}else a.fireOnce('scaytReady');return null;},parseUrl:function(t){var u;if(t.match&&(u=t.match(/(.*)[\/\\](.*?\.\w+)$/)))return{path:u[1],file:u[2]};else return t;}};var q=j.scayt,r=function(t,u,v,w,x,y,z){t.addCommand(w,x);t.addMenuItem(w,{label:v,command:w,group:y,order:z});},s={preserveState:true,editorFocus:false,canUndo:false,exec:function(t){if(q.isScaytReady(t)){var u=q.isScaytEnabled(t);this.setState(u?2:1);var v=q.getScayt(t);v.focus();v.setDisabled(u);}else if(!t.config.scayt_autoStartup&&q.engineLoaded>=0){this.setState(0);q.loadEngine(t);}}};j.add('scayt',{requires:['menubutton'],beforeInit:function(t){var u=t.config.scayt_contextMenuItemsOrder||'suggest|moresuggest|control',v='';
-u=u.split('|');if(u&&u.length)for(var w=0;w<u.length;w++)v+='scayt_'+u[w]+(u.length!=parseInt(w,10)+1?',':'');t.config.menu_groups=v+','+t.config.menu_groups;},init:function(t){var u=t.dataProcessor&&t.dataProcessor.dataFilter,v={elements:{span:function(E){var F=E.attributes;if(F&&F['data-scaytid'])delete E.name;}}};u&&u.addRules(v);var w={},x={},y=t.addCommand(m,s);a.dialog.add(m,a.getUrl(this.path+'dialogs/options.js'));var z=q.getUiTabs(t),A='scaytButton';t.addMenuGroup(A);var B={},C=t.lang.scayt;B.scaytToggle={label:C.enable,command:m,group:A};if(z[0]==1)B.scaytOptions={label:C.options,group:A,onClick:function(){n='options';t.openDialog(m);}};if(z[1]==1)B.scaytLangs={label:C.langs,group:A,onClick:function(){n='langs';t.openDialog(m);}};if(z[2]==1)B.scaytDict={label:C.dictionariesTab,group:A,onClick:function(){n='dictionaries';t.openDialog(m);}};B.scaytAbout={label:t.lang.scayt.about,group:A,onClick:function(){n='about';t.openDialog(m);}};t.addMenuItems(B);t.ui.add('Scayt','menubutton',{label:C.title,title:b.opera?C.opera_title:C.title,className:'cke_button_scayt',modes:{wysiwyg:1},onRender:function(){y.on('state',function(){this.setState(y.state);},this);},onMenu:function(){var E=q.isScaytEnabled(t);t.getMenuItem('scaytToggle').label=C[E?'disable':'enable'];var F=q.getUiTabs(t);return{scaytToggle:2,scaytOptions:E&&F[0]?2:0,scaytLangs:E&&F[1]?2:0,scaytDict:E&&F[2]?2:0,scaytAbout:E&&F[3]?2:0};}});if(t.contextMenu&&t.addMenuItems)t.contextMenu.addListener(function(E,F){if(!q.isScaytEnabled(t)||F.getRanges()[0].checkReadOnly())return null;var G=q.getScayt(t),H=G.getScaytNode();if(!H)return null;var I=G.getWord(H);if(!I)return null;var J=G.getLang(),K={},L=window.scayt.getSuggestion(I,J);if(!L||!L.length)return null;for(var M in w){delete t._.menuItems[M];delete t._.commands[M];}for(M in x){delete t._.menuItems[M];delete t._.commands[M];}w={};x={};var N=t.config.scayt_moreSuggestions||'on',O=false,P=t.config.scayt_maxSuggestions;typeof P!='number'&&(P=5);!P&&(P=L.length);var Q=t.config.scayt_contextCommands||'all';Q=Q.split('|');for(var R=0,S=L.length;R<S;R+=1){var T='scayt_suggestion_'+L[R].replace(' ','_'),U=(function(Y,Z){return{exec:function(){G.replace(Y,Z);}};})(H,L[R]);if(R<P){r(t,'button_'+T,L[R],T,U,'scayt_suggest',R+1);K[T]=2;x[T]=2;}else if(N=='on'){r(t,'button_'+T,L[R],T,U,'scayt_moresuggest',R+1);w[T]=2;O=true;}}if(O){t.addMenuItem('scayt_moresuggest',{label:C.moreSuggestions,group:'scayt_moresuggest',order:10,getItems:function(){return w;}});x.scayt_moresuggest=2;
-}if(o('all',Q)||o('ignore',Q)){var V={exec:function(){G.ignore(H);}};r(t,'ignore',C.ignore,'scayt_ignore',V,'scayt_control',1);x.scayt_ignore=2;}if(o('all',Q)||o('ignoreall',Q)){var W={exec:function(){G.ignoreAll(H);}};r(t,'ignore_all',C.ignoreAll,'scayt_ignore_all',W,'scayt_control',2);x.scayt_ignore_all=2;}if(o('all',Q)||o('add',Q)){var X={exec:function(){window.scayt.addWordToUserDictionary(H);}};r(t,'add_word',C.addWord,'scayt_add_word',X,'scayt_control',3);x.scayt_add_word=2;}if(G.fireOnContextMenu)G.fireOnContextMenu(t);return x;});var D=function(){t.removeListener('showScaytState',D);if(!b.opera&&!b.air)y.setState(q.isScaytEnabled(t)?1:2);else y.setState(0);};t.on('showScaytState',D);if(b.opera||b.air)t.on('instanceReady',function(){D();});if(t.config.scayt_autoStartup)t.on('instanceReady',function(){q.loadEngine(t);});},afterInit:function(t){var u,v=function(w){if(w.hasAttribute('data-scaytid'))return false;};if(t._.elementsPath&&(u=t._.elementsPath.filters))u.push(v);t.addRemoveFormatFilter&&t.addRemoveFormatFilter(v);}});})();j.add('smiley',{requires:['dialog'],init:function(m){m.config.smiley_path=m.config.smiley_path||this.path+'images/';m.addCommand('smiley',new a.dialogCommand('smiley'));m.ui.addButton('Smiley',{label:m.lang.smiley.toolbar,command:'smiley'});a.dialog.add('smiley',this.path+'dialogs/smiley.js');}});i.smiley_images=['regular_smile.gif','sad_smile.gif','wink_smile.gif','teeth_smile.gif','confused_smile.gif','tounge_smile.gif','embaressed_smile.gif','omg_smile.gif','whatchutalkingabout_smile.gif','angry_smile.gif','angel_smile.gif','shades_smile.gif','devil_smile.gif','cry_smile.gif','lightbulb.gif','thumbs_down.gif','thumbs_up.gif','heart.gif','broken_heart.gif','kiss.gif','envelope.gif'];i.smiley_descriptions=['smiley','sad','wink','laugh','frown','cheeky','blush','surprise','indecision','angry','angel','cool','devil','crying','enlightened','no','yes','heart','broken heart','kiss','mail'];(function(){var m='.%2 p,.%2 div,.%2 pre,.%2 address,.%2 blockquote,.%2 h1,.%2 h2,.%2 h3,.%2 h4,.%2 h5,.%2 h6{background-repeat: no-repeat;background-position: top %3;border: 1px dotted gray;padding-top: 8px;padding-%3: 8px;}.%2 p{%1p.png);}.%2 div{%1div.png);}.%2 pre{%1pre.png);}.%2 address{%1address.png);}.%2 blockquote{%1blockquote.png);}.%2 h1{%1h1.png);}.%2 h2{%1h2.png);}.%2 h3{%1h3.png);}.%2 h4{%1h4.png);}.%2 h5{%1h5.png);}.%2 h6{%1h6.png);}',n=/%1/g,o=/%2/g,p=/%3/g,q={readOnly:1,preserveState:true,editorFocus:false,exec:function(r){this.toggleState();
-this.refresh(r);},refresh:function(r){if(r.document){var s=this.state==1?'addClass':'removeClass';r.document.getBody()[s]('cke_show_blocks');}}};j.add('showblocks',{requires:['wysiwygarea'],init:function(r){var s=r.addCommand('showblocks',q);s.canUndo=false;if(r.config.startupOutlineBlocks)s.setState(1);r.addCss(m.replace(n,'background-image: url('+a.getUrl(this.path)+'images/block_').replace(o,'cke_show_blocks ').replace(p,r.lang.dir=='rtl'?'right':'left'));r.ui.addButton('ShowBlocks',{label:r.lang.showBlocks,command:'showblocks'});r.on('mode',function(){if(s.state!=0)s.refresh(r);});r.on('contentDom',function(){if(s.state!=0)s.refresh(r);});}});})();(function(){var m='cke_show_border',n,o=(b.ie6Compat?['.%1 table.%2,','.%1 table.%2 td, .%1 table.%2 th','{','border : #d3d3d3 1px dotted','}']:['.%1 table.%2,','.%1 table.%2 > tr > td, .%1 table.%2 > tr > th,','.%1 table.%2 > tbody > tr > td, .%1 table.%2 > tbody > tr > th,','.%1 table.%2 > thead > tr > td, .%1 table.%2 > thead > tr > th,','.%1 table.%2 > tfoot > tr > td, .%1 table.%2 > tfoot > tr > th','{','border : #d3d3d3 1px dotted','}']).join('');n=o.replace(/%2/g,m).replace(/%1/g,'cke_show_borders ');var p={preserveState:true,editorFocus:false,readOnly:1,exec:function(q){this.toggleState();this.refresh(q);},refresh:function(q){if(q.document){var r=this.state==1?'addClass':'removeClass';q.document.getBody()[r]('cke_show_borders');}}};j.add('showborders',{requires:['wysiwygarea'],modes:{wysiwyg:1},init:function(q){var r=q.addCommand('showborders',p);r.canUndo=false;if(q.config.startupShowBorders!==false)r.setState(1);q.addCss(n);q.on('mode',function(){if(r.state!=0)r.refresh(q);},null,null,100);q.on('contentDom',function(){if(r.state!=0)r.refresh(q);});q.on('removeFormatCleanup',function(s){var t=s.data;if(q.getCommand('showborders').state==1&&t.is('table')&&(!t.hasAttribute('border')||parseInt(t.getAttribute('border'),10)<=0))t.addClass(m);});},afterInit:function(q){var r=q.dataProcessor,s=r&&r.dataFilter,t=r&&r.htmlFilter;if(s)s.addRules({elements:{table:function(u){var v=u.attributes,w=v['class'],x=parseInt(v.border,10);if(!x||x<=0)v['class']=(w||'')+' '+m;}}});if(t)t.addRules({elements:{table:function(u){var v=u.attributes,w=v['class'];w&&(v['class']=w.replace(m,'').replace(/\s{2}/,' ').replace(/^\s+|\s+$/,''));}}});}});a.on('dialogDefinition',function(q){var r=q.data.name;if(r=='table'||r=='tableProperties'){var s=q.data.definition,t=s.getContents('info'),u=t.get('txtBorder'),v=u.commit;u.commit=e.override(v,function(y){return function(z,A){y.apply(this,arguments);
-var B=parseInt(this.getValue(),10);A[!B||B<=0?'addClass':'removeClass'](m);};});var w=s.getContents('advanced'),x=w&&w.get('advCSSClasses');if(x){x.setup=e.override(x.setup,function(y){return function(){y.apply(this,arguments);this.setValue(this.getValue().replace(/cke_show_border/,''));};});x.commit=e.override(x.commit,function(y){return function(z,A){y.apply(this,arguments);if(!parseInt(A.getAttribute('border'),10))A.addClass('cke_show_border');};});}}});})();j.add('sourcearea',{requires:['editingblock'],init:function(m){var n=j.sourcearea,o=a.document.getWindow();m.on('editingBlockReady',function(){var p,q;m.addMode('source',{load:function(r,s){if(c&&b.version<8)r.setStyle('position','relative');m.textarea=p=new h('textarea');p.setAttributes({dir:'ltr',tabIndex:b.webkit?-1:m.tabIndex,role:'textbox','aria-label':m.lang.editorTitle.replace('%1',m.name)});p.addClass('cke_source');p.addClass('cke_enable_context_menu');m.readOnly&&p.setAttribute('readOnly','readonly');var t={width:b.ie7Compat?'99%':'100%',height:'100%',resize:'none',outline:'none','text-align':'left'};if(c){q=function(){p.hide();p.setStyle('height',r.$.clientHeight+'px');p.setStyle('width',r.$.clientWidth+'px');p.show();};m.on('resize',q);o.on('resize',q);setTimeout(q,0);}r.setHtml('');r.append(p);p.setStyles(t);m.fire('ariaWidget',p);p.on('blur',function(){m.focusManager.blur();});p.on('focus',function(){m.focusManager.focus();});m.mayBeDirty=true;this.loadData(s);var u=m.keystrokeHandler;if(u)u.attach(p);setTimeout(function(){m.mode='source';m.fire('mode');},b.gecko||b.webkit?100:0);},loadData:function(r){p.setValue(r);m.fire('dataReady');},getData:function(){return p.getValue();},getSnapshotData:function(){return p.getValue();},unload:function(r){p.clearCustomData();m.textarea=p=null;if(q){m.removeListener('resize',q);o.removeListener('resize',q);}if(c&&b.version<8)r.removeStyle('position');},focus:function(){p.focus();}});});m.on('readOnly',function(){if(m.mode=='source')if(m.readOnly)m.textarea.setAttribute('readOnly','readonly');else m.textarea.removeAttribute('readOnly');});m.addCommand('source',n.commands.source);if(m.ui.addButton)m.ui.addButton('Source',{label:m.lang.source,command:'source'});m.on('mode',function(){m.getCommand('source').setState(m.mode=='source'?1:2);});}});j.sourcearea={commands:{source:{modes:{wysiwyg:1,source:1},editorFocus:false,readOnly:1,exec:function(m){if(m.mode=='wysiwyg')m.fire('saveSnapshot');m.getCommand('source').setState(0);m.setMode(m.mode=='source'?'wysiwyg':'source');
-},canUndo:false}}};(function(){j.add('stylescombo',{requires:['richcombo','styles'],init:function(n){var o=n.config,p=n.lang.stylesCombo,q={},r=[],s;function t(u){n.getStylesSet(function(v){if(!r.length){var w,x;for(var y=0,z=v.length;y<z;y++){var A=v[y];x=A.name;w=q[x]=new a.style(A);w._name=x;w._.enterMode=o.enterMode;r.push(w);}r.sort(m);}u&&u();});};n.ui.addRichCombo('Styles',{label:p.label,title:p.panelTitle,className:'cke_styles',panel:{css:n.skin.editor.css.concat(o.contentsCss),multiSelect:true,attributes:{'aria-label':p.panelTitle}},init:function(){s=this;t(function(){var u,v,w,x,y,z;for(y=0,z=r.length;y<z;y++){u=r[y];v=u._name;x=u.type;if(x!=w){s.startGroup(p['panelTitle'+String(x)]);w=x;}s.add(v,u.type==3?v:u.buildPreview(),v);}s.commit();});},onClick:function(u){n.focus();n.fire('saveSnapshot');var v=q[u],w=n.getSelection(),x=new d.elementPath(w.getStartElement());v[v.checkActive(x)?'remove':'apply'](n.document);n.fire('saveSnapshot');},onRender:function(){n.on('selectionChange',function(u){var v=this.getValue(),w=u.data.path,x=w.elements;for(var y=0,z=x.length,A;y<z;y++){A=x[y];for(var B in q){if(q[B].checkElementRemovable(A,true)){if(B!=v)this.setValue(B);return;}}}this.setValue('');},this);},onOpen:function(){var B=this;if(c||b.webkit)n.focus();var u=n.getSelection(),v=u.getSelectedElement(),w=new d.elementPath(v||u.getStartElement()),x=[0,0,0,0];B.showAll();B.unmarkAll();for(var y in q){var z=q[y],A=z.type;if(z.checkActive(w))B.mark(y);else if(A==3&&!z.checkApplicable(w)){B.hideItem(y);x[A]--;}x[A]++;}if(!x[1])B.hideGroup(p['panelTitle'+String(1)]);if(!x[2])B.hideGroup(p['panelTitle'+String(2)]);if(!x[3])B.hideGroup(p['panelTitle'+String(3)]);},reset:function(){if(s){delete s._.panel;delete s._.list;s._.committed=0;s._.items={};s._.state=2;}q={};r=[];t();}});n.on('instanceReady',function(){t();});}});function m(n,o){var p=n.type,q=o.type;return p==q?0:p==3?-1:q==3?1:q==1?1:-1;};})();j.add('table',{init:function(m){var n=j.table,o=m.lang.table;m.addCommand('table',new a.dialogCommand('table'));m.addCommand('tableProperties',new a.dialogCommand('tableProperties'));m.ui.addButton('Table',{label:o.toolbar,command:'table'});a.dialog.add('table',this.path+'dialogs/table.js');a.dialog.add('tableProperties',this.path+'dialogs/table.js');if(m.addMenuItems)m.addMenuItems({table:{label:o.menu,command:'tableProperties',group:'table',order:5},tabledelete:{label:o.deleteTable,command:'tableDelete',group:'table',order:1}});m.on('doubleclick',function(p){var q=p.data.element;
-if(q.is('table'))p.data.dialog='tableProperties';});if(m.contextMenu)m.contextMenu.addListener(function(p,q){if(!p||p.isReadOnly())return null;var r=p.hasAscendant('table',1);if(r)return{tabledelete:2,table:2};return null;});}});(function(){var m=/^(?:td|th)$/;function n(G){var H=G.createBookmarks(),I=G.getRanges(),J=[],K={};function L(T){if(J.length>0)return;if(T.type==1&&m.test(T.getName())&&!T.getCustomData('selected_cell')){h.setMarker(K,T,'selected_cell',true);J.push(T);}};for(var M=0;M<I.length;M++){var N=I[M];if(N.collapsed){var O=N.getCommonAncestor(),P=O.getAscendant('td',true)||O.getAscendant('th',true);if(P)J.push(P);}else{var Q=new d.walker(N),R;Q.guard=L;while(R=Q.next()){var S=R.getAscendant('td')||R.getAscendant('th');if(S&&!S.getCustomData('selected_cell')){h.setMarker(K,S,'selected_cell',true);J.push(S);}}}}h.clearAllMarkers(K);G.selectBookmarks(H);return J;};function o(G){var H=0,I=G.length-1,J={},K,L,M;while(K=G[H++])h.setMarker(J,K,'delete_cell',true);H=0;while(K=G[H++]){if((L=K.getPrevious())&&!L.getCustomData('delete_cell')||(L=K.getNext())&&!L.getCustomData('delete_cell')){h.clearAllMarkers(J);return L;}}h.clearAllMarkers(J);M=G[0].getParent();if(M=M.getPrevious())return M.getLast();M=G[I].getParent();if(M=M.getNext())return M.getChild(0);return null;};function p(G,H){var I=n(G),J=I[0],K=J.getAscendant('table'),L=J.getDocument(),M=I[0].getParent(),N=M.$.rowIndex,O=I[I.length-1],P=O.getParent().$.rowIndex+O.$.rowSpan-1,Q=new h(K.$.rows[P]),R=H?N:P,S=H?M:Q,T=e.buildTableMap(K),U=T[R],V=H?T[R-1]:T[R+1],W=T[0].length,X=L.createElement('tr');for(var Y=0;Y<W;Y++){var Z;if(U[Y].rowSpan>1&&V&&U[Y]==V[Y]){Z=U[Y];Z.rowSpan+=1;}else{Z=new h(U[Y]).clone();Z.removeAttribute('rowSpan');!c&&Z.appendBogus();X.append(Z);Z=Z.$;}Y+=Z.colSpan-1;}H?X.insertBefore(S):X.insertAfter(S);};function q(G){if(G instanceof d.selection){var H=n(G),I=H[0],J=I.getAscendant('table'),K=e.buildTableMap(J),L=H[0].getParent(),M=L.$.rowIndex,N=H[H.length-1],O=N.getParent().$.rowIndex+N.$.rowSpan-1,P=[];for(var Q=M;Q<=O;Q++){var R=K[Q],S=new h(J.$.rows[Q]);for(var T=0;T<R.length;T++){var U=new h(R[T]),V=U.getParent().$.rowIndex;if(U.$.rowSpan==1)U.remove();else{U.$.rowSpan-=1;if(V==Q){var W=K[Q+1];W[T-1]?U.insertAfter(new h(W[T-1])):new h(J.$.rows[Q+1]).append(U,1);}}T+=U.$.colSpan-1;}P.push(S);}var X=J.$.rows,Y=new h(X[O+1]||(M>0?X[M-1]:null)||J.$.parentNode);for(Q=P.length;Q>=0;Q--)q(P[Q]);return Y;}else if(G instanceof h){J=G.getAscendant('table');if(J.$.rows.length==1)J.remove();
-else G.remove();}return null;};function r(G,H){var I=G.getParent(),J=I.$.cells,K=0;for(var L=0;L<J.length;L++){var M=J[L];K+=H?1:M.colSpan;if(M==G.$)break;}return K-1;};function s(G,H){var I=H?Infinity:0;for(var J=0;J<G.length;J++){var K=r(G[J],H);if(H?K<I:K>I)I=K;}return I;};function t(G,H){var I=n(G),J=I[0],K=J.getAscendant('table'),L=s(I,1),M=s(I),N=H?L:M,O=e.buildTableMap(K),P=[],Q=[],R=O.length;for(var S=0;S<R;S++){P.push(O[S][N]);var T=H?O[S][N-1]:O[S][N+1];T&&Q.push(T);}for(S=0;S<R;S++){var U;if(P[S].colSpan>1&&Q.length&&Q[S]==P[S]){U=P[S];U.colSpan+=1;}else{U=new h(P[S]).clone();U.removeAttribute('colSpan');!c&&U.appendBogus();U[H?'insertBefore':'insertAfter'].call(U,new h(P[S]));U=U.$;}S+=U.rowSpan-1;}};function u(G){var H=n(G),I=H[0],J=H[H.length-1],K=I.getAscendant('table'),L=e.buildTableMap(K),M,N,O=[];for(var P=0,Q=L.length;P<Q;P++)for(var R=0,S=L[P].length;R<S;R++){if(L[P][R]==I.$)M=R;if(L[P][R]==J.$)N=R;}for(P=M;P<=N;P++)for(R=0;R<L.length;R++){var T=L[R],U=new h(K.$.rows[R]),V=new h(T[P]);if(V.$){if(V.$.colSpan==1)V.remove();else V.$.colSpan-=1;R+=V.$.rowSpan-1;if(!U.$.cells.length)O.push(U);}}var W=K.$.rows[0]&&K.$.rows[0].cells,X=new h(W[M]||(M?W[M-1]:K.$.parentNode));if(O.length==Q)K.remove();return X;};function v(G){var H=[],I=G[0]&&G[0].getAscendant('table'),J,K,L,M;for(J=0,K=G.length;J<K;J++)H.push(G[J].$.cellIndex);H.sort();for(J=1,K=H.length;J<K;J++){if(H[J]-H[J-1]>1){L=H[J-1]+1;break;}}if(!L)L=H[0]>0?H[0]-1:H[H.length-1]+1;var N=I.$.rows;for(J=0,K=N.length;J<K;J++){M=N[J].cells[L];if(M)break;}return M?new h(M):I.getPrevious();};function w(G,H){var I=G.getStartElement(),J=I.getAscendant('td',1)||I.getAscendant('th',1);if(!J)return;var K=J.clone();if(!c)K.appendBogus();if(H)K.insertBefore(J);else K.insertAfter(J);};function x(G){if(G instanceof d.selection){var H=n(G),I=H[0]&&H[0].getAscendant('table'),J=o(H);for(var K=H.length-1;K>=0;K--)x(H[K]);if(J)z(J,true);else if(I)I.remove();}else if(G instanceof h){var L=G.getParent();if(L.getChildCount()==1)L.remove();else G.remove();}};function y(G){var H=G.getBogus();H&&H.remove();G.trim();};function z(G,H){var I=new d.range(G.getDocument());if(!I['moveToElementEdit'+(H?'End':'Start')](G)){I.selectNodeContents(G);I.collapse(H?false:true);}I.select(true);};function A(G,H,I){var J=G[H];if(typeof I=='undefined')return J;for(var K=0;J&&K<J.length;K++){if(I.is&&J[K]==I.$)return K;else if(K==I)return new h(J[K]);}return I.is?-1:null;};function B(G,H,I){var J=[];for(var K=0;K<G.length;K++){var L=G[K];
-if(typeof I=='undefined')J.push(L[H]);else if(I.is&&L[H]==I.$)return K;else if(K==I)return new h(L[H]);}return typeof I=='undefined'?J:I.is?-1:null;};function C(G,H,I){var J=n(G),K;if((H?J.length!=1:J.length<2)||(K=G.getCommonAncestor())&&K.type==1&&K.is('table'))return false;var L,M=J[0],N=M.getAscendant('table'),O=e.buildTableMap(N),P=O.length,Q=O[0].length,R=M.getParent().$.rowIndex,S=A(O,R,M);if(H){var T;try{var U=parseInt(M.getAttribute('rowspan'),10)||1,V=parseInt(M.getAttribute('colspan'),10)||1;T=O[H=='up'?R-U:H=='down'?R+U:R][H=='left'?S-V:H=='right'?S+V:S];}catch(an){return false;}if(!T||M.$==T)return false;J[H=='up'||H=='left'?'unshift':'push'](new h(T));}var W=M.getDocument(),X=R,Y=0,Z=0,aa=!I&&new d.documentFragment(W),ab=0;for(var ac=0;ac<J.length;ac++){L=J[ac];var ad=L.getParent(),ae=L.getFirst(),af=L.$.colSpan,ag=L.$.rowSpan,ah=ad.$.rowIndex,ai=A(O,ah,L);ab+=af*ag;Z=Math.max(Z,ai-S+af);Y=Math.max(Y,ah-R+ag);if(!I){if(y(L),L.getChildren().count()){if(ah!=X&&ae&&!(ae.isBlockBoundary&&ae.isBlockBoundary({br:1}))){var aj=aa.getLast(d.walker.whitespaces(true));if(aj&&!(aj.is&&aj.is('br')))aa.append('br');}L.moveChildren(aa);}ac?L.remove():L.setHtml('');}X=ah;}if(!I){aa.moveChildren(M);if(!c)M.appendBogus();if(Z>=Q)M.removeAttribute('rowSpan');else M.$.rowSpan=Y;if(Y>=P)M.removeAttribute('colSpan');else M.$.colSpan=Z;var ak=new d.nodeList(N.$.rows),al=ak.count();for(ac=al-1;ac>=0;ac--){var am=ak.getItem(ac);if(!am.$.cells.length){am.remove();al++;continue;}}return M;}else return Y*Z==ab;};function D(G,H){var I=n(G);if(I.length>1)return false;else if(H)return true;var J=I[0],K=J.getParent(),L=K.getAscendant('table'),M=e.buildTableMap(L),N=K.$.rowIndex,O=A(M,N,J),P=J.$.rowSpan,Q,R,S,T;if(P>1){R=Math.ceil(P/2);S=Math.floor(P/2);T=N+R;var U=new h(L.$.rows[T]),V=A(M,T),W;Q=J.clone();for(var X=0;X<V.length;X++){W=V[X];if(W.parentNode==U.$&&X>O){Q.insertBefore(new h(W));break;}else W=null;}if(!W)U.append(Q,true);}else{S=R=1;U=K.clone();U.insertAfter(K);U.append(Q=J.clone());var Y=A(M,N);for(var Z=0;Z<Y.length;Z++)Y[Z].rowSpan++;}if(!c)Q.appendBogus();J.$.rowSpan=R;Q.$.rowSpan=S;if(R==1)J.removeAttribute('rowSpan');if(S==1)Q.removeAttribute('rowSpan');return Q;};function E(G,H){var I=n(G);if(I.length>1)return false;else if(H)return true;var J=I[0],K=J.getParent(),L=K.getAscendant('table'),M=e.buildTableMap(L),N=K.$.rowIndex,O=A(M,N,J),P=J.$.colSpan,Q,R,S;if(P>1){R=Math.ceil(P/2);S=Math.floor(P/2);}else{S=R=1;var T=B(M,O);for(var U=0;U<T.length;U++)T[U].colSpan++;
-}Q=J.clone();Q.insertAfter(J);if(!c)Q.appendBogus();J.$.colSpan=R;Q.$.colSpan=S;if(R==1)J.removeAttribute('colSpan');if(S==1)Q.removeAttribute('colSpan');return Q;};var F={thead:1,tbody:1,tfoot:1,td:1,tr:1,th:1};j.tabletools={init:function(G){var H=G.lang.table;G.addCommand('cellProperties',new a.dialogCommand('cellProperties'));a.dialog.add('cellProperties',this.path+'dialogs/tableCell.js');G.addCommand('tableDelete',{exec:function(I){var J=I.getSelection(),K=J&&J.getStartElement(),L=K&&K.getAscendant('table',1);if(!L)return;var M=L.getParent();if(M.getChildCount()==1&&!M.is('body','td','th'))L=M;var N=new d.range(I.document);N.moveToPosition(L,3);L.remove();N.select();}});G.addCommand('rowDelete',{exec:function(I){var J=I.getSelection();z(q(J));}});G.addCommand('rowInsertBefore',{exec:function(I){var J=I.getSelection();p(J,true);}});G.addCommand('rowInsertAfter',{exec:function(I){var J=I.getSelection();p(J);}});G.addCommand('columnDelete',{exec:function(I){var J=I.getSelection(),K=u(J);K&&z(K,true);}});G.addCommand('columnInsertBefore',{exec:function(I){var J=I.getSelection();t(J,true);}});G.addCommand('columnInsertAfter',{exec:function(I){var J=I.getSelection();t(J);}});G.addCommand('cellDelete',{exec:function(I){var J=I.getSelection();x(J);}});G.addCommand('cellMerge',{exec:function(I){z(C(I.getSelection()),true);}});G.addCommand('cellMergeRight',{exec:function(I){z(C(I.getSelection(),'right'),true);}});G.addCommand('cellMergeDown',{exec:function(I){z(C(I.getSelection(),'down'),true);}});G.addCommand('cellVerticalSplit',{exec:function(I){z(D(I.getSelection()));}});G.addCommand('cellHorizontalSplit',{exec:function(I){z(E(I.getSelection()));}});G.addCommand('cellInsertBefore',{exec:function(I){var J=I.getSelection();w(J,true);}});G.addCommand('cellInsertAfter',{exec:function(I){var J=I.getSelection();w(J);}});if(G.addMenuItems)G.addMenuItems({tablecell:{label:H.cell.menu,group:'tablecell',order:1,getItems:function(){var I=G.getSelection(),J=n(I);return{tablecell_insertBefore:2,tablecell_insertAfter:2,tablecell_delete:2,tablecell_merge:C(I,null,true)?2:0,tablecell_merge_right:C(I,'right',true)?2:0,tablecell_merge_down:C(I,'down',true)?2:0,tablecell_split_vertical:D(I,true)?2:0,tablecell_split_horizontal:E(I,true)?2:0,tablecell_properties:J.length>0?2:0};}},tablecell_insertBefore:{label:H.cell.insertBefore,group:'tablecell',command:'cellInsertBefore',order:5},tablecell_insertAfter:{label:H.cell.insertAfter,group:'tablecell',command:'cellInsertAfter',order:10},tablecell_delete:{label:H.cell.deleteCell,group:'tablecell',command:'cellDelete',order:15},tablecell_merge:{label:H.cell.merge,group:'tablecell',command:'cellMerge',order:16},tablecell_merge_right:{label:H.cell.mergeRight,group:'tablecell',command:'cellMergeRight',order:17},tablecell_merge_down:{label:H.cell.mergeDown,group:'tablecell',command:'cellMergeDown',order:18},tablecell_split_horizontal:{label:H.cell.splitHorizontal,group:'tablecell',command:'cellHorizontalSplit',order:19},tablecell_split_vertical:{label:H.cell.splitVertical,group:'tablecell',command:'cellVerticalSplit',order:20},tablecell_properties:{label:H.cell.title,group:'tablecellproperties',command:'cellProperties',order:21},tablerow:{label:H.row.menu,group:'tablerow',order:1,getItems:function(){return{tablerow_insertBefore:2,tablerow_insertAfter:2,tablerow_delete:2};
-}},tablerow_insertBefore:{label:H.row.insertBefore,group:'tablerow',command:'rowInsertBefore',order:5},tablerow_insertAfter:{label:H.row.insertAfter,group:'tablerow',command:'rowInsertAfter',order:10},tablerow_delete:{label:H.row.deleteRow,group:'tablerow',command:'rowDelete',order:15},tablecolumn:{label:H.column.menu,group:'tablecolumn',order:1,getItems:function(){return{tablecolumn_insertBefore:2,tablecolumn_insertAfter:2,tablecolumn_delete:2};}},tablecolumn_insertBefore:{label:H.column.insertBefore,group:'tablecolumn',command:'columnInsertBefore',order:5},tablecolumn_insertAfter:{label:H.column.insertAfter,group:'tablecolumn',command:'columnInsertAfter',order:10},tablecolumn_delete:{label:H.column.deleteColumn,group:'tablecolumn',command:'columnDelete',order:15}});if(G.contextMenu)G.contextMenu.addListener(function(I,J){if(!I||I.isReadOnly())return null;while(I){if(I.getName() in F)return{tablecell:2,tablerow:2,tablecolumn:2};I=I.getParent();}return null;});},getSelectedCells:n};j.add('tabletools',j.tabletools);})();e.buildTableMap=function(m){var n=m.$.rows,o=-1,p=[];for(var q=0;q<n.length;q++){o++;!p[o]&&(p[o]=[]);var r=-1;for(var s=0;s<n[q].cells.length;s++){var t=n[q].cells[s];r++;while(p[o][r])r++;var u=isNaN(t.colSpan)?1:t.colSpan,v=isNaN(t.rowSpan)?1:t.rowSpan;for(var w=0;w<v;w++){if(!p[o+w])p[o+w]=[];for(var x=0;x<u;x++)p[o+w][r+x]=n[q].cells[s];}r+=u-1;}}return p;};j.add('specialchar',{availableLangs:{en:1},init:function(m){var n='specialchar',o=this;a.dialog.add(n,this.path+'dialogs/specialchar.js');m.addCommand(n,{exec:function(){var p=m.langCode;p=o.availableLangs[p]?p:'en';a.scriptLoader.load(a.getUrl(o.path+'lang/'+p+'.js'),function(){e.extend(m.lang.specialChar,o.langEntries[p]);m.openDialog(n);});},modes:{wysiwyg:1},canUndo:false});m.ui.addButton('SpecialChar',{label:m.lang.specialChar.toolbar,command:n});}});i.specialChars=['!','"','#','$','%','&',"'",'(',')','*','+','-','.','/','0','1','2','3','4','5','6','7','8','9',':',';','<','=','>','?','@','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','[',']','^','_','`','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','{','|','}','~','€','‘','’','“','”','–','—','¡','¢','£','¤','¥','¦','§','¨','©','ª','«','¬','®','¯','°','&','&sup2;','&sup3;','´','µ','¶','·','¸','&sup1;','º','&','&frac14;','&frac12;','&frac34;','¿','À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ü','ý','þ','ÿ','Œ','œ','Ŵ','&#374','&#373','ŷ','‚','‛','„','…','™','►','•','→','⇒','⇔','♦','≈'];
+},getTarget:function(){var g=this.$.target||this.$.srcElement;return g?new d.node(g):null;}};a.CTRL=1114112;a.SHIFT=2228224;a.ALT=4456448;d.domObject=function(g){if(g)this.$=g;};d.domObject.prototype=(function(){var g=function(h,i){return function(j){if(typeof a!='undefined')h.fire(i,new d.event(j));};};return{getPrivate:function(){var h;if(!(h=this.getCustomData('_')))this.setCustomData('_',h={});return h;},on:function(h){var k=this;var i=k.getCustomData('_cke_nativeListeners');if(!i){i={};k.setCustomData('_cke_nativeListeners',i);}if(!i[h]){var j=i[h]=g(k,h);if(k.$.addEventListener)k.$.addEventListener(h,j,!!a.event.useCapture);else if(k.$.attachEvent)k.$.attachEvent('on'+h,j);}return a.event.prototype.on.apply(k,arguments);},removeListener:function(h){var k=this;a.event.prototype.removeListener.apply(k,arguments);if(!k.hasListeners(h)){var i=k.getCustomData('_cke_nativeListeners'),j=i&&i[h];if(j){if(k.$.removeEventListener)k.$.removeEventListener(h,j,false);else if(k.$.detachEvent)k.$.detachEvent('on'+h,j);delete i[h];}}},removeAllListeners:function(){var k=this;var h=k.getCustomData('_cke_nativeListeners');for(var i in h){var j=h[i];if(k.$.detachEvent)k.$.detachEvent('on'+i,j);else if(k.$.removeEventListener)k.$.removeEventListener(i,j,false);delete h[i];}}};})();(function(g){var h={};a.on('reset',function(){h={};});g.equals=function(i){return i&&i.$===this.$;};g.setCustomData=function(i,j){var k=this.getUniqueId(),l=h[k]||(h[k]={});l[i]=j;return this;};g.getCustomData=function(i){var j=this.$['data-cke-expando'],k=j&&h[j];return k&&k[i];};g.removeCustomData=function(i){var j=this.$['data-cke-expando'],k=j&&h[j],l=k&&k[i];if(typeof l!='undefined')delete k[i];return l||null;};g.clearCustomData=function(){this.removeAllListeners();var i=this.$['data-cke-expando'];i&&delete h[i];};g.getUniqueId=function(){return this.$['data-cke-expando']||(this.$['data-cke-expando']=e.getNextNumber());};a.event.implementOn(g);})(d.domObject.prototype);d.window=function(g){d.domObject.call(this,g);};d.window.prototype=new d.domObject();e.extend(d.window.prototype,{focus:function(){if(b.webkit&&this.$.parent)this.$.parent.focus();this.$.focus();},getViewPaneSize:function(){var g=this.$.document,h=g.compatMode=='CSS1Compat';return{width:(h?g.documentElement.clientWidth:g.body.clientWidth)||0,height:(h?g.documentElement.clientHeight:g.body.clientHeight)||0};},getScrollPosition:function(){var g=this.$;if('pageXOffset' in g)return{x:g.pageXOffset||0,y:g.pageYOffset||0};else{var h=g.document;
+return{x:h.documentElement.scrollLeft||h.body.scrollLeft||0,y:h.documentElement.scrollTop||h.body.scrollTop||0};}}});d.document=function(g){d.domObject.call(this,g);};var g=d.document;g.prototype=new d.domObject();e.extend(g.prototype,{appendStyleSheet:function(h){if(this.$.createStyleSheet)this.$.createStyleSheet(h);else{var i=new d.element('link');i.setAttributes({rel:'stylesheet',type:'text/css',href:h});this.getHead().append(i);}},appendStyleText:function(h){var k=this;if(k.$.createStyleSheet){var i=k.$.createStyleSheet('');i.cssText=h;}else{var j=new d.element('style',k);j.append(new d.text(h,k));k.getHead().append(j);}},createElement:function(h,i){var j=new d.element(h,this);if(i){if(i.attributes)j.setAttributes(i.attributes);if(i.styles)j.setStyles(i.styles);}return j;},createText:function(h){return new d.text(h,this);},focus:function(){this.getWindow().focus();},getById:function(h){var i=this.$.getElementById(h);return i?new d.element(i):null;},getByAddress:function(h,i){var j=this.$.documentElement;for(var k=0;j&&k<h.length;k++){var l=h[k];if(!i){j=j.childNodes[l];continue;}var m=-1;for(var n=0;n<j.childNodes.length;n++){var o=j.childNodes[n];if(i===true&&o.nodeType==3&&o.previousSibling&&o.previousSibling.nodeType==3)continue;m++;if(m==l){j=o;break;}}}return j?new d.node(j):null;},getElementsByTag:function(h,i){if(!(c&&!(document.documentMode>8))&&i)h=i+':'+h;return new d.nodeList(this.$.getElementsByTagName(h));},getHead:function(){var h=this.$.getElementsByTagName('head')[0];if(!h)h=this.getDocumentElement().append(new d.element('head'),true);else h=new d.element(h);return(this.getHead=function(){return h;})();},getBody:function(){var h=new d.element(this.$.body);return(this.getBody=function(){return h;})();},getDocumentElement:function(){var h=new d.element(this.$.documentElement);return(this.getDocumentElement=function(){return h;})();},getWindow:function(){var h=new d.window(this.$.parentWindow||this.$.defaultView);return(this.getWindow=function(){return h;})();},write:function(h){var i=this;i.$.open('text/html','replace');b.isCustomDomain()&&(i.$.domain=document.domain);i.$.write(h);i.$.close();}});d.node=function(h){if(h){var i=h.nodeType==9?'document':h.nodeType==1?'element':h.nodeType==3?'text':h.nodeType==8?'comment':'domObject';return new d[i](h);}return this;};d.node.prototype=new d.domObject();a.NODE_ELEMENT=1;a.NODE_DOCUMENT=9;a.NODE_TEXT=3;a.NODE_COMMENT=8;a.NODE_DOCUMENT_FRAGMENT=11;a.POSITION_IDENTICAL=0;a.POSITION_DISCONNECTED=1;
+a.POSITION_FOLLOWING=2;a.POSITION_PRECEDING=4;a.POSITION_IS_CONTAINED=8;a.POSITION_CONTAINS=16;e.extend(d.node.prototype,{appendTo:function(h,i){h.append(this,i);return h;},clone:function(h,i){var j=this.$.cloneNode(h),k=function(l){if(l.nodeType!=1)return;if(!i)l.removeAttribute('id',false);l.removeAttribute('data-cke-expando',false);if(h){var m=l.childNodes;for(var n=0;n<m.length;n++)k(m[n]);}};k(j);return new d.node(j);},hasPrevious:function(){return!!this.$.previousSibling;},hasNext:function(){return!!this.$.nextSibling;},insertAfter:function(h){h.$.parentNode.insertBefore(this.$,h.$.nextSibling);return h;},insertBefore:function(h){h.$.parentNode.insertBefore(this.$,h.$);return h;},insertBeforeMe:function(h){this.$.parentNode.insertBefore(h.$,this.$);return h;},getAddress:function(h){var i=[],j=this.getDocument().$.documentElement,k=this.$;while(k&&k!=j){var l=k.parentNode;if(l)i.unshift(this.getIndex.call({$:k},h));k=l;}return i;},getDocument:function(){return new g(this.$.ownerDocument||this.$.parentNode.ownerDocument);},getIndex:function(h){var i=this.$,j=0;while(i=i.previousSibling){if(h&&i.nodeType==3&&(!i.nodeValue.length||i.previousSibling&&i.previousSibling.nodeType==3))continue;j++;}return j;},getNextSourceNode:function(h,i,j){if(j&&!j.call){var k=j;j=function(n){return!n.equals(k);};}var l=!h&&this.getFirst&&this.getFirst(),m;if(!l){if(this.type==1&&j&&j(this,true)===false)return null;l=this.getNext();}while(!l&&(m=(m||this).getParent())){if(j&&j(m,true)===false)return null;l=m.getNext();}if(!l)return null;if(j&&j(l)===false)return null;if(i&&i!=l.type)return l.getNextSourceNode(false,i,j);return l;},getPreviousSourceNode:function(h,i,j){if(j&&!j.call){var k=j;j=function(n){return!n.equals(k);};}var l=!h&&this.getLast&&this.getLast(),m;if(!l){if(this.type==1&&j&&j(this,true)===false)return null;l=this.getPrevious();}while(!l&&(m=(m||this).getParent())){if(j&&j(m,true)===false)return null;l=m.getPrevious();}if(!l)return null;if(j&&j(l)===false)return null;if(i&&l.type!=i)return l.getPreviousSourceNode(false,i,j);return l;},getPrevious:function(h){var i=this.$,j;do{i=i.previousSibling;j=i&&i.nodeType!=10&&new d.node(i);}while(j&&h&&!h(j));return j;},getNext:function(h){var i=this.$,j;do{i=i.nextSibling;j=i&&new d.node(i);}while(j&&h&&!h(j));return j;},getParent:function(){var h=this.$.parentNode;return h&&h.nodeType==1?new d.node(h):null;},getParents:function(h){var i=this,j=[];do j[h?'push':'unshift'](i);while(i=i.getParent());return j;},getCommonAncestor:function(h){var j=this;
+if(h.equals(j))return j;if(h.contains&&h.contains(j))return h;var i=j.contains?j:j.getParent();do{if(i.contains(h))return i;}while(i=i.getParent());return null;},getPosition:function(h){var i=this.$,j=h.$;if(i.compareDocumentPosition)return i.compareDocumentPosition(j);if(i==j)return 0;if(this.type==1&&h.type==1){if(i.contains){if(i.contains(j))return 16+4;if(j.contains(i))return 8+2;}if('sourceIndex' in i)return i.sourceIndex<0||j.sourceIndex<0?1:i.sourceIndex<j.sourceIndex?4:2;}var k=this.getAddress(),l=h.getAddress(),m=Math.min(k.length,l.length);for(var n=0;n<=m-1;n++){if(k[n]!=l[n]){if(n<m)return k[n]<l[n]?4:2;break;}}return k.length<l.length?16+4:8+2;},getAscendant:function(h,i){var j=this.$,k;if(!i)j=j.parentNode;while(j){if(j.nodeName&&(k=j.nodeName.toLowerCase(),typeof h=='string'?k==h:k in h))return new d.node(j);j=j.parentNode;}return null;},hasAscendant:function(h,i){var j=this.$;if(!i)j=j.parentNode;while(j){if(j.nodeName&&j.nodeName.toLowerCase()==h)return true;j=j.parentNode;}return false;},move:function(h,i){h.append(this.remove(),i);},remove:function(h){var i=this.$,j=i.parentNode;if(j){if(h)for(var k;k=i.firstChild;)j.insertBefore(i.removeChild(k),i);j.removeChild(i);}return this;},replace:function(h){this.insertBefore(h);h.remove();},trim:function(){this.ltrim();this.rtrim();},ltrim:function(){var k=this;var h;while(k.getFirst&&(h=k.getFirst())){if(h.type==3){var i=e.ltrim(h.getText()),j=h.getLength();if(!i){h.remove();continue;}else if(i.length<j){h.split(j-i.length);k.$.removeChild(k.$.firstChild);}}break;}},rtrim:function(){var k=this;var h;while(k.getLast&&(h=k.getLast())){if(h.type==3){var i=e.rtrim(h.getText()),j=h.getLength();if(!i){h.remove();continue;}else if(i.length<j){h.split(i.length);k.$.lastChild.parentNode.removeChild(k.$.lastChild);}}break;}if(!c&&!b.opera){h=k.$.lastChild;if(h&&h.type==1&&h.nodeName.toLowerCase()=='br')h.parentNode.removeChild(h);}},isReadOnly:function(){var h=this;if(this.type!=1)h=this.getParent();if(h&&typeof h.$.isContentEditable!='undefined')return!(h.$.isContentEditable||h.data('cke-editable'));else{var i=h;while(i){if(i.is('body')||!!i.data('cke-editable'))break;if(i.getAttribute('contentEditable')=='false')return true;else if(i.getAttribute('contentEditable')=='true')break;i=i.getParent();}return false;}}});d.nodeList=function(h){this.$=h;};d.nodeList.prototype={count:function(){return this.$.length;},getItem:function(h){var i=this.$[h];return i?new d.node(i):null;}};d.element=function(h,i){if(typeof h=='string')h=(i?i.$:document).createElement(h);
+d.domObject.call(this,h);};var h=d.element;h.get=function(i){return i&&(i.$?i:new h(i));};h.prototype=new d.node();h.createFromHtml=function(i,j){var k=new h('div',j);k.setHtml(i);return k.getFirst().remove();};h.setMarker=function(i,j,k,l){var m=j.getCustomData('list_marker_id')||j.setCustomData('list_marker_id',e.getNextNumber()).getCustomData('list_marker_id'),n=j.getCustomData('list_marker_names')||j.setCustomData('list_marker_names',{}).getCustomData('list_marker_names');i[m]=j;n[k]=1;return j.setCustomData(k,l);};h.clearAllMarkers=function(i){for(var j in i)h.clearMarkers(i,i[j],1);};h.clearMarkers=function(i,j,k){var l=j.getCustomData('list_marker_names'),m=j.getCustomData('list_marker_id');for(var n in l)j.removeCustomData(n);j.removeCustomData('list_marker_names');if(k){j.removeCustomData('list_marker_id');delete i[m];}};e.extend(h.prototype,{type:1,addClass:function(i){var j=this.$.className;if(j){var k=new RegExp('(?:^|\\s)'+i+'(?:\\s|$)','');if(!k.test(j))j+=' '+i;}this.$.className=j||i;},removeClass:function(i){var j=this.getAttribute('class');if(j){var k=new RegExp('(?:^|\\s+)'+i+'(?=\\s|$)','i');if(k.test(j)){j=j.replace(k,'').replace(/^\s+/,'');if(j)this.setAttribute('class',j);else this.removeAttribute('class');}}},hasClass:function(i){var j=new RegExp('(?:^|\\s+)'+i+'(?=\\s|$)','');return j.test(this.getAttribute('class'));},append:function(i,j){var k=this;if(typeof i=='string')i=k.getDocument().createElement(i);if(j)k.$.insertBefore(i.$,k.$.firstChild);else k.$.appendChild(i.$);return i;},appendHtml:function(i){var k=this;if(!k.$.childNodes.length)k.setHtml(i);else{var j=new h('div',k.getDocument());j.setHtml(i);j.moveChildren(k);}},appendText:function(i){if(this.$.text!=undefined)this.$.text+=i;else this.append(new d.text(i));},appendBogus:function(){var k=this;var i=k.getLast();while(i&&i.type==3&&!e.rtrim(i.getText()))i=i.getPrevious();if(!i||!i.is||!i.is('br')){var j=b.opera?k.getDocument().createText(''):k.getDocument().createElement('br');b.gecko&&j.setAttribute('type','_moz');k.append(j);}},breakParent:function(i){var l=this;var j=new d.range(l.getDocument());j.setStartAfter(l);j.setEndAfter(i);var k=j.extractContents();j.insertNode(l.remove());k.insertAfterNode(l);},contains:c||b.webkit?function(i){var j=this.$;return i.type!=1?j.contains(i.getParent().$):j!=i.$&&j.contains(i.$);}:function(i){return!!(this.$.compareDocumentPosition(i.$)&16);},focus:(function(){function i(){try{this.$.focus();}catch(j){}};return function(j){if(j)e.setTimeout(i,100,this);
+else i.call(this);};})(),getHtml:function(){var i=this.$.innerHTML;return c?i.replace(/<\?[^>]*>/g,''):i;},getOuterHtml:function(){var j=this;if(j.$.outerHTML)return j.$.outerHTML.replace(/<\?[^>]*>/,'');var i=j.$.ownerDocument.createElement('div');i.appendChild(j.$.cloneNode(true));return i.innerHTML;},setHtml:function(i){return this.$.innerHTML=i;},setText:function(i){h.prototype.setText=this.$.innerText!=undefined?function(j){return this.$.innerText=j;}:function(j){return this.$.textContent=j;};return this.setText(i);},getAttribute:(function(){var i=function(j){return this.$.getAttribute(j,2);};if(c&&(b.ie7Compat||b.ie6Compat))return function(j){var n=this;switch(j){case 'class':j='className';break;case 'http-equiv':j='httpEquiv';break;case 'name':return n.$.name;case 'tabindex':var k=i.call(n,j);if(k!==0&&n.$.tabIndex===0)k=null;return k;break;case 'checked':var l=n.$.attributes.getNamedItem(j),m=l.specified?l.nodeValue:n.$.checked;return m?'checked':null;case 'hspace':case 'value':return n.$[j];case 'style':return n.$.style.cssText;}return i.call(n,j);};else return i;})(),getChildren:function(){return new d.nodeList(this.$.childNodes);},getComputedStyle:c?function(i){return this.$.currentStyle[e.cssStyleToDomStyle(i)];}:function(i){return this.getWindow().$.getComputedStyle(this.$,'').getPropertyValue(i);},getDtd:function(){var i=f[this.getName()];this.getDtd=function(){return i;};return i;},getElementsByTag:g.prototype.getElementsByTag,getTabIndex:c?function(){var i=this.$.tabIndex;if(i===0&&!f.$tabIndex[this.getName()]&&parseInt(this.getAttribute('tabindex'),10)!==0)i=-1;return i;}:b.webkit?function(){var i=this.$.tabIndex;if(i==undefined){i=parseInt(this.getAttribute('tabindex'),10);if(isNaN(i))i=-1;}return i;}:function(){return this.$.tabIndex;},getText:function(){return this.$.textContent||this.$.innerText||'';},getWindow:function(){return this.getDocument().getWindow();},getId:function(){return this.$.id||null;},getNameAtt:function(){return this.$.name||null;},getName:function(){var i=this.$.nodeName.toLowerCase();if(c&&!(document.documentMode>8)){var j=this.$.scopeName;if(j!='HTML')i=j.toLowerCase()+':'+i;}return(this.getName=function(){return i;})();},getValue:function(){return this.$.value;},getFirst:function(i){var j=this.$.firstChild,k=j&&new d.node(j);if(k&&i&&!i(k))k=k.getNext(i);return k;},getLast:function(i){var j=this.$.lastChild,k=j&&new d.node(j);if(k&&i&&!i(k))k=k.getPrevious(i);return k;},getStyle:function(i){return this.$.style[e.cssStyleToDomStyle(i)];
+},is:function(){var i=this.getName();for(var j=0;j<arguments.length;j++){if(arguments[j]==i)return true;}return false;},isEditable:function(i){var l=this;var j=l.getName();if(l.isReadOnly()||l.getComputedStyle('display')=='none'||l.getComputedStyle('visibility')=='hidden'||l.is('a')&&l.data('cke-saved-name')&&!l.getChildCount()||f.$nonEditable[j])return false;if(i!==false){var k=f[j]||f.span;return k&&k['#'];}return true;},isIdentical:function(i){if(this.getName()!=i.getName())return false;var j=this.$.attributes,k=i.$.attributes,l=j.length,m=k.length;for(var n=0;n<l;n++){var o=j[n];if(o.nodeName=='_moz_dirty')continue;if((!c||o.specified&&o.nodeName!='data-cke-expando')&&o.nodeValue!=i.getAttribute(o.nodeName))return false;}if(c)for(n=0;n<m;n++){o=k[n];if(o.specified&&o.nodeName!='data-cke-expando'&&o.nodeValue!=this.getAttribute(o.nodeName))return false;}return true;},isVisible:function(){var l=this;var i=(l.$.offsetHeight||l.$.offsetWidth)&&l.getComputedStyle('visibility')!='hidden',j,k;if(i&&(b.webkit||b.opera)){j=l.getWindow();if(!j.equals(a.document.getWindow())&&(k=j.$.frameElement))i=new h(k).isVisible();}return!!i;},isEmptyInlineRemoveable:function(){if(!f.$removeEmpty[this.getName()])return false;var i=this.getChildren();for(var j=0,k=i.count();j<k;j++){var l=i.getItem(j);if(l.type==1&&l.data('cke-bookmark'))continue;if(l.type==1&&!l.isEmptyInlineRemoveable()||l.type==3&&e.trim(l.getText()))return false;}return true;},hasAttributes:c&&(b.ie7Compat||b.ie6Compat)?function(){var i=this.$.attributes;for(var j=0;j<i.length;j++){var k=i[j];switch(k.nodeName){case 'class':if(this.getAttribute('class'))return true;case 'data-cke-expando':continue;default:if(k.specified)return true;}}return false;}:function(){var i=this.$.attributes,j=i.length,k={'data-cke-expando':1,_moz_dirty:1};return j>0&&(j>2||!k[i[0].nodeName]||j==2&&!k[i[1].nodeName]);},hasAttribute:(function(){function i(j){var k=this.$.attributes.getNamedItem(j);return!!(k&&k.specified);};return c&&b.version<8?function(j){if(j=='name')return!!this.$.name;return i.call(this,j);}:i;})(),hide:function(){this.setStyle('display','none');},moveChildren:function(i,j){var k=this.$;i=i.$;if(k==i)return;var l;if(j)while(l=k.lastChild)i.insertBefore(k.removeChild(l),i.firstChild);else while(l=k.firstChild)i.appendChild(k.removeChild(l));},mergeSiblings:(function(){function i(j,k,l){if(k&&k.type==1){var m=[];while(k.data('cke-bookmark')||k.isEmptyInlineRemoveable()){m.push(k);k=l?k.getNext():k.getPrevious();if(!k||k.type!=1)return;
+}if(j.isIdentical(k)){var n=l?j.getLast():j.getFirst();while(m.length)m.shift().move(j,!l);k.moveChildren(j,!l);k.remove();if(n&&n.type==1)n.mergeSiblings();}}};return function(j){var k=this;if(!(j===false||f.$removeEmpty[k.getName()]||k.is('a')))return;i(k,k.getNext(),true);i(k,k.getPrevious());};})(),show:function(){this.setStyles({display:'',visibility:''});},setAttribute:(function(){var i=function(j,k){this.$.setAttribute(j,k);return this;};if(c&&(b.ie7Compat||b.ie6Compat))return function(j,k){var l=this;if(j=='class')l.$.className=k;else if(j=='style')l.$.style.cssText=k;else if(j=='tabindex')l.$.tabIndex=k;else if(j=='checked')l.$.checked=k;else i.apply(l,arguments);return l;};else if(b.ie8Compat&&b.secure)return function(j,k){if(j=='src'&&k.match(/^http:\/\//))try{i.apply(this,arguments);}catch(l){}else i.apply(this,arguments);return this;};else return i;})(),setAttributes:function(i){for(var j in i)this.setAttribute(j,i[j]);return this;},setValue:function(i){this.$.value=i;return this;},removeAttribute:(function(){var i=function(j){this.$.removeAttribute(j);};if(c&&(b.ie7Compat||b.ie6Compat))return function(j){if(j=='class')j='className';else if(j=='tabindex')j='tabIndex';i.call(this,j);};else return i;})(),removeAttributes:function(i){if(e.isArray(i))for(var j=0;j<i.length;j++)this.removeAttribute(i[j]);else for(var k in i)i.hasOwnProperty(k)&&this.removeAttribute(k);},removeStyle:function(i){var j=this;j.setStyle(i,'');if(j.$.style.removeAttribute)j.$.style.removeAttribute(e.cssStyleToDomStyle(i));if(!j.$.style.cssText)j.removeAttribute('style');},setStyle:function(i,j){this.$.style[e.cssStyleToDomStyle(i)]=j;return this;},setStyles:function(i){for(var j in i)this.setStyle(j,i[j]);return this;},setOpacity:function(i){if(c){i=Math.round(i*100);this.setStyle('filter',i>=100?'':'progid:DXImageTransform.Microsoft.Alpha(opacity='+i+')');}else this.setStyle('opacity',i);},unselectable:b.gecko?function(){this.$.style.MozUserSelect='none';this.on('dragstart',function(i){i.data.preventDefault();});}:b.webkit?function(){this.$.style.KhtmlUserSelect='none';this.on('dragstart',function(i){i.data.preventDefault();});}:function(){if(c||b.opera){var i=this.$,j=i.getElementsByTagName('*'),k,l=0;i.unselectable='on';while(k=j[l++])switch(k.tagName.toLowerCase()){case 'iframe':case 'textarea':case 'input':case 'select':break;default:k.unselectable='on';}}},getPositionedAncestor:function(){var i=this;while(i.getName()!='html'){if(i.getComputedStyle('position')!='static')return i;
+i=i.getParent();}return null;},getDocumentPosition:function(i){var D=this;var j=0,k=0,l=D.getDocument(),m=l.getBody(),n=l.$.compatMode=='BackCompat';if(document.documentElement.getBoundingClientRect){var o=D.$.getBoundingClientRect(),p=l.$,q=p.documentElement,r=q.clientTop||m.$.clientTop||0,s=q.clientLeft||m.$.clientLeft||0,t=true;if(c){var u=l.getDocumentElement().contains(D),v=l.getBody().contains(D);t=n&&v||!n&&u;}if(t){j=o.left+(!n&&q.scrollLeft||m.$.scrollLeft);j-=s;k=o.top+(!n&&q.scrollTop||m.$.scrollTop);k-=r;}}else{var w=D,x=null,y;while(w&&!(w.getName()=='body'||w.getName()=='html')){j+=w.$.offsetLeft-w.$.scrollLeft;k+=w.$.offsetTop-w.$.scrollTop;if(!w.equals(D)){j+=w.$.clientLeft||0;k+=w.$.clientTop||0;}var z=x;while(z&&!z.equals(w)){j-=z.$.scrollLeft;k-=z.$.scrollTop;z=z.getParent();}x=w;w=(y=w.$.offsetParent)?new h(y):null;}}if(i){var A=D.getWindow(),B=i.getWindow();if(!A.equals(B)&&A.$.frameElement){var C=new h(A.$.frameElement).getDocumentPosition(i);j+=C.x;k+=C.y;}}if(!document.documentElement.getBoundingClientRect)if(b.gecko&&!n){j+=D.$.clientLeft?1:0;k+=D.$.clientTop?1:0;}return{x:j,y:k};},scrollIntoView:function(i){var j=this.getParent();if(!j)return;do{var k=j.$.clientWidth&&j.$.clientWidth<j.$.scrollWidth||j.$.clientHeight&&j.$.clientHeight<j.$.scrollHeight;if(k)this.scrollIntoParent(j,i,1);if(j.is('html')){var l=j.getWindow();try{var m=l.$.frameElement;m&&(j=new h(m));}catch(n){}}}while(j=j.getParent());},scrollIntoParent:function(i,j,k){!i&&(i=this.getWindow());var l=i.getDocument(),m=l.$.compatMode=='BackCompat';if(i instanceof d.window)i=m?l.getBody():l.getDocumentElement();function n(z,A){if(/body|html/.test(i.getName()))i.getWindow().$.scrollBy(z,A);else{i.$.scrollLeft+=z;i.$.scrollTop+=A;}};function o(z,A){var B={x:0,y:0};if(!z.is(m?'body':'html')){var C=z.$.getBoundingClientRect();B.x=C.left,B.y=C.top;}var D=z.getWindow();if(!D.equals(A)){var E=o(h.get(D.$.frameElement),A);B.x+=E.x,B.y+=E.y;}return B;};function p(z,A){return parseInt(z.getComputedStyle('margin-'+A)||0,10)||0;};var q=i.getWindow(),r=o(this,q),s=o(i,q),t=this.$.offsetHeight,u=this.$.offsetWidth,v=i.$.clientHeight,w=i.$.clientWidth,x,y;x={x:r.x-p(this,'left')-s.x||0,y:r.y-p(this,'top')-s.y||0};y={x:r.x+u+p(this,'right')-(s.x+w)||0,y:r.y+t+p(this,'bottom')-(s.y+v)||0};if(x.y<0||y.y>0)n(0,j===true?x.y:j===false?y.y:x.y<0?x.y:y.y);if(k&&(x.x<0||y.x>0))n(x.x<0?x.x:y.x,0);},setState:function(i){var j=this;switch(i){case 1:j.addClass('cke_on');j.removeClass('cke_off');j.removeClass('cke_disabled');
+break;case 0:j.addClass('cke_disabled');j.removeClass('cke_off');j.removeClass('cke_on');break;default:j.addClass('cke_off');j.removeClass('cke_on');j.removeClass('cke_disabled');break;}},getFrameDocument:function(){var i=this.$;try{i.contentWindow.document;}catch(j){i.src=i.src;if(c&&b.version<7)window.showModalDialog('javascript:document.write("<script>window.setTimeout(function(){window.close();},50);</script>")');}return i&&new g(i.contentWindow.document);},copyAttributes:function(i,j){var p=this;var k=p.$.attributes;j=j||{};for(var l=0;l<k.length;l++){var m=k[l],n=m.nodeName.toLowerCase(),o;if(n in j)continue;if(n=='checked'&&(o=p.getAttribute(n)))i.setAttribute(n,o);else if(m.specified||c&&m.nodeValue&&n=='value'){o=p.getAttribute(n);if(o===null)o=m.nodeValue;i.setAttribute(n,o);}}if(p.$.style.cssText!=='')i.$.style.cssText=p.$.style.cssText;},renameNode:function(i){var l=this;if(l.getName()==i)return;var j=l.getDocument(),k=new h(i,j);l.copyAttributes(k);l.moveChildren(k);l.getParent()&&l.$.parentNode.replaceChild(k.$,l.$);k.$['data-cke-expando']=l.$['data-cke-expando'];l.$=k.$;},getChild:function(i){var j=this.$;if(!i.slice)j=j.childNodes[i];else while(i.length>0&&j)j=j.childNodes[i.shift()];return j?new d.node(j):null;},getChildCount:function(){return this.$.childNodes.length;},disableContextMenu:function(){this.on('contextmenu',function(i){if(!i.data.getTarget().hasClass('cke_enable_context_menu'))i.data.preventDefault();});},getDirection:function(i){var j=this;return i?j.getComputedStyle('direction')||j.getDirection()||j.getDocument().$.dir||j.getDocument().getBody().getDirection(1):j.getStyle('direction')||j.getAttribute('dir');},data:function(i,j){i='data-'+i;if(j===undefined)return this.getAttribute(i);else if(j===false)this.removeAttribute(i);else this.setAttribute(i,j);return null;}});(function(){var i={width:['border-left-width','border-right-width','padding-left','padding-right'],height:['border-top-width','border-bottom-width','padding-top','padding-bottom']};function j(k){var l=0;for(var m=0,n=i[k].length;m<n;m++)l+=parseInt(this.getComputedStyle(i[k][m])||0,10)||0;return l;};h.prototype.setSize=function(k,l,m){if(typeof l=='number'){if(m&&!(c&&b.quirks))l-=j.call(this,k);this.setStyle(k,l+'px');}};h.prototype.getSize=function(k,l){var m=Math.max(this.$['offset'+e.capitalize(k)],this.$['client'+e.capitalize(k)])||0;if(l)m-=j.call(this,k);return m;};})();a.command=function(i,j){this.uiItems=[];this.exec=function(k){var l=this;if(l.state==0)return false;
+if(l.editorFocus)i.focus();if(l.fire('exec')===true)return true;return j.exec.call(l,i,k)!==false;};this.refresh=function(){if(this.fire('refresh')===true)return true;return j.refresh&&j.refresh.apply(this,arguments)!==false;};e.extend(this,j,{modes:{wysiwyg:1},editorFocus:1,state:2});a.event.call(this);};a.command.prototype={enable:function(){var i=this;if(i.state==0)i.setState(!i.preserveState||typeof i.previousState=='undefined'?2:i.previousState);},disable:function(){this.setState(0);},setState:function(i){var j=this;if(j.state==i)return false;j.previousState=j.state;j.state=i;j.fire('state');return true;},toggleState:function(){var i=this;if(i.state==2)i.setState(1);else if(i.state==1)i.setState(2);}};a.event.implementOn(a.command.prototype,true);a.ENTER_P=1;a.ENTER_BR=2;a.ENTER_DIV=3;a.config={customConfig:'config.js',autoUpdateElement:true,baseHref:'',contentsCss:a.basePath+'contents.css',contentsLangDirection:'ui',contentsLanguage:'',language:'',defaultLanguage:'en',enterMode:1,forceEnterMode:false,shiftEnterMode:2,corePlugins:'',docType:'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',bodyId:'',bodyClass:'',fullPage:false,height:200,plugins:'about,a11yhelp,basicstyles,bidi,blockquote,button,clipboard,colorbutton,colordialog,contextmenu,dialogadvtab,div,elementspath,enterkey,entities,filebrowser,find,flash,font,format,forms,horizontalrule,htmldataprocessor,iframe,image,indent,justify,keystrokes,link,list,liststyle,maximize,newpage,pagebreak,pastefromword,pastetext,popup,preview,print,removeformat,resize,save,scayt,smiley,showblocks,showborders,sourcearea,stylescombo,table,tabletools,specialchar,tab,templates,toolbar,undo,wysiwygarea,wsc',extraPlugins:'',removePlugins:'',protectedSource:[],tabIndex:0,theme:'default',skin:'kama',width:'',baseFloatZIndex:10000};var i=a.config;a.focusManager=function(j){if(j.focusManager)return j.focusManager;this.hasFocus=false;this._={editor:j};return this;};a.focusManager.prototype={focus:function(){var k=this;if(k._.timer)clearTimeout(k._.timer);if(!k.hasFocus){if(a.currentInstance)a.currentInstance.focusManager.forceBlur();var j=k._.editor;j.container.getChild(1).addClass('cke_focus');k.hasFocus=true;j.fire('focus');}},blur:function(){var j=this;if(j._.timer)clearTimeout(j._.timer);j._.timer=setTimeout(function(){delete j._.timer;j.forceBlur();},100);},forceBlur:function(){if(this.hasFocus){var j=this._.editor;j.container.getChild(1).removeClass('cke_focus');
+this.hasFocus=false;j.fire('blur');}}};(function(){var j={};a.lang={languages:{af:1,ar:1,bg:1,bn:1,bs:1,ca:1,cs:1,cy:1,da:1,de:1,el:1,'en-au':1,'en-ca':1,'en-gb':1,en:1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fo:1,'fr-ca':1,fr:1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,is:1,it:1,ja:1,ka:1,km:1,ko:1,lt:1,lv:1,mn:1,ms:1,nb:1,nl:1,no:1,pl:1,'pt-br':1,pt:1,ro:1,ru:1,sk:1,sl:1,'sr-latn':1,sr:1,sv:1,th:1,tr:1,uk:1,vi:1,'zh-cn':1,zh:1},load:function(k,l,m){if(!k||!a.lang.languages[k])k=this.detect(l,k);if(!this[k])a.scriptLoader.load(a.getUrl('lang/'+k+'.js'),function(){m(k,this[k]);},this);else m(k,this[k]);},detect:function(k,l){var m=this.languages;l=l||navigator.userLanguage||navigator.language||k;var n=l.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),o=n[1],p=n[2];if(m[o+'-'+p])o=o+'-'+p;else if(!m[o])o=null;a.lang.detect=o?function(){return o;}:function(q){return q;};return o||k;}};})();a.scriptLoader=(function(){var j={},k={};return{load:function(l,m,n,o){var p=typeof l=='string';if(p)l=[l];if(!n)n=a;var q=l.length,r=[],s=[],t=function(y){if(m)if(p)m.call(n,y);else m.call(n,r,s);};if(q===0){t(true);return;}var u=function(y,z){(z?r:s).push(y);if(--q<=0){o&&a.document.getDocumentElement().removeStyle('cursor');t(z);}},v=function(y,z){j[y]=1;var A=k[y];delete k[y];for(var B=0;B<A.length;B++)A[B](y,z);},w=function(y){if(j[y]){u(y,true);return;}var z=k[y]||(k[y]=[]);z.push(u);if(z.length>1)return;var A=new h('script');A.setAttributes({type:'text/javascript',src:y});if(m)if(c)A.$.onreadystatechange=function(){if(A.$.readyState=='loaded'||A.$.readyState=='complete'){A.$.onreadystatechange=null;v(y,true);}};else{A.$.onload=function(){setTimeout(function(){v(y,true);},0);};A.$.onerror=function(){v(y,false);};}A.appendTo(a.document.getHead());};o&&a.document.getDocumentElement().setStyle('cursor','wait');for(var x=0;x<q;x++)w(l[x]);}};})();a.resourceManager=function(j,k){var l=this;l.basePath=j;l.fileName=k;l.registered={};l.loaded={};l.externals={};l._={waitingList:{}};};a.resourceManager.prototype={add:function(j,k){if(this.registered[j])throw '[CKEDITOR.resourceManager.add] The resource name "'+j+'" is already registered.';a.fire(j+e.capitalize(this.fileName)+'Ready',this.registered[j]=k||{});},get:function(j){return this.registered[j]||null;},getPath:function(j){var k=this.externals[j];return a.getUrl(k&&k.dir||this.basePath+j+'/');},getFilePath:function(j){var k=this.externals[j];return a.getUrl(this.getPath(j)+(k&&typeof k.file=='string'?k.file:this.fileName+'.js'));},addExternal:function(j,k,l){j=j.split(',');
+for(var m=0;m<j.length;m++){var n=j[m];this.externals[n]={dir:k,file:l};}},load:function(j,k,l){if(!e.isArray(j))j=j?[j]:[];var m=this.loaded,n=this.registered,o=[],p={},q={};for(var r=0;r<j.length;r++){var s=j[r];if(!s)continue;if(!m[s]&&!n[s]){var t=this.getFilePath(s);o.push(t);if(!(t in p))p[t]=[];p[t].push(s);}else q[s]=this.get(s);}a.scriptLoader.load(o,function(u,v){if(v.length)throw '[CKEDITOR.resourceManager.load] Resource name "'+p[v[0]].join(',')+'" was not found at "'+v[0]+'".';for(var w=0;w<u.length;w++){var x=p[u[w]];for(var y=0;y<x.length;y++){var z=x[y];q[z]=this.get(z);m[z]=1;}}k.call(l,q);},this);}};a.plugins=new a.resourceManager('plugins/','plugin');var j=a.plugins;j.load=e.override(j.load,function(k){return function(l,m,n){var o={},p=function(q){k.call(this,q,function(r){e.extend(o,r);var s=[];for(var t in r){var u=r[t],v=u&&u.requires;if(v)for(var w=0;w<v.length;w++){if(!o[v[w]])s.push(v[w]);}}if(s.length)p.call(this,s);else{for(t in o){u=o[t];if(u.onLoad&&!u.onLoad._called){u.onLoad();u.onLoad._called=1;}}if(m)m.call(n||window,o);}},this);};p.call(this,l);};});j.setLang=function(k,l,m){var n=this.get(k),o=n.langEntries||(n.langEntries={}),p=n.lang||(n.lang=[]);if(e.indexOf(p,l)==-1)p.push(l);o[l]=m;};a.skins=(function(){var k={},l={},m=function(n,o,p,q){var r=k[o];if(!n.skin){n.skin=r;if(r.init)r.init(n);}var s=function(B){for(var C=0;C<B.length;C++)B[C]=a.getUrl(l[o]+B[C]);};function t(B,C){return B.replace(/url\s*\(([\s'"]*)(.*?)([\s"']*)\)/g,function(D,E,F,G){if(/^\/|^\w?:/.test(F))return D;else return 'url('+C+E+F+G+')';});};p=r[p];var u=!p||!!p._isLoaded;if(u)q&&q();else{var v=p._pending||(p._pending=[]);v.push(q);if(v.length>1)return;var w=!p.css||!p.css.length,x=!p.js||!p.js.length,y=function(){if(w&&x){p._isLoaded=1;for(var B=0;B<v.length;B++){if(v[B])v[B]();}}};if(!w){var z=p.css;if(e.isArray(z)){s(z);for(var A=0;A<z.length;A++)a.document.appendStyleSheet(z[A]);}else{z=t(z,a.getUrl(l[o]));a.document.appendStyleText(z);}p.css=z;w=1;}if(!x){s(p.js);a.scriptLoader.load(p.js,function(){x=1;y();});}y();}};return{add:function(n,o){k[n]=o;o.skinPath=l[n]||(l[n]=a.getUrl('skins/'+n+'/'));},load:function(n,o,p){var q=n.skinName,r=n.skinPath;if(k[q])m(n,q,o,p);else{l[q]=r;a.scriptLoader.load(a.getUrl(r+'skin.js'),function(){m(n,q,o,p);});}}};})();a.themes=new a.resourceManager('themes/','theme');a.ui=function(k){if(k.ui)return k.ui;this._={handlers:{},items:{},editor:k};return this;};var k=a.ui;k.prototype={add:function(l,m,n){this._.items[l]={type:m,command:n.command||null,args:Array.prototype.slice.call(arguments,2)};
+},create:function(l){var q=this;var m=q._.items[l],n=m&&q._.handlers[m.type],o=m&&m.command&&q._.editor.getCommand(m.command),p=n&&n.create.apply(q,m.args);m&&(p=e.extend(p,q._.editor.skin[m.type],true));if(o)o.uiItems.push(p);return p;},addHandler:function(l,m){this._.handlers[l]=m;}};a.event.implementOn(k);(function(){var l=0,m=function(){var x='editor'+ ++l;return a.instances&&a.instances[x]?m():x;},n={},o=function(x){var y=x.config.customConfig;if(!y)return false;y=a.getUrl(y);var z=n[y]||(n[y]={});if(z.fn){z.fn.call(x,x.config);if(a.getUrl(x.config.customConfig)==y||!o(x))x.fireOnce('customConfigLoaded');}else a.scriptLoader.load(y,function(){if(a.editorConfig)z.fn=a.editorConfig;else z.fn=function(){};o(x);});return true;},p=function(x,y){x.on('customConfigLoaded',function(){if(y){if(y.on)for(var z in y.on)x.on(z,y.on[z]);e.extend(x.config,y,true);delete x.config.on;}q(x);});if(y&&y.customConfig!=undefined)x.config.customConfig=y.customConfig;if(!o(x))x.fireOnce('customConfigLoaded');},q=function(x){var y=x.config.skin.split(','),z=y[0],A=a.getUrl(y[1]||'skins/'+z+'/');x.skinName=z;x.skinPath=A;x.skinClass='cke_skin_'+z;x.tabIndex=x.config.tabIndex||x.element.getAttribute('tabindex')||0;x.readOnly=!!(x.config.readOnly||x.element.getAttribute('disabled'));x.fireOnce('configLoaded');t(x);},r=function(x){a.lang.load(x.config.language,x.config.defaultLanguage,function(y,z){x.langCode=y;x.lang=e.prototypedCopy(z);if(b.gecko&&b.version<10900&&x.lang.dir=='rtl')x.lang.dir='ltr';x.fire('langLoaded');var A=x.config;A.contentsLangDirection=='ui'&&(A.contentsLangDirection=x.lang.dir);s(x);});},s=function(x){var y=x.config,z=y.plugins,A=y.extraPlugins,B=y.removePlugins;if(A){var C=new RegExp('(?:^|,)(?:'+A.replace(/\s*,\s*/g,'|')+')(?=,|$)','g');z=z.replace(C,'');z+=','+A;}if(B){C=new RegExp('(?:^|,)(?:'+B.replace(/\s*,\s*/g,'|')+')(?=,|$)','g');z=z.replace(C,'');}b.air&&(z+=',adobeair');j.load(z.split(','),function(D){var E=[],F=[],G=[];x.plugins=D;for(var H in D){var I=D[H],J=I.lang,K=j.getPath(H),L=null;I.path=K;if(J){L=e.indexOf(J,x.langCode)>=0?x.langCode:J[0];if(!I.langEntries||!I.langEntries[L])G.push(a.getUrl(K+'lang/'+L+'.js'));else{e.extend(x.lang,I.langEntries[L]);L=null;}}F.push(L);E.push(I);}a.scriptLoader.load(G,function(){var M=['beforeInit','init','afterInit'];for(var N=0;N<M.length;N++)for(var O=0;O<E.length;O++){var P=E[O];if(N===0&&F[O]&&P.lang)e.extend(x.lang,P.langEntries[F[O]]);if(P[M[N]])P[M[N]](x);}x.fire('pluginsLoaded');u(x);});});},t=function(x){a.skins.load(x,'editor',function(){r(x);
+});},u=function(x){var y=x.config.theme;a.themes.load(y,function(){var z=x.theme=a.themes.get(y);z.path=a.themes.getPath(y);z.build(x);if(x.config.autoUpdateElement)v(x);});},v=function(x){var y=x.element;if(x.elementMode==1&&y.is('textarea')){var z=y.$.form&&new h(y.$.form);if(z){function A(){x.updateElement();};z.on('submit',A);if(!z.$.submit.nodeName&&!z.$.submit.length)z.$.submit=e.override(z.$.submit,function(B){return function(){x.updateElement();if(B.apply)B.apply(this,arguments);else B();};});x.on('destroy',function(){z.removeListener('submit',A);});}}};function w(){var x,y=this._.commands,z=this.mode;if(!z)return;for(var A in y){x=y[A];x[x.startDisabled?'disable':this.readOnly&&!x.readOnly?'disable':x.modes[z]?'enable':'disable']();}};a.editor.prototype._init=function(){var z=this;var x=h.get(z._.element),y=z._.instanceConfig;delete z._.element;delete z._.instanceConfig;z._.commands={};z._.styles=[];z.element=x;z.name=x&&z.elementMode==1&&(x.getId()||x.getNameAtt())||m();if(z.name in a.instances)throw '[CKEDITOR.editor] The instance "'+z.name+'" already exists.';z.id=e.getNextId();z.config=e.prototypedCopy(i);z.ui=new k(z);z.focusManager=new a.focusManager(z);a.fire('instanceCreated',null,z);z.on('mode',w,null,null,1);z.on('readOnly',w,null,null,1);p(z,y);};})();e.extend(a.editor.prototype,{addCommand:function(l,m){return this._.commands[l]=new a.command(this,m);},addCss:function(l){this._.styles.push(l);},destroy:function(l){var m=this;if(!l)m.updateElement();m.fire('destroy');m.theme&&m.theme.destroy(m);a.remove(m);a.fire('instanceDestroyed',null,m);},execCommand:function(l,m){var n=this.getCommand(l),o={name:l,commandData:m,command:n};if(n&&n.state!=0)if(this.fire('beforeCommandExec',o)!==true){o.returnValue=n.exec(o.commandData);if(!n.async&&this.fire('afterCommandExec',o)!==true)return o.returnValue;}return false;},getCommand:function(l){return this._.commands[l];},getData:function(){var n=this;n.fire('beforeGetData');var l=n._.data;if(typeof l!='string'){var m=n.element;if(m&&n.elementMode==1)l=m.is('textarea')?m.getValue():m.getHtml();else l='';}l={dataValue:l};n.fire('getData',l);return l.dataValue;},getSnapshot:function(){var l=this.fire('getSnapshot');if(typeof l!='string'){var m=this.element;if(m&&this.elementMode==1)l=m.is('textarea')?m.getValue():m.getHtml();}return l;},loadSnapshot:function(l){this.fire('loadSnapshot',l);},setData:function(l,m,n){if(m)this.on('dataReady',function(p){p.removeListener();m.call(p.editor);});var o={dataValue:l};
+!n&&this.fire('setData',o);this._.data=o.dataValue;!n&&this.fire('afterSetData',o);},setReadOnly:function(l){l=l==undefined||l;if(this.readOnly!=l){this.readOnly=l;this.fire('readOnly');}},insertHtml:function(l){this.fire('insertHtml',l);},insertText:function(l){this.fire('insertText',l);},insertElement:function(l){this.fire('insertElement',l);},checkDirty:function(){return this.mayBeDirty&&this._.previousValue!==this.getSnapshot();},resetDirty:function(){if(this.mayBeDirty)this._.previousValue=this.getSnapshot();},updateElement:function(){var n=this;var l=n.element;if(l&&n.elementMode==1){var m=n.getData();if(n.config.htmlEncodeOutput)m=e.htmlEncode(m);if(l.is('textarea'))l.setValue(m);else l.setHtml(m);}}});a.on('loaded',function(){var l=a.editor._pending;if(l){delete a.editor._pending;for(var m=0;m<l.length;m++)l[m]._init();}});a.htmlParser=function(){this._={htmlPartsRegex:new RegExp("<(?:(?:\\/([^>]+)>)|(?:!--([\\S|\\s]*?)-->)|(?:([^\\s>]+)\\s*((?:(?:\"[^\"]*\")|(?:'[^']*')|[^\"'>])*)\\/?>))",'g')};};(function(){var l=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,m={checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};a.htmlParser.prototype={onTagOpen:function(){},onTagClose:function(){},onText:function(){},onCDATA:function(){},onComment:function(){},parse:function(n){var A=this;var o,p,q=0,r;while(o=A._.htmlPartsRegex.exec(n)){var s=o.index;if(s>q){var t=n.substring(q,s);if(r)r.push(t);else A.onText(t);}q=A._.htmlPartsRegex.lastIndex;if(p=o[1]){p=p.toLowerCase();if(r&&f.$cdata[p]){A.onCDATA(r.join(''));r=null;}if(!r){A.onTagClose(p);continue;}}if(r){r.push(o[0]);continue;}if(p=o[3]){p=p.toLowerCase();if(/="/.test(p))continue;var u={},v,w=o[4],x=!!(w&&w.charAt(w.length-1)=='/');if(w)while(v=l.exec(w)){var y=v[1].toLowerCase(),z=v[2]||v[3]||v[4]||'';if(!z&&m[y])u[y]=y;else u[y]=z;}A.onTagOpen(p,u,x);if(!r&&f.$cdata[p])r=[];continue;}if(p=o[2])A.onComment(p);}if(n.length>q)A.onText(n.substring(q,n.length));}};})();a.htmlParser.comment=function(l){this.value=l;this._={isBlockLike:false};};a.htmlParser.comment.prototype={type:8,writeHtml:function(l,m){var n=this.value;if(m){if(!(n=m.onComment(n,this)))return;if(typeof n!='string'){n.parent=this.parent;n.writeHtml(l,m);return;}}l.comment(n);}};(function(){a.htmlParser.text=function(l){this.value=l;this._={isBlockLike:false};};a.htmlParser.text.prototype={type:3,writeHtml:function(l,m){var n=this.value;
+if(m&&!(n=m.onText(n,this)))return;l.text(n);}};})();(function(){a.htmlParser.cdata=function(l){this.value=l;};a.htmlParser.cdata.prototype={type:3,writeHtml:function(l){l.write(this.value);}};})();a.htmlParser.fragment=function(){this.children=[];this.parent=null;this._={isBlockLike:true,hasInlineStarted:false};};(function(){var l=e.extend({table:1,ul:1,ol:1,dl:1},f.table,f.ul,f.ol,f.dl),m=c&&b.version<8?{dd:1,dt:1}:{},n={ol:1,ul:1},o=e.extend({},{html:1},f.html,f.body,f.head,{style:1,script:1});function p(q){return q.name=='a'&&q.attributes.href||f.$removeEmpty[q.name];};a.htmlParser.fragment.fromHtml=function(q,r,s){var t=new a.htmlParser(),u=s||new a.htmlParser.fragment(),v=[],w=[],x=u,y=false,z=false;function A(D){var E;if(v.length>0)for(var F=0;F<v.length;F++){var G=v[F],H=G.name,I=f[H],J=x.name&&f[x.name];if((!J||J[H])&&(!D||!I||I[D]||!f[D])){if(!E){B();E=1;}G=G.clone();G.parent=x;x=G;v.splice(F,1);F--;}else if(H==x.name)C(x,x.parent,1),F--;}};function B(){while(w.length)x.add(w.shift());};function C(D,E,F){if(D.previous!==undefined)return;E=E||x||u;var G=x;if(r&&(!E.type||E.name=='body')){var H,I;if(D.attributes&&(I=D.attributes['data-cke-real-element-type']))H=I;else H=D.name;if(H&&!(H in f.$body||H=='body'||D.isOrphan)){x=E;t.onTagOpen(r,{});D.returnPoint=E=x;}}if(D._.isBlockLike&&D.name!='pre'&&D.name!='textarea'){var J=D.children.length,K=D.children[J-1],L;if(K&&K.type==3)if(!(L=e.rtrim(K.value)))D.children.length=J-1;else K.value=L;}E.add(D);if(D.name=='pre')z=false;if(D.name=='textarea')y=false;if(D.returnPoint){x=D.returnPoint;delete D.returnPoint;}else x=F?E:G;};t.onTagOpen=function(D,E,F,G){var H=new a.htmlParser.element(D,E);if(H.isUnknown&&F)H.isEmpty=true;H.isOptionalClose=D in m||G;if(p(H)){v.push(H);return;}else if(D=='pre')z=true;else if(D=='br'&&z){x.add(new a.htmlParser.text('\n'));return;}else if(D=='textarea')y=true;if(D=='br'){w.push(H);return;}while(1){var I=x.name,J=I?f[I]||(x._.isBlockLike?f.div:f.span):o;if(!H.isUnknown&&!x.isUnknown&&!J[D]){if(x.isOptionalClose)t.onTagClose(I);else if(D in n&&I in n){var K=x.children,L=K[K.length-1];if(!(L&&L.name=='li'))C(L=new a.htmlParser.element('li'),x);!H.returnPoint&&(H.returnPoint=x);x=L;}else if(D in f.$listItem&&I!=D)t.onTagOpen(D=='li'?'ul':'dl',{},0,1);else if(I in l&&I!=D){!H.returnPoint&&(H.returnPoint=x);x=x.parent;}else{if(I in f.$inline)v.unshift(x);if(x.parent)C(x,x.parent,1);else{H.isOrphan=1;break;}}}else break;}A(D);B();H.parent=x;if(H.isEmpty)C(H);else x=H;};t.onTagClose=function(D){for(var E=v.length-1;
+E>=0;E--){if(D==v[E].name){v.splice(E,1);return;}}var F=[],G=[],H=x;while(H!=u&&H.name!=D){if(!H._.isBlockLike)G.unshift(H);F.push(H);H=H.returnPoint||H.parent;}if(H!=u){for(E=0;E<F.length;E++){var I=F[E];C(I,I.parent);}x=H;if(H._.isBlockLike)B();C(H,H.parent);if(H==x)x=x.parent;v=v.concat(G);}if(D=='body')r=false;};t.onText=function(D){if((!x._.hasInlineStarted||w.length)&&!z&&!y){D=e.ltrim(D);if(D.length===0)return;}var E=x.name,F=E?f[E]||(x._.isBlockLike?f.div:f.span):o;if(!y&&!F['#']&&E in l){t.onTagOpen(E in n?'li':E=='dl'?'dd':E=='table'?'tr':E=='tr'?'td':'');t.onText(D);return;}B();A();if(r&&(!x.type||x.name=='body')&&e.trim(D))this.onTagOpen(r,{},0,1);if(!z&&!y)D=D.replace(/[\t\r\n ]{2,}|[\t\r\n]/g,' ');x.add(new a.htmlParser.text(D));};t.onCDATA=function(D){x.add(new a.htmlParser.cdata(D));};t.onComment=function(D){B();A();x.add(new a.htmlParser.comment(D));};t.parse(q);B(!c&&1);while(x!=u)C(x,x.parent,1);return u;};a.htmlParser.fragment.prototype={add:function(q,r){var t=this;isNaN(r)&&(r=t.children.length);var s=r>0?t.children[r-1]:null;if(s){if(q._.isBlockLike&&s.type==3){s.value=e.rtrim(s.value);if(s.value.length===0){t.children.pop();t.add(q);return;}}s.next=q;}q.previous=s;q.parent=t;t.children.splice(r,0,q);t._.hasInlineStarted=q.type==3||q.type==1&&!q._.isBlockLike;},writeHtml:function(q,r){var s;this.filterChildren=function(){var t=new a.htmlParser.basicWriter();this.writeChildrenHtml.call(this,t,r,true);var u=t.getHtml();this.children=new a.htmlParser.fragment.fromHtml(u).children;s=1;};!this.name&&r&&r.onFragment(this);this.writeChildrenHtml(q,s?null:r);},writeChildrenHtml:function(q,r){for(var s=0;s<this.children.length;s++)this.children[s].writeHtml(q,r);}};})();a.htmlParser.element=function(l,m){var s=this;s.name=l;s.attributes=m||(m={});s.children=[];var n=m['data-cke-real-element-type']||l||'',o=n.match(/^cke:(.*)/);o&&(n=o[1]);var p=f,q=!!(p.$nonBodyContent[n]||p.$block[n]||p.$listItem[n]||p.$tableContent[n]||p.$nonEditable[n]||n=='br'),r=!!p.$empty[l];s.isEmpty=r;s.isUnknown=!p[l];s._={isBlockLike:q,hasInlineStarted:r||!q};};a.htmlParser.cssStyle=function(){var l,m=arguments[0],n={};l=m instanceof a.htmlParser.element?m.attributes.style:m;(l||'').replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(o,p,q){p=='font-family'&&(q=q.replace(/["']/g,''));n[p.toLowerCase()]=q;});return{rules:n,populate:function(o){var p=this.toString();if(p)o instanceof h?o.setAttribute('style',p):o instanceof a.htmlParser.element?o.attributes.style=p:o.style=p;
+},'toString':function(){var o=[];for(var p in n)n[p]&&o.push(p,':',n[p],';');return o.join('');}};};(function(){var l=function(m,n){m=m[0];n=n[0];return m<n?-1:m>n?1:0;};a.htmlParser.element.prototype={type:1,add:a.htmlParser.fragment.prototype.add,clone:function(){return new a.htmlParser.element(this.name,this.attributes);},writeHtml:function(m,n){var o=this.attributes,p=this,q=p.name,r,s,t,u;p.filterChildren=function(){if(!u){var B=new a.htmlParser.basicWriter();a.htmlParser.fragment.prototype.writeChildrenHtml.call(p,B,n);p.children=new a.htmlParser.fragment.fromHtml(B.getHtml(),0,p.clone()).children;u=1;}};if(n){for(;;){if(!(q=n.onElementName(q)))return;p.name=q;if(!(p=n.onElement(p)))return;p.parent=this.parent;if(p.name==q)break;if(p.type!=1){p.writeHtml(m,n);return;}q=p.name;if(!q){for(var v=0,w=this.children.length;v<w;v++)this.children[v].parent=p.parent;this.writeChildrenHtml.call(p,m,u?null:n);return;}}o=p.attributes;}m.openTag(q,o);var x=[];for(var y=0;y<2;y++)for(r in o){s=r;t=o[r];if(y==1)x.push([r,t]);else if(n){for(;;){if(!(s=n.onAttributeName(r))){delete o[r];break;}else if(s!=r){delete o[r];r=s;continue;}else break;}if(s)if((t=n.onAttribute(p,s,t))===false)delete o[s];else o[s]=t;}}if(m.sortAttributes)x.sort(l);var z=x.length;for(y=0;y<z;y++){var A=x[y];m.attribute(A[0],A[1]);}m.openTagClose(q,p.isEmpty);if(!p.isEmpty){this.writeChildrenHtml.call(p,m,u?null:n);m.closeTag(q);}},writeChildrenHtml:function(m,n){a.htmlParser.fragment.prototype.writeChildrenHtml.apply(this,arguments);}};})();(function(){a.htmlParser.filter=e.createClass({$:function(q){this._={elementNames:[],attributeNames:[],elements:{$length:0},attributes:{$length:0}};if(q)this.addRules(q,10);},proto:{addRules:function(q,r){var s=this;if(typeof r!='number')r=10;m(s._.elementNames,q.elementNames,r);m(s._.attributeNames,q.attributeNames,r);n(s._.elements,q.elements,r);n(s._.attributes,q.attributes,r);s._.text=o(s._.text,q.text,r)||s._.text;s._.comment=o(s._.comment,q.comment,r)||s._.comment;s._.root=o(s._.root,q.root,r)||s._.root;},onElementName:function(q){return l(q,this._.elementNames);},onAttributeName:function(q){return l(q,this._.attributeNames);},onText:function(q){var r=this._.text;return r?r.filter(q):q;},onComment:function(q,r){var s=this._.comment;return s?s.filter(q,r):q;},onFragment:function(q){var r=this._.root;return r?r.filter(q):q;},onElement:function(q){var v=this;var r=[v._.elements['^'],v._.elements[q.name],v._.elements.$],s,t;for(var u=0;u<3;u++){s=r[u];if(s){t=s.filter(q,v);
+if(t===false)return null;if(t&&t!=q)return v.onNode(t);if(q.parent&&!q.name)break;}}return q;},onNode:function(q){var r=q.type;return r==1?this.onElement(q):r==3?new a.htmlParser.text(this.onText(q.value)):r==8?new a.htmlParser.comment(this.onComment(q.value)):null;},onAttribute:function(q,r,s){var t=this._.attributes[r];if(t){var u=t.filter(s,q,this);if(u===false)return false;if(typeof u!='undefined')return u;}return s;}}});function l(q,r){for(var s=0;q&&s<r.length;s++){var t=r[s];q=q.replace(t[0],t[1]);}return q;};function m(q,r,s){if(typeof r=='function')r=[r];var t,u,v=q.length,w=r&&r.length;if(w){for(t=0;t<v&&q[t].pri<s;t++){}for(u=w-1;u>=0;u--){var x=r[u];if(x){x.pri=s;q.splice(t,0,x);}}}};function n(q,r,s){if(r)for(var t in r){var u=q[t];q[t]=o(u,r[t],s);if(!u)q.$length++;}};function o(q,r,s){if(r){r.pri=s;if(q){if(!q.splice){if(q.pri>s)q=[r,q];else q=[q,r];q.filter=p;}else m(q,r,s);return q;}else{r.filter=r;return r;}}};function p(q){var r=q.type||q instanceof a.htmlParser.fragment;for(var s=0;s<this.length;s++){if(r)var t=q.type,u=q.name;var v=this[s],w=v.apply(window,arguments);if(w===false)return w;if(r){if(w&&(w.name!=u||w.type!=t))return w;}else if(typeof w!='string')return w;w!=undefined&&(q=w);}return q;};})();a.htmlParser.basicWriter=e.createClass({$:function(){this._={output:[]};},proto:{openTag:function(l,m){this._.output.push('<',l);},openTagClose:function(l,m){if(m)this._.output.push(' />');else this._.output.push('>');},attribute:function(l,m){if(typeof m=='string')m=e.htmlEncodeAttr(m);this._.output.push(' ',l,'="',m,'"');},closeTag:function(l){this._.output.push('</',l,'>');},text:function(l){this._.output.push(l);},comment:function(l){this._.output.push('<!--',l,'-->');},write:function(l){this._.output.push(l);},reset:function(){this._.output=[];this._.indent=false;},getHtml:function(l){var m=this._.output.join('');if(l)this.reset();return m;}}});delete a.loadFullCore;a.instances={};a.document=new g(document);a.add=function(l){a.instances[l.name]=l;l.on('focus',function(){if(a.currentInstance!=l){a.currentInstance=l;a.fire('currentInstance');}});l.on('blur',function(){if(a.currentInstance==l){a.currentInstance=null;a.fire('currentInstance');}});};a.remove=function(l){delete a.instances[l.name];};a.on('instanceDestroyed',function(){if(e.isEmpty(this.instances))a.fire('reset');});a.TRISTATE_ON=1;a.TRISTATE_OFF=2;a.TRISTATE_DISABLED=0;d.comment=function(l,m){if(typeof l=='string')l=(m?m.$:document).createComment(l);d.domObject.call(this,l);
+};d.comment.prototype=new d.node();e.extend(d.comment.prototype,{type:8,getOuterHtml:function(){return '<!--'+this.$.nodeValue+'-->';}});(function(){var l={address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,dd:1,legend:1,caption:1},m={body:1,div:1,table:1,tbody:1,tr:1,td:1,th:1,form:1,fieldset:1},n=function(o){var p=o.getChildren();for(var q=0,r=p.count();q<r;q++){var s=p.getItem(q);if(s.type==1&&f.$block[s.getName()])return true;}return false;};d.elementPath=function(o){var u=this;var p=null,q=null,r=[],s=o;while(s){if(s.type==1){if(!u.lastElement)u.lastElement=s;var t=s.getName();if(!q){if(!p&&l[t])p=s;if(m[t])if(!p&&t=='div'&&!n(s))p=s;else q=s;}r.push(s);if(t=='body')break;}s=s.getParent();}u.block=p;u.blockLimit=q;u.elements=r;};})();d.elementPath.prototype={compare:function(l){var m=this.elements,n=l&&l.elements;if(!n||m.length!=n.length)return false;for(var o=0;o<m.length;o++){if(!m[o].equals(n[o]))return false;}return true;},contains:function(l){var m=this.elements;for(var n=0;n<m.length;n++){if(m[n].getName() in l)return m[n];}return null;}};d.text=function(l,m){if(typeof l=='string')l=(m?m.$:document).createTextNode(l);this.$=l;};d.text.prototype=new d.node();e.extend(d.text.prototype,{type:3,getLength:function(){return this.$.nodeValue.length;},getText:function(){return this.$.nodeValue;},setText:function(l){this.$.nodeValue=l;},split:function(l){var q=this;if(c&&l==q.getLength()){var m=q.getDocument().createText('');m.insertAfter(q);return m;}var n=q.getDocument(),o=new d.text(q.$.splitText(l),n);if(b.ie8){var p=new d.text('',n);p.insertAfter(o);p.remove();}return o;},substring:function(l,m){if(typeof m!='number')return this.$.nodeValue.substr(l);else return this.$.nodeValue.substring(l,m);}});d.documentFragment=function(l){l=l||a.document;this.$=l.$.createDocumentFragment();};e.extend(d.documentFragment.prototype,h.prototype,{type:11,insertAfterNode:function(l){l=l.$;l.parentNode.insertBefore(this.$,l.nextSibling);}},true,{append:1,appendBogus:1,getFirst:1,getLast:1,appendTo:1,moveChildren:1,insertBefore:1,insertAfterNode:1,replace:1,trim:1,type:1,ltrim:1,rtrim:1,getDocument:1,getChildCount:1,getChild:1,getChildren:1});(function(){function l(s,t){var u=this.range;if(this._.end)return null;if(!this._.start){this._.start=1;if(u.collapsed){this.end();return null;}u.optimize();}var v,w=u.startContainer,x=u.endContainer,y=u.startOffset,z=u.endOffset,A,B=this.guard,C=this.type,D=s?'getPreviousSourceNode':'getNextSourceNode';
+if(!s&&!this._.guardLTR){var E=x.type==1?x:x.getParent(),F=x.type==1?x.getChild(z):x.getNext();this._.guardLTR=function(J,K){return(!K||!E.equals(J))&&(!F||!J.equals(F))&&(J.type!=1||!K||J.getName()!='body');};}if(s&&!this._.guardRTL){var G=w.type==1?w:w.getParent(),H=w.type==1?y?w.getChild(y-1):null:w.getPrevious();this._.guardRTL=function(J,K){return(!K||!G.equals(J))&&(!H||!J.equals(H))&&(J.type!=1||!K||J.getName()!='body');};}var I=s?this._.guardRTL:this._.guardLTR;if(B)A=function(J,K){if(I(J,K)===false)return false;return B(J,K);};else A=I;if(this.current)v=this.current[D](false,C,A);else{if(s){v=x;if(v.type==1)if(z>0)v=v.getChild(z-1);else v=A(v,true)===false?null:v.getPreviousSourceNode(true,C,A);}else{v=w;if(v.type==1)if(!(v=v.getChild(y)))v=A(w,true)===false?null:w.getNextSourceNode(true,C,A);}if(v&&A(v)===false)v=null;}while(v&&!this._.end){this.current=v;if(!this.evaluator||this.evaluator(v)!==false){if(!t)return v;}else if(t&&this.evaluator)return false;v=v[D](false,C,A);}this.end();return this.current=null;};function m(s){var t,u=null;while(t=l.call(this,s))u=t;return u;};d.walker=e.createClass({$:function(s){this.range=s;this._={};},proto:{end:function(){this._.end=1;},next:function(){return l.call(this);},previous:function(){return l.call(this,1);},checkForward:function(){return l.call(this,0,1)!==false;},checkBackward:function(){return l.call(this,1,1)!==false;},lastForward:function(){return m.call(this);},lastBackward:function(){return m.call(this,1);},reset:function(){delete this.current;this._={};}}});var n={block:1,'list-item':1,table:1,'table-row-group':1,'table-header-group':1,'table-footer-group':1,'table-row':1,'table-column-group':1,'table-column':1,'table-cell':1,'table-caption':1};h.prototype.isBlockBoundary=function(s){var t=s?e.extend({},f.$block,s||{}):f.$block;return this.getComputedStyle('float')=='none'&&n[this.getComputedStyle('display')]||t[this.getName()];};d.walker.blockBoundary=function(s){return function(t,u){return!(t.type==1&&t.isBlockBoundary(s));};};d.walker.listItemBoundary=function(){return this.blockBoundary({br:1});};d.walker.bookmark=function(s,t){function u(v){return v&&v.getName&&v.getName()=='span'&&v.data('cke-bookmark');};return function(v){var w,x;w=v&&!v.getName&&(x=v.getParent())&&u(x);w=s?w:w||u(v);return!!(t^w);};};d.walker.whitespaces=function(s){return function(t){var u=t&&t.type==3&&!e.trim(t.getText());return!!(s^u);};};d.walker.invisible=function(s){var t=d.walker.whitespaces();return function(u){var v=t(u)||u.is&&!u.$.offsetHeight;
+return!!(s^v);};};d.walker.nodeType=function(s,t){return function(u){return!!(t^u.type==s);};};d.walker.bogus=function(s,t){function u(v){return!p(v)&&!q(v);};return function(v){var w=v.getParent(),x=!c?v.is&&v.is('br'):v.getText&&o.test(v.getText());x=x&&w.isBlockBoundary()&&!!w.getLast(u);return!!(t^x);};};var o=/^[\t\r\n ]*(?: |\xa0)$/,p=d.walker.whitespaces(),q=d.walker.bookmark(),r=function(s){return q(s)||p(s)||s.type==1&&s.getName() in f.$inline&&!(s.getName() in f.$empty);};h.prototype.getBogus=function(){var s=this;do s=s.getPreviousSourceNode();while(r(s));if(s&&(!c?s.is&&s.is('br'):s.getText&&o.test(s.getText())))return s;return false;};})();d.range=function(l){var m=this;m.startContainer=null;m.startOffset=null;m.endContainer=null;m.endOffset=null;m.collapsed=true;m.document=l;};(function(){var l=function(u){u.collapsed=u.startContainer&&u.endContainer&&u.startContainer.equals(u.endContainer)&&u.startOffset==u.endOffset;},m=function(u,v,w,x){u.optimizeBookmark();var y=u.startContainer,z=u.endContainer,A=u.startOffset,B=u.endOffset,C,D;if(z.type==3)z=z.split(B);else if(z.getChildCount()>0)if(B>=z.getChildCount()){z=z.append(u.document.createText(''));D=true;}else z=z.getChild(B);if(y.type==3){y.split(A);if(y.equals(z))z=y.getNext();}else if(!A){y=y.getFirst().insertBeforeMe(u.document.createText(''));C=true;}else if(A>=y.getChildCount()){y=y.append(u.document.createText(''));C=true;}else y=y.getChild(A).getPrevious();var E=y.getParents(),F=z.getParents(),G,H,I;for(G=0;G<E.length;G++){H=E[G];I=F[G];if(!H.equals(I))break;}var J=w,K,L,M,N;for(var O=G;O<E.length;O++){K=E[O];if(J&&!K.equals(y))L=J.append(K.clone());M=K.getNext();while(M){if(M.equals(F[O])||M.equals(z))break;N=M.getNext();if(v==2)J.append(M.clone(true));else{M.remove();if(v==1)J.append(M);}M=N;}if(J)J=L;}J=w;for(var P=G;P<F.length;P++){K=F[P];if(v>0&&!K.equals(z))L=J.append(K.clone());if(!E[P]||K.$.parentNode!=E[P].$.parentNode){M=K.getPrevious();while(M){if(M.equals(E[P])||M.equals(y))break;N=M.getPrevious();if(v==2)J.$.insertBefore(M.$.cloneNode(true),J.$.firstChild);else{M.remove();if(v==1)J.$.insertBefore(M.$,J.$.firstChild);}M=N;}}if(J)J=L;}if(v==2){var Q=u.startContainer;if(Q.type==3){Q.$.data+=Q.$.nextSibling.data;Q.$.parentNode.removeChild(Q.$.nextSibling);}var R=u.endContainer;if(R.type==3&&R.$.nextSibling){R.$.data+=R.$.nextSibling.data;R.$.parentNode.removeChild(R.$.nextSibling);}}else{if(H&&I&&(y.$.parentNode!=H.$.parentNode||z.$.parentNode!=I.$.parentNode)){var S=I.getIndex();
+if(C&&I.$.parentNode==y.$.parentNode)S--;if(x&&H.type==1){var T=h.createFromHtml('<span data-cke-bookmark="1" style="display:none"> </span>',u.document);T.insertAfter(H);H.mergeSiblings(false);u.moveToBookmark({startNode:T});}else u.setStart(I.getParent(),S);}u.collapse(true);}if(C)y.remove();if(D&&z.$.parentNode)z.remove();},n={abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1};function o(u){var v=false,w=d.walker.bookmark(true);return function(x){if(w(x))return true;if(x.type==3){if(x.hasAscendant('pre')||e.trim(x.getText()).length)return false;}else if(x.type==1)if(!n[x.getName()])if(!u&&!c&&x.getName()=='br'&&!v)v=true;else return false;return true;};};var p=d.walker.bogus();function q(u){return function(v){return!u&&p(v)||(v.type==3?!e.trim(v.getText())||!!v.getParent().data('cke-bookmark'):v.getName() in f.$removeEmpty);};};var r=new d.walker.whitespaces(),s=new d.walker.bookmark();function t(u){return!r(u)&&!s(u);};d.range.prototype={clone:function(){var v=this;var u=new d.range(v.document);u.startContainer=v.startContainer;u.startOffset=v.startOffset;u.endContainer=v.endContainer;u.endOffset=v.endOffset;u.collapsed=v.collapsed;return u;},collapse:function(u){var v=this;if(u){v.endContainer=v.startContainer;v.endOffset=v.startOffset;}else{v.startContainer=v.endContainer;v.startOffset=v.endOffset;}v.collapsed=true;},cloneContents:function(){var u=new d.documentFragment(this.document);if(!this.collapsed)m(this,2,u);return u;},deleteContents:function(u){if(this.collapsed)return;m(this,0,null,u);},extractContents:function(u){var v=new d.documentFragment(this.document);if(!this.collapsed)m(this,1,v,u);return v;},createBookmark:function(u){var A=this;var v,w,x,y,z=A.collapsed;v=A.document.createElement('span');v.data('cke-bookmark',1);v.setStyle('display','none');v.setHtml(' ');if(u){x='cke_bm_'+e.getNextNumber();v.setAttribute('id',x+'S');}if(!z){w=v.clone();w.setHtml(' ');if(u)w.setAttribute('id',x+'E');y=A.clone();y.collapse();y.insertNode(w);}y=A.clone();y.collapse(true);y.insertNode(v);if(w){A.setStartAfter(v);A.setEndBefore(w);}else A.moveToPosition(v,4);return{startNode:u?x+'S':v,endNode:u?x+'E':w,serializable:u,collapsed:z};},createBookmark2:function(u){var C=this;var v=C.startContainer,w=C.endContainer,x=C.startOffset,y=C.endOffset,z=C.collapsed,A,B;if(!v||!w)return{start:0,end:0};if(u){if(v.type==1){A=v.getChild(x);
+if(A&&A.type==3&&x>0&&A.getPrevious().type==3){v=A;x=0;}if(A&&A.type==1)x=A.getIndex(1);}while(v.type==3&&(B=v.getPrevious())&&B.type==3){v=B;x+=B.getLength();}if(!z){if(w.type==1){A=w.getChild(y);if(A&&A.type==3&&y>0&&A.getPrevious().type==3){w=A;y=0;}if(A&&A.type==1)y=A.getIndex(1);}while(w.type==3&&(B=w.getPrevious())&&B.type==3){w=B;y+=B.getLength();}}}return{start:v.getAddress(u),end:z?null:w.getAddress(u),startOffset:x,endOffset:y,normalized:u,collapsed:z,is2:true};},moveToBookmark:function(u){var C=this;if(u.is2){var v=C.document.getByAddress(u.start,u.normalized),w=u.startOffset,x=u.end&&C.document.getByAddress(u.end,u.normalized),y=u.endOffset;C.setStart(v,w);if(x)C.setEnd(x,y);else C.collapse(true);}else{var z=u.serializable,A=z?C.document.getById(u.startNode):u.startNode,B=z?C.document.getById(u.endNode):u.endNode;C.setStartBefore(A);A.remove();if(B){C.setEndBefore(B);B.remove();}else C.collapse(true);}},getBoundaryNodes:function(){var z=this;var u=z.startContainer,v=z.endContainer,w=z.startOffset,x=z.endOffset,y;if(u.type==1){y=u.getChildCount();if(y>w)u=u.getChild(w);else if(y<1)u=u.getPreviousSourceNode();else{u=u.$;while(u.lastChild)u=u.lastChild;u=new d.node(u);u=u.getNextSourceNode()||u;}}if(v.type==1){y=v.getChildCount();if(y>x)v=v.getChild(x).getPreviousSourceNode(true);else if(y<1)v=v.getPreviousSourceNode();else{v=v.$;while(v.lastChild)v=v.lastChild;v=new d.node(v);}}if(u.getPosition(v)&2)u=v;return{startNode:u,endNode:v};},getCommonAncestor:function(u,v){var z=this;var w=z.startContainer,x=z.endContainer,y;if(w.equals(x)){if(u&&w.type==1&&z.startOffset==z.endOffset-1)y=w.getChild(z.startOffset);else y=w;}else y=w.getCommonAncestor(x);return v&&!y.is?y.getParent():y;},optimize:function(){var w=this;var u=w.startContainer,v=w.startOffset;if(u.type!=1)if(!v)w.setStartBefore(u);else if(v>=u.getLength())w.setStartAfter(u);u=w.endContainer;v=w.endOffset;if(u.type!=1)if(!v)w.setEndBefore(u);else if(v>=u.getLength())w.setEndAfter(u);},optimizeBookmark:function(){var w=this;var u=w.startContainer,v=w.endContainer;if(u.is&&u.is('span')&&u.data('cke-bookmark'))w.setStartAt(u,3);if(v&&v.is&&v.is('span')&&v.data('cke-bookmark'))w.setEndAt(v,4);},trim:function(u,v){var C=this;var w=C.startContainer,x=C.startOffset,y=C.collapsed;if((!u||y)&&w&&w.type==3){if(!x){x=w.getIndex();w=w.getParent();}else if(x>=w.getLength()){x=w.getIndex()+1;w=w.getParent();}else{var z=w.split(x);x=w.getIndex()+1;w=w.getParent();if(C.startContainer.equals(C.endContainer))C.setEnd(z,C.endOffset-C.startOffset);
+else if(w.equals(C.endContainer))C.endOffset+=1;}C.setStart(w,x);if(y){C.collapse(true);return;}}var A=C.endContainer,B=C.endOffset;if(!(v||y)&&A&&A.type==3){if(!B){B=A.getIndex();A=A.getParent();}else if(B>=A.getLength()){B=A.getIndex()+1;A=A.getParent();}else{A.split(B);B=A.getIndex()+1;A=A.getParent();}C.setEnd(A,B);}},enlarge:function(u,v){switch(u){case 1:if(this.collapsed)return;var w=this.getCommonAncestor(),x=this.document.getBody(),y,z,A,B,C,D=false,E,F,G=this.startContainer,H=this.startOffset;if(G.type==3){if(H){G=!e.trim(G.substring(0,H)).length&&G;D=!!G;}if(G)if(!(B=G.getPrevious()))A=G.getParent();}else{if(H)B=G.getChild(H-1)||G.getLast();if(!B)A=G;}while(A||B){if(A&&!B){if(!C&&A.equals(w))C=true;if(!x.contains(A))break;if(!D||A.getComputedStyle('display')!='inline'){D=false;if(C)y=A;else this.setStartBefore(A);}B=A.getPrevious();}while(B){E=false;if(B.type==8){B=B.getPrevious();continue;}else if(B.type==3){F=B.getText();if(/[^\s\ufeff]/.test(F))B=null;E=/[\s\ufeff]$/.test(F);}else if((B.$.offsetWidth>0||v&&B.is('br'))&&!B.data('cke-bookmark'))if(D&&f.$removeEmpty[B.getName()]){F=B.getText();if(/[^\s\ufeff]/.test(F))B=null;else{var I=B.$.getElementsByTagName('*');for(var J=0,K;K=I[J++];){if(!f.$removeEmpty[K.nodeName.toLowerCase()]){B=null;break;}}}if(B)E=!!F.length;}else B=null;if(E)if(D){if(C)y=A;else if(A)this.setStartBefore(A);}else D=true;if(B){var L=B.getPrevious();if(!A&&!L){A=B;B=null;break;}B=L;}else A=null;}if(A)A=A.getParent();}G=this.endContainer;H=this.endOffset;A=B=null;C=D=false;if(G.type==3){G=!e.trim(G.substring(H)).length&&G;D=!(G&&G.getLength());if(G)if(!(B=G.getNext()))A=G.getParent();}else{B=G.getChild(H);if(!B)A=G;}while(A||B){if(A&&!B){if(!C&&A.equals(w))C=true;if(!x.contains(A))break;if(!D||A.getComputedStyle('display')!='inline'){D=false;if(C)z=A;else if(A)this.setEndAfter(A);}B=A.getNext();}while(B){E=false;if(B.type==3){F=B.getText();if(/[^\s\ufeff]/.test(F))B=null;E=/^[\s\ufeff]/.test(F);}else if(B.type==1){if((B.$.offsetWidth>0||v&&B.is('br'))&&!B.data('cke-bookmark'))if(D&&f.$removeEmpty[B.getName()]){F=B.getText();if(/[^\s\ufeff]/.test(F))B=null;else{I=B.$.getElementsByTagName('*');for(J=0;K=I[J++];){if(!f.$removeEmpty[K.nodeName.toLowerCase()]){B=null;break;}}}if(B)E=!!F.length;}else B=null;}else E=1;if(E)if(D)if(C)z=A;else this.setEndAfter(A);if(B){L=B.getNext();if(!A&&!L){A=B;B=null;break;}B=L;}else A=null;}if(A)A=A.getParent();}if(y&&z){w=y.contains(z)?z:y;this.setStartBefore(w);this.setEndAfter(w);}break;case 2:case 3:var M=new d.range(this.document);
+x=this.document.getBody();M.setStartAt(x,1);M.setEnd(this.startContainer,this.startOffset);var N=new d.walker(M),O,P,Q=d.walker.blockBoundary(u==3?{br:1}:null),R=function(X){var Y=Q(X);if(!Y)O=X;return Y;},S=function(X){var Y=R(X);if(!Y&&X.is&&X.is('br'))P=X;return Y;};N.guard=R;A=N.lastBackward();O=O||x;this.setStartAt(O,!O.is('br')&&(!A&&this.checkStartOfBlock()||A&&O.contains(A))?1:4);if(u==3){var T=this.clone();N=new d.walker(T);var U=d.walker.whitespaces(),V=d.walker.bookmark();N.evaluator=function(X){return!U(X)&&!V(X);};var W=N.previous();if(W&&W.type==1&&W.is('br'))return;}M=this.clone();M.collapse();M.setEndAt(x,2);N=new d.walker(M);N.guard=u==3?S:R;O=null;A=N.lastForward();O=O||x;this.setEndAt(O,!A&&this.checkEndOfBlock()||A&&O.contains(A)?2:3);if(P)this.setEndAfter(P);}},shrink:function(u,v){if(!this.collapsed){u=u||2;var w=this.clone(),x=this.startContainer,y=this.endContainer,z=this.startOffset,A=this.endOffset,B=this.collapsed,C=1,D=1;if(x&&x.type==3)if(!z)w.setStartBefore(x);else if(z>=x.getLength())w.setStartAfter(x);else{w.setStartBefore(x);C=0;}if(y&&y.type==3)if(!A)w.setEndBefore(y);else if(A>=y.getLength())w.setEndAfter(y);else{w.setEndAfter(y);D=0;}var E=new d.walker(w),F=d.walker.bookmark();E.evaluator=function(J){return J.type==(u==1?1:3);};var G;E.guard=function(J,K){if(F(J))return true;if(u==1&&J.type==3)return false;if(K&&J.equals(G))return false;if(!K&&J.type==1)G=J;return true;};if(C){var H=E[u==1?'lastForward':'next']();H&&this.setStartAt(H,v?1:3);}if(D){E.reset();var I=E[u==1?'lastBackward':'previous']();I&&this.setEndAt(I,v?2:4);}return!!(C||D);}},insertNode:function(u){var y=this;y.optimizeBookmark();y.trim(false,true);var v=y.startContainer,w=y.startOffset,x=v.getChild(w);if(x)u.insertBefore(x);else v.append(u);if(u.getParent().equals(y.endContainer))y.endOffset++;y.setStartBefore(u);},moveToPosition:function(u,v){this.setStartAt(u,v);this.collapse(true);},selectNodeContents:function(u){this.setStart(u,0);this.setEnd(u,u.type==3?u.getLength():u.getChildCount());},setStart:function(u,v){var w=this;if(u.type==1&&f.$empty[u.getName()])v=u.getIndex(),u=u.getParent();w.startContainer=u;w.startOffset=v;if(!w.endContainer){w.endContainer=u;w.endOffset=v;}l(w);},setEnd:function(u,v){var w=this;if(u.type==1&&f.$empty[u.getName()])v=u.getIndex()+1,u=u.getParent();w.endContainer=u;w.endOffset=v;if(!w.startContainer){w.startContainer=u;w.startOffset=v;}l(w);},setStartAfter:function(u){this.setStart(u.getParent(),u.getIndex()+1);},setStartBefore:function(u){this.setStart(u.getParent(),u.getIndex());
+},setEndAfter:function(u){this.setEnd(u.getParent(),u.getIndex()+1);},setEndBefore:function(u){this.setEnd(u.getParent(),u.getIndex());},setStartAt:function(u,v){var w=this;switch(v){case 1:w.setStart(u,0);break;case 2:if(u.type==3)w.setStart(u,u.getLength());else w.setStart(u,u.getChildCount());break;case 3:w.setStartBefore(u);break;case 4:w.setStartAfter(u);}l(w);},setEndAt:function(u,v){var w=this;switch(v){case 1:w.setEnd(u,0);break;case 2:if(u.type==3)w.setEnd(u,u.getLength());else w.setEnd(u,u.getChildCount());break;case 3:w.setEndBefore(u);break;case 4:w.setEndAfter(u);}l(w);},fixBlock:function(u,v){var y=this;var w=y.createBookmark(),x=y.document.createElement(v);y.collapse(u);y.enlarge(2);y.extractContents().appendTo(x);x.trim();if(!c)x.appendBogus();y.insertNode(x);y.moveToBookmark(w);return x;},splitBlock:function(u){var E=this;var v=new d.elementPath(E.startContainer),w=new d.elementPath(E.endContainer),x=v.blockLimit,y=w.blockLimit,z=v.block,A=w.block,B=null;if(!x.equals(y))return null;if(u!='br'){if(!z){z=E.fixBlock(true,u);A=new d.elementPath(E.endContainer).block;}if(!A)A=E.fixBlock(false,u);}var C=z&&E.checkStartOfBlock(),D=A&&E.checkEndOfBlock();E.deleteContents();if(z&&z.equals(A))if(D){B=new d.elementPath(E.startContainer);E.moveToPosition(A,4);A=null;}else if(C){B=new d.elementPath(E.startContainer);E.moveToPosition(z,3);z=null;}else{A=E.splitElement(z);if(!c&&!z.is('ul','ol'))z.appendBogus();}return{previousBlock:z,nextBlock:A,wasStartOfBlock:C,wasEndOfBlock:D,elementPath:B};},splitElement:function(u){var x=this;if(!x.collapsed)return null;x.setEndAt(u,2);var v=x.extractContents(),w=u.clone(false);v.appendTo(w);w.insertAfter(u);x.moveToPosition(u,4);return w;},checkBoundaryOfElement:function(u,v){var w=v==1,x=this.clone();x.collapse(w);x[w?'setStartAt':'setEndAt'](u,w?1:2);var y=new d.walker(x);y.evaluator=q(w);return y[w?'checkBackward':'checkForward']();},checkStartOfBlock:function(){var A=this;var u=A.startContainer,v=A.startOffset;if(v&&u.type==3){var w=e.ltrim(u.substring(0,v));if(w.length)return false;}A.trim();var x=new d.elementPath(A.startContainer),y=A.clone();y.collapse(true);y.setStartAt(x.block||x.blockLimit,1);var z=new d.walker(y);z.evaluator=o(true);return z.checkBackward();},checkEndOfBlock:function(){var A=this;var u=A.endContainer,v=A.endOffset;if(u.type==3){var w=e.rtrim(u.substring(v));if(w.length)return false;}A.trim();var x=new d.elementPath(A.endContainer),y=A.clone();y.collapse(false);y.setEndAt(x.block||x.blockLimit,2);
+var z=new d.walker(y);z.evaluator=o(false);return z.checkForward();},checkReadOnly:(function(){function u(v,w){while(v){if(v.type==1)if(v.getAttribute('contentEditable')=='false'&&!v.data('cke-editable'))return 0;else if(v.is('html')||v.getAttribute('contentEditable')=='true'&&(v.contains(w)||v.equals(w)))break;v=v.getParent();}return 1;};return function(){var v=this.startContainer,w=this.endContainer;return!(u(v,w)&&u(w,v));};})(),moveToElementEditablePosition:function(u,v){function w(y,z){var A;if(y.type==1&&y.isEditable(false)&&!f.$nonEditable[y.getName()])A=y[v?'getLast':'getFirst'](t);if(!z&&!A)A=y[v?'getPrevious':'getNext'](t);return A;};var x=0;while(u){if(u.type==3){this.moveToPosition(u,v?4:3);x=1;break;}if(u.type==1)if(u.isEditable()){this.moveToPosition(u,v?2:1);x=1;}u=w(u,x);}return!!x;},moveToElementEditStart:function(u){return this.moveToElementEditablePosition(u);},moveToElementEditEnd:function(u){return this.moveToElementEditablePosition(u,true);},getEnclosedNode:function(){var u=this.clone();u.optimize();if(u.startContainer.type!=1||u.endContainer.type!=1)return null;var v=new d.walker(u),w=d.walker.bookmark(true),x=d.walker.whitespaces(true),y=function(A){return x(A)&&w(A);};u.evaluator=y;var z=v.next();v.reset();return z&&z.equals(v.previous())?z:null;},getTouchedStartNode:function(){var u=this.startContainer;if(this.collapsed||u.type!=1)return u;return u.getChild(this.startOffset)||u;},getTouchedEndNode:function(){var u=this.endContainer;if(this.collapsed||u.type!=1)return u;return u.getChild(this.endOffset-1)||u;}};})();a.POSITION_AFTER_START=1;a.POSITION_BEFORE_END=2;a.POSITION_BEFORE_START=3;a.POSITION_AFTER_END=4;a.ENLARGE_ELEMENT=1;a.ENLARGE_BLOCK_CONTENTS=2;a.ENLARGE_LIST_ITEM_CONTENTS=3;a.START=1;a.END=2;a.STARTEND=3;a.SHRINK_ELEMENT=1;a.SHRINK_TEXT=2;(function(){d.rangeList=function(n){if(n instanceof d.rangeList)return n;if(!n)n=[];else if(n instanceof d.range)n=[n];return e.extend(n,l);};var l={createIterator:function(){var n=this,o=d.walker.bookmark(),p=function(s){return!(s.is&&s.is('tr'));},q=[],r;return{getNextRange:function(s){r=r==undefined?0:r+1;var t=n[r];if(t&&n.length>1){if(!r)for(var u=n.length-1;u>=0;u--)q.unshift(n[u].createBookmark(true));if(s){var v=0;while(n[r+v+1]){var w=t.document,x=0,y=w.getById(q[v].endNode),z=w.getById(q[v+1].startNode),A;while(1){A=y.getNextSourceNode(false);if(!z.equals(A)){if(o(A)||A.type==1&&A.isBlockBoundary()){y=A;continue;}}else x=1;break;}if(!x)break;v++;}}t.moveToBookmark(q.shift());
+while(v--){A=n[++r];A.moveToBookmark(q.shift());t.setEnd(A.endContainer,A.endOffset);}}return t;}};},createBookmarks:function(n){var s=this;var o=[],p;for(var q=0;q<s.length;q++){o.push(p=s[q].createBookmark(n,true));for(var r=q+1;r<s.length;r++){s[r]=m(p,s[r]);s[r]=m(p,s[r],true);}}return o;},createBookmarks2:function(n){var o=[];for(var p=0;p<this.length;p++)o.push(this[p].createBookmark2(n));return o;},moveToBookmarks:function(n){for(var o=0;o<this.length;o++)this[o].moveToBookmark(n[o]);}};function m(n,o,p){var q=n.serializable,r=o[p?'endContainer':'startContainer'],s=p?'endOffset':'startOffset',t=q?o.document.getById(n.startNode):n.startNode,u=q?o.document.getById(n.endNode):n.endNode;if(r.equals(t.getPrevious())){o.startOffset=o.startOffset-r.getLength()-u.getPrevious().getLength();r=u.getNext();}else if(r.equals(u.getPrevious())){o.startOffset=o.startOffset-r.getLength();r=u.getNext();}r.equals(t.getParent())&&o[s]++;r.equals(u.getParent())&&o[s]++;o[p?'endContainer':'startContainer']=r;return o;};})();(function(){if(b.webkit){b.hc=false;return;}var l=h.createFromHtml('<div style="width:0px;height:0px;position:absolute;left:-10000px;border: 1px solid;border-color: red blue;"></div>',a.document);l.appendTo(a.document.getHead());try{b.hc=l.getComputedStyle('border-top-color')==l.getComputedStyle('border-right-color');}catch(m){b.hc=false;}if(b.hc)b.cssClass+=' cke_hc';l.remove();})();j.load(i.corePlugins.split(','),function(){a.status='loaded';a.fire('loaded');var l=a._.pending;if(l){delete a._.pending;for(var m=0;m<l.length;m++)a.add(l[m]);}});if(c)try{document.execCommand('BackgroundImageCache',false,true);}catch(l){}a.skins.add('kama',(function(){var m='cke_ui_color';return{editor:{css:['editor.css']},dialog:{css:['dialog.css']},richcombo:{canGroup:false},templates:{css:['templates.css']},margins:[0,0,0,0],init:function(n){if(n.config.width&&!isNaN(n.config.width))n.config.width-=12;var o=[],p=/\$color/g,q='/* UI Color Support */.cke_skin_kama .cke_menuitem .cke_icon_wrapper{\tbackground-color: $color !important;\tborder-color: $color !important;}.cke_skin_kama .cke_menuitem a:hover .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a:focus .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a:active .cke_icon_wrapper{\tbackground-color: $color !important;\tborder-color: $color !important;}.cke_skin_kama .cke_menuitem a:hover .cke_label,.cke_skin_kama .cke_menuitem a:focus .cke_label,.cke_skin_kama .cke_menuitem a:active .cke_label{\tbackground-color: $color !important;}.cke_skin_kama .cke_menuitem a.cke_disabled:hover .cke_label,.cke_skin_kama .cke_menuitem a.cke_disabled:focus .cke_label,.cke_skin_kama .cke_menuitem a.cke_disabled:active .cke_label{\tbackground-color: transparent !important;}.cke_skin_kama .cke_menuitem a.cke_disabled:hover .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a.cke_disabled:focus .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a.cke_disabled:active .cke_icon_wrapper{\tbackground-color: $color !important;\tborder-color: $color !important;}.cke_skin_kama .cke_menuitem a.cke_disabled .cke_icon_wrapper{\tbackground-color: $color !important;\tborder-color: $color !important;}.cke_skin_kama .cke_menuseparator{\tbackground-color: $color !important;}.cke_skin_kama .cke_menuitem a:hover,.cke_skin_kama .cke_menuitem a:focus,.cke_skin_kama .cke_menuitem a:active{\tbackground-color: $color !important;}';
+if(b.webkit){q=q.split('}').slice(0,-1);for(var r=0;r<q.length;r++)q[r]=q[r].split('{');}function s(v){var w=v.getById(m);if(!w){w=v.getHead().append('style');w.setAttribute('id',m);w.setAttribute('type','text/css');}return w;};function t(v,w,x){var y,z,A;for(var B=0;B<v.length;B++){if(b.webkit)for(z=0;z<w.length;z++){A=w[z][1];for(y=0;y<x.length;y++)A=A.replace(x[y][0],x[y][1]);v[B].$.sheet.addRule(w[z][0],A);}else{A=w;for(y=0;y<x.length;y++)A=A.replace(x[y][0],x[y][1]);if(c)v[B].$.styleSheet.cssText+=A;else v[B].$.innerHTML+=A;}}};var u=/\$color/g;e.extend(n,{uiColor:null,getUiColor:function(){return this.uiColor;},setUiColor:function(v){var w,x=s(a.document),y='.'+n.id,z=[y+' .cke_wrapper',y+'_dialog .cke_dialog_contents',y+'_dialog a.cke_dialog_tab',y+'_dialog .cke_dialog_footer'].join(','),A='background-color: $color !important;';if(b.webkit)w=[[z,A]];else w=z+'{'+A+'}';return(this.setUiColor=function(B){var C=[[u,B]];n.uiColor=B;t([x],w,C);t(o,q,C);})(v);}});n.on('menuShow',function(v){var w=v.data[0],x=w.element.getElementsByTag('iframe').getItem(0).getFrameDocument();if(!x.getById('cke_ui_color')){var y=s(x);o.push(y);var z=n.getUiColor();if(z)t([y],q,[[u,z]]);}});if(n.config.uiColor)n.setUiColor(n.config.uiColor);}};})());(function(){a.dialog?m():a.on('dialogPluginReady',m);function m(){a.dialog.on('resize',function(n){var o=n.data,p=o.width,q=o.height,r=o.dialog,s=r.parts.contents;if(o.skin!='kama')return;s.setStyles({width:p+'px',height:q+'px'});});};})();j.add('about',{requires:['dialog'],init:function(m){var n=m.addCommand('about',new a.dialogCommand('about'));n.modes={wysiwyg:1,source:1};n.canUndo=false;n.readOnly=1;m.ui.addButton('About',{label:m.lang.about.title,command:'about'});a.dialog.add('about',this.path+'dialogs/about.js');}});(function(){var m='a11yhelp',n='a11yHelp';j.add(m,{availableLangs:{cs:1,cy:1,da:1,de:1,el:1,en:1,eo:1,fa:1,fi:1,fr:1,gu:1,he:1,it:1,mk:1,nb:1,nl:1,no:1,tr:1,ug:1,vi:1,'zh-cn':1},init:function(o){var p=this;o.addCommand(n,{exec:function(){var q=o.langCode;q=p.availableLangs[q]?q:'en';a.scriptLoader.load(a.getUrl(p.path+'lang/'+q+'.js'),function(){e.extend(o.lang,p.langEntries[q]);o.openDialog(n);});},modes:{wysiwyg:1,source:1},readOnly:1,canUndo:false});a.dialog.add(n,this.path+'dialogs/a11yhelp.js');}});})();j.add('basicstyles',{requires:['styles','button'],init:function(m){var n=function(q,r,s,t){var u=new a.style(t);m.attachStyleStateChange(u,function(v){!m.readOnly&&m.getCommand(s).setState(v);});m.addCommand(s,new a.styleCommand(u));
+m.ui.addButton(q,{label:r,command:s});},o=m.config,p=m.lang;n('Bold',p.bold,'bold',o.coreStyles_bold);n('Italic',p.italic,'italic',o.coreStyles_italic);n('Underline',p.underline,'underline',o.coreStyles_underline);n('Strike',p.strike,'strike',o.coreStyles_strike);n('Subscript',p.subscript,'subscript',o.coreStyles_subscript);n('Superscript',p.superscript,'superscript',o.coreStyles_superscript);}});i.coreStyles_bold={element:'strong',overrides:'b'};i.coreStyles_italic={element:'em',overrides:'i'};i.coreStyles_underline={element:'u'};i.coreStyles_strike={element:'strike'};i.coreStyles_subscript={element:'sub'};i.coreStyles_superscript={element:'sup'};(function(){var m={table:1,ul:1,ol:1,blockquote:1,div:1},n={},o={};e.extend(n,m,{tr:1,p:1,div:1,li:1});e.extend(o,n,{td:1});function p(B){q(B);r(B);};function q(B){var C=B.editor,D=B.data.path;if(C.readOnly)return;var E=C.config.useComputedState,F;E=E===undefined||E;if(!E)F=s(D.lastElement);F=F||D.block||D.blockLimit;if(F.is('body')){var G=C.getSelection().getRanges()[0].getEnclosedNode();G&&G.type==1&&(F=G);}if(!F)return;var H=E?F.getComputedStyle('direction'):F.getStyle('direction')||F.getAttribute('dir');C.getCommand('bidirtl').setState(H=='rtl'?1:2);C.getCommand('bidiltr').setState(H=='ltr'?1:2);};function r(B){var C=B.editor,D=B.data.path.block||B.data.path.blockLimit;C.fire('contentDirChanged',D?D.getComputedStyle('direction'):C.lang.dir);};function s(B){while(B&&!(B.getName() in o||B.is('body'))){var C=B.getParent();if(!C)break;B=C;}return B;};function t(B,C,D,E){if(B.isReadOnly())return;h.setMarker(E,B,'bidi_processed',1);var F=B;while((F=F.getParent())&&!F.is('body')){if(F.getCustomData('bidi_processed')){B.removeStyle('direction');B.removeAttribute('dir');return;}}var G='useComputedState' in D.config?D.config.useComputedState:1,H=G?B.getComputedStyle('direction'):B.getStyle('direction')||B.hasAttribute('dir');if(H==C)return;B.removeStyle('direction');if(G){B.removeAttribute('dir');if(C!=B.getComputedStyle('direction'))B.setAttribute('dir',C);}else B.setAttribute('dir',C);D.forceNextSelectionCheck();};function u(B,C,D){var E=B.getCommonAncestor(false,true);B=B.clone();B.enlarge(D==2?3:2);if(B.checkBoundaryOfElement(E,1)&&B.checkBoundaryOfElement(E,2)){var F;while(E&&E.type==1&&(F=E.getParent())&&F.getChildCount()==1&&!(E.getName() in C))E=F;return E.type==1&&E.getName() in C&&E;}};function v(B){return function(C){var D=C.getSelection(),E=C.config.enterMode,F=D.getRanges();if(F&&F.length){var G={},H=D.createBookmarks(),I=F.createIterator(),J,K=0;
+while(J=I.getNextRange(1)){var L=J.getEnclosedNode();if(!L||L&&!(L.type==1&&L.getName() in n))L=u(J,m,E);L&&t(L,B,C,G);var M,N,O=new d.walker(J),P=H[K].startNode,Q=H[K++].endNode;O.evaluator=function(R){return!!(R.type==1&&R.getName() in m&&!(R.getName()==(E==1?'p':'div')&&R.getParent().type==1&&R.getParent().getName()=='blockquote')&&R.getPosition(P)&2&&(R.getPosition(Q)&4+16)==4);};while(N=O.next())t(N,B,C,G);M=J.createIterator();M.enlargeBr=E!=2;while(N=M.getNextParagraph(E==1?'p':'div'))t(N,B,C,G);}h.clearAllMarkers(G);C.forceNextSelectionCheck();D.selectBookmarks(H);C.focus();}};};j.add('bidi',{requires:['styles','button'],init:function(B){var C=function(E,F,G,H){B.addCommand(G,new a.command(B,{exec:H}));B.ui.addButton(E,{label:F,command:G});},D=B.lang.bidi;C('BidiLtr',D.ltr,'bidiltr',v('ltr'));C('BidiRtl',D.rtl,'bidirtl',v('rtl'));B.on('selectionChange',p);B.on('contentDom',function(){B.document.on('dirChanged',function(E){B.fire('dirChanged',{node:E.data,dir:E.data.getDirection(1)});});});}});function w(B){var C=B.getDocument().getBody().getParent();while(B){if(B.equals(C))return false;B=B.getParent();}return true;};function x(B){var C=B==y.setAttribute,D=B==y.removeAttribute,E=/\bdirection\s*:\s*(.*?)\s*(:?$|;)/;return function(F,G){var J=this;if(!J.getDocument().equals(a.document)){var H;if((F==(C||D?'dir':'direction')||F=='style'&&(D||E.test(G)))&&!w(J)){H=J.getDirection(1);var I=B.apply(J,arguments);if(H!=J.getDirection(1)){J.getDocument().fire('dirChanged',J);return I;}}}return B.apply(J,arguments);};};var y=h.prototype,z=['setStyle','removeStyle','setAttribute','removeAttribute'];for(var A=0;A<z.length;A++)y[z[A]]=e.override(y[z[A]],x);})();(function(){function m(q,r){var s=r.block||r.blockLimit;if(!s||s.getName()=='body')return 2;if(s.getAscendant('blockquote',true))return 1;return 2;};function n(q){var r=q.editor;if(r.readOnly)return;var s=r.getCommand('blockquote');s.state=m(r,q.data.path);s.fire('state');};function o(q){for(var r=0,s=q.getChildCount(),t;r<s&&(t=q.getChild(r));r++){if(t.type==1&&t.isBlockBoundary())return false;}return true;};var p={exec:function(q){var r=q.getCommand('blockquote').state,s=q.getSelection(),t=s&&s.getRanges(true)[0];if(!t)return;var u=s.createBookmarks();if(c){var v=u[0].startNode,w=u[0].endNode,x;if(v&&v.getParent().getName()=='blockquote'){x=v;while(x=x.getNext()){if(x.type==1&&x.isBlockBoundary()){v.move(x,true);break;}}}if(w&&w.getParent().getName()=='blockquote'){x=w;while(x=x.getPrevious()){if(x.type==1&&x.isBlockBoundary()){w.move(x);
+break;}}}}var y=t.createIterator(),z;y.enlargeBr=q.config.enterMode!=2;if(r==2){var A=[];while(z=y.getNextParagraph())A.push(z);if(A.length<1){var B=q.document.createElement(q.config.enterMode==1?'p':'div'),C=u.shift();t.insertNode(B);B.append(new d.text('\ufeff',q.document));t.moveToBookmark(C);t.selectNodeContents(B);t.collapse(true);C=t.createBookmark();A.push(B);u.unshift(C);}var D=A[0].getParent(),E=[];for(var F=0;F<A.length;F++){z=A[F];D=D.getCommonAncestor(z.getParent());}var G={table:1,tbody:1,tr:1,ol:1,ul:1};while(G[D.getName()])D=D.getParent();var H=null;while(A.length>0){z=A.shift();while(!z.getParent().equals(D))z=z.getParent();if(!z.equals(H))E.push(z);H=z;}while(E.length>0){z=E.shift();if(z.getName()=='blockquote'){var I=new d.documentFragment(q.document);while(z.getFirst()){I.append(z.getFirst().remove());A.push(I.getLast());}I.replace(z);}else A.push(z);}var J=q.document.createElement('blockquote');J.insertBefore(A[0]);while(A.length>0){z=A.shift();J.append(z);}}else if(r==1){var K=[],L={};while(z=y.getNextParagraph()){var M=null,N=null;while(z.getParent()){if(z.getParent().getName()=='blockquote'){M=z.getParent();N=z;break;}z=z.getParent();}if(M&&N&&!N.getCustomData('blockquote_moveout')){K.push(N);h.setMarker(L,N,'blockquote_moveout',true);}}h.clearAllMarkers(L);var O=[],P=[];L={};while(K.length>0){var Q=K.shift();J=Q.getParent();if(!Q.getPrevious())Q.remove().insertBefore(J);else if(!Q.getNext())Q.remove().insertAfter(J);else{Q.breakParent(Q.getParent());P.push(Q.getNext());}if(!J.getCustomData('blockquote_processed')){P.push(J);h.setMarker(L,J,'blockquote_processed',true);}O.push(Q);}h.clearAllMarkers(L);for(F=P.length-1;F>=0;F--){J=P[F];if(o(J))J.remove();}if(q.config.enterMode==2){var R=true;while(O.length){Q=O.shift();if(Q.getName()=='div'){I=new d.documentFragment(q.document);var S=R&&Q.getPrevious()&&!(Q.getPrevious().type==1&&Q.getPrevious().isBlockBoundary());if(S)I.append(q.document.createElement('br'));var T=Q.getNext()&&!(Q.getNext().type==1&&Q.getNext().isBlockBoundary());while(Q.getFirst())Q.getFirst().remove().appendTo(I);if(T)I.append(q.document.createElement('br'));I.replace(Q);R=false;}}}}s.selectBookmarks(u);q.focus();}};j.add('blockquote',{init:function(q){q.addCommand('blockquote',p);q.ui.addButton('Blockquote',{label:q.lang.blockquote,command:'blockquote'});q.on('selectionChange',n);},requires:['domiterator']});})();j.add('button',{beforeInit:function(m){m.ui.addHandler('button',k.button.handler);}});a.UI_BUTTON='button';
+k.button=function(m){e.extend(this,m,{title:m.label,className:m.className||m.command&&'cke_button_'+m.command||'',click:m.click||(function(n){n.execCommand(m.command);})});this._={};};k.button.handler={create:function(m){return new k.button(m);}};(function(){k.button.prototype={render:function(m,n){var o=b,p=this._.id=e.getNextId(),q='',r=this.command,s;this._.editor=m;var t={id:p,button:this,editor:m,focus:function(){var z=a.document.getById(p);z.focus();},execute:function(){if(c&&b.version<7)e.setTimeout(function(){this.button.click(m);},0,this);else this.button.click(m);}},u=e.addFunction(function(z){if(t.onkey){z=new d.event(z);return t.onkey(t,z.getKeystroke())!==false;}}),v=e.addFunction(function(z){var A;if(t.onfocus)A=t.onfocus(t,new d.event(z))!==false;if(b.gecko&&b.version<10900)z.preventBubble();return A;});t.clickFn=s=e.addFunction(t.execute,t);if(this.modes){var w={};function x(){var z=m.mode;if(z){var A=this.modes[z]?w[z]!=undefined?w[z]:2:0;this.setState(m.readOnly&&!this.readOnly?0:A);}};m.on('beforeModeUnload',function(){if(m.mode&&this._.state!=0)w[m.mode]=this._.state;},this);m.on('mode',x,this);!this.readOnly&&m.on('readOnly',x,this);}else if(r){r=m.getCommand(r);if(r){r.on('state',function(){this.setState(r.state);},this);q+='cke_'+(r.state==1?'on':r.state==0?'disabled':'off');}}if(!r)q+='cke_off';if(this.className)q+=' '+this.className;n.push('<span class="cke_button'+(this.icon&&this.icon.indexOf('.png')==-1?' cke_noalphafix':'')+'">','<a id="',p,'" class="',q,'"',o.gecko&&o.version>=10900&&!o.hc?'':'" href="javascript:void(\''+(this.title||'').replace("'",'')+"')\"",' title="',this.title,'" tabindex="-1" hidefocus="true" role="button" aria-labelledby="'+p+'_label"'+(this.hasArrow?' aria-haspopup="true"':''));if(o.opera||o.gecko&&o.mac)n.push(' onkeypress="return false;"');if(o.gecko)n.push(' onblur="this.style.cssText = this.style.cssText;"');n.push(' onkeydown="return CKEDITOR.tools.callFunction(',u,', event);" onfocus="return CKEDITOR.tools.callFunction(',v,', event);" '+(c?'onclick="return false;" onmouseup':'onclick')+'="CKEDITOR.tools.callFunction(',s,', this); return false;"><span class="cke_icon"');if(this.icon){var y=(this.iconOffset||0)*-16;n.push(' style="background-image:url(',a.getUrl(this.icon),');background-position:0 '+y+'px;"');}n.push('> </span><span id="',p,'_label" class="cke_label">',this.label,'</span>');if(this.hasArrow)n.push('<span class="cke_buttonarrow">'+(b.hc?'▼':' ')+'</span>');n.push('</a>','</span>');
+if(this.onRender)this.onRender();return t;},setState:function(m){if(this._.state==m)return false;this._.state=m;var n=a.document.getById(this._.id);if(n){n.setState(m);m==0?n.setAttribute('aria-disabled',true):n.removeAttribute('aria-disabled');m==1?n.setAttribute('aria-pressed',true):n.removeAttribute('aria-pressed');return true;}else return false;}};})();k.prototype.addButton=function(m,n){this.add(m,'button',n);};(function(){var m=function(y,z){var A=y.document,B=A.getBody(),C=false,D=function(){C=true;};B.on(z,D);(b.version>7?A.$:A.$.selection.createRange()).execCommand(z);B.removeListener(z,D);return C;},n=c?function(y,z){return m(y,z);}:function(y,z){try{return y.document.$.execCommand(z,false,null);}catch(A){return false;}},o=function(y){var z=this;z.type=y;z.canUndo=z.type=='cut';z.startDisabled=true;};o.prototype={exec:function(y,z){this.type=='cut'&&t(y);var A=n(y,this.type);if(!A)alert(y.lang.clipboard[this.type+'Error']);return A;}};var p={canUndo:false,exec:c?function(y){y.focus();if(!y.document.getBody().fire('beforepaste')&&!m(y,'paste')){y.fire('pasteDialog');return false;}}:function(y){try{if(!y.document.getBody().fire('beforepaste')&&!y.document.$.execCommand('Paste',false,null))throw 0;}catch(z){setTimeout(function(){y.fire('pasteDialog');},0);return false;}}},q=function(y){if(this.mode!='wysiwyg')return;switch(y.data.keyCode){case 1114112+86:case 2228224+45:var z=this.document.getBody();if(b.opera||b.gecko&&b.version<10900)z.fire('paste');return;case 1114112+88:case 2228224+46:var A=this;this.fire('saveSnapshot');setTimeout(function(){A.fire('saveSnapshot');},0);}};function r(y){y.cancel();};function s(y,z,A){var B=this.document;if(B.getById('cke_pastebin'))return;if(z=='text'&&y.data&&y.data.$.clipboardData){var C=y.data.$.clipboardData.getData('text/plain');if(C){y.data.preventDefault();A(C);return;}}var D=this.getSelection(),E=new d.range(B),F=new h(z=='text'?'textarea':b.webkit?'body':'div',B);F.setAttribute('id','cke_pastebin');b.webkit&&F.append(B.createText('\xa0'));B.getBody().append(F);F.setStyles({position:'absolute',top:D.getStartElement().getDocumentPosition().y+'px',width:'1px',height:'1px',overflow:'hidden'});F.setStyle(this.config.contentsLangDirection=='ltr'?'left':'right','-1000px');var G=D.createBookmarks();this.on('selectionChange',r,null,null,0);if(z=='text')F.$.focus();else{E.setStartAt(F,1);E.setEndAt(F,2);E.select(true);}var H=this;window.setTimeout(function(){H.document.getBody().focus();H.removeListener('selectionChange',r);
+var I;F=b.webkit&&(I=F.getFirst())&&I.is&&I.hasClass('Apple-style-span')?I:F;D.selectBookmarks(G);F.remove();A(F['get'+(z=='text'?'Value':'Html')]());},0);};function t(y){if(!c||b.quirks)return;var z=y.getSelection(),A;if(z.getType()==3&&(A=z.getSelectedElement())){var B=z.getRanges()[0],C=y.document.createText('');C.insertBefore(A);B.setStartBefore(C);B.setEndAfter(A);z.selectRanges([B]);setTimeout(function(){if(A.getParent()){C.remove();z.selectElement(A);}},0);}};var u;function v(y,z){c&&(u=1);var A=2;try{A=z.document.$.queryCommandEnabled(y)?2:0;}catch(B){}u=0;return A;};var w;function x(){var z=this;if(z.mode!='wysiwyg')return;z.getCommand('cut').setState(w?0:v('Cut',z));z.getCommand('copy').setState(v('Copy',z));var y=w?0:b.webkit?2:v('Paste',z);z.fire('pasteState',y);};j.add('clipboard',{requires:['dialog','htmldataprocessor'],init:function(y){y.on('paste',function(A){var B=A.data;if(B.html)y.insertHtml(B.html);else if(B.text)y.insertText(B.text);setTimeout(function(){y.fire('afterPaste');},0);},null,null,1000);y.on('pasteDialog',function(A){setTimeout(function(){y.openDialog('paste');},0);});y.on('pasteState',function(A){y.getCommand('paste').setState(A.data);});function z(A,B,C,D){var E=y.lang[B];y.addCommand(B,C);y.ui.addButton(A,{label:E,command:B});if(y.addMenuItems)y.addMenuItem(B,{label:E,command:B,group:'clipboard',order:D});};z('Cut','cut',new o('cut'),1);z('Copy','copy',new o('copy'),4);z('Paste','paste',p,8);a.dialog.add('paste',a.getUrl(this.path+'dialogs/paste.js'));y.on('key',q,y);y.on('contentDom',function(){var A=y.document.getBody();A.on(!c?'paste':'beforepaste',function(B){if(u)return;var C=B.data&&B.data.$;if(c&&C&&!C.ctrlKey)return;var D={mode:'html'};y.fire('beforePaste',D);s.call(y,B,D.mode,function(E){if(!(E=e.trim(E.replace(/<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig,''))))return;var F={};F[D.mode]=E;y.fire('paste',F);});});if(c){A.on('contextmenu',function(){u=1;setTimeout(function(){u=0;},0);});A.on('paste',function(B){if(!y.document.getById('cke_pastebin')){B.data.preventDefault();u=0;p.exec(y);}});}A.on('beforecut',function(){!u&&t(y);});A.on('mouseup',function(){setTimeout(function(){x.call(y);},0);},y);A.on('keyup',x,y);});y.on('selectionChange',function(A){w=A.data.selection.getRanges()[0].checkReadOnly();x.call(y);});if(y.contextMenu)y.contextMenu.addListener(function(A,B){var C=B.getRanges()[0].checkReadOnly();return{cut:!C&&v('Cut',y),copy:v('Copy',y),paste:!C&&(b.webkit?2:v('Paste',y))};});}});})();j.add('colorbutton',{requires:['panelbutton','floatpanel','styles'],init:function(m){var n=m.config,o=m.lang.colorButton,p;
+if(!b.hc){q('TextColor','fore',o.textColorTitle);q('BGColor','back',o.bgColorTitle);}function q(t,u,v){var w=e.getNextId()+'_colorBox';m.ui.add(t,'panelbutton',{label:v,title:v,className:'cke_button_'+t.toLowerCase(),modes:{wysiwyg:1},panel:{css:m.skin.editor.css,attributes:{role:'listbox','aria-label':o.panelTitle}},onBlock:function(x,y){y.autoSize=true;y.element.addClass('cke_colorblock');y.element.setHtml(r(x,u,w));y.element.getDocument().getBody().setStyle('overflow','hidden');k.fire('ready',this);var z=y.keys,A=m.lang.dir=='rtl';z[A?37:39]='next';z[40]='next';z[9]='next';z[A?39:37]='prev';z[38]='prev';z[2228224+9]='prev';z[32]='click';},onOpen:function(){var x=m.getSelection(),y=x&&x.getStartElement(),z=new d.elementPath(y),A;y=z.block||z.blockLimit||m.document.getBody();do A=y&&y.getComputedStyle(u=='back'?'background-color':'color')||'transparent';while(u=='back'&&A=='transparent'&&y&&(y=y.getParent()));if(!A||A=='transparent')A='#ffffff';this._.panel._.iframe.getFrameDocument().getById(w).setStyle('background-color',A);}});};function r(t,u,v){var w=[],x=n.colorButton_colors.split(','),y=e.addFunction(function(E,F){if(E=='?'){var G=arguments.callee;function H(J){this.removeListener('ok',H);this.removeListener('cancel',H);J.name=='ok'&&G(this.getContentElement('picker','selectedColor').getValue(),F);};m.openDialog('colordialog',function(){this.on('ok',H);this.on('cancel',H);});return;}m.focus();t.hide(false);m.fire('saveSnapshot');new a.style(n['colorButton_'+F+'Style'],{color:'inherit'}).remove(m.document);if(E){var I=n['colorButton_'+F+'Style'];I.childRule=F=='back'?function(J){return s(J);}:function(J){return!(J.is('a')||J.getElementsByTag('a').count())||s(J);};new a.style(I,{color:E}).apply(m.document);}m.fire('saveSnapshot');});w.push('<a class="cke_colorauto" _cke_focus=1 hidefocus=true title="',o.auto,'" onclick="CKEDITOR.tools.callFunction(',y,",null,'",u,"');return false;\" href=\"javascript:void('",o.auto,'\')" role="option"><table role="presentation" cellspacing=0 cellpadding=0 width="100%"><tr><td><span class="cke_colorbox" id="',v,'"></span></td><td colspan=7 align=center>',o.auto,'</td></tr></table></a><table role="presentation" cellspacing=0 cellpadding=0 width="100%">');for(var z=0;z<x.length;z++){if(z%8===0)w.push('</tr><tr>');var A=x[z].split('/'),B=A[0],C=A[1]||B;if(!A[1])B='#'+B.replace(/^(.)(.)(.)$/,'$1$1$2$2$3$3');var D=m.lang.colors[C]||C;w.push('<td><a class="cke_colorbox" _cke_focus=1 hidefocus=true title="',D,'" onclick="CKEDITOR.tools.callFunction(',y,",'",B,"','",u,"'); return false;\" href=\"javascript:void('",D,'\')" role="option"><span class="cke_colorbox" style="background-color:#',C,'"></span></a></td>');
+}if(n.colorButton_enableMore===undefined||n.colorButton_enableMore)w.push('</tr><tr><td colspan=8 align=center><a class="cke_colormore" _cke_focus=1 hidefocus=true title="',o.more,'" onclick="CKEDITOR.tools.callFunction(',y,",'?','",u,"');return false;\" href=\"javascript:void('",o.more,"')\"",' role="option">',o.more,'</a></td>');w.push('</tr></table>');return w.join('');};function s(t){return t.getAttribute('contentEditable')=='false'||t.getAttribute('data-nostyle');};}});i.colorButton_colors='000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF';i.colorButton_foreStyle={element:'span',styles:{color:'#(color)'},overrides:[{element:'font',attributes:{color:null}}]};i.colorButton_backStyle={element:'span',styles:{'background-color':'#(color)'}};j.colordialog={init:function(m){m.addCommand('colordialog',new a.dialogCommand('colordialog'));a.dialog.add('colordialog',this.path+'dialogs/colordialog.js');}};j.add('colordialog',j.colordialog);j.add('contextmenu',{requires:['menu'],onLoad:function(){j.contextMenu=e.createClass({base:a.menu,$:function(m){this.base.call(this,m,{panel:{className:m.skinClass+' cke_contextmenu',attributes:{'aria-label':m.lang.contextmenu.options}}});},proto:{addTarget:function(m,n){if(b.opera&&!('oncontextmenu' in document.body)){var o;m.on('mousedown',function(s){s=s.data;if(s.$.button!=2){if(s.getKeystroke()==1114112+1)m.fire('contextmenu',s);return;}if(n&&(b.mac?s.$.metaKey:s.$.ctrlKey))return;var t=s.getTarget();if(!o){var u=t.getDocument();o=u.createElement('input');o.$.type='button';u.getBody().append(o);}o.setAttribute('style','position:absolute;top:'+(s.$.clientY-2)+'px;left:'+(s.$.clientX-2)+'px;width:5px;height:5px;opacity:0.01');});m.on('mouseup',function(s){if(o){o.remove();o=undefined;m.fire('contextmenu',s.data);}});}m.on('contextmenu',function(s){var t=s.data;if(n&&(b.webkit?p:b.mac?t.$.metaKey:t.$.ctrlKey))return;t.preventDefault();var u=t.getTarget().getDocument().getDocumentElement(),v=t.$.clientX,w=t.$.clientY;e.setTimeout(function(){this.open(u,null,v,w);},c?200:0,this);},this);if(b.opera)m.on('keypress',function(s){var t=s.data;if(t.$.keyCode===0)t.preventDefault();});if(b.webkit){var p,q=function(s){p=b.mac?s.data.$.metaKey:s.data.$.ctrlKey;},r=function(){p=0;};m.on('keydown',q);m.on('keyup',r);m.on('contextmenu',r);
+}},open:function(m,n,o,p){this.editor.focus();m=m||a.document.getDocumentElement();this.show(m,n,o,p);}}});},beforeInit:function(m){m.contextMenu=new j.contextMenu(m);m.addCommand('contextMenu',{exec:function(){m.contextMenu.open(m.document.getBody());}});}});(function(){function m(o){var p=this.att,q=o&&o.hasAttribute(p)&&o.getAttribute(p)||'';if(q!==undefined)this.setValue(q);};function n(){var o;for(var p=0;p<arguments.length;p++){if(arguments[p] instanceof h){o=arguments[p];break;}}if(o){var q=this.att,r=this.getValue();if(r)o.setAttribute(q,r);else o.removeAttribute(q,r);}};j.add('dialogadvtab',{createAdvancedTab:function(o,p){if(!p)p={id:1,dir:1,classes:1,styles:1};var q=o.lang.common,r={id:'advanced',label:q.advancedTab,title:q.advancedTab,elements:[{type:'vbox',padding:1,children:[]}]},s=[];if(p.id||p.dir){if(p.id)s.push({id:'advId',att:'id',type:'text',label:q.id,setup:m,commit:n});if(p.dir)s.push({id:'advLangDir',att:'dir',type:'select',label:q.langDir,'default':'',style:'width:100%',items:[[q.notSet,''],[q.langDirLTR,'ltr'],[q.langDirRTL,'rtl']],setup:m,commit:n});r.elements[0].children.push({type:'hbox',widths:['50%','50%'],children:[].concat(s)});}if(p.styles||p.classes){s=[];if(p.styles)s.push({id:'advStyles',att:'style',type:'text',label:q.styles,'default':'',validate:a.dialog.validate.inlineStyle(q.invalidInlineStyle),onChange:function(){},getStyle:function(t,u){var v=this.getValue().match(new RegExp(t+'\\s*:\\s*([^;]*)','i'));return v?v[1]:u;},updateStyle:function(t,u){var v=this.getValue();if(v)v=v.replace(new RegExp('\\s*'+t+'s*:[^;]*(?:$|;s*)','i'),'').replace(/^[;\s]+/,'').replace(/\s+$/,'');if(u){v&&!/;\s*$/.test(v)&&(v+='; ');v+=t+': '+u;}this.setValue(v,1);},setup:m,commit:n});if(p.classes)s.push({type:'hbox',widths:['45%','55%'],children:[{id:'advCSSClasses',att:'class',type:'text',label:q.cssClasses,'default':'',setup:m,commit:n}]});r.elements[0].children.push({type:'hbox',widths:['50%','50%'],children:[].concat(s)});}return r;}});})();(function(){j.add('div',{requires:['editingblock','domiterator','styles'],init:function(m){var n=m.lang.div;m.addCommand('creatediv',new a.dialogCommand('creatediv'));m.addCommand('editdiv',new a.dialogCommand('editdiv'));m.addCommand('removediv',{exec:function(o){var p=o.getSelection(),q=p&&p.getRanges(),r,s=p.createBookmarks(),t,u=[];function v(x){var y=new d.elementPath(x),z=y.blockLimit,A=z.is('div')&&z;if(A&&!A.data('cke-div-added')){u.push(A);A.data('cke-div-added');}};for(var w=0;w<q.length;w++){r=q[w];
+if(r.collapsed)v(p.getStartElement());else{t=new d.walker(r);t.evaluator=v;t.lastForward();}}for(w=0;w<u.length;w++)u[w].remove(true);p.selectBookmarks(s);}});m.ui.addButton('CreateDiv',{label:n.toolbar,command:'creatediv'});if(m.addMenuItems){m.addMenuItems({editdiv:{label:n.edit,command:'editdiv',group:'div',order:1},removediv:{label:n.remove,command:'removediv',group:'div',order:5}});if(m.contextMenu)m.contextMenu.addListener(function(o,p){if(!o||o.isReadOnly())return null;var q=new d.elementPath(o),r=q.blockLimit;if(r&&r.getAscendant('div',true))return{editdiv:2,removediv:2};return null;});}a.dialog.add('creatediv',this.path+'dialogs/div.js');a.dialog.add('editdiv',this.path+'dialogs/div.js');}});})();(function(){var m={toolbarFocus:{editorFocus:false,readOnly:1,exec:function(o){var p=o._.elementsPath.idBase,q=a.document.getById(p+'0');q&&q.focus(c||b.air);}}},n='<span class="cke_empty"> </span>';j.add('elementspath',{requires:['selection'],init:function(o){var p='cke_path_'+o.name,q,r=function(){if(!q)q=a.document.getById(p);return q;},s='cke_elementspath_'+e.getNextNumber()+'_';o._.elementsPath={idBase:s,filters:[]};o.on('themeSpace',function(x){if(x.data.space=='bottom')x.data.html+='<span id="'+p+'_label" class="cke_voice_label">'+o.lang.elementsPath.eleLabel+'</span>'+'<div id="'+p+'" class="cke_path" role="group" aria-labelledby="'+p+'_label">'+n+'</div>';});function t(x){o.focus();var y=o._.elementsPath.list[x];if(y.is('body')){var z=new d.range(o.document);z.selectNodeContents(y);z.select();}else o.getSelection().selectElement(y);};var u=e.addFunction(t),v=e.addFunction(function(x,y){var z=o._.elementsPath.idBase,A;y=new d.event(y);var B=o.lang.dir=='rtl';switch(y.getKeystroke()){case B?39:37:case 9:A=a.document.getById(z+(x+1));if(!A)A=a.document.getById(z+'0');A.focus();return false;case B?37:39:case 2228224+9:A=a.document.getById(z+(x-1));if(!A)A=a.document.getById(z+(o._.elementsPath.list.length-1));A.focus();return false;case 27:o.focus();return false;case 13:case 32:t(x);return false;}return true;});o.on('selectionChange',function(x){var y=b,z=x.data.selection,A=z.getStartElement(),B=[],C=x.editor,D=C._.elementsPath.list=[],E=C._.elementsPath.filters;while(A){var F=0,G;if(A.data('cke-display-name'))G=A.data('cke-display-name');else if(A.data('cke-real-element-type'))G=A.data('cke-real-element-type');else G=A.getName();for(var H=0;H<E.length;H++){var I=E[H](A,G);if(I===false){F=1;break;}G=I||G;}if(!F){var J=D.push(A)-1,K='';if(y.opera||y.gecko&&y.mac)K+=' onkeypress="return false;"';
+if(y.gecko)K+=' onblur="this.style.cssText = this.style.cssText;"';var L=C.lang.elementsPath.eleTitle.replace(/%1/,G);B.unshift('<a id="',s,J,'" href="javascript:void(\'',G,'\')" tabindex="-1" title="',L,'"'+(b.gecko&&b.version<10900?' onfocus="event.preventBubble();"':'')+' hidefocus="true" '+' onkeydown="return CKEDITOR.tools.callFunction(',v,',',J,', event );"'+K,' onclick="CKEDITOR.tools.callFunction('+u,',',J,'); return false;"',' role="button" aria-labelledby="'+s+J+'_label">',G,'<span id="',s,J,'_label" class="cke_label">'+L+'</span>','</a>');}if(G=='body')break;A=A.getParent();}var M=r();M.setHtml(B.join('')+n);C.fire('elementsPathUpdate',{space:M});});function w(){q&&q.setHtml(n);delete o._.elementsPath.list;};o.on('readOnly',w);o.on('contentDomUnload',w);o.addCommand('elementsPathFocus',m.toolbarFocus);}});})();(function(){j.add('enterkey',{requires:['keystrokes','indent'],init:function(t){t.addCommand('enter',{modes:{wysiwyg:1},editorFocus:false,exec:function(v){r(v);}});t.addCommand('shiftEnter',{modes:{wysiwyg:1},editorFocus:false,exec:function(v){q(v);}});var u=t.keystrokeHandler.keystrokes;u[13]='enter';u[2228224+13]='shiftEnter';}});j.enterkey={enterBlock:function(t,u,v,w){v=v||s(t);if(!v)return;var x=v.document,y=v.checkStartOfBlock(),z=v.checkEndOfBlock(),A=new d.elementPath(v.startContainer),B=A.block;if(y&&z){if(B&&(B.is('li')||B.getParent().is('li'))){t.execCommand('outdent');return;}if(B&&B.getParent().is('blockquote')){B.breakParent(B.getParent());if(!B.getPrevious().getFirst(d.walker.invisible(1)))B.getPrevious().remove();if(!B.getNext().getFirst(d.walker.invisible(1)))B.getNext().remove();v.moveToElementEditStart(B);v.select();return;}}else if(B&&B.is('pre')){if(!z){n(t,u,v,w);return;}}else if(B&&f.$captionBlock[B.getName()]){n(t,u,v,w);return;}var C=u==3?'div':'p',D=v.splitBlock(C);if(!D)return;var E=D.previousBlock,F=D.nextBlock,G=D.wasStartOfBlock,H=D.wasEndOfBlock,I;if(F){I=F.getParent();if(I.is('li')){F.breakParent(I);F.move(F.getNext(),1);}}else if(E&&(I=E.getParent())&&I.is('li')){E.breakParent(I);I=E.getNext();v.moveToElementEditStart(I);E.move(E.getPrevious());}if(!G&&!H){if(F.is('li')&&(I=F.getFirst(d.walker.invisible(true)))&&I.is&&I.is('ul','ol'))(c?x.createText('\xa0'):x.createElement('br')).insertBefore(I);if(F)v.moveToElementEditStart(F);}else{var J,K;if(E){if(E.is('li')||!(p.test(E.getName())||E.is('pre')))J=E.clone();}else if(F)J=F.clone();if(!J){if(I&&I.is('li'))J=I;else{J=x.createElement(C);if(E&&(K=E.getDirection()))J.setAttribute('dir',K);
+}}else if(w&&!J.is('li'))J.renameNode(C);var L=D.elementPath;if(L)for(var M=0,N=L.elements.length;M<N;M++){var O=L.elements[M];if(O.equals(L.block)||O.equals(L.blockLimit))break;if(f.$removeEmpty[O.getName()]){O=O.clone();J.moveChildren(O);J.append(O);}}if(!c)J.appendBogus();if(!J.getParent())v.insertNode(J);J.is('li')&&J.removeAttribute('value');if(c&&G&&(!H||!E.getChildCount())){v.moveToElementEditStart(H?E:J);v.select();}v.moveToElementEditStart(G&&!H?F:J);}if(!c)if(F){var P=x.createElement('span');P.setHtml(' ');v.insertNode(P);P.scrollIntoView();v.deleteContents();}else J.scrollIntoView();v.select();},enterBr:function(t,u,v,w){v=v||s(t);if(!v)return;var x=v.document,y=u==3?'div':'p',z=v.checkEndOfBlock(),A=new d.elementPath(t.getSelection().getStartElement()),B=A.block,C=B&&A.block.getName(),D=false;if(!w&&C=='li'){o(t,u,v,w);return;}if(!w&&z&&p.test(C)){var E,F;if(F=B.getDirection()){E=x.createElement('div');E.setAttribute('dir',F);E.insertAfter(B);v.setStart(E,0);}else{x.createElement('br').insertAfter(B);if(b.gecko)x.createText('').insertAfter(B);v.setStartAt(B.getNext(),c?3:1);}}else{var G;D=C=='pre';if(D&&!b.gecko)G=x.createText(c?'\r':'\n');else G=x.createElement('br');v.deleteContents();v.insertNode(G);if(c)v.setStartAt(G,4);else{x.createText('\ufeff').insertAfter(G);if(z)G.getParent().appendBogus();G.getNext().$.nodeValue='';v.setStartAt(G.getNext(),1);var H=null;if(!b.gecko){H=x.createElement('span');H.setHtml(' ');}else H=x.createElement('br');H.insertBefore(G.getNext());H.scrollIntoView();H.remove();}}v.collapse(true);v.select(D);}};var m=j.enterkey,n=m.enterBr,o=m.enterBlock,p=/^h[1-6]$/;function q(t){if(t.mode!='wysiwyg')return false;return r(t,t.config.shiftEnterMode,1);};function r(t,u,v){v=t.config.forceEnterMode||v;if(t.mode!='wysiwyg')return false;if(!u)u=t.config.enterMode;setTimeout(function(){t.fire('saveSnapshot');if(u==2)n(t,u,null,v);else o(t,u,null,v);t.fire('saveSnapshot');},0);return true;};function s(t){var u=t.getSelection().getRanges(true);for(var v=u.length-1;v>0;v--)u[v].deleteContents();return u[0];};})();(function(){var m='nbsp,gt,lt,amp',n='quot,iexcl,cent,pound,curren,yen,brvbar,sect,uml,copy,ordf,laquo,not,shy,reg,macr,deg,plusmn,sup2,sup3,acute,micro,para,middot,cedil,sup1,ordm,raquo,frac14,frac12,frac34,iquest,times,divide,fnof,bull,hellip,prime,Prime,oline,frasl,weierp,image,real,trade,alefsym,larr,uarr,rarr,darr,harr,crarr,lArr,uArr,rArr,dArr,hArr,forall,part,exist,empty,nabla,isin,notin,ni,prod,sum,minus,lowast,radic,prop,infin,ang,and,or,cap,cup,int,there4,sim,cong,asymp,ne,equiv,le,ge,sub,sup,nsub,sube,supe,oplus,otimes,perp,sdot,lceil,rceil,lfloor,rfloor,lang,rang,loz,spades,clubs,hearts,diams,circ,tilde,ensp,emsp,thinsp,zwnj,zwj,lrm,rlm,ndash,mdash,lsquo,rsquo,sbquo,ldquo,rdquo,bdquo,dagger,Dagger,permil,lsaquo,rsaquo,euro',o='Agrave,Aacute,Acirc,Atilde,Auml,Aring,AElig,Ccedil,Egrave,Eacute,Ecirc,Euml,Igrave,Iacute,Icirc,Iuml,ETH,Ntilde,Ograve,Oacute,Ocirc,Otilde,Ouml,Oslash,Ugrave,Uacute,Ucirc,Uuml,Yacute,THORN,szlig,agrave,aacute,acirc,atilde,auml,aring,aelig,ccedil,egrave,eacute,ecirc,euml,igrave,iacute,icirc,iuml,eth,ntilde,ograve,oacute,ocirc,otilde,ouml,oslash,ugrave,uacute,ucirc,uuml,yacute,thorn,yuml,OElig,oelig,Scaron,scaron,Yuml',p='Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,Mu,Nu,Xi,Omicron,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi,Psi,Omega,alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,mu,nu,xi,omicron,pi,rho,sigmaf,sigma,tau,upsilon,phi,chi,psi,omega,thetasym,upsih,piv';
+function q(r,s){var t={},u=[],v={nbsp:'\xa0',shy:'­',gt:'>',lt:'<',amp:'&',apos:"'",quot:'"'};r=r.replace(/\b(nbsp|shy|gt|lt|amp|apos|quot)(?:,|$)/g,function(A,B){var C=s?'&'+B+';':v[B],D=s?v[B]:'&'+B+';';t[C]=D;u.push(C);return '';});if(!s&&r){r=r.split(',');var w=document.createElement('div'),x;w.innerHTML='&'+r.join(';&')+';';x=w.innerHTML;w=null;for(var y=0;y<x.length;y++){var z=x.charAt(y);t[z]='&'+r[y]+';';u.push(z);}}t.regex=u.join(s?'|':'');return t;};j.add('entities',{afterInit:function(r){var s=r.config,t=r.dataProcessor,u=t&&t.htmlFilter;if(u){var v=[];if(s.basicEntities!==false)v.push(m);if(s.entities){if(v.length)v.push(n);if(s.entities_latin)v.push(o);if(s.entities_greek)v.push(p);if(s.entities_additional)v.push(s.entities_additional);}var w=q(v.join(',')),x=w.regex?'['+w.regex+']':'a^';delete w.regex;if(s.entities&&s.entities_processNumerical)x='[^ -~]|'+x;x=new RegExp(x,'g');function y(C){return s.entities_processNumerical=='force'||!w[C]?'&#'+C.charCodeAt(0)+';':w[C];};var z=q([m,'shy'].join(','),true),A=new RegExp(z.regex,'g');function B(C){return z[C];};u.addRules({text:function(C){return C.replace(A,B).replace(x,y);}});}}});})();i.basicEntities=true;i.entities=true;i.entities_latin=true;i.entities_greek=true;i.entities_additional='#39';(function(){function m(v,w){var x=[];if(!w)return v;else for(var y in w)x.push(y+'='+encodeURIComponent(w[y]));return v+(v.indexOf('?')!=-1?'&':'?')+x.join('&');};function n(v){v+='';var w=v.charAt(0).toUpperCase();return w+v.substr(1);};function o(v){var C=this;var w=C.getDialog(),x=w.getParentEditor();x._.filebrowserSe=C;var y=x.config['filebrowser'+n(w.getName())+'WindowWidth']||x.config.filebrowserWindowWidth||'80%',z=x.config['filebrowser'+n(w.getName())+'WindowHeight']||x.config.filebrowserWindowHeight||'70%',A=C.filebrowser.params||{};A.CKEditor=x.name;A.CKEditorFuncNum=x._.filebrowserFn;if(!A.langCode)A.langCode=x.langCode;var B=m(C.filebrowser.url,A);x.popup(B,y,z,x.config.filebrowserWindowFeatures||x.config.fileBrowserWindowFeatures);};function p(v){var y=this;var w=y.getDialog(),x=w.getParentEditor();x._.filebrowserSe=y;if(!w.getContentElement(y['for'][0],y['for'][1]).getInputElement().$.value)return false;if(!w.getContentElement(y['for'][0],y['for'][1]).getAction())return false;return true;};function q(v,w,x){var y=x.params||{};y.CKEditor=v.name;y.CKEditorFuncNum=v._.filebrowserFn;if(!y.langCode)y.langCode=v.langCode;w.action=m(x.url,y);w.filebrowser=x;};function r(v,w,x,y){var z,A;for(var B in y){z=y[B];
+if(z.type=='hbox'||z.type=='vbox'||z.type=='fieldset')r(v,w,x,z.children);if(!z.filebrowser)continue;if(typeof z.filebrowser=='string'){var C={action:z.type=='fileButton'?'QuickUpload':'Browse',target:z.filebrowser};z.filebrowser=C;}if(z.filebrowser.action=='Browse'){var D=z.filebrowser.url;if(D===undefined){D=v.config['filebrowser'+n(w)+'BrowseUrl'];if(D===undefined)D=v.config.filebrowserBrowseUrl;}if(D){z.onClick=o;z.filebrowser.url=D;z.hidden=false;}}else if(z.filebrowser.action=='QuickUpload'&&z['for']){D=z.filebrowser.url;if(D===undefined){D=v.config['filebrowser'+n(w)+'UploadUrl'];if(D===undefined)D=v.config.filebrowserUploadUrl;}if(D){var E=z.onClick;z.onClick=function(F){var G=F.sender;if(E&&E.call(G,F)===false)return false;return p.call(G,F);};z.filebrowser.url=D;z.hidden=false;q(v,x.getContents(z['for'][0]).get(z['for'][1]),z.filebrowser);}}}};function s(v,w){var x=w.getDialog(),y=w.filebrowser.target||null;if(y){var z=y.split(':'),A=x.getContentElement(z[0],z[1]);if(A){A.setValue(v);x.selectPage(z[0]);}}};function t(v,w,x){if(x.indexOf(';')!==-1){var y=x.split(';');for(var z=0;z<y.length;z++){if(t(v,w,y[z]))return true;}return false;}var A=v.getContents(w).get(x).filebrowser;return A&&A.url;};function u(v,w){var A=this;var x=A._.filebrowserSe.getDialog(),y=A._.filebrowserSe['for'],z=A._.filebrowserSe.filebrowser.onSelect;if(y)x.getContentElement(y[0],y[1]).reset();if(typeof w=='function'&&w.call(A._.filebrowserSe)===false)return;if(z&&z.call(A._.filebrowserSe,v,w)===false)return;if(typeof w=='string'&&w)alert(w);if(v)s(v,A._.filebrowserSe);};j.add('filebrowser',{init:function(v,w){v._.filebrowserFn=e.addFunction(u,v);v.on('destroy',function(){e.removeFunction(this._.filebrowserFn);});}});a.on('dialogDefinition',function(v){var w=v.data.definition,x;for(var y in w.contents){if(x=w.contents[y]){r(v.editor,v.data.name,w,x.elements);if(x.hidden&&x.filebrowser)x.hidden=!t(w,x.id,x.filebrowser);}}});})();j.add('find',{init:function(m){var n=j.find;m.ui.addButton('Find',{label:m.lang.findAndReplace.find,command:'find'});var o=m.addCommand('find',new a.dialogCommand('find'));o.canUndo=false;o.readOnly=1;m.ui.addButton('Replace',{label:m.lang.findAndReplace.replace,command:'replace'});var p=m.addCommand('replace',new a.dialogCommand('replace'));p.canUndo=false;a.dialog.add('find',this.path+'dialogs/find.js');a.dialog.add('replace',this.path+'dialogs/find.js');},requires:['styles']});i.find_highlight={element:'span',styles:{'background-color':'#004',color:'#fff'}};
+(function(){var m=/\.swf(?:$|\?)/i;function n(p){var q=p.attributes;return q.type=='application/x-shockwave-flash'||m.test(q.src||'');};function o(p,q){return p.createFakeParserElement(q,'cke_flash','flash',true);};j.add('flash',{init:function(p){p.addCommand('flash',new a.dialogCommand('flash'));p.ui.addButton('Flash',{label:p.lang.common.flash,command:'flash'});a.dialog.add('flash',this.path+'dialogs/flash.js');p.addCss('img.cke_flash{background-image: url('+a.getUrl(this.path+'images/placeholder.png')+');'+'background-position: center center;'+'background-repeat: no-repeat;'+'border: 1px solid #a9a9a9;'+'width: 80px;'+'height: 80px;'+'}');if(p.addMenuItems)p.addMenuItems({flash:{label:p.lang.flash.properties,command:'flash',group:'flash'}});p.on('doubleclick',function(q){var r=q.data.element;if(r.is('img')&&r.data('cke-real-element-type')=='flash')q.data.dialog='flash';});if(p.contextMenu)p.contextMenu.addListener(function(q,r){if(q&&q.is('img')&&!q.isReadOnly()&&q.data('cke-real-element-type')=='flash')return{flash:2};});},afterInit:function(p){var q=p.dataProcessor,r=q&&q.dataFilter;if(r)r.addRules({elements:{'cke:object':function(s){var t=s.attributes,u=t.classid&&String(t.classid).toLowerCase();if(!u&&!n(s)){for(var v=0;v<s.children.length;v++){if(s.children[v].name=='cke:embed'){if(!n(s.children[v]))return null;return o(p,s);}}return null;}return o(p,s);},'cke:embed':function(s){if(!n(s))return null;return o(p,s);}}},5);},requires:['fakeobjects']});})();e.extend(i,{flashEmbedTagOnly:false,flashAddEmbedTag:true,flashConvertOnEdit:false});(function(){function m(n,o,p,q,r,s,t){var u=n.config,v=r.split(';'),w=[],x={};for(var y=0;y<v.length;y++){var z=v[y];if(z){z=z.split('/');var A={},B=v[y]=z[0];A[p]=w[y]=z[1]||B;x[B]=new a.style(t,A);x[B]._.definition.name=B;}else v.splice(y--,1);}n.ui.addRichCombo(o,{label:q.label,title:q.panelTitle,className:'cke_'+(p=='size'?'fontSize':'font'),panel:{css:n.skin.editor.css.concat(u.contentsCss),multiSelect:false,attributes:{'aria-label':q.panelTitle}},init:function(){this.startGroup(q.panelTitle);for(var C=0;C<v.length;C++){var D=v[C];this.add(D,x[D].buildPreview(),D);}},onClick:function(C){n.focus();n.fire('saveSnapshot');var D=x[C];if(this.getValue()==C)D.remove(n.document);else D.apply(n.document);n.fire('saveSnapshot');},onRender:function(){n.on('selectionChange',function(C){var D=this.getValue(),E=C.data.path,F=E.elements;for(var G=0,H;G<F.length;G++){H=F[G];for(var I in x){if(x[I].checkElementRemovable(H,true)){if(I!=D)this.setValue(I);
+return;}}}this.setValue('',s);},this);}});};j.add('font',{requires:['richcombo','styles'],init:function(n){var o=n.config;m(n,'Font','family',n.lang.font,o.font_names,o.font_defaultLabel,o.font_style);m(n,'FontSize','size',n.lang.fontSize,o.fontSize_sizes,o.fontSize_defaultLabel,o.fontSize_style);}});})();i.font_names='Arial/Arial, Helvetica, sans-serif;Comic Sans MS/Comic Sans MS, cursive;Courier New/Courier New, Courier, monospace;Georgia/Georgia, serif;Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;Tahoma/Tahoma, Geneva, sans-serif;Times New Roman/Times New Roman, Times, serif;Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;Verdana/Verdana, Geneva, sans-serif';i.font_defaultLabel='';i.font_style={element:'span',styles:{'font-family':'#(family)'},overrides:[{element:'font',attributes:{face:null}}]};i.fontSize_sizes='8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px';i.fontSize_defaultLabel='';i.fontSize_style={element:'span',styles:{'font-size':'#(size)'},overrides:[{element:'font',attributes:{size:null}}]};j.add('format',{requires:['richcombo','styles'],init:function(m){var n=m.config,o=m.lang.format,p=n.format_tags.split(';'),q={};for(var r=0;r<p.length;r++){var s=p[r];q[s]=new a.style(n['format_'+s]);q[s]._.enterMode=m.config.enterMode;}m.ui.addRichCombo('Format',{label:o.label,title:o.panelTitle,className:'cke_format',panel:{css:m.skin.editor.css.concat(n.contentsCss),multiSelect:false,attributes:{'aria-label':o.panelTitle}},init:function(){this.startGroup(o.panelTitle);for(var t in q){var u=o['tag_'+t];this.add(t,q[t].buildPreview(u),u);}},onClick:function(t){m.focus();m.fire('saveSnapshot');var u=q[t],v=new d.elementPath(m.getSelection().getStartElement());u[u.checkActive(v)?'remove':'apply'](m.document);setTimeout(function(){m.fire('saveSnapshot');},0);},onRender:function(){m.on('selectionChange',function(t){var u=this.getValue(),v=t.data.path;for(var w in q){if(q[w].checkActive(v)){if(w!=u)this.setValue(w,m.lang.format['tag_'+w]);return;}}this.setValue('');},this);}});}});i.format_tags='p;h1;h2;h3;h4;h5;h6;pre;address;div';i.format_p={element:'p'};i.format_div={element:'div'};i.format_pre={element:'pre'};i.format_address={element:'address'};i.format_h1={element:'h1'};i.format_h2={element:'h2'};i.format_h3={element:'h3'};i.format_h4={element:'h4'};i.format_h5={element:'h5'};i.format_h6={element:'h6'};j.add('forms',{init:function(m){var n=m.lang;m.addCss('form{border: 1px dotted #FF0000;padding: 2px;}\n');
+m.addCss('img.cke_hidden{background-image: url('+a.getUrl(this.path+'images/hiddenfield.gif')+');'+'background-position: center center;'+'background-repeat: no-repeat;'+'border: 1px solid #a9a9a9;'+'width: 16px !important;'+'height: 16px !important;'+'}');var o=function(q,r,s){m.addCommand(r,new a.dialogCommand(r));m.ui.addButton(q,{label:n.common[q.charAt(0).toLowerCase()+q.slice(1)],command:r});a.dialog.add(r,s);},p=this.path+'dialogs/';o('Form','form',p+'form.js');o('Checkbox','checkbox',p+'checkbox.js');o('Radio','radio',p+'radio.js');o('TextField','textfield',p+'textfield.js');o('Textarea','textarea',p+'textarea.js');o('Select','select',p+'select.js');o('Button','button',p+'button.js');o('ImageButton','imagebutton',j.getPath('image')+'dialogs/image.js');o('HiddenField','hiddenfield',p+'hiddenfield.js');if(m.addMenuItems)m.addMenuItems({form:{label:n.form.menu,command:'form',group:'form'},checkbox:{label:n.checkboxAndRadio.checkboxTitle,command:'checkbox',group:'checkbox'},radio:{label:n.checkboxAndRadio.radioTitle,command:'radio',group:'radio'},textfield:{label:n.textfield.title,command:'textfield',group:'textfield'},hiddenfield:{label:n.hidden.title,command:'hiddenfield',group:'hiddenfield'},imagebutton:{label:n.image.titleButton,command:'imagebutton',group:'imagebutton'},button:{label:n.button.title,command:'button',group:'button'},select:{label:n.select.title,command:'select',group:'select'},textarea:{label:n.textarea.title,command:'textarea',group:'textarea'}});if(m.contextMenu){m.contextMenu.addListener(function(q){if(q&&q.hasAscendant('form',true)&&!q.isReadOnly())return{form:2};});m.contextMenu.addListener(function(q){if(q&&!q.isReadOnly()){var r=q.getName();if(r=='select')return{select:2};if(r=='textarea')return{textarea:2};if(r=='input')switch(q.getAttribute('type')){case 'button':case 'submit':case 'reset':return{button:2};case 'checkbox':return{checkbox:2};case 'radio':return{radio:2};case 'image':return{imagebutton:2};default:return{textfield:2};}if(r=='img'&&q.data('cke-real-element-type')=='hiddenfield')return{hiddenfield:2};}});}m.on('doubleclick',function(q){var r=q.data.element;if(r.is('form'))q.data.dialog='form';else if(r.is('select'))q.data.dialog='select';else if(r.is('textarea'))q.data.dialog='textarea';else if(r.is('img')&&r.data('cke-real-element-type')=='hiddenfield')q.data.dialog='hiddenfield';else if(r.is('input'))switch(r.getAttribute('type')){case 'button':case 'submit':case 'reset':q.data.dialog='button';break;case 'checkbox':q.data.dialog='checkbox';
+break;case 'radio':q.data.dialog='radio';break;case 'image':q.data.dialog='imagebutton';break;default:q.data.dialog='textfield';break;}});},afterInit:function(m){var n=m.dataProcessor,o=n&&n.htmlFilter,p=n&&n.dataFilter;if(c)o&&o.addRules({elements:{input:function(q){var r=q.attributes,s=r.type;if(!s)r.type='text';if(s=='checkbox'||s=='radio')r.value=='on'&&delete r.value;}}});if(p)p.addRules({elements:{input:function(q){if(q.attributes.type=='hidden')return m.createFakeParserElement(q,'cke_hidden','hiddenfield');}}});},requires:['image','fakeobjects']});if(c)h.prototype.hasAttribute=e.override(h.prototype.hasAttribute,function(m){return function(n){var q=this;var o=q.$.attributes.getNamedItem(n);if(q.getName()=='input')switch(n){case 'class':return q.$.className.length>0;case 'checked':return!!q.$.checked;case 'value':var p=q.getAttribute('type');return p=='checkbox'||p=='radio'?q.$.value!='on':q.$.value;}return m.apply(q,arguments);};});(function(){var m={canUndo:false,exec:function(o){var p=o.document.createElement('hr'),q=new d.range(o.document);o.insertElement(p);q.moveToPosition(p,4);var r=p.getNext();if(!r||r.type==1&&!r.isEditable())q.fixBlock(true,o.config.enterMode==3?'div':'p');q.select();}},n='horizontalrule';j.add(n,{init:function(o){o.addCommand(n,m);o.ui.addButton('HorizontalRule',{label:o.lang.horizontalrule,command:n});}});})();(function(){var m=/^[\t\r\n ]*(?: |\xa0)$/,n='{cke_protected}';function o(T){var U=T.children.length,V=T.children[U-1];while(V&&V.type==3&&!e.trim(V.value))V=T.children[--U];return V;};function p(T,U){var V=T.children,W=o(T);if(W){if((U||!c)&&W.type==1&&W.name=='br')V.pop();if(W.type==3&&m.test(W.value))V.pop();}};function q(T,U,V){if(!U&&(!V||typeof V=='function'&&V(T)===false))return false;if(U&&c&&(document.documentMode>7||T.name in f.tr||T.name in f.$listItem))return false;var W=o(T);return!W||W&&(W.type==1&&W.name=='br'||T.name=='form'&&W.name=='input');};function r(T,U){return function(V){p(V,!T);if(q(V,!T,U))if(T||c)V.add(new a.htmlParser.text('\xa0'));else V.add(new a.htmlParser.element('br',{}));};};var s=f,t=['caption','colgroup','col','thead','tfoot','tbody'],u=e.extend({},s.$block,s.$listItem,s.$tableContent);for(var v in u){if(!('br' in s[v]))delete u[v];}delete u.pre;var w={elements:{},attributeNames:[[/^on/,'data-cke-pa-on']]},x={elements:{}};for(v in u)x.elements[v]=r();var y={elementNames:[[/^cke:/,''],[/^\?xml:namespace$/,'']],attributeNames:[[/^data-cke-(saved|pa)-/,''],[/^data-cke-.*/,''],['hidefocus','']],elements:{$:function(T){var U=T.attributes;
+if(U){if(U['data-cke-temp'])return false;var V=['name','href','src'],W;for(var X=0;X<V.length;X++){W='data-cke-saved-'+V[X];W in U&&delete U[V[X]];}}return T;},table:function(T){var U=T.children;U.sort(function(V,W){return V.type==1&&W.type==V.type?e.indexOf(t,V.name)>e.indexOf(t,W.name)?1:-1:0;});},embed:function(T){var U=T.parent;if(U&&U.name=='object'){var V=U.attributes.width,W=U.attributes.height;V&&(T.attributes.width=V);W&&(T.attributes.height=W);}},param:function(T){T.children=[];T.isEmpty=true;return T;},a:function(T){if(!(T.children.length||T.attributes.name||T.attributes['data-cke-saved-name']))return false;},span:function(T){if(T.attributes['class']=='Apple-style-span')delete T.name;},pre:function(T){c&&p(T);},html:function(T){delete T.attributes.contenteditable;delete T.attributes['class'];},body:function(T){delete T.attributes.spellcheck;delete T.attributes.contenteditable;},style:function(T){var U=T.children[0];U&&U.value&&(U.value=e.trim(U.value));if(!T.attributes.type)T.attributes.type='text/css';},title:function(T){var U=T.children[0];U&&(U.value=T.attributes['data-cke-title']||'');}},attributes:{'class':function(T,U){return e.ltrim(T.replace(/(?:^|\s+)cke_[^\s]*/g,''))||false;}}};if(c)y.attributes.style=function(T,U){return T.replace(/(^|;)([^\:]+)/g,function(V){return V.toLowerCase();});};function z(T){var U=T.attributes;if(U.contenteditable!='false')U['data-cke-editable']=U.contenteditable?'true':1;U.contenteditable='false';};function A(T){var U=T.attributes;switch(U['data-cke-editable']){case 'true':U.contenteditable='true';break;case '1':delete U.contenteditable;break;}};for(v in {input:1,textarea:1}){w.elements[v]=z;y.elements[v]=A;}var B=/<(a|area|img|input)\b([^>]*)>/gi,C=/\b(on\w+|href|src|name)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,D=/(?:<style(?=[ >])[^>]*>[\s\S]*<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,E=/<cke:encoded>([^<]*)<\/cke:encoded>/gi,F=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,G=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,H=/<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi;function I(T){return T.replace(B,function(U,V,W){return '<'+V+W.replace(C,function(X,Y){if(!/^on/.test(Y)&&W.indexOf('data-cke-saved-'+Y)==-1)return ' data-cke-saved-'+X+' data-cke-'+a.rnd+'-'+X;return X;})+'>';});};function J(T){return T.replace(D,function(U){return '<cke:encoded>'+encodeURIComponent(U)+'</cke:encoded>';});};function K(T){return T.replace(E,function(U,V){return decodeURIComponent(V);});};function L(T){return T.replace(F,'$1cke:$2');
+};function M(T){return T.replace(G,'$1$2');};function N(T){return T.replace(H,'<cke:$1$2></cke:$1>');};function O(T){return T.replace(/(<pre\b[^>]*>)(\r\n|\n)/g,'$1$2$2');};function P(T){return T.replace(/<!--(?!{cke_protected})[\s\S]+?-->/g,function(U){return '<!--'+n+'{C}'+encodeURIComponent(U).replace(/--/g,'%2D%2D')+'-->';});};function Q(T){return T.replace(/<!--\{cke_protected\}\{C\}([\s\S]+?)-->/g,function(U,V){return decodeURIComponent(V);});};function R(T,U){var V=U._.dataStore;return T.replace(/<!--\{cke_protected\}([\s\S]+?)-->/g,function(W,X){return decodeURIComponent(X);}).replace(/\{cke_protected_(\d+)\}/g,function(W,X){return V&&V[X]||'';});};function S(T,U){var V=[],W=U.config.protectedSource,X=U._.dataStore||(U._.dataStore={id:1}),Y=/<\!--\{cke_temp(comment)?\}(\d*?)-->/g,Z=[/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi].concat(W);T=T.replace(/<!--[\s\S]*?-->/g,function(ab){return '<!--{cke_tempcomment}'+(V.push(ab)-1)+'-->';});for(var aa=0;aa<Z.length;aa++)T=T.replace(Z[aa],function(ab){ab=ab.replace(Y,function(ac,ad,ae){return V[ae];});return/cke_temp(comment)?/.test(ab)?ab:'<!--{cke_temp}'+(V.push(ab)-1)+'-->';});T=T.replace(Y,function(ab,ac,ad){return '<!--'+n+(ac?'{C}':'')+encodeURIComponent(V[ad]).replace(/--/g,'%2D%2D')+'-->';});return T.replace(/(['"]).*?\1/g,function(ab){return ab.replace(/<!--\{cke_protected\}([\s\S]+?)-->/g,function(ac,ad){X[X.id]=decodeURIComponent(ad);return '{cke_protected_'+X.id++ +'}';});});};j.add('htmldataprocessor',{requires:['htmlwriter'],init:function(T){var U=T.dataProcessor=new a.htmlDataProcessor(T);U.writer.forceSimpleAmpersand=T.config.forceSimpleAmpersand;U.dataFilter.addRules(w);U.dataFilter.addRules(x);U.htmlFilter.addRules(y);var V={elements:{}};for(v in u)V.elements[v]=r(true,T.config.fillEmptyBlocks);U.htmlFilter.addRules(V);},onLoad:function(){!('fillEmptyBlocks' in i)&&(i.fillEmptyBlocks=1);}});a.htmlDataProcessor=function(T){var U=this;U.editor=T;U.writer=new a.htmlWriter();U.dataFilter=new a.htmlParser.filter();U.htmlFilter=new a.htmlParser.filter();};a.htmlDataProcessor.prototype={toHtml:function(T,U){T=S(T,this.editor);T=I(T);T=J(T);T=L(T);T=N(T);T=O(T);var V=new h('div');V.setHtml('a'+T);T=V.getHtml().substr(1);T=T.replace(new RegExp(' data-cke-'+a.rnd+'-','ig'),' ');T=M(T);T=K(T);T=Q(T);var W=a.htmlParser.fragment.fromHtml(T,U),X=new a.htmlParser.basicWriter();W.writeHtml(X,this.dataFilter);T=X.getHtml(true);T=P(T);return T;},toDataFormat:function(T,U){var V=this.writer,W=a.htmlParser.fragment.fromHtml(T,U);
+V.reset();W.writeHtml(V,this.htmlFilter);var X=V.getHtml(true);X=Q(X);X=R(X,this.editor);return X;}};})();(function(){j.add('iframe',{requires:['dialog','fakeobjects'],init:function(m){var n='iframe',o=m.lang.iframe;a.dialog.add(n,this.path+'dialogs/iframe.js');m.addCommand(n,new a.dialogCommand(n));m.addCss('img.cke_iframe{background-image: url('+a.getUrl(this.path+'images/placeholder.png')+');'+'background-position: center center;'+'background-repeat: no-repeat;'+'border: 1px solid #a9a9a9;'+'width: 80px;'+'height: 80px;'+'}');m.ui.addButton('Iframe',{label:o.toolbar,command:n});m.on('doubleclick',function(p){var q=p.data.element;if(q.is('img')&&q.data('cke-real-element-type')=='iframe')p.data.dialog='iframe';});if(m.addMenuItems)m.addMenuItems({iframe:{label:o.title,command:'iframe',group:'image'}});if(m.contextMenu)m.contextMenu.addListener(function(p,q){if(p&&p.is('img')&&p.data('cke-real-element-type')=='iframe')return{iframe:2};});},afterInit:function(m){var n=m.dataProcessor,o=n&&n.dataFilter;if(o)o.addRules({elements:{iframe:function(p){return m.createFakeParserElement(p,'cke_iframe','iframe',true);}}});}});})();(function(){j.add('image',{init:function(o){var p='image';a.dialog.add(p,this.path+'dialogs/image.js');o.addCommand(p,new a.dialogCommand(p));o.ui.addButton('Image',{label:o.lang.common.image,command:p});o.on('doubleclick',function(q){var r=q.data.element;if(r.is('img')&&!r.data('cke-realelement')&&!r.isReadOnly())q.data.dialog='image';});if(o.addMenuItems)o.addMenuItems({image:{label:o.lang.image.menu,command:'image',group:'image'}});if(o.contextMenu)o.contextMenu.addListener(function(q,r){if(m(o,q))return{image:2};});},afterInit:function(o){p('left');p('right');p('center');p('block');function p(q){var r=o.getCommand('justify'+q);if(r){if(q=='left'||q=='right')r.on('exec',function(s){var t=m(o),u;if(t){u=n(t);if(u==q){t.removeStyle('float');if(q==n(t))t.removeAttribute('align');}else t.setStyle('float',q);s.cancel();}});r.on('refresh',function(s){var t=m(o),u;if(t){u=n(t);this.setState(u==q?1:q=='right'||q=='left'?2:0);s.cancel();}});}};}});function m(o,p){if(!p){var q=o.getSelection();p=q.getType()==3&&q.getSelectedElement();}if(p&&p.is('img')&&!p.data('cke-realelement')&&!p.isReadOnly())return p;};function n(o){var p=o.getStyle('float');if(p=='inherit'||p=='none')p=0;if(!p)p=o.getAttribute('align');return p;};})();i.image_removeLinkByEmptyURL=true;(function(){var m={ol:1,ul:1},n=d.walker.whitespaces(true),o=d.walker.bookmark(false,true);
+function p(t){var B=this;if(t.editor.readOnly)return null;var u=t.editor,v=t.data.path,w=v&&v.contains(m),x=v.block||v.blockLimit;if(w)return B.setState(2);if(!B.useIndentClasses&&B.name=='indent')return B.setState(2);if(!x)return B.setState(0);if(B.useIndentClasses){var y=x.$.className.match(B.classNameRegex),z=0;if(y){y=y[1];z=B.indentClassMap[y];}if(B.name=='outdent'&&!z||B.name=='indent'&&z==u.config.indentClasses.length)return B.setState(0);return B.setState(2);}else{var A=parseInt(x.getStyle(r(x)),10);if(isNaN(A))A=0;if(A<=0)return B.setState(0);return B.setState(2);}};function q(t,u){var w=this;w.name=u;w.useIndentClasses=t.config.indentClasses&&t.config.indentClasses.length>0;if(w.useIndentClasses){w.classNameRegex=new RegExp('(?:^|\\s+)('+t.config.indentClasses.join('|')+')(?=$|\\s)');w.indentClassMap={};for(var v=0;v<t.config.indentClasses.length;v++)w.indentClassMap[t.config.indentClasses[v]]=v+1;}w.startDisabled=u=='outdent';};function r(t,u){return(u||t.getComputedStyle('direction'))=='ltr'?'margin-left':'margin-right';};function s(t){return t.type==1&&t.is('li');};q.prototype={exec:function(t){var u=this,v={};function w(M){var N=C.startContainer,O=C.endContainer;while(N&&!N.getParent().equals(M))N=N.getParent();while(O&&!O.getParent().equals(M))O=O.getParent();if(!N||!O)return;var P=N,Q=[],R=false;while(!R){if(P.equals(O))R=true;Q.push(P);P=P.getNext();}if(Q.length<1)return;var S=M.getParents(true);for(var T=0;T<S.length;T++){if(S[T].getName&&m[S[T].getName()]){M=S[T];break;}}var U=u.name=='indent'?1:-1,V=Q[0],W=Q[Q.length-1],X=j.list.listToArray(M,v),Y=X[W.getCustomData('listarray_index')].indent;for(T=V.getCustomData('listarray_index');T<=W.getCustomData('listarray_index');T++){X[T].indent+=U;var Z=X[T].parent;X[T].parent=new h(Z.getName(),Z.getDocument());}for(T=W.getCustomData('listarray_index')+1;T<X.length&&X[T].indent>Y;T++)X[T].indent+=U;var aa=j.list.arrayToList(X,v,null,t.config.enterMode,M.getDirection());if(u.name=='outdent'){var ab;if((ab=M.getParent())&&ab.is('li')){var ac=aa.listNode.getChildren(),ad=[],ae=ac.count(),af;for(T=ae-1;T>=0;T--){if((af=ac.getItem(T))&&af.is&&af.is('li'))ad.push(af);}}}if(aa)aa.listNode.replace(M);if(ad&&ad.length)for(T=0;T<ad.length;T++){var ag=ad[T],ah=ag;while((ah=ah.getNext())&&ah.is&&ah.getName() in m){if(c&&!ag.getFirst(function(ai){return n(ai)&&o(ai);}))ag.append(C.document.createText('\xa0'));ag.append(ah);}ag.insertAfter(ab);}};function x(){var M=C.createIterator(),N=t.config.enterMode;M.enforceRealBlocks=true;
+M.enlargeBr=N!=2;var O;while(O=M.getNextParagraph(N==1?'p':'div'))y(O);};function y(M,N){if(M.getCustomData('indent_processed'))return false;if(u.useIndentClasses){var O=M.$.className.match(u.classNameRegex),P=0;if(O){O=O[1];P=u.indentClassMap[O];}if(u.name=='outdent')P--;else P++;if(P<0)return false;P=Math.min(P,t.config.indentClasses.length);P=Math.max(P,0);M.$.className=e.ltrim(M.$.className.replace(u.classNameRegex,''));if(P>0)M.addClass(t.config.indentClasses[P-1]);}else{var Q=r(M,N),R=parseInt(M.getStyle(Q),10);if(isNaN(R))R=0;var S=t.config.indentOffset||40;R+=(u.name=='indent'?1:-1)*S;if(R<0)return false;R=Math.max(R,0);R=Math.ceil(R/S)*S;M.setStyle(Q,R?R+(t.config.indentUnit||'px'):'');if(M.getAttribute('style')==='')M.removeAttribute('style');}h.setMarker(v,M,'indent_processed',1);return true;};var z=t.getSelection(),A=z.createBookmarks(1),B=z&&z.getRanges(1),C,D=B.createIterator();while(C=D.getNextRange()){var E=C.getCommonAncestor(),F=E;while(F&&!(F.type==1&&m[F.getName()]))F=F.getParent();if(!F){var G=C.getEnclosedNode();if(G&&G.type==1&&G.getName() in m){C.setStartAt(G,1);C.setEndAt(G,2);F=G;}}if(F&&C.startContainer.type==1&&C.startContainer.getName() in m){var H=new d.walker(C);H.evaluator=s;C.startContainer=H.next();}if(F&&C.endContainer.type==1&&C.endContainer.getName() in m){H=new d.walker(C);H.evaluator=s;C.endContainer=H.previous();}if(F){var I=F.getFirst(s),J=!!I.getNext(s),K=C.startContainer,L=I.equals(K)||I.contains(K);if(!(L&&(u.name=='indent'||u.useIndentClasses||parseInt(F.getStyle(r(F)),10))&&y(F,!J&&I.getDirection())))w(F);}else x();}h.clearAllMarkers(v);t.forceNextSelectionCheck();z.selectBookmarks(A);}};j.add('indent',{init:function(t){var u=t.addCommand('indent',new q(t,'indent')),v=t.addCommand('outdent',new q(t,'outdent'));t.ui.addButton('Indent',{label:t.lang.indent,command:'indent'});t.ui.addButton('Outdent',{label:t.lang.outdent,command:'outdent'});t.on('selectionChange',e.bind(p,u));t.on('selectionChange',e.bind(p,v));if(b.ie6Compat||b.ie7Compat)t.addCss('ul,ol{\tmargin-left: 0px;\tpadding-left: 40px;}');t.on('dirChanged',function(w){var x=new d.range(t.document);x.setStartBefore(w.data.node);x.setEndAfter(w.data.node);var y=new d.walker(x),z;while(z=y.next()){if(z.type==1){if(!z.equals(w.data.node)&&z.getDirection()){x.setStartAfter(z);y=new d.walker(x);continue;}var A=t.config.indentClasses;if(A){var B=w.data.dir=='ltr'?['_rtl','']:['','_rtl'];for(var C=0;C<A.length;C++){if(z.hasClass(A[C]+B[0])){z.removeClass(A[C]+B[0]);
+z.addClass(A[C]+B[1]);}}}var D=z.getStyle('margin-right'),E=z.getStyle('margin-left');D?z.setStyle('margin-left',D):z.removeStyle('margin-left');E?z.setStyle('margin-right',E):z.removeStyle('margin-right');}}});t.on('key',function(w){if(t.mode=='wysiwyg'&&w.data.keyCode==8){var x=t.getSelection(),y=x.getRanges()[0],z;if(y.collapsed&&(z=y.startContainer.getAscendant('li',1))&&y.checkBoundaryOfElement(z,1)){t.execCommand('outdent');w.cancel();}}});},requires:['domiterator','list']});})();(function(){function m(q,r){r=r===undefined||r;var s;if(r)s=q.getComputedStyle('text-align');else{while(!q.hasAttribute||!(q.hasAttribute('align')||q.getStyle('text-align'))){var t=q.getParent();if(!t)break;q=t;}s=q.getStyle('text-align')||q.getAttribute('align')||'';}s&&(s=s.replace(/(?:-(?:moz|webkit)-)?(?:start|auto)/i,''));!s&&r&&(s=q.getComputedStyle('direction')=='rtl'?'right':'left');return s;};function n(q){if(q.editor.readOnly)return;q.editor.getCommand(this.name).refresh(q.data.path);};function o(q,r,s){var u=this;u.editor=q;u.name=r;u.value=s;var t=q.config.justifyClasses;if(t){switch(s){case 'left':u.cssClassName=t[0];break;case 'center':u.cssClassName=t[1];break;case 'right':u.cssClassName=t[2];break;case 'justify':u.cssClassName=t[3];break;}u.cssClassRegex=new RegExp('(?:^|\\s+)(?:'+t.join('|')+')(?=$|\\s)');}};function p(q){var r=q.editor,s=new d.range(r.document);s.setStartBefore(q.data.node);s.setEndAfter(q.data.node);var t=new d.walker(s),u;while(u=t.next()){if(u.type==1){if(!u.equals(q.data.node)&&u.getDirection()){s.setStartAfter(u);t=new d.walker(s);continue;}var v=r.config.justifyClasses;if(v)if(u.hasClass(v[0])){u.removeClass(v[0]);u.addClass(v[2]);}else if(u.hasClass(v[2])){u.removeClass(v[2]);u.addClass(v[0]);}var w='text-align',x=u.getStyle(w);if(x=='left')u.setStyle(w,'right');else if(x=='right')u.setStyle(w,'left');}}};o.prototype={exec:function(q){var C=this;var r=q.getSelection(),s=q.config.enterMode;if(!r)return;var t=r.createBookmarks(),u=r.getRanges(true),v=C.cssClassName,w,x,y=q.config.useComputedState;y=y===undefined||y;for(var z=u.length-1;z>=0;z--){w=u[z].createIterator();w.enlargeBr=s!=2;while(x=w.getNextParagraph(s==1?'p':'div')){x.removeAttribute('align');x.removeStyle('text-align');var A=v&&(x.$.className=e.ltrim(x.$.className.replace(C.cssClassRegex,''))),B=C.state==2&&(!y||m(x,true)!=C.value);if(v){if(B)x.addClass(v);else if(!A)x.removeAttribute('class');}else if(B)x.setStyle('text-align',C.value);}}q.focus();q.forceNextSelectionCheck();
+r.selectBookmarks(t);},refresh:function(q){var r=q.block||q.blockLimit;this.setState(r.getName()!='body'&&m(r,this.editor.config.useComputedState)==this.value?1:2);}};j.add('justify',{init:function(q){var r=new o(q,'justifyleft','left'),s=new o(q,'justifycenter','center'),t=new o(q,'justifyright','right'),u=new o(q,'justifyblock','justify');q.addCommand('justifyleft',r);q.addCommand('justifycenter',s);q.addCommand('justifyright',t);q.addCommand('justifyblock',u);q.ui.addButton('JustifyLeft',{label:q.lang.justify.left,command:'justifyleft'});q.ui.addButton('JustifyCenter',{label:q.lang.justify.center,command:'justifycenter'});q.ui.addButton('JustifyRight',{label:q.lang.justify.right,command:'justifyright'});q.ui.addButton('JustifyBlock',{label:q.lang.justify.block,command:'justifyblock'});q.on('selectionChange',e.bind(n,r));q.on('selectionChange',e.bind(n,t));q.on('selectionChange',e.bind(n,s));q.on('selectionChange',e.bind(n,u));q.on('dirChanged',p);},requires:['domiterator']});})();j.add('keystrokes',{beforeInit:function(m){m.keystrokeHandler=new a.keystrokeHandler(m);m.specialKeys={};},init:function(m){var n=m.config.keystrokes,o=m.config.blockedKeystrokes,p=m.keystrokeHandler.keystrokes,q=m.keystrokeHandler.blockedKeystrokes;for(var r=0;r<n.length;r++)p[n[r][0]]=n[r][1];for(r=0;r<o.length;r++)q[o[r]]=1;}});a.keystrokeHandler=function(m){var n=this;if(m.keystrokeHandler)return m.keystrokeHandler;n.keystrokes={};n.blockedKeystrokes={};n._={editor:m};return n;};(function(){var m,n=function(p){p=p.data;var q=p.getKeystroke(),r=this.keystrokes[q],s=this._.editor;m=s.fire('key',{keyCode:q})===true;if(!m){if(r){var t={from:'keystrokeHandler'};m=s.execCommand(r,t)!==false;}if(!m){var u=s.specialKeys[q];m=u&&u(s)===true;if(!m)m=!!this.blockedKeystrokes[q];}}if(m)p.preventDefault(true);return!m;},o=function(p){if(m){m=false;p.data.preventDefault(true);}};a.keystrokeHandler.prototype={attach:function(p){p.on('keydown',n,this);if(b.opera||b.gecko&&b.mac)p.on('keypress',o,this);}};})();i.blockedKeystrokes=[1114112+66,1114112+73,1114112+85];i.keystrokes=[[4456448+121,'toolbarFocus'],[4456448+122,'elementsPathFocus'],[2228224+121,'contextMenu'],[1114112+2228224+121,'contextMenu'],[1114112+90,'undo'],[1114112+89,'redo'],[1114112+2228224+90,'redo'],[1114112+76,'link'],[1114112+66,'bold'],[1114112+73,'italic'],[1114112+85,'underline'],[4456448+(c||b.webkit?189:109),'toolbarCollapse'],[4456448+48,'a11yHelp']];j.add('link',{init:function(m){m.addCommand('link',new a.dialogCommand('link'));
+m.addCommand('anchor',new a.dialogCommand('anchor'));m.addCommand('unlink',new a.unlinkCommand());m.addCommand('removeAnchor',new a.removeAnchorCommand());m.ui.addButton('Link',{label:m.lang.link.toolbar,command:'link'});m.ui.addButton('Unlink',{label:m.lang.unlink,command:'unlink'});m.ui.addButton('Anchor',{label:m.lang.anchor.toolbar,command:'anchor'});a.dialog.add('link',this.path+'dialogs/link.js');a.dialog.add('anchor',this.path+'dialogs/anchor.js');var n=m.lang.dir=='rtl'?'right':'left',o='background:url('+a.getUrl(this.path+'images/anchor.gif')+') no-repeat '+n+' center;'+'border:1px dotted #00f;';m.addCss('a.cke_anchor,a.cke_anchor_empty'+(c&&b.version<7?'':',a[name],a[data-cke-saved-name]')+'{'+o+'padding-'+n+':18px;'+'cursor:auto;'+'}'+(c?'a.cke_anchor_empty{display:inline-block;}':'')+'img.cke_anchor'+'{'+o+'width:16px;'+'min-height:15px;'+'height:1.15em;'+'vertical-align:'+(b.opera?'middle':'text-bottom')+';'+'}');m.on('selectionChange',function(p){if(m.readOnly)return;var q=m.getCommand('unlink'),r=p.data.path.lastElement&&p.data.path.lastElement.getAscendant('a',true);if(r&&r.getName()=='a'&&r.getAttribute('href')&&r.getChildCount())q.setState(2);else q.setState(0);});m.on('doubleclick',function(p){var q=j.link.getSelectedLink(m)||p.data.element;if(!q.isReadOnly())if(q.is('a')){p.data.dialog=q.getAttribute('name')&&(!q.getAttribute('href')||!q.getChildCount())?'anchor':'link';m.getSelection().selectElement(q);}else if(j.link.tryRestoreFakeAnchor(m,q))p.data.dialog='anchor';});if(m.addMenuItems)m.addMenuItems({anchor:{label:m.lang.anchor.menu,command:'anchor',group:'anchor',order:1},removeAnchor:{label:m.lang.anchor.remove,command:'removeAnchor',group:'anchor',order:5},link:{label:m.lang.link.menu,command:'link',group:'link',order:1},unlink:{label:m.lang.unlink,command:'unlink',group:'link',order:5}});if(m.contextMenu)m.contextMenu.addListener(function(p,q){if(!p||p.isReadOnly())return null;var r=j.link.tryRestoreFakeAnchor(m,p);if(!r&&!(r=j.link.getSelectedLink(m)))return null;var s={};if(r.getAttribute('href')&&r.getChildCount())s={link:2,unlink:2};if(r&&r.hasAttribute('name'))s.anchor=s.removeAnchor=2;return s;});},afterInit:function(m){var n=m.dataProcessor,o=n&&n.dataFilter,p=n&&n.htmlFilter,q=m._.elementsPath&&m._.elementsPath.filters;if(o)o.addRules({elements:{a:function(r){var s=r.attributes;if(!s.name)return null;var t=!r.children.length;if(j.link.synAnchorSelector){var u=t?'cke_anchor_empty':'cke_anchor',v=s['class'];if(s.name&&(!v||v.indexOf(u)<0))s['class']=(v||'')+' '+u;
+if(t&&j.link.emptyAnchorFix){s.contenteditable='false';s['data-cke-editable']=1;}}else if(j.link.fakeAnchor&&t)return m.createFakeParserElement(r,'cke_anchor','anchor');return null;}}});if(j.link.emptyAnchorFix&&p)p.addRules({elements:{a:function(r){delete r.attributes.contenteditable;}}});if(q)q.push(function(r,s){if(s=='a')if(j.link.tryRestoreFakeAnchor(m,r)||r.getAttribute('name')&&(!r.getAttribute('href')||!r.getChildCount()))return 'anchor';});},requires:['fakeobjects']});j.link={getSelectedLink:function(m){try{var n=m.getSelection();if(n.getType()==3){var o=n.getSelectedElement();if(o.is('a'))return o;}var p=n.getRanges(true)[0];p.shrink(2);var q=p.getCommonAncestor();return q.getAscendant('a',true);}catch(r){return null;}},fakeAnchor:b.opera||b.webkit,synAnchorSelector:c,emptyAnchorFix:c&&b.version<8,tryRestoreFakeAnchor:function(m,n){if(n&&n.data('cke-real-element-type')&&n.data('cke-real-element-type')=='anchor'){var o=m.restoreRealElement(n);if(o.data('cke-saved-name'))return o;}}};a.unlinkCommand=function(){};a.unlinkCommand.prototype={exec:function(m){var n=m.getSelection(),o=n.createBookmarks(),p=n.getRanges(),q,r;for(var s=0;s<p.length;s++){q=p[s].getCommonAncestor(true);r=q.getAscendant('a',true);if(!r)continue;p[s].selectNodeContents(r);}n.selectRanges(p);m.document.$.execCommand('unlink',false,null);n.selectBookmarks(o);},startDisabled:true};a.removeAnchorCommand=function(){};a.removeAnchorCommand.prototype={exec:function(m){var n=m.getSelection(),o=n.createBookmarks(),p;if(n&&(p=n.getSelectedElement())&&(j.link.fakeAnchor&&!p.getChildCount()?j.link.tryRestoreFakeAnchor(m,p):p.is('a')))p.remove(1);else if(p=j.link.getSelectedLink(m))if(p.hasAttribute('href')){p.removeAttributes({name:1,'data-cke-saved-name':1});p.removeClass('cke_anchor');}else p.remove(1);n.selectBookmarks(o);}};e.extend(i,{linkShowAdvancedTab:true,linkShowTargetTab:true});(function(){var m={ol:1,ul:1},n=/^[\n\r\t ]*$/,o=d.walker.whitespaces(),p=d.walker.bookmark(),q=function(L){return!(o(L)||p(L));},r=d.walker.bogus();function s(L){var M,N,O;if(M=L.getDirection()){N=L.getParent();while(N&&!(O=N.getDirection()))N=N.getParent();if(M==O)L.removeAttribute('dir');}};j.list={listToArray:function(L,M,N,O,P){if(!m[L.getName()])return[];if(!O)O=0;if(!N)N=[];for(var Q=0,R=L.getChildCount();Q<R;Q++){var S=L.getChild(Q);if(S.type==1&&S.getName() in f.$list)j.list.listToArray(S,M,N,O+1);if(S.$.nodeName.toLowerCase()!='li')continue;var T={parent:L,indent:O,element:S,contents:[]};if(!P){T.grandparent=L.getParent();
+if(T.grandparent&&T.grandparent.$.nodeName.toLowerCase()=='li')T.grandparent=T.grandparent.getParent();}else T.grandparent=P;if(M)h.setMarker(M,S,'listarray_index',N.length);N.push(T);for(var U=0,V=S.getChildCount(),W;U<V;U++){W=S.getChild(U);if(W.type==1&&m[W.getName()])j.list.listToArray(W,M,N,O+1,T.grandparent);else T.contents.push(W);}}return N;},arrayToList:function(L,M,N,O,P){if(!N)N=0;if(!L||L.length<N+1)return null;var Q,R=L[N].parent.getDocument(),S=new d.documentFragment(R),T=null,U=N,V=Math.max(L[N].indent,0),W=null,X,Y,Z=O==1?'p':'div';while(1){var aa=L[U];X=aa.element.getDirection(1);if(aa.indent==V){if(!T||L[U].parent.getName()!=T.getName()){T=L[U].parent.clone(false,1);P&&T.setAttribute('dir',P);S.append(T);}W=T.append(aa.element.clone(0,1));if(X!=T.getDirection(1))W.setAttribute('dir',X);for(Q=0;Q<aa.contents.length;Q++)W.append(aa.contents[Q].clone(1,1));U++;}else if(aa.indent==Math.max(V,0)+1){var ab=L[U-1].element.getDirection(1),ac=j.list.arrayToList(L,null,U,O,ab!=X?X:null);if(!W.getChildCount()&&c&&!(R.$.documentMode>7))W.append(R.createText('\xa0'));W.append(ac.listNode);U=ac.nextIndex;}else if(aa.indent==-1&&!N&&aa.grandparent){if(m[aa.grandparent.getName()])W=aa.element.clone(false,true);else W=new d.documentFragment(R);var ad=aa.grandparent.getDirection(1)!=X,ae=W.type==11&&O!=2,af=aa.element,ag=af.getAttribute('class'),ah=af.getAttribute('style'),ai,aj=aa.contents.length;for(Q=0;Q<aj;Q++){ai=aa.contents[Q];if(ai.type==1&&ai.isBlockBoundary()){if(ad&&!ai.getDirection())ai.setAttribute('dir',X);ah&&ai.setAttribute('style',ah.replace(/([^;])$/,'$1;')+(ai.getAttribute('style')||''));ag&&ai.addClass(ag);}else if(ad||ae||ah||ag){if(!Y){Y=R.createElement(Z);ad&&Y.setAttribute('dir',X);}ah&&Y.setAttribute('style',ah);ag&&Y.setAttribute('class',ag);Y.append(ai.clone(1,1));}W.append(Y||ai.clone(1,1));}if(W.type==11&&U!=L.length-1){var ak=W.getLast();if(ak&&ak.type==1&&ak.getAttribute('type')=='_moz')ak.remove();if(!(ak=W.getLast(q)&&ak.type==1&&ak.getName() in f.$block))W.append(R.createElement('br'));}var al=W.$.nodeName.toLowerCase();if(!c&&(al=='div'||al=='p'))W.appendBogus();S.append(W);T=null;U++;}else return null;Y=null;if(L.length<=U||Math.max(L[U].indent,0)<V)break;}if(M){var am=S.getFirst(),an=L[0].parent;while(am){if(am.type==1){h.clearMarkers(M,am);if(am.getName() in f.$listItem)s(am);}am=am.getNextSourceNode();}}return{listNode:S,nextIndex:U};}};function t(L){if(L.editor.readOnly)return null;var M=L.data.path,N=M.blockLimit,O=M.elements,P,Q;
+for(Q=0;Q<O.length&&(P=O[Q])&&!P.equals(N);Q++){if(m[O[Q].getName()])return this.setState(this.type==O[Q].getName()?1:2);}return this.setState(2);};function u(L,M,N,O){var P=j.list.listToArray(M.root,N),Q=[];for(var R=0;R<M.contents.length;R++){var S=M.contents[R];S=S.getAscendant('li',true);if(!S||S.getCustomData('list_item_processed'))continue;Q.push(S);h.setMarker(N,S,'list_item_processed',true);}var T=M.root,U=T.getDocument().createElement(this.type);T.copyAttributes(U,{start:1,type:1});U.removeStyle('list-style-type');for(R=0;R<Q.length;R++){var V=Q[R].getCustomData('listarray_index');P[V].parent=U;}var W=j.list.arrayToList(P,N,null,L.config.enterMode),X,Y=W.listNode.getChildCount();for(R=0;R<Y&&(X=W.listNode.getChild(R));R++){if(X.getName()==this.type)O.push(X);}W.listNode.replace(M.root);};var v=/^h[1-6]$/;function w(L,M,N){var O=M.contents,P=M.root.getDocument(),Q=[];if(O.length==1&&O[0].equals(M.root)){var R=P.createElement('div');O[0].moveChildren&&O[0].moveChildren(R);O[0].append(R);O[0]=R;}var S=M.contents[0].getParent();for(var T=0;T<O.length;T++)S=S.getCommonAncestor(O[T].getParent());var U=L.config.useComputedState,V,W;U=U===undefined||U;for(T=0;T<O.length;T++){var X=O[T],Y;while(Y=X.getParent()){if(Y.equals(S)){Q.push(X);if(!W&&X.getDirection())W=1;var Z=X.getDirection(U);if(V!==null)if(V&&V!=Z)V=null;else V=Z;break;}X=Y;}}if(Q.length<1)return;var aa=Q[Q.length-1].getNext(),ab=P.createElement(this.type);N.push(ab);var ac,ad;while(Q.length){ac=Q.shift();ad=P.createElement('li');if(ac.is('pre')||v.test(ac.getName()))ac.appendTo(ad);else{ac.copyAttributes(ad);if(V&&ac.getDirection()){ad.removeStyle('direction');ad.removeAttribute('dir');}ac.moveChildren(ad);ac.remove();}ad.appendTo(ab);}if(V&&W)ab.setAttribute('dir',V);if(aa)ab.insertBefore(aa);else ab.appendTo(S);};function x(L,M,N){var O=j.list.listToArray(M.root,N),P=[];for(var Q=0;Q<M.contents.length;Q++){var R=M.contents[Q];R=R.getAscendant('li',true);if(!R||R.getCustomData('list_item_processed'))continue;P.push(R);h.setMarker(N,R,'list_item_processed',true);}var S=null;for(Q=0;Q<P.length;Q++){var T=P[Q].getCustomData('listarray_index');O[T].indent=-1;S=T;}for(Q=S+1;Q<O.length;Q++){if(O[Q].indent>O[Q-1].indent+1){var U=O[Q-1].indent+1-O[Q].indent,V=O[Q].indent;while(O[Q]&&O[Q].indent>=V){O[Q].indent+=U;Q++;}Q--;}}var W=j.list.arrayToList(O,N,null,L.config.enterMode,M.root.getAttribute('dir')),X=W.listNode,Y,Z;function aa(ab){if((Y=X[ab?'getFirst':'getLast']())&&!(Y.is&&Y.isBlockBoundary())&&(Z=M.root[ab?'getPrevious':'getNext'](d.walker.whitespaces(true)))&&!(Z.is&&Z.isBlockBoundary({br:1})))L.document.createElement('br')[ab?'insertBefore':'insertAfter'](Y);
+};aa(true);aa();X.replace(M.root);};function y(L,M){this.name=L;this.type=M;};var z=d.walker.nodeType(1);function A(L,M,N,O){var P,Q;while(P=L.getFirst(z)){if((Q=P.getDirection(1))!==M.getDirection(1))P.setAttribute('dir',Q);P.remove();N?P[O?'insertBefore':'insertAfter'](N):M.append(P,O);}};y.prototype={exec:function(L){var M=L.document,N=L.config,O=L.getSelection(),P=O&&O.getRanges(true);if(!P||P.length<1)return;if(this.state==2){var Q=M.getBody();if(!Q.getFirst(q)){N.enterMode==2?Q.appendBogus():P[0].fixBlock(1,N.enterMode==1?'p':'div');O.selectRanges(P);}else{var R=P.length==1&&P[0],S=R&&R.getEnclosedNode();if(S&&S.is&&this.type==S.getName())this.setState(1);}}var T=O.createBookmarks(true),U=[],V={},W=P.createIterator(),X=0;while((R=W.getNextRange())&&++X){var Y=R.getBoundaryNodes(),Z=Y.startNode,aa=Y.endNode;if(Z.type==1&&Z.getName()=='td')R.setStartAt(Y.startNode,1);if(aa.type==1&&aa.getName()=='td')R.setEndAt(Y.endNode,2);var ab=R.createIterator(),ac;ab.forceBrBreak=this.state==2;while(ac=ab.getNextParagraph()){if(ac.getCustomData('list_block'))continue;else h.setMarker(V,ac,'list_block',1);var ad=new d.elementPath(ac),ae=ad.elements,af=ae.length,ag=null,ah=0,ai=ad.blockLimit,aj;for(var ak=af-1;ak>=0&&(aj=ae[ak]);ak--){if(m[aj.getName()]&&ai.contains(aj)){ai.removeCustomData('list_group_object_'+X);var al=aj.getCustomData('list_group_object');if(al)al.contents.push(ac);else{al={root:aj,contents:[ac]};U.push(al);h.setMarker(V,aj,'list_group_object',al);}ah=1;break;}}if(ah)continue;var am=ai;if(am.getCustomData('list_group_object_'+X))am.getCustomData('list_group_object_'+X).contents.push(ac);else{al={root:am,contents:[ac]};h.setMarker(V,am,'list_group_object_'+X,al);U.push(al);}}}var an=[];while(U.length>0){al=U.shift();if(this.state==2){if(m[al.root.getName()])u.call(this,L,al,V,an);else w.call(this,L,al,an);}else if(this.state==1&&m[al.root.getName()])x.call(this,L,al,V);}for(ak=0;ak<an.length;ak++){ag=an[ak];var ao,ap=this;(ao=function(aq){var ar=ag[aq?'getPrevious':'getNext'](d.walker.whitespaces(true));if(ar&&ar.getName&&ar.getName()==ap.type){A(ag,ar,null,!aq);ag.remove();ag=ar;}})();ao(1);}h.clearAllMarkers(V);O.selectBookmarks(T);L.focus();}};var B=f,C=/[\t\r\n ]*(?: |\xa0)$/;function D(L,M){var N,O=L.children,P=O.length;for(var Q=0;Q<P;Q++){N=O[Q];if(N.name&&N.name in M)return Q;}return P;};function E(L){return function(M){var N=M.children,O=D(M,B.$list),P=N[O],Q=P&&P.previous,R;if(Q&&(Q.name&&Q.name=='br'||Q.value&&(R=Q.value.match(C)))){var S=Q;
+if(!(R&&R.index)&&S==N[0])N[0]=L||c?new a.htmlParser.text('\xa0'):new a.htmlParser.element('br',{});else if(S.name=='br')N.splice(O-1,1);else S.value=S.value.replace(C,'');}};};var F={elements:{}};for(var G in B.$listItem)F.elements[G]=E();var H={elements:{}};for(G in B.$listItem)H.elements[G]=E(true);function I(L){return L.type==1&&(L.getName() in f.$block||L.getName() in f.$listItem)&&f[L.getName()]['#'];};function J(L,M,N){L.fire('saveSnapshot');N.enlarge(3);var O=N.extractContents();M.trim(false,true);var P=new d.elementPath(M.startContainer),Q=P.lastElement.getAscendant('li',1),R=P.block.getBogus();R&&R.remove();var S=O.getLast();if(S&&S.type==1&&S.is('br'))S.remove();var T=M.startContainer.getChild(M.startOffset);if(T)O.insertBefore(T);else M.startContainer.append(O);var U=new d.elementPath(N.startContainer),V=N.startContainer.getAscendant('li',1);if(V){var W=K(V);if(W)if(Q.contains(V)){A(W,V.getParent(),V);W.remove();}else Q.append(W);}if(N.checkStartOfBlock()&&N.checkEndOfBlock()){var X=U.block,Y=X.getParent();X.remove();if(Y&&!Y.getFirst(q)&&!Y.equals(U.blockLimit))Y.remove();}M.select();L.fire('saveSnapshot');};function K(L){var M=L.getLast(q);return M&&M.type==1&&M.getName() in m?M:null;};j.add('list',{init:function(L){var M=L.addCommand('numberedlist',new y('numberedlist','ol')),N=L.addCommand('bulletedlist',new y('bulletedlist','ul'));L.ui.addButton('NumberedList',{label:L.lang.numberedlist,command:'numberedlist'});L.ui.addButton('BulletedList',{label:L.lang.bulletedlist,command:'bulletedlist'});L.on('selectionChange',e.bind(t,M));L.on('selectionChange',e.bind(t,N));if(b.ie8Compat)L.on('key',function(O){var P=O.data.keyCode;if(L.mode=='wysiwyg'&&P in {8:1,46:1}){var Q=L.getSelection(),R=Q.getRanges()[0];if(!R.collapsed)return;var S=P==8,T=L.document.getBody(),U=new d.walker(R.clone());U.evaluator=function(ad){return q(ad)&&!r(ad);};var V=R.clone();if(S){U.range.setStartAt(T,1);U.range.setEnd(R.startContainer,R.startOffset);var W=U.previous();if(W&&W.type==1&&W.getName() in m){U.range.selectNodeContents(W);U.reset();U.evaluator=I;V.moveToElementEditEnd(U.lastForward());J(L,V,R);O.cancel();}}else{var X=R.startContainer.getAscendant('li',1);if(X){U.range.setEndAt(T,2);var Y=X.getLast(q),Z=Y&&I(Y)?Y:X,aa=0,ab=U.next();if(ab&&ab.type==1&&ab.getName() in m&&ab.equals(Y)){aa=1;ab=U.next();}else if(R.checkBoundaryOfElement(Z,2))aa=1;if(aa&&ab){var ac=R.clone();ac.moveToElementEditStart(ab);J(L,V,ac);O.cancel();}}}}});},afterInit:function(L){var M=L.dataProcessor;
+if(M){M.dataFilter.addRules(F);M.htmlFilter.addRules(H);}},requires:['domiterator']});})();(function(){j.liststyle={requires:['dialog'],init:function(m){m.addCommand('numberedListStyle',new a.dialogCommand('numberedListStyle'));a.dialog.add('numberedListStyle',this.path+'dialogs/liststyle.js');m.addCommand('bulletedListStyle',new a.dialogCommand('bulletedListStyle'));a.dialog.add('bulletedListStyle',this.path+'dialogs/liststyle.js');if(m.addMenuItems){m.addMenuGroup('list',108);m.addMenuItems({numberedlist:{label:m.lang.list.numberedTitle,group:'list',command:'numberedListStyle'},bulletedlist:{label:m.lang.list.bulletedTitle,group:'list',command:'bulletedListStyle'}});}if(m.contextMenu)m.contextMenu.addListener(function(n,o){if(!n||n.isReadOnly())return null;while(n){var p=n.getName();if(p=='ol')return{numberedlist:2};else if(p=='ul')return{bulletedlist:2};n=n.getParent();}return null;});}};j.add('liststyle',j.liststyle);})();(function(){function m(s){if(!s||s.type!=1||s.getName()!='form')return[];var t=[],u=['style','className'];for(var v=0;v<u.length;v++){var w=u[v],x=s.$.elements.namedItem(w);if(x){var y=new h(x);t.push([y,y.nextSibling]);y.remove();}}return t;};function n(s,t){if(!s||s.type!=1||s.getName()!='form')return;if(t.length>0)for(var u=t.length-1;u>=0;u--){var v=t[u][0],w=t[u][1];if(w)v.insertBefore(w);else v.appendTo(s);}};function o(s,t){var u=m(s),v={},w=s.$;if(!t){v['class']=w.className||'';w.className='';}v.inline=w.style.cssText||'';if(!t)w.style.cssText='position: static; overflow: visible';n(u);return v;};function p(s,t){var u=m(s),v=s.$;if('class' in t)v.className=t['class'];if('inline' in t)v.style.cssText=t.inline;n(u);};function q(s){var t=a.instances;for(var u in t){var v=t[u];if(v.mode=='wysiwyg'&&!v.readOnly){var w=v.document.getBody();w.setAttribute('contentEditable',false);w.setAttribute('contentEditable',true);}}if(s.focusManager.hasFocus){s.toolbox.focus();s.focus();}};function r(s){if(!c||b.version>6)return null;var t=h.createFromHtml('<iframe frameborder="0" tabindex="-1" src="javascript:void((function(){document.open();'+(b.isCustomDomain()?"document.domain='"+this.getDocument().$.domain+"';":'')+'document.close();'+'})())"'+' style="display:block;position:absolute;z-index:-1;'+'progid:DXImageTransform.Microsoft.Alpha(opacity=0);'+'"></iframe>');return s.append(t,true);};j.add('maximize',{init:function(s){var t=s.lang,u=a.document,v=u.getWindow(),w,x,y,z;function A(){var C=v.getViewPaneSize();z&&z.setStyles({width:C.width+'px',height:C.height+'px'});
+s.resize(C.width,C.height,null,true);};var B=2;s.addCommand('maximize',{modes:{wysiwyg:!b.iOS,source:!b.iOS},readOnly:1,editorFocus:false,exec:function(){var C=s.container.getChild(1),D=s.getThemeSpace('contents');if(s.mode=='wysiwyg'){var E=s.getSelection();w=E&&E.getRanges();x=v.getScrollPosition();}else{var F=s.textarea.$;w=!c&&[F.selectionStart,F.selectionEnd];x=[F.scrollLeft,F.scrollTop];}if(this.state==2){v.on('resize',A);y=v.getScrollPosition();var G=s.container;while(G=G.getParent()){G.setCustomData('maximize_saved_styles',o(G));G.setStyle('z-index',s.config.baseFloatZIndex-1);}D.setCustomData('maximize_saved_styles',o(D,true));C.setCustomData('maximize_saved_styles',o(C,true));var H={overflow:b.webkit?'':'hidden',width:0,height:0};u.getDocumentElement().setStyles(H);!b.gecko&&u.getDocumentElement().setStyle('position','fixed');!(b.gecko&&b.quirks)&&u.getBody().setStyles(H);c?setTimeout(function(){v.$.scrollTo(0,0);},0):v.$.scrollTo(0,0);C.setStyle('position',b.gecko&&b.quirks?'fixed':'absolute');C.$.offsetLeft;C.setStyles({'z-index':s.config.baseFloatZIndex-1,left:'0px',top:'0px'});z=r(C);C.addClass('cke_maximized');A();var I=C.getDocumentPosition();C.setStyles({left:-1*I.x+'px',top:-1*I.y+'px'});b.gecko&&q(s);}else if(this.state==1){v.removeListener('resize',A);var J=[D,C];for(var K=0;K<J.length;K++){p(J[K],J[K].getCustomData('maximize_saved_styles'));J[K].removeCustomData('maximize_saved_styles');}G=s.container;while(G=G.getParent()){p(G,G.getCustomData('maximize_saved_styles'));G.removeCustomData('maximize_saved_styles');}c?setTimeout(function(){v.$.scrollTo(y.x,y.y);},0):v.$.scrollTo(y.x,y.y);C.removeClass('cke_maximized');if(b.webkit){C.setStyle('display','inline');setTimeout(function(){C.setStyle('display','block');},0);}if(z){z.remove();z=null;}s.fire('resize');}this.toggleState();var L=this.uiItems[0];if(L){var M=this.state==2?t.maximize:t.minimize,N=s.element.getDocument().getById(L._.id);N.getChild(1).setHtml(M);N.setAttribute('title',M);N.setAttribute('href','javascript:void("'+M+'");');}if(s.mode=='wysiwyg'){if(w){b.gecko&&q(s);s.getSelection().selectRanges(w);var O=s.getSelection().getStartElement();O&&O.scrollIntoView(true);}else v.$.scrollTo(x.x,x.y);}else{if(w){F.selectionStart=w[0];F.selectionEnd=w[1];}F.scrollLeft=x[0];F.scrollTop=x[1];}w=x=null;B=this.state;},canUndo:false});s.ui.addButton('Maximize',{label:t.maximize,command:'maximize'});s.on('mode',function(){var C=s.getCommand('maximize');C.setState(C.state==0?0:B);},null,null,100);
+}});})();j.add('newpage',{init:function(m){m.addCommand('newpage',{modes:{wysiwyg:1,source:1},exec:function(n){var o=this;n.setData(n.config.newpage_html||'',function(){setTimeout(function(){n.fire('afterCommandExec',{name:o.name,command:o});n.selectionChange();},200);});n.focus();},async:true});m.ui.addButton('NewPage',{label:m.lang.newPage,command:'newpage'});}});j.add('pagebreak',{init:function(m){m.addCommand('pagebreak',j.pagebreakCmd);m.ui.addButton('PageBreak',{label:m.lang.pagebreak,command:'pagebreak'});var n=['{','background: url('+a.getUrl(this.path+'images/pagebreak.gif')+') no-repeat center center;','clear: both;','width:100%; _width:99.9%;','border-top: #999999 1px dotted;','border-bottom: #999999 1px dotted;','padding:0;','height: 5px;','cursor: default;','}'].join('').replace(/;/g,' !important;');m.addCss('div.cke_pagebreak'+n);b.opera&&m.on('contentDom',function(){m.document.on('click',function(o){var p=o.data.getTarget();if(p.is('div')&&p.hasClass('cke_pagebreak'))m.getSelection().selectElement(p);});});},afterInit:function(m){var n=m.lang.pagebreakAlt,o=m.dataProcessor,p=o&&o.dataFilter,q=o&&o.htmlFilter;if(q)q.addRules({attributes:{'class':function(r,s){var t=r.replace('cke_pagebreak','');if(t!=r){var u=a.htmlParser.fragment.fromHtml('<span style="display: none;"> </span>');s.children.length=0;s.add(u);var v=s.attributes;delete v['aria-label'];delete v.contenteditable;delete v.title;}return t;}}},5);if(p)p.addRules({elements:{div:function(r){var s=r.attributes,t=s&&s.style,u=t&&r.children.length==1&&r.children[0],v=u&&u.name=='span'&&u.attributes.style;if(v&&/page-break-after\s*:\s*always/i.test(t)&&/display\s*:\s*none/i.test(v)){s.contenteditable='false';s['class']='cke_pagebreak';s['data-cke-display-name']='pagebreak';s['aria-label']=n;s.title=n;r.children.length=0;}}}});},requires:['fakeobjects']});j.pagebreakCmd={exec:function(m){var n=m.lang.pagebreakAlt,o=h.createFromHtml('<div style="page-break-after: always;"contenteditable="false" title="'+n+'" '+'aria-label="'+n+'" '+'data-cke-display-name="pagebreak" '+'class="cke_pagebreak">'+'</div>',m.document),p=m.getSelection().getRanges(true);m.fire('saveSnapshot');for(var q,r=p.length-1;r>=0;r--){q=p[r];if(r<p.length-1)o=o.clone(true);q.splitBlock('p');q.insertNode(o);if(r==p.length-1){var s=o.getNext();q.moveToPosition(o,4);if(!s||s.type==1&&!s.isEditable())q.fixBlock(true,m.config.enterMode==3?'div':'p');q.select();}}m.fire('saveSnapshot');}};(function(){function m(n){n.data.mode='html';
+};j.add('pastefromword',{init:function(n){var o=0,p=function(q){q&&q.removeListener();n.removeListener('beforePaste',m);o&&setTimeout(function(){o=0;},0);};n.addCommand('pastefromword',{canUndo:false,exec:function(){o=1;n.on('beforePaste',m);if(n.execCommand('paste','html')===false){n.on('dialogShow',function(q){q.removeListener();q.data.on('cancel',p);});n.on('dialogHide',function(q){q.data.removeListener('cancel',p);});}n.on('afterPaste',p);}});n.ui.addButton('PasteFromWord',{label:n.lang.pastefromword.toolbar,command:'pastefromword'});n.on('pasteState',function(q){n.getCommand('pastefromword').setState(q.data);});n.on('paste',function(q){var r=q.data,s;if((s=r.html)&&(o||/(class=\"?Mso|style=\"[^\"]*\bmso\-|w:WordDocument)/.test(s))){var t=this.loadFilterRules(function(){if(t)n.fire('paste',r);else if(!n.config.pasteFromWordPromptCleanup||o||confirm(n.lang.pastefromword.confirmCleanup))r.html=a.cleanWord(s,n);});t&&q.cancel();}},this);},loadFilterRules:function(n){var o=a.cleanWord;if(o)n();else{var p=a.getUrl(i.pasteFromWordCleanupFile||this.path+'filter/default.js');a.scriptLoader.load(p,n,null,true);}return!o;},requires:['clipboard']});})();(function(){var m={exec:function(n){var o=e.tryThese(function(){var p=window.clipboardData.getData('Text');if(!p)throw 0;return p;});if(!o){n.openDialog('pastetext');return false;}else n.fire('paste',{text:o});return true;}};j.add('pastetext',{init:function(n){var o='pastetext',p=n.addCommand(o,m);n.ui.addButton('PasteText',{label:n.lang.pasteText.button,command:o});a.dialog.add(o,a.getUrl(this.path+'dialogs/pastetext.js'));if(n.config.forcePasteAsPlainText){n.on('beforeCommandExec',function(q){var r=q.data.commandData;if(q.data.name=='paste'&&r!='html'){n.execCommand('pastetext');q.cancel();}},null,null,0);n.on('beforePaste',function(q){q.data.mode='text';});}n.on('pasteState',function(q){n.getCommand('pastetext').setState(q.data);});},requires:['clipboard']});})();j.add('popup');e.extend(a.editor.prototype,{popup:function(m,n,o,p){n=n||'80%';o=o||'70%';if(typeof n=='string'&&n.length>1&&n.substr(n.length-1,1)=='%')n=parseInt(window.screen.width*parseInt(n,10)/100,10);if(typeof o=='string'&&o.length>1&&o.substr(o.length-1,1)=='%')o=parseInt(window.screen.height*parseInt(o,10)/100,10);if(n<640)n=640;if(o<420)o=420;var q=parseInt((window.screen.height-o)/2,10),r=parseInt((window.screen.width-n)/2,10);p=(p||'location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes')+',width='+n+',height='+o+',top='+q+',left='+r;
+var s=window.open('',null,p,true);if(!s)return false;try{var t=navigator.userAgent.toLowerCase();if(t.indexOf(' chrome/18')==-1){s.moveTo(r,q);s.resizeTo(n,o);}s.focus();s.location.href=m;}catch(u){s=window.open(m,null,p,true);}return true;}});(function(){var m={modes:{wysiwyg:1,source:1},canUndo:false,readOnly:1,exec:function(o){var p,q=o.config,r=q.baseHref?'<base href="'+q.baseHref+'"/>':'',s=b.isCustomDomain();if(q.fullPage)p=o.getData().replace(/<head>/,'$&'+r).replace(/[^>]*(?=<\/title>)/,'$& — '+o.lang.preview);else{var t='<body ',u=o.document&&o.document.getBody();if(u){if(u.getAttribute('id'))t+='id="'+u.getAttribute('id')+'" ';if(u.getAttribute('class'))t+='class="'+u.getAttribute('class')+'" ';}t+='>';p=o.config.docType+'<html dir="'+o.config.contentsLangDirection+'">'+'<head>'+r+'<title>'+o.lang.preview+'</title>'+e.buildStyleHtml(o.config.contentsCss)+'</head>'+t+o.getData()+'</body></html>';}var v=640,w=420,x=80;try{var y=window.screen;v=Math.round(y.width*0.8);w=Math.round(y.height*0.7);x=Math.round(y.width*0.1);}catch(C){}var z='';if(s){window._cke_htmlToLoad=p;z='javascript:void( (function(){document.open();document.domain="'+document.domain+'";'+'document.write( window.opener._cke_htmlToLoad );'+'document.close();'+'window.opener._cke_htmlToLoad = null;'+'})() )';}var A=window.open(z,null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+v+',height='+w+',left='+x);if(!s){var B=A.document;B.open();B.write(p);B.close();b.webkit&&setTimeout(function(){B.body.innerHTML+='';},0);}}},n='preview';j.add(n,{init:function(o){o.addCommand(n,m);o.ui.addButton('Preview',{label:o.lang.preview,command:n});}});})();j.add('print',{init:function(m){var n='print',o=m.addCommand(n,j.print);m.ui.addButton('Print',{label:m.lang.print,command:n});}});j.print={exec:function(m){if(b.opera)return;else if(b.gecko)m.window.$.print();else m.document.$.execCommand('Print');},canUndo:false,readOnly:1,modes:{wysiwyg:!b.opera}};j.add('removeformat',{requires:['selection'],init:function(m){m.addCommand('removeFormat',j.removeformat.commands.removeformat);m.ui.addButton('RemoveFormat',{label:m.lang.removeFormat,command:'removeFormat'});m._.removeFormat={filters:[]};}});j.removeformat={commands:{removeformat:{exec:function(m){var n=m._.removeFormatRegex||(m._.removeFormatRegex=new RegExp('^(?:'+m.config.removeFormatTags.replace(/,/g,'|')+')$','i')),o=m._.removeAttributes||(m._.removeAttributes=m.config.removeFormatAttributes.split(',')),p=j.removeformat.filter,q=m.getSelection().getRanges(1),r=q.createIterator(),s;
+while(s=r.getNextRange()){if(!s.collapsed)s.enlarge(1);var t=s.createBookmark(),u=t.startNode,v=t.endNode,w,x=function(z){var A=new d.elementPath(z),B=A.elements;for(var C=1,D;D=B[C];C++){if(D.equals(A.block)||D.equals(A.blockLimit))break;if(n.test(D.getName())&&p(m,D))z.breakParent(D);}};x(u);if(v){x(v);w=u.getNextSourceNode(true,1);while(w){if(w.equals(v))break;var y=w.getNextSourceNode(false,1);if(!(w.getName()=='img'&&w.data('cke-realelement'))&&p(m,w))if(n.test(w.getName()))w.remove(1);else{w.removeAttributes(o);m.fire('removeFormatCleanup',w);}w=y;}}s.moveToBookmark(t);}m.getSelection().selectRanges(q);}}},filter:function(m,n){var o=m._.removeFormat.filters;for(var p=0;p<o.length;p++){if(o[p](n)===false)return false;}return true;}};a.editor.prototype.addRemoveFormatFilter=function(m){this._.removeFormat.filters.push(m);};i.removeFormatTags='b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var';i.removeFormatAttributes='class,style,lang,width,height,align,hspace,valign';j.add('resize',{init:function(m){var n=m.config,o=m.element.getDirection(1);!n.resize_dir&&(n.resize_dir='both');n.resize_maxWidth==undefined&&(n.resize_maxWidth=3000);n.resize_maxHeight==undefined&&(n.resize_maxHeight=3000);n.resize_minWidth==undefined&&(n.resize_minWidth=750);n.resize_minHeight==undefined&&(n.resize_minHeight=250);if(n.resize_enabled!==false){var p=null,q,r,s=(n.resize_dir=='both'||n.resize_dir=='horizontal')&&n.resize_minWidth!=n.resize_maxWidth,t=(n.resize_dir=='both'||n.resize_dir=='vertical')&&n.resize_minHeight!=n.resize_maxHeight;function u(x){var y=x.data.$.screenX-q.x,z=x.data.$.screenY-q.y,A=r.width,B=r.height,C=A+y*(o=='rtl'?-1:1),D=B+z;if(s)A=Math.max(n.resize_minWidth,Math.min(C,n.resize_maxWidth));if(t)B=Math.max(n.resize_minHeight,Math.min(D,n.resize_maxHeight));m.resize(s?A:null,B);};function v(x){a.document.removeListener('mousemove',u);a.document.removeListener('mouseup',v);if(m.document){m.document.removeListener('mousemove',u);m.document.removeListener('mouseup',v);}};var w=e.addFunction(function(x){if(!p)p=m.getResizable();r={width:p.$.offsetWidth||0,height:p.$.offsetHeight||0};q={x:x.screenX,y:x.screenY};n.resize_minWidth>r.width&&(n.resize_minWidth=r.width);n.resize_minHeight>r.height&&(n.resize_minHeight=r.height);a.document.on('mousemove',u);a.document.on('mouseup',v);if(m.document){m.document.on('mousemove',u);m.document.on('mouseup',v);}});m.on('destroy',function(){e.removeFunction(w);});m.on('themeSpace',function(x){if(x.data.space=='bottom'){var y='';
+if(s&&!t)y=' cke_resizer_horizontal';if(!s&&t)y=' cke_resizer_vertical';var z='<div class="cke_resizer'+y+' cke_resizer_'+o+'"'+' title="'+e.htmlEncode(m.lang.resize)+'"'+' onmousedown="CKEDITOR.tools.callFunction('+w+', event)"'+'></div>';o=='ltr'&&y=='ltr'?x.data.html+=z:x.data.html=z+x.data.html;}},m,null,100);}}});(function(){var m={modes:{wysiwyg:1,source:1},readOnly:1,exec:function(o){var p=o.element.$.form;if(p)try{p.submit();}catch(q){if(p.submit.click)p.submit.click();}}},n='save';j.add(n,{init:function(o){var p=o.addCommand(n,m);p.modes={wysiwyg:!!o.element.$.form};o.ui.addButton('Save',{label:o.lang.save,command:n});}});})();(function(){var m='scaytcheck',n='';function o(t,u){var v=0,w;for(w in u){if(u[w]==t){v=1;break;}}return v;};var p=function(){var t=this,u=function(){var y=t.config,z={};z.srcNodeRef=t.document.getWindow().$.frameElement;z.assocApp='CKEDITOR.'+a.version+'@'+a.revision;z.customerid=y.scayt_customerid||'1:WvF0D4-UtPqN1-43nkD4-NKvUm2-daQqk3-LmNiI-z7Ysb4-mwry24-T8YrS3-Q2tpq2';z.customDictionaryIds=y.scayt_customDictionaryIds||'';z.userDictionaryName=y.scayt_userDictionaryName||'';z.sLang=y.scayt_sLang||'en_US';z.onLoad=function(){if(!(c&&b.version<8))this.addStyle(this.selectorCss(),'padding-bottom: 2px !important;');if(t.focusManager.hasFocus&&!q.isControlRestored(t))this.focus();};z.onBeforeChange=function(){if(q.getScayt(t)&&!t.checkDirty())setTimeout(function(){t.resetDirty();},0);};var A=window.scayt_custom_params;if(typeof A=='object')for(var B in A)z[B]=A[B];if(q.getControlId(t))z.id=q.getControlId(t);var C=new window.scayt(z);C.afterMarkupRemove.push(function(E){new h(E,C.document).mergeSiblings();});var D=q.instances[t.name];if(D){C.sLang=D.sLang;C.option(D.option());C.paused=D.paused;}q.instances[t.name]=C;try{C.setDisabled(q.isPaused(t)===false);}catch(E){}t.fire('showScaytState');};t.on('contentDom',u);t.on('contentDomUnload',function(){var y=a.document.getElementsByTag('script'),z=/^dojoIoScript(\d+)$/i,A=/^https?:\/\/svc\.webspellchecker\.net\/spellcheck\/script\/ssrv\.cgi/i;for(var B=0;B<y.count();B++){var C=y.getItem(B),D=C.getId(),E=C.getAttribute('src');if(D&&E&&D.match(z)&&E.match(A))C.remove();}});t.on('beforeCommandExec',function(y){if((y.data.name=='source'||y.data.name=='newpage')&&t.mode=='wysiwyg'){var z=q.getScayt(t);if(z){q.setPaused(t,!z.disabled);q.setControlId(t,z.id);z.destroy(true);delete q.instances[t.name];}}else if(y.data.name=='source'&&t.mode=='source')q.markControlRestore(t);});t.on('afterCommandExec',function(y){if(!q.isScaytEnabled(t))return;
+if(t.mode=='wysiwyg'&&(y.data.name=='undo'||y.data.name=='redo'))window.setTimeout(function(){q.getScayt(t).refresh();},10);});t.on('destroy',function(y){var z=y.editor,A=q.getScayt(z);if(!A)return;delete q.instances[z.name];q.setControlId(z,A.id);A.destroy(true);});t.on('afterSetData',function(){if(q.isScaytEnabled(t))window.setTimeout(function(){var y=q.getScayt(t);y&&y.refresh();},10);});t.on('insertElement',function(){var y=q.getScayt(t);if(q.isScaytEnabled(t)){if(c)t.getSelection().unlock(true);window.setTimeout(function(){y.focus();y.refresh();},10);}},this,null,50);t.on('insertHtml',function(){var y=q.getScayt(t);if(q.isScaytEnabled(t)){if(c)t.getSelection().unlock(true);window.setTimeout(function(){y.focus();y.refresh();},10);}},this,null,50);t.on('scaytDialog',function(y){y.data.djConfig=window.djConfig;y.data.scayt_control=q.getScayt(t);y.data.tab=n;y.data.scayt=window.scayt;});var v=t.dataProcessor,w=v&&v.htmlFilter;if(w)w.addRules({elements:{span:function(y){if(y.attributes['data-scayt_word']&&y.attributes['data-scaytid']){delete y.name;return y;}}}});var x=j.undo.Image.prototype;x.equals=e.override(x.equals,function(y){return function(z){var E=this;var A=E.contents,B=z.contents,C=q.getScayt(E.editor);if(C&&q.isScaytReady(E.editor)){E.contents=C.reset(A)||'';z.contents=C.reset(B)||'';}var D=y.apply(E,arguments);E.contents=A;z.contents=B;return D;};});if(t.document)u();};j.scayt={engineLoaded:false,instances:{},controlInfo:{},setControlInfo:function(t,u){if(t&&t.name&&typeof this.controlInfo[t.name]!='object')this.controlInfo[t.name]={};for(var v in u)this.controlInfo[t.name][v]=u[v];},isControlRestored:function(t){if(t&&t.name&&this.controlInfo[t.name])return this.controlInfo[t.name].restored;return false;},markControlRestore:function(t){this.setControlInfo(t,{restored:true});},setControlId:function(t,u){this.setControlInfo(t,{id:u});},getControlId:function(t){if(t&&t.name&&this.controlInfo[t.name]&&this.controlInfo[t.name].id)return this.controlInfo[t.name].id;return null;},setPaused:function(t,u){this.setControlInfo(t,{paused:u});},isPaused:function(t){if(t&&t.name&&this.controlInfo[t.name])return this.controlInfo[t.name].paused;return undefined;},getScayt:function(t){return this.instances[t.name];},isScaytReady:function(t){return this.engineLoaded===true&&'undefined'!==typeof window.scayt&&this.getScayt(t);},isScaytEnabled:function(t){var u=this.getScayt(t);return u?u.disabled===false:false;},getUiTabs:function(t){var u=[],v=t.config.scayt_uiTabs||'1,1,1';
+v=v.split(',');v[3]='1';for(var w=0;w<4;w++)u[w]=typeof window.scayt!='undefined'&&typeof window.scayt.uiTags!='undefined'?parseInt(v[w],10)&&window.scayt.uiTags[w]:parseInt(v[w],10);return u;},loadEngine:function(t){if(b.gecko&&b.version<10900||b.opera||b.air)return t.fire('showScaytState');if(this.engineLoaded===true)return p.apply(t);else if(this.engineLoaded==-1)return a.on('scaytReady',function(){p.apply(t);});a.on('scaytReady',p,t);a.on('scaytReady',function(){this.engineLoaded=true;},this,null,0);this.engineLoaded=-1;var u=document.location.protocol;u=u.search(/https?:/)!=-1?u:'http:';var v='svc.webspellchecker.net/scayt26/loader__base.js',w=t.config.scayt_srcUrl||u+'//'+v,x=q.parseUrl(w).path+'/';if(window.scayt==undefined){a._djScaytConfig={baseUrl:x,addOnLoad:[function(){a.fireOnce('scaytReady');}],isDebug:false};a.document.getHead().append(a.document.createElement('script',{attributes:{type:'text/javascript',async:'true',src:w}}));}else a.fireOnce('scaytReady');return null;},parseUrl:function(t){var u;if(t.match&&(u=t.match(/(.*)[\/\\](.*?\.\w+)$/)))return{path:u[1],file:u[2]};else return t;}};var q=j.scayt,r=function(t,u,v,w,x,y,z){t.addCommand(w,x);t.addMenuItem(w,{label:v,command:w,group:y,order:z});},s={preserveState:true,editorFocus:false,canUndo:false,exec:function(t){if(q.isScaytReady(t)){var u=q.isScaytEnabled(t);this.setState(u?2:1);var v=q.getScayt(t);v.focus();v.setDisabled(u);}else if(!t.config.scayt_autoStartup&&q.engineLoaded>=0){this.setState(0);q.loadEngine(t);}}};j.add('scayt',{requires:['menubutton'],beforeInit:function(t){var u=t.config.scayt_contextMenuItemsOrder||'suggest|moresuggest|control',v='';u=u.split('|');if(u&&u.length)for(var w=0;w<u.length;w++)v+='scayt_'+u[w]+(u.length!=parseInt(w,10)+1?',':'');t.config.menu_groups=v+','+t.config.menu_groups;},init:function(t){var u=t.dataProcessor&&t.dataProcessor.dataFilter,v={elements:{span:function(E){var F=E.attributes;if(F&&F['data-scaytid'])delete E.name;}}};u&&u.addRules(v);var w={},x={},y=t.addCommand(m,s);a.dialog.add(m,a.getUrl(this.path+'dialogs/options.js'));var z=q.getUiTabs(t),A='scaytButton';t.addMenuGroup(A);var B={},C=t.lang.scayt;B.scaytToggle={label:C.enable,command:m,group:A};if(z[0]==1)B.scaytOptions={label:C.options,group:A,onClick:function(){n='options';t.openDialog(m);}};if(z[1]==1)B.scaytLangs={label:C.langs,group:A,onClick:function(){n='langs';t.openDialog(m);}};if(z[2]==1)B.scaytDict={label:C.dictionariesTab,group:A,onClick:function(){n='dictionaries';t.openDialog(m);
+}};B.scaytAbout={label:t.lang.scayt.about,group:A,onClick:function(){n='about';t.openDialog(m);}};t.addMenuItems(B);t.ui.add('Scayt','menubutton',{label:C.title,title:b.opera?C.opera_title:C.title,className:'cke_button_scayt',modes:{wysiwyg:1},onRender:function(){y.on('state',function(){this.setState(y.state);},this);},onMenu:function(){var E=q.isScaytEnabled(t);t.getMenuItem('scaytToggle').label=C[E?'disable':'enable'];var F=q.getUiTabs(t);return{scaytToggle:2,scaytOptions:E&&F[0]?2:0,scaytLangs:E&&F[1]?2:0,scaytDict:E&&F[2]?2:0,scaytAbout:E&&F[3]?2:0};}});if(t.contextMenu&&t.addMenuItems)t.contextMenu.addListener(function(E,F){if(!q.isScaytEnabled(t)||F.getRanges()[0].checkReadOnly())return null;var G=q.getScayt(t),H=G.getScaytNode();if(!H)return null;var I=G.getWord(H);if(!I)return null;var J=G.getLang(),K={},L=window.scayt.getSuggestion(I,J);if(!L||!L.length)return null;for(var M in w){delete t._.menuItems[M];delete t._.commands[M];}for(M in x){delete t._.menuItems[M];delete t._.commands[M];}w={};x={};var N=t.config.scayt_moreSuggestions||'on',O=false,P=t.config.scayt_maxSuggestions;typeof P!='number'&&(P=5);!P&&(P=L.length);var Q=t.config.scayt_contextCommands||'all';Q=Q.split('|');for(var R=0,S=L.length;R<S;R+=1){var T='scayt_suggestion_'+L[R].replace(' ','_'),U=(function(Y,Z){return{exec:function(){G.replace(Y,Z);}};})(H,L[R]);if(R<P){r(t,'button_'+T,L[R],T,U,'scayt_suggest',R+1);K[T]=2;x[T]=2;}else if(N=='on'){r(t,'button_'+T,L[R],T,U,'scayt_moresuggest',R+1);w[T]=2;O=true;}}if(O){t.addMenuItem('scayt_moresuggest',{label:C.moreSuggestions,group:'scayt_moresuggest',order:10,getItems:function(){return w;}});x.scayt_moresuggest=2;}if(o('all',Q)||o('ignore',Q)){var V={exec:function(){G.ignore(H);}};r(t,'ignore',C.ignore,'scayt_ignore',V,'scayt_control',1);x.scayt_ignore=2;}if(o('all',Q)||o('ignoreall',Q)){var W={exec:function(){G.ignoreAll(H);}};r(t,'ignore_all',C.ignoreAll,'scayt_ignore_all',W,'scayt_control',2);x.scayt_ignore_all=2;}if(o('all',Q)||o('add',Q)){var X={exec:function(){window.scayt.addWordToUserDictionary(H);}};r(t,'add_word',C.addWord,'scayt_add_word',X,'scayt_control',3);x.scayt_add_word=2;}if(G.fireOnContextMenu)G.fireOnContextMenu(t);return x;});var D=function(){t.removeListener('showScaytState',D);if(!b.opera&&!b.air)y.setState(q.isScaytEnabled(t)?1:2);else y.setState(0);};t.on('showScaytState',D);if(b.opera||b.air)t.on('instanceReady',function(){D();});if(t.config.scayt_autoStartup)t.on('instanceReady',function(){q.loadEngine(t);});
+},afterInit:function(t){var u,v=function(w){if(w.hasAttribute('data-scaytid'))return false;};if(t._.elementsPath&&(u=t._.elementsPath.filters))u.push(v);t.addRemoveFormatFilter&&t.addRemoveFormatFilter(v);}});})();j.add('smiley',{requires:['dialog'],init:function(m){m.config.smiley_path=m.config.smiley_path||this.path+'images/';m.addCommand('smiley',new a.dialogCommand('smiley'));m.ui.addButton('Smiley',{label:m.lang.smiley.toolbar,command:'smiley'});a.dialog.add('smiley',this.path+'dialogs/smiley.js');}});i.smiley_images=['regular_smile.gif','sad_smile.gif','wink_smile.gif','teeth_smile.gif','confused_smile.gif','tounge_smile.gif','embaressed_smile.gif','omg_smile.gif','whatchutalkingabout_smile.gif','angry_smile.gif','angel_smile.gif','shades_smile.gif','devil_smile.gif','cry_smile.gif','lightbulb.gif','thumbs_down.gif','thumbs_up.gif','heart.gif','broken_heart.gif','kiss.gif','envelope.gif'];i.smiley_descriptions=['smiley','sad','wink','laugh','frown','cheeky','blush','surprise','indecision','angry','angel','cool','devil','crying','enlightened','no','yes','heart','broken heart','kiss','mail'];(function(){var m='.%2 p,.%2 div,.%2 pre,.%2 address,.%2 blockquote,.%2 h1,.%2 h2,.%2 h3,.%2 h4,.%2 h5,.%2 h6{background-repeat: no-repeat;background-position: top %3;border: 1px dotted gray;padding-top: 8px;padding-%3: 8px;}.%2 p{%1p.png);}.%2 div{%1div.png);}.%2 pre{%1pre.png);}.%2 address{%1address.png);}.%2 blockquote{%1blockquote.png);}.%2 h1{%1h1.png);}.%2 h2{%1h2.png);}.%2 h3{%1h3.png);}.%2 h4{%1h4.png);}.%2 h5{%1h5.png);}.%2 h6{%1h6.png);}',n=/%1/g,o=/%2/g,p=/%3/g,q={readOnly:1,preserveState:true,editorFocus:false,exec:function(r){this.toggleState();this.refresh(r);},refresh:function(r){if(r.document){var s=this.state==1?'addClass':'removeClass';r.document.getBody()[s]('cke_show_blocks');}}};j.add('showblocks',{requires:['wysiwygarea'],init:function(r){var s=r.addCommand('showblocks',q);s.canUndo=false;if(r.config.startupOutlineBlocks)s.setState(1);r.addCss(m.replace(n,'background-image: url('+a.getUrl(this.path)+'images/block_').replace(o,'cke_show_blocks ').replace(p,r.lang.dir=='rtl'?'right':'left'));r.ui.addButton('ShowBlocks',{label:r.lang.showBlocks,command:'showblocks'});r.on('mode',function(){if(s.state!=0)s.refresh(r);});r.on('contentDom',function(){if(s.state!=0)s.refresh(r);});}});})();(function(){var m='cke_show_border',n,o=(b.ie6Compat?['.%1 table.%2,','.%1 table.%2 td, .%1 table.%2 th','{','border : #d3d3d3 1px dotted','}']:['.%1 table.%2,','.%1 table.%2 > tr > td, .%1 table.%2 > tr > th,','.%1 table.%2 > tbody > tr > td, .%1 table.%2 > tbody > tr > th,','.%1 table.%2 > thead > tr > td, .%1 table.%2 > thead > tr > th,','.%1 table.%2 > tfoot > tr > td, .%1 table.%2 > tfoot > tr > th','{','border : #d3d3d3 1px dotted','}']).join('');
+n=o.replace(/%2/g,m).replace(/%1/g,'cke_show_borders ');var p={preserveState:true,editorFocus:false,readOnly:1,exec:function(q){this.toggleState();this.refresh(q);},refresh:function(q){if(q.document){var r=this.state==1?'addClass':'removeClass';q.document.getBody()[r]('cke_show_borders');}}};j.add('showborders',{requires:['wysiwygarea'],modes:{wysiwyg:1},init:function(q){var r=q.addCommand('showborders',p);r.canUndo=false;if(q.config.startupShowBorders!==false)r.setState(1);q.addCss(n);q.on('mode',function(){if(r.state!=0)r.refresh(q);},null,null,100);q.on('contentDom',function(){if(r.state!=0)r.refresh(q);});q.on('removeFormatCleanup',function(s){var t=s.data;if(q.getCommand('showborders').state==1&&t.is('table')&&(!t.hasAttribute('border')||parseInt(t.getAttribute('border'),10)<=0))t.addClass(m);});},afterInit:function(q){var r=q.dataProcessor,s=r&&r.dataFilter,t=r&&r.htmlFilter;if(s)s.addRules({elements:{table:function(u){var v=u.attributes,w=v['class'],x=parseInt(v.border,10);if((!x||x<=0)&&(!w||w.indexOf(m)==-1))v['class']=(w||'')+' '+m;}}});if(t)t.addRules({elements:{table:function(u){var v=u.attributes,w=v['class'];w&&(v['class']=w.replace(m,'').replace(/\s{2}/,' ').replace(/^\s+|\s+$/,''));}}});}});a.on('dialogDefinition',function(q){var r=q.data.name;if(r=='table'||r=='tableProperties'){var s=q.data.definition,t=s.getContents('info'),u=t.get('txtBorder'),v=u.commit;u.commit=e.override(v,function(y){return function(z,A){y.apply(this,arguments);var B=parseInt(this.getValue(),10);A[!B||B<=0?'addClass':'removeClass'](m);};});var w=s.getContents('advanced'),x=w&&w.get('advCSSClasses');if(x){x.setup=e.override(x.setup,function(y){return function(){y.apply(this,arguments);this.setValue(this.getValue().replace(/cke_show_border/,''));};});x.commit=e.override(x.commit,function(y){return function(z,A){y.apply(this,arguments);if(!parseInt(A.getAttribute('border'),10))A.addClass('cke_show_border');};});}}});})();j.add('sourcearea',{requires:['editingblock'],init:function(m){var n=j.sourcearea,o=a.document.getWindow();m.on('editingBlockReady',function(){var p,q;m.addMode('source',{load:function(r,s){if(c&&b.version<8)r.setStyle('position','relative');m.textarea=p=new h('textarea');p.setAttributes({dir:'ltr',tabIndex:b.webkit?-1:m.tabIndex,role:'textbox','aria-label':m.lang.editorTitle.replace('%1',m.name)});p.addClass('cke_source');p.addClass('cke_enable_context_menu');m.readOnly&&p.setAttribute('readOnly','readonly');var t={width:b.ie7Compat?'99%':'100%',height:'100%',resize:'none',outline:'none','text-align':'left'};
+if(c){q=function(){p.hide();p.setStyle('height',r.$.clientHeight+'px');p.setStyle('width',r.$.clientWidth+'px');p.show();};m.on('resize',q);o.on('resize',q);setTimeout(q,0);}r.setHtml('');r.append(p);p.setStyles(t);m.fire('ariaWidget',p);p.on('blur',function(){m.focusManager.blur();});p.on('focus',function(){m.focusManager.focus();});m.mayBeDirty=true;this.loadData(s);var u=m.keystrokeHandler;if(u)u.attach(p);setTimeout(function(){m.mode='source';m.fire('mode',{previousMode:m._.previousMode});},b.gecko||b.webkit?100:0);},loadData:function(r){p.setValue(r);m.fire('dataReady');},getData:function(){return p.getValue();},getSnapshotData:function(){return p.getValue();},unload:function(r){p.clearCustomData();m.textarea=p=null;if(q){m.removeListener('resize',q);o.removeListener('resize',q);}if(c&&b.version<8)r.removeStyle('position');},focus:function(){p.focus();}});});m.on('readOnly',function(){if(m.mode=='source')if(m.readOnly)m.textarea.setAttribute('readOnly','readonly');else m.textarea.removeAttribute('readOnly');});m.addCommand('source',n.commands.source);if(m.ui.addButton)m.ui.addButton('Source',{label:m.lang.source,command:'source'});m.on('mode',function(){m.getCommand('source').setState(m.mode=='source'?1:2);});}});j.sourcearea={commands:{source:{modes:{wysiwyg:1,source:1},editorFocus:false,readOnly:1,exec:function(m){if(m.mode=='wysiwyg')m.fire('saveSnapshot');m.getCommand('source').setState(0);m.setMode(m.mode=='source'?'wysiwyg':'source');},canUndo:false}}};(function(){j.add('stylescombo',{requires:['richcombo','styles'],init:function(n){var o=n.config,p=n.lang.stylesCombo,q={},r=[],s;function t(u){n.getStylesSet(function(v){if(!r.length){var w,x;for(var y=0,z=v.length;y<z;y++){var A=v[y];x=A.name;w=q[x]=new a.style(A);w._name=x;w._.enterMode=o.enterMode;r.push(w);}r.sort(m);}u&&u();});};n.ui.addRichCombo('Styles',{label:p.label,title:p.panelTitle,className:'cke_styles',panel:{css:n.skin.editor.css.concat(o.contentsCss),multiSelect:true,attributes:{'aria-label':p.panelTitle}},init:function(){s=this;t(function(){var u,v,w,x,y,z;for(y=0,z=r.length;y<z;y++){u=r[y];v=u._name;x=u.type;if(x!=w){s.startGroup(p['panelTitle'+String(x)]);w=x;}s.add(v,u.type==3?v:u.buildPreview(),v);}s.commit();});},onClick:function(u){n.focus();n.fire('saveSnapshot');var v=q[u],w=n.getSelection(),x=new d.elementPath(w.getStartElement());v[v.checkActive(x)?'remove':'apply'](n.document);n.fire('saveSnapshot');},onRender:function(){n.on('selectionChange',function(u){var v=this.getValue(),w=u.data.path,x=w.elements;
+for(var y=0,z=x.length,A;y<z;y++){A=x[y];for(var B in q){if(q[B].checkElementRemovable(A,true)){if(B!=v)this.setValue(B);return;}}}this.setValue('');},this);},onOpen:function(){var B=this;if(c||b.webkit)n.focus();var u=n.getSelection(),v=u.getSelectedElement(),w=new d.elementPath(v||u.getStartElement()),x=[0,0,0,0];B.showAll();B.unmarkAll();for(var y in q){var z=q[y],A=z.type;if(z.checkActive(w))B.mark(y);else if(A==3&&!z.checkApplicable(w)){B.hideItem(y);x[A]--;}x[A]++;}if(!x[1])B.hideGroup(p['panelTitle'+String(1)]);if(!x[2])B.hideGroup(p['panelTitle'+String(2)]);if(!x[3])B.hideGroup(p['panelTitle'+String(3)]);},reset:function(){if(s){delete s._.panel;delete s._.list;s._.committed=0;s._.items={};s._.state=2;}q={};r=[];t();}});n.on('instanceReady',function(){t();});}});function m(n,o){var p=n.type,q=o.type;return p==q?0:p==3?-1:q==3?1:q==1?1:-1;};})();j.add('table',{init:function(m){var n=j.table,o=m.lang.table;m.addCommand('table',new a.dialogCommand('table'));m.addCommand('tableProperties',new a.dialogCommand('tableProperties'));m.ui.addButton('Table',{label:o.toolbar,command:'table'});a.dialog.add('table',this.path+'dialogs/table.js');a.dialog.add('tableProperties',this.path+'dialogs/table.js');if(m.addMenuItems)m.addMenuItems({table:{label:o.menu,command:'tableProperties',group:'table',order:5},tabledelete:{label:o.deleteTable,command:'tableDelete',group:'table',order:1}});m.on('doubleclick',function(p){var q=p.data.element;if(q.is('table'))p.data.dialog='tableProperties';});if(m.contextMenu)m.contextMenu.addListener(function(p,q){if(!p||p.isReadOnly())return null;var r=p.hasAscendant('table',1);if(r)return{tabledelete:2,table:2};return null;});}});(function(){var m=/^(?:td|th)$/;function n(G){var H=G.getRanges(),I=[],J={};function K(S){if(I.length>0)return;if(S.type==1&&m.test(S.getName())&&!S.getCustomData('selected_cell')){h.setMarker(J,S,'selected_cell',true);I.push(S);}};for(var L=0;L<H.length;L++){var M=H[L];if(M.collapsed){var N=M.getCommonAncestor(),O=N.getAscendant('td',true)||N.getAscendant('th',true);if(O)I.push(O);}else{var P=new d.walker(M),Q;P.guard=K;while(Q=P.next()){var R=Q.getAscendant('td')||Q.getAscendant('th');if(R&&!R.getCustomData('selected_cell')){h.setMarker(J,R,'selected_cell',true);I.push(R);}}}}h.clearAllMarkers(J);return I;};function o(G){var H=0,I=G.length-1,J={},K,L,M;while(K=G[H++])h.setMarker(J,K,'delete_cell',true);H=0;while(K=G[H++]){if((L=K.getPrevious())&&!L.getCustomData('delete_cell')||(L=K.getNext())&&!L.getCustomData('delete_cell')){h.clearAllMarkers(J);
+return L;}}h.clearAllMarkers(J);M=G[0].getParent();if(M=M.getPrevious())return M.getLast();M=G[I].getParent();if(M=M.getNext())return M.getChild(0);return null;};function p(G,H){var I=n(G),J=I[0],K=J.getAscendant('table'),L=J.getDocument(),M=I[0].getParent(),N=M.$.rowIndex,O=I[I.length-1],P=O.getParent().$.rowIndex+O.$.rowSpan-1,Q=new h(K.$.rows[P]),R=H?N:P,S=H?M:Q,T=e.buildTableMap(K),U=T[R],V=H?T[R-1]:T[R+1],W=T[0].length,X=L.createElement('tr');for(var Y=0;U[Y]&&Y<W;Y++){var Z;if(U[Y].rowSpan>1&&V&&U[Y]==V[Y]){Z=U[Y];Z.rowSpan+=1;}else{Z=new h(U[Y]).clone();Z.removeAttribute('rowSpan');!c&&Z.appendBogus();X.append(Z);Z=Z.$;}Y+=Z.colSpan-1;}H?X.insertBefore(S):X.insertAfter(S);};function q(G){if(G instanceof d.selection){var H=n(G),I=H[0],J=I.getAscendant('table'),K=e.buildTableMap(J),L=H[0].getParent(),M=L.$.rowIndex,N=H[H.length-1],O=N.getParent().$.rowIndex+N.$.rowSpan-1,P=[];for(var Q=M;Q<=O;Q++){var R=K[Q],S=new h(J.$.rows[Q]);for(var T=0;T<R.length;T++){var U=new h(R[T]),V=U.getParent().$.rowIndex;if(U.$.rowSpan==1)U.remove();else{U.$.rowSpan-=1;if(V==Q){var W=K[Q+1];W[T-1]?U.insertAfter(new h(W[T-1])):new h(J.$.rows[Q+1]).append(U,1);}}T+=U.$.colSpan-1;}P.push(S);}var X=J.$.rows,Y=new h(X[O+1]||(M>0?X[M-1]:null)||J.$.parentNode);for(Q=P.length;Q>=0;Q--)q(P[Q]);return Y;}else if(G instanceof h){J=G.getAscendant('table');if(J.$.rows.length==1)J.remove();else G.remove();}return null;};function r(G,H){var I=G.getParent(),J=I.$.cells,K=0;for(var L=0;L<J.length;L++){var M=J[L];K+=H?1:M.colSpan;if(M==G.$)break;}return K-1;};function s(G,H){var I=H?Infinity:0;for(var J=0;J<G.length;J++){var K=r(G[J],H);if(H?K<I:K>I)I=K;}return I;};function t(G,H){var I=n(G),J=I[0],K=J.getAscendant('table'),L=s(I,1),M=s(I),N=H?L:M,O=e.buildTableMap(K),P=[],Q=[],R=O.length;for(var S=0;S<R;S++){P.push(O[S][N]);var T=H?O[S][N-1]:O[S][N+1];T&&Q.push(T);}for(S=0;S<R;S++){var U;if(P[S].colSpan>1&&Q.length&&Q[S]==P[S]){U=P[S];U.colSpan+=1;}else{U=new h(P[S]).clone();U.removeAttribute('colSpan');!c&&U.appendBogus();U[H?'insertBefore':'insertAfter'].call(U,new h(P[S]));U=U.$;}S+=U.rowSpan-1;}};function u(G){var H=n(G),I=H[0],J=H[H.length-1],K=I.getAscendant('table'),L=e.buildTableMap(K),M,N,O=[];for(var P=0,Q=L.length;P<Q;P++)for(var R=0,S=L[P].length;R<S;R++){if(L[P][R]==I.$)M=R;if(L[P][R]==J.$)N=R;}for(P=M;P<=N;P++)for(R=0;R<L.length;R++){var T=L[R],U=new h(K.$.rows[R]),V=new h(T[P]);if(V.$){if(V.$.colSpan==1)V.remove();else V.$.colSpan-=1;R+=V.$.rowSpan-1;if(!U.$.cells.length)O.push(U);
+}}var W=K.$.rows[0]&&K.$.rows[0].cells,X=new h(W[M]||(M?W[M-1]:K.$.parentNode));if(O.length==Q)K.remove();return X;};function v(G){var H=[],I=G[0]&&G[0].getAscendant('table'),J,K,L,M;for(J=0,K=G.length;J<K;J++)H.push(G[J].$.cellIndex);H.sort();for(J=1,K=H.length;J<K;J++){if(H[J]-H[J-1]>1){L=H[J-1]+1;break;}}if(!L)L=H[0]>0?H[0]-1:H[H.length-1]+1;var N=I.$.rows;for(J=0,K=N.length;J<K;J++){M=N[J].cells[L];if(M)break;}return M?new h(M):I.getPrevious();};function w(G,H){var I=G.getStartElement(),J=I.getAscendant('td',1)||I.getAscendant('th',1);if(!J)return;var K=J.clone();if(!c)K.appendBogus();if(H)K.insertBefore(J);else K.insertAfter(J);};function x(G){if(G instanceof d.selection){var H=n(G),I=H[0]&&H[0].getAscendant('table'),J=o(H);for(var K=H.length-1;K>=0;K--)x(H[K]);if(J)z(J,true);else if(I)I.remove();}else if(G instanceof h){var L=G.getParent();if(L.getChildCount()==1)L.remove();else G.remove();}};function y(G){var H=G.getBogus();H&&H.remove();G.trim();};function z(G,H){var I=new d.range(G.getDocument());if(!I['moveToElementEdit'+(H?'End':'Start')](G)){I.selectNodeContents(G);I.collapse(H?false:true);}I.select(true);};function A(G,H,I){var J=G[H];if(typeof I=='undefined')return J;for(var K=0;J&&K<J.length;K++){if(I.is&&J[K]==I.$)return K;else if(K==I)return new h(J[K]);}return I.is?-1:null;};function B(G,H){var I=[];for(var J=0;J<G.length;J++){var K=G[J];I.push(K[H]);if(K[H].rowSpan>1)J+=K[H].rowSpan-1;}return I;};function C(G,H,I){var J=n(G),K;if((H?J.length!=1:J.length<2)||(K=G.getCommonAncestor())&&K.type==1&&K.is('table'))return false;var L,M=J[0],N=M.getAscendant('table'),O=e.buildTableMap(N),P=O.length,Q=O[0].length,R=M.getParent().$.rowIndex,S=A(O,R,M);if(H){var T;try{var U=parseInt(M.getAttribute('rowspan'),10)||1,V=parseInt(M.getAttribute('colspan'),10)||1;T=O[H=='up'?R-U:H=='down'?R+U:R][H=='left'?S-V:H=='right'?S+V:S];}catch(an){return false;}if(!T||M.$==T)return false;J[H=='up'||H=='left'?'unshift':'push'](new h(T));}var W=M.getDocument(),X=R,Y=0,Z=0,aa=!I&&new d.documentFragment(W),ab=0;for(var ac=0;ac<J.length;ac++){L=J[ac];var ad=L.getParent(),ae=L.getFirst(),af=L.$.colSpan,ag=L.$.rowSpan,ah=ad.$.rowIndex,ai=A(O,ah,L);ab+=af*ag;Z=Math.max(Z,ai-S+af);Y=Math.max(Y,ah-R+ag);if(!I){if(y(L),L.getChildren().count()){if(ah!=X&&ae&&!(ae.isBlockBoundary&&ae.isBlockBoundary({br:1}))){var aj=aa.getLast(d.walker.whitespaces(true));if(aj&&!(aj.is&&aj.is('br')))aa.append('br');}L.moveChildren(aa);}ac?L.remove():L.setHtml('');}X=ah;}if(!I){aa.moveChildren(M);
+if(!c)M.appendBogus();if(Z>=Q)M.removeAttribute('rowSpan');else M.$.rowSpan=Y;if(Y>=P)M.removeAttribute('colSpan');else M.$.colSpan=Z;var ak=new d.nodeList(N.$.rows),al=ak.count();for(ac=al-1;ac>=0;ac--){var am=ak.getItem(ac);if(!am.$.cells.length){am.remove();al++;continue;}}return M;}else return Y*Z==ab;};function D(G,H){var I=n(G);if(I.length>1)return false;else if(H)return true;var J=I[0],K=J.getParent(),L=K.getAscendant('table'),M=e.buildTableMap(L),N=K.$.rowIndex,O=A(M,N,J),P=J.$.rowSpan,Q,R,S,T;if(P>1){R=Math.ceil(P/2);S=Math.floor(P/2);T=N+R;var U=new h(L.$.rows[T]),V=A(M,T),W;Q=J.clone();for(var X=0;X<V.length;X++){W=V[X];if(W.parentNode==U.$&&X>O){Q.insertBefore(new h(W));break;}else W=null;}if(!W)U.append(Q,true);}else{S=R=1;U=K.clone();U.insertAfter(K);U.append(Q=J.clone());var Y=A(M,N);for(var Z=0;Z<Y.length;Z++)Y[Z].rowSpan++;}if(!c)Q.appendBogus();J.$.rowSpan=R;Q.$.rowSpan=S;if(R==1)J.removeAttribute('rowSpan');if(S==1)Q.removeAttribute('rowSpan');return Q;};function E(G,H){var I=n(G);if(I.length>1)return false;else if(H)return true;var J=I[0],K=J.getParent(),L=K.getAscendant('table'),M=e.buildTableMap(L),N=K.$.rowIndex,O=A(M,N,J),P=J.$.colSpan,Q,R,S;if(P>1){R=Math.ceil(P/2);S=Math.floor(P/2);}else{S=R=1;var T=B(M,O);for(var U=0;U<T.length;U++)T[U].colSpan++;}Q=J.clone();Q.insertAfter(J);if(!c)Q.appendBogus();J.$.colSpan=R;Q.$.colSpan=S;if(R==1)J.removeAttribute('colSpan');if(S==1)Q.removeAttribute('colSpan');return Q;};var F={thead:1,tbody:1,tfoot:1,td:1,tr:1,th:1};j.tabletools={init:function(G){var H=G.lang.table;G.addCommand('cellProperties',new a.dialogCommand('cellProperties'));a.dialog.add('cellProperties',this.path+'dialogs/tableCell.js');G.addCommand('tableDelete',{exec:function(I){var J=I.getSelection(),K=J&&J.getStartElement(),L=K&&K.getAscendant('table',1);if(!L)return;var M=L.getParent();if(M.getChildCount()==1&&!M.is('body','td','th'))L=M;var N=new d.range(I.document);N.moveToPosition(L,3);L.remove();N.select();}});G.addCommand('rowDelete',{exec:function(I){var J=I.getSelection();z(q(J));}});G.addCommand('rowInsertBefore',{exec:function(I){var J=I.getSelection();p(J,true);}});G.addCommand('rowInsertAfter',{exec:function(I){var J=I.getSelection();p(J);}});G.addCommand('columnDelete',{exec:function(I){var J=I.getSelection(),K=u(J);K&&z(K,true);}});G.addCommand('columnInsertBefore',{exec:function(I){var J=I.getSelection();t(J,true);}});G.addCommand('columnInsertAfter',{exec:function(I){var J=I.getSelection();t(J);}});G.addCommand('cellDelete',{exec:function(I){var J=I.getSelection();
+x(J);}});G.addCommand('cellMerge',{exec:function(I){z(C(I.getSelection()),true);}});G.addCommand('cellMergeRight',{exec:function(I){z(C(I.getSelection(),'right'),true);}});G.addCommand('cellMergeDown',{exec:function(I){z(C(I.getSelection(),'down'),true);}});G.addCommand('cellVerticalSplit',{exec:function(I){z(D(I.getSelection()));}});G.addCommand('cellHorizontalSplit',{exec:function(I){z(E(I.getSelection()));}});G.addCommand('cellInsertBefore',{exec:function(I){var J=I.getSelection();w(J,true);}});G.addCommand('cellInsertAfter',{exec:function(I){var J=I.getSelection();w(J);}});if(G.addMenuItems)G.addMenuItems({tablecell:{label:H.cell.menu,group:'tablecell',order:1,getItems:function(){var I=G.getSelection(),J=n(I);return{tablecell_insertBefore:2,tablecell_insertAfter:2,tablecell_delete:2,tablecell_merge:C(I,null,true)?2:0,tablecell_merge_right:C(I,'right',true)?2:0,tablecell_merge_down:C(I,'down',true)?2:0,tablecell_split_vertical:D(I,true)?2:0,tablecell_split_horizontal:E(I,true)?2:0,tablecell_properties:J.length>0?2:0};}},tablecell_insertBefore:{label:H.cell.insertBefore,group:'tablecell',command:'cellInsertBefore',order:5},tablecell_insertAfter:{label:H.cell.insertAfter,group:'tablecell',command:'cellInsertAfter',order:10},tablecell_delete:{label:H.cell.deleteCell,group:'tablecell',command:'cellDelete',order:15},tablecell_merge:{label:H.cell.merge,group:'tablecell',command:'cellMerge',order:16},tablecell_merge_right:{label:H.cell.mergeRight,group:'tablecell',command:'cellMergeRight',order:17},tablecell_merge_down:{label:H.cell.mergeDown,group:'tablecell',command:'cellMergeDown',order:18},tablecell_split_horizontal:{label:H.cell.splitHorizontal,group:'tablecell',command:'cellHorizontalSplit',order:19},tablecell_split_vertical:{label:H.cell.splitVertical,group:'tablecell',command:'cellVerticalSplit',order:20},tablecell_properties:{label:H.cell.title,group:'tablecellproperties',command:'cellProperties',order:21},tablerow:{label:H.row.menu,group:'tablerow',order:1,getItems:function(){return{tablerow_insertBefore:2,tablerow_insertAfter:2,tablerow_delete:2};}},tablerow_insertBefore:{label:H.row.insertBefore,group:'tablerow',command:'rowInsertBefore',order:5},tablerow_insertAfter:{label:H.row.insertAfter,group:'tablerow',command:'rowInsertAfter',order:10},tablerow_delete:{label:H.row.deleteRow,group:'tablerow',command:'rowDelete',order:15},tablecolumn:{label:H.column.menu,group:'tablecolumn',order:1,getItems:function(){return{tablecolumn_insertBefore:2,tablecolumn_insertAfter:2,tablecolumn_delete:2};
+}},tablecolumn_insertBefore:{label:H.column.insertBefore,group:'tablecolumn',command:'columnInsertBefore',order:5},tablecolumn_insertAfter:{label:H.column.insertAfter,group:'tablecolumn',command:'columnInsertAfter',order:10},tablecolumn_delete:{label:H.column.deleteColumn,group:'tablecolumn',command:'columnDelete',order:15}});if(G.contextMenu)G.contextMenu.addListener(function(I,J){if(!I||I.isReadOnly())return null;while(I){if(I.getName() in F)return{tablecell:2,tablerow:2,tablecolumn:2};I=I.getParent();}return null;});},getSelectedCells:n};j.add('tabletools',j.tabletools);})();e.buildTableMap=function(m){var n=m.$.rows,o=-1,p=[];for(var q=0;q<n.length;q++){o++;!p[o]&&(p[o]=[]);var r=-1;for(var s=0;s<n[q].cells.length;s++){var t=n[q].cells[s];r++;while(p[o][r])r++;var u=isNaN(t.colSpan)?1:t.colSpan,v=isNaN(t.rowSpan)?1:t.rowSpan;for(var w=0;w<v;w++){if(!p[o+w])p[o+w]=[];for(var x=0;x<u;x++)p[o+w][r+x]=n[q].cells[s];}r+=u-1;}}return p;};j.add('specialchar',{availableLangs:{cs:1,cy:1,de:1,en:1,eo:1,et:1,fa:1,fi:1,fr:1,hr:1,it:1,nb:1,nl:1,no:1,tr:1,ug:1,'zh-cn':1},init:function(m){var n='specialchar',o=this;a.dialog.add(n,this.path+'dialogs/specialchar.js');m.addCommand(n,{exec:function(){var p=m.langCode;p=o.availableLangs[p]?p:'en';a.scriptLoader.load(a.getUrl(o.path+'lang/'+p+'.js'),function(){e.extend(m.lang.specialChar,o.langEntries[p]);m.openDialog(n);});},modes:{wysiwyg:1},canUndo:false});m.ui.addButton('SpecialChar',{label:m.lang.specialChar.toolbar,command:n});}});i.specialChars=['!','"','#','$','%','&',"'",'(',')','*','+','-','.','/','0','1','2','3','4','5','6','7','8','9',':',';','<','=','>','?','@','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','[',']','^','_','`','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','{','|','}','~','€','‘','’','“','”','–','—','¡','¢','£','¤','¥','¦','§','¨','©','ª','«','¬','®','¯','°','&sup2;','&sup3;','´','µ','¶','·','¸','&sup1;','º','»','&frac14;','&frac12;','&frac34;','¿','À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý','þ','ÿ','Œ','œ','Ŵ','&#374','&#373','ŷ','‚','‛','„','…','™','►','•','→','⇒','⇔','♦','≈'];
 (function(){var m={editorFocus:false,modes:{wysiwyg:1,source:1}},n={exec:function(q){q.container.focusNext(true,q.tabIndex);}},o={exec:function(q){q.container.focusPrevious(true,q.tabIndex);}};function p(q){return{editorFocus:false,canUndo:false,modes:{wysiwyg:1},exec:function(r){if(r.focusManager.hasFocus){var s=r.getSelection(),t=s.getCommonAncestor(),u;if(u=t.getAscendant('td',true)||t.getAscendant('th',true)){var v=new d.range(r.document),w=e.tryThese(function(){var D=u.getParent(),E=D.$.cells[u.$.cellIndex+(q?-1:1)];E.parentNode.parentNode;return E;},function(){var D=u.getParent(),E=D.getAscendant('table'),F=E.$.rows[D.$.rowIndex+(q?-1:1)];return F.cells[q?F.cells.length-1:0];});if(!(w||q)){var x=u.getAscendant('table').$,y=u.getParent().$.cells,z=new h(x.insertRow(-1),r.document);for(var A=0,B=y.length;A<B;A++){var C=z.append(new h(y[A],r.document).clone(false,false));!c&&C.appendBogus();}v.moveToElementEditStart(z);}else if(w){w=new h(w);v.moveToElementEditStart(w);if(!(v.checkStartOfBlock()&&v.checkEndOfBlock()))v.selectNodeContents(w);}else return true;v.select(true);return true;}}return false;}};};j.add('tab',{requires:['keystrokes'],init:function(q){var r=q.config.enableTabKeyTools!==false,s=q.config.tabSpaces||0,t='';while(s--)t+='\xa0';if(t)q.on('key',function(u){if(u.data.keyCode==9){q.insertHtml(t);u.cancel();}});if(r)q.on('key',function(u){if(u.data.keyCode==9&&q.execCommand('selectNextCell')||u.data.keyCode==2228224+9&&q.execCommand('selectPreviousCell'))u.cancel();});if(b.webkit||b.gecko)q.on('key',function(u){var v=u.data.keyCode;if(v==9&&!t){u.cancel();q.execCommand('blur');}if(v==2228224+9){q.execCommand('blurBack');u.cancel();}});q.addCommand('blur',e.extend(n,m));q.addCommand('blurBack',e.extend(o,m));q.addCommand('selectNextCell',p());q.addCommand('selectPreviousCell',p(true));}});})();h.prototype.focusNext=function(m,n){var w=this;var o=w.$,p=n===undefined?w.getTabIndex():n,q,r,s,t,u,v;if(p<=0){u=w.getNextSourceNode(m,1);while(u){if(u.isVisible()&&u.getTabIndex()===0){s=u;break;}u=u.getNextSourceNode(false,1);}}else{u=w.getDocument().getBody().getFirst();while(u=u.getNextSourceNode(false,1)){if(!q)if(!r&&u.equals(w)){r=true;if(m){if(!(u=u.getNextSourceNode(true,1)))break;q=1;}}else if(r&&!w.contains(u))q=1;if(!u.isVisible()||(v=u.getTabIndex())<0)continue;if(q&&v==p){s=u;break;}if(v>p&&(!s||!t||v<t)){s=u;t=v;}else if(!s&&v===0){s=u;t=v;}}}if(s)s.focus();};h.prototype.focusPrevious=function(m,n){var w=this;var o=w.$,p=n===undefined?w.getTabIndex():n,q,r,s,t=0,u,v=w.getDocument().getBody().getLast();
 while(v=v.getPreviousSourceNode(false,1)){if(!q)if(!r&&v.equals(w)){r=true;if(m){if(!(v=v.getPreviousSourceNode(true,1)))break;q=1;}}else if(r&&!w.contains(v))q=1;if(!v.isVisible()||(u=v.getTabIndex())<0)continue;if(p<=0){if(q&&u===0){s=v;break;}if(u>t){s=v;t=u;}}else{if(q&&u==p){s=v;break;}if(u<p&&(!s||u>t)){s=v;t=u;}}}if(s)s.focus();};(function(){j.add('templates',{requires:['dialog'],init:function(o){a.dialog.add('templates',a.getUrl(this.path+'dialogs/templates.js'));o.addCommand('templates',new a.dialogCommand('templates'));o.ui.addButton('Templates',{label:o.lang.templates.button,command:'templates'});}});var m={},n={};a.addTemplates=function(o,p){m[o]=p;};a.getTemplates=function(o){return m[o];};a.loadTemplates=function(o,p){var q=[];for(var r=0,s=o.length;r<s;r++){if(!n[o[r]]){q.push(o[r]);n[o[r]]=1;}}if(q.length)a.scriptLoader.load(q,p);else setTimeout(p,0);};})();i.templates_files=[a.getUrl('plugins/templates/templates/default.js')];i.templates_replaceContent=true;(function(){var m=function(){this.toolbars=[];this.focusCommandExecuted=false;};m.prototype.focus=function(){for(var o=0,p;p=this.toolbars[o++];)for(var q=0,r;r=p.items[q++];){if(r.focus){r.focus();return;}}};var n={toolbarFocus:{modes:{wysiwyg:1,source:1},readOnly:1,exec:function(o){if(o.toolbox){o.toolbox.focusCommandExecuted=true;if(c||b.air)setTimeout(function(){o.toolbox.focus();},100);else o.toolbox.focus();}}}};j.add('toolbar',{init:function(o){var p,q=function(r,s){var t,u,v=o.lang.dir=='rtl',w=o.config.toolbarGroupCycling;w=w===undefined||w;switch(s){case 9:case 2228224+9:while(!u||!u.items.length){u=s==9?(u?u.next:r.toolbar.next)||o.toolbox.toolbars[0]:(u?u.previous:r.toolbar.previous)||o.toolbox.toolbars[o.toolbox.toolbars.length-1];if(u.items.length){r=u.items[p?u.items.length-1:0];while(r&&!r.focus){r=p?r.previous:r.next;if(!r)u=0;}}}if(r)r.focus();return false;case v?37:39:case 40:t=r;do{t=t.next;if(!t&&w)t=r.toolbar.items[0];}while(t&&!t.focus);if(t)t.focus();else q(r,9);return false;case v?39:37:case 38:t=r;do{t=t.previous;if(!t&&w)t=r.toolbar.items[r.toolbar.items.length-1];}while(t&&!t.focus);if(t)t.focus();else{p=1;q(r,2228224+9);p=0;}return false;case 27:o.focus();return false;case 13:case 32:r.execute();return false;}return true;};o.on('themeSpace',function(r){if(r.data.space==o.config.toolbarLocation){o.toolbox=new m();var s=e.getNextId(),t=['<div class="cke_toolbox" role="group" aria-labelledby="',s,'" onmousedown="return false;"'],u=o.config.toolbarStartupExpanded!==false,v;
 t.push(u?'>':' style="display:none">');t.push('<span id="',s,'" class="cke_voice_label">',o.lang.toolbars,'</span>');var w=o.toolbox.toolbars,x=o.config.toolbar instanceof Array?o.config.toolbar:o.config['toolbar_'+o.config.toolbar];for(var y=0;y<x.length;y++){var z,A=0,B,C=x[y],D;if(!C)continue;if(v){t.push('</div>');v=0;}if(C==='/'){t.push('<div class="cke_break"></div>');continue;}D=C.items||C;for(var E=0;E<D.length;E++){var F,G=D[E],H;F=o.ui.create(G);if(F){H=F.canGroup!==false;if(!A){z=e.getNextId();A={id:z,items:[]};B=C.name&&(o.lang.toolbarGroups[C.name]||C.name);t.push('<span id="',z,'" class="cke_toolbar"',B?' aria-labelledby="'+z+'_label"':'',' role="toolbar">');B&&t.push('<span id="',z,'_label" class="cke_voice_label">',B,'</span>');t.push('<span class="cke_toolbar_start"></span>');var I=w.push(A)-1;if(I>0){A.previous=w[I-1];A.previous.next=A;}}if(H){if(!v){t.push('<span class="cke_toolgroup" role="presentation">');v=1;}}else if(v){t.push('</span>');v=0;}var J=F.render(o,t);I=A.items.push(J)-1;if(I>0){J.previous=A.items[I-1];J.previous.next=J;}J.toolbar=A;J.onkey=q;J.onfocus=function(){if(!o.toolbox.focusCommandExecuted)o.focus();};}}if(v){t.push('</span>');v=0;}if(A)t.push('<span class="cke_toolbar_end"></span></span>');}t.push('</div>');if(o.config.toolbarCanCollapse){var K=e.addFunction(function(){o.execCommand('toolbarCollapse');});o.on('destroy',function(){e.removeFunction(K);});var L=e.getNextId();o.addCommand('toolbarCollapse',{readOnly:1,exec:function(M){var N=a.document.getById(L),O=N.getPrevious(),P=M.getThemeSpace('contents'),Q=O.getParent(),R=parseInt(P.$.style.height,10),S=Q.$.offsetHeight,T=!O.isVisible();if(!T){O.hide();N.addClass('cke_toolbox_collapser_min');N.setAttribute('title',M.lang.toolbarExpand);}else{O.show();N.removeClass('cke_toolbox_collapser_min');N.setAttribute('title',M.lang.toolbarCollapse);}N.getFirst().setText(T?'â–²':'â—€');var U=Q.$.offsetHeight-S;P.setStyle('height',R-U+'px');M.fire('resize');},modes:{wysiwyg:1,source:1}});t.push('<a title="'+(u?o.lang.toolbarCollapse:o.lang.toolbarExpand)+'" id="'+L+'" tabIndex="-1" class="cke_toolbox_collapser');if(!u)t.push(' cke_toolbox_collapser_min');t.push('" onclick="CKEDITOR.tools.callFunction('+K+')">','<span>▲</span>','</a>');}r.data.html+=t.join('');}});o.on('destroy',function(){var r,s=0,t,u,v;r=this.toolbox.toolbars;for(;s<r.length;s++){u=r[s].items;for(t=0;t<u.length;t++){v=u[t];if(v.clickFn)e.removeFunction(v.clickFn);if(v.keyDownFn)e.removeFunction(v.keyDownFn);
-}}});o.addCommand('toolbarFocus',n.toolbarFocus);o.ui.add('-',a.UI_SEPARATOR,{});o.ui.addHandler(a.UI_SEPARATOR,{create:function(){return{render:function(r,s){s.push('<span class="cke_separator" role="separator"></span>');return{};}};}});}});})();a.UI_SEPARATOR='separator';i.toolbarLocation='top';i.toolbar_Basic=[['Bold','Italic','-','NumberedList','BulletedList','-','Link','Unlink','-','About']];i.toolbar_Full=[{name:'document',items:['Source','-','Save','NewPage','DocProps','Preview','Print','-','Templates']},{name:'clipboard',items:['Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo']},{name:'editing',items:['Find','Replace','-','SelectAll','-','SpellChecker','Scayt']},{name:'forms',items:['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField']},'/',{name:'basicstyles',items:['Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat']},{name:'paragraph',items:['NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote','CreateDiv','-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','-','BidiLtr','BidiRtl']},{name:'links',items:['Link','Unlink','Anchor']},{name:'insert',items:['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe']},'/',{name:'styles',items:['Styles','Format','Font','FontSize']},{name:'colors',items:['TextColor','BGColor']},{name:'tools',items:['Maximize','ShowBlocks','-','About']}];i.toolbar='Full';i.toolbarCanCollapse=true;(function(){j.add('undo',{requires:['selection','wysiwygarea'],init:function(s){var t=new o(s),u=s.addCommand('undo',{exec:function(){if(t.undo()){s.selectionChange();this.fire('afterUndo');}},state:0,canUndo:false}),v=s.addCommand('redo',{exec:function(){if(t.redo()){s.selectionChange();this.fire('afterRedo');}},state:0,canUndo:false});t.onChange=function(){u.setState(t.undoable()?2:0);v.setState(t.redoable()?2:0);};function w(x){if(t.enabled&&x.data.command.canUndo!==false)t.save();};s.on('beforeCommandExec',w);s.on('afterCommandExec',w);s.on('saveSnapshot',function(){t.save();});s.on('contentDom',function(){s.document.on('keydown',function(x){if(!x.data.$.ctrlKey&&!x.data.$.metaKey)t.type(x);});});s.on('beforeModeUnload',function(){s.mode=='wysiwyg'&&t.save(true);});s.on('mode',function(){t.enabled=s.readOnly?false:s.mode=='wysiwyg';t.onChange();});s.ui.addButton('Undo',{label:s.lang.undo,command:'undo'});s.ui.addButton('Redo',{label:s.lang.redo,command:'redo'});s.resetUndo=function(){t.reset();
-s.fire('saveSnapshot');};s.on('updateSnapshot',function(){if(t.currentImage&&new m(s).equals(t.currentImage))setTimeout(function(){t.update();},0);});}});j.undo={};var m=j.undo.Image=function(s){this.editor=s;s.fire('beforeUndoImage');var t=s.getSnapshot(),u=t&&s.getSelection();c&&t&&(t=t.replace(/\s+data-cke-expando=".*?"/g,''));this.contents=t;this.bookmarks=u&&u.createBookmarks2(true);s.fire('afterUndoImage');},n=/\b(?:href|src|name)="[^"]*?"/gi;m.prototype={equals:function(s,t){var u=this.contents,v=s.contents;if(c&&(b.ie7Compat||b.ie6Compat)){u=u.replace(n,'');v=v.replace(n,'');}if(u!=v)return false;if(t)return true;var w=this.bookmarks,x=s.bookmarks;if(w||x){if(!w||!x||w.length!=x.length)return false;for(var y=0;y<w.length;y++){var z=w[y],A=x[y];if(z.startOffset!=A.startOffset||z.endOffset!=A.endOffset||!e.arrayCompare(z.start,A.start)||!e.arrayCompare(z.end,A.end))return false;}}return true;}};function o(s){this.editor=s;this.reset();};var p={8:1,46:1},q={16:1,17:1,18:1},r={37:1,38:1,39:1,40:1};o.prototype={type:function(s){var t=s&&s.data.getKey(),u=t in q,v=t in p,w=this.lastKeystroke in p,x=v&&t==this.lastKeystroke,y=t in r,z=this.lastKeystroke in r,A=!v&&!y,B=v&&!x,C=!(u||this.typing)||A&&(w||z);if(C||B){var D=new m(this.editor);e.setTimeout(function(){var F=this;var E=F.editor.getSnapshot();if(c)E=E.replace(/\s+data-cke-expando=".*?"/g,'');if(D.contents!=E){F.typing=true;if(!F.save(false,D,false))F.snapshots.splice(F.index+1,F.snapshots.length-F.index-1);F.hasUndo=true;F.hasRedo=false;F.typesCount=1;F.modifiersCount=1;F.onChange();}},0,this);}this.lastKeystroke=t;if(v){this.typesCount=0;this.modifiersCount++;if(this.modifiersCount>25){this.save(false,null,false);this.modifiersCount=1;}}else if(!y){this.modifiersCount=0;this.typesCount++;if(this.typesCount>25){this.save(false,null,false);this.typesCount=1;}}},reset:function(){var s=this;s.lastKeystroke=0;s.snapshots=[];s.index=-1;s.limit=s.editor.config.undoStackSize||20;s.currentImage=null;s.hasUndo=false;s.hasRedo=false;s.resetType();},resetType:function(){var s=this;s.typing=false;delete s.lastKeystroke;s.typesCount=0;s.modifiersCount=0;},fireChange:function(){var s=this;s.hasUndo=!!s.getNextImage(true);s.hasRedo=!!s.getNextImage(false);s.resetType();s.onChange();},save:function(s,t,u){var w=this;var v=w.snapshots;if(!t)t=new m(w.editor);if(t.contents===false)return false;if(w.currentImage&&t.equals(w.currentImage,s))return false;v.splice(w.index+1,v.length-w.index-1);if(v.length==w.limit)v.shift();
-w.index=v.push(t)-1;w.currentImage=t;if(u!==false)w.fireChange();return true;},restoreImage:function(s){var u=this;u.editor.loadSnapshot(s.contents);if(s.bookmarks)u.editor.getSelection().selectBookmarks(s.bookmarks);else if(c){var t=u.editor.document.getBody().$.createTextRange();t.collapse(true);t.select();}u.index=s.index;u.update();u.fireChange();},getNextImage:function(s){var x=this;var t=x.snapshots,u=x.currentImage,v,w;if(u)if(s)for(w=x.index-1;w>=0;w--){v=t[w];if(!u.equals(v,true)){v.index=w;return v;}}else for(w=x.index+1;w<t.length;w++){v=t[w];if(!u.equals(v,true)){v.index=w;return v;}}return null;},redoable:function(){return this.enabled&&this.hasRedo;},undoable:function(){return this.enabled&&this.hasUndo;},undo:function(){var t=this;if(t.undoable()){t.save(true);var s=t.getNextImage(true);if(s)return t.restoreImage(s),true;}return false;},redo:function(){var t=this;if(t.redoable()){t.save(true);if(t.redoable()){var s=t.getNextImage(false);if(s)return t.restoreImage(s),true;}}return false;},update:function(){var s=this;s.snapshots.splice(s.index,1,s.currentImage=new m(s.editor));}};})();(function(){var m=/(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi,n=d.walker.whitespaces(true);function o(C){return C.isBlockBoundary()&&f.$empty[C.getName()];};function p(C){return function(D){if(this.mode=='wysiwyg'){this.focus();this.fire('saveSnapshot');C.call(this,D.data);e.setTimeout(function(){this.fire('saveSnapshot');},0,this);}};};function q(C){var M=this;if(M.dataProcessor)C=M.dataProcessor.toHtml(C);if(!C)return;var D=M.getSelection(),E=D.getRanges()[0];if(E.checkReadOnly())return;if(b.opera){var F=new d.elementPath(E.startContainer);if(F.block){var G=a.htmlParser.fragment.fromHtml(C,false).children;for(var H=0,I=G.length;H<I;H++){if(G[H]._.isBlockLike){E.splitBlock(M.enterMode==3?'div':'p');E.insertNode(E.document.createText(''));E.select();break;}}}}if(c){var J=D.isLocked;if(J)D.unlock();var K=D.getNative();if(K.type=='Control')K.clear();else if(D.getType()==2){E=D.getRanges()[0];var L=E&&E.endContainer;if(L&&L.type==1&&L.getAttribute('contenteditable')=='false'&&E.checkBoundaryOfElement(L,2)){E.setEndAfter(E.endContainer);E.deleteContents();}}try{K.createRange().pasteHTML(C);}catch(N){}if(J)M.getSelection().lock();}else M.document.$.execCommand('inserthtml',false,C);if(b.webkit){D=M.getSelection();D.scrollIntoView();}};function r(C){var D=this.getSelection(),E=D.getStartElement().hasAscendant('pre',true)?2:this.config.enterMode,F=E==2,G=e.htmlEncode(C.replace(/\r\n|\r/g,'\n'));
+}}});o.addCommand('toolbarFocus',n.toolbarFocus);o.ui.add('-',a.UI_SEPARATOR,{});o.ui.addHandler(a.UI_SEPARATOR,{create:function(){return{render:function(r,s){s.push('<span class="cke_separator" role="separator"></span>');return{};}};}});}});})();a.UI_SEPARATOR='separator';i.toolbarLocation='top';i.toolbar_Basic=[['Bold','Italic','-','NumberedList','BulletedList','-','Link','Unlink','-','About']];i.toolbar_Full=[{name:'document',items:['Source','-','Save','NewPage','DocProps','Preview','Print','-','Templates']},{name:'clipboard',items:['Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo']},{name:'editing',items:['Find','Replace','-','SelectAll','-','SpellChecker','Scayt']},{name:'forms',items:['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField']},'/',{name:'basicstyles',items:['Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat']},{name:'paragraph',items:['NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote','CreateDiv','-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','-','BidiLtr','BidiRtl']},{name:'links',items:['Link','Unlink','Anchor']},{name:'insert',items:['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe']},'/',{name:'styles',items:['Styles','Format','Font','FontSize']},{name:'colors',items:['TextColor','BGColor']},{name:'tools',items:['Maximize','ShowBlocks','-','About']}];i.toolbar='Full';i.toolbarCanCollapse=true;(function(){j.add('undo',{requires:['selection','wysiwygarea'],init:function(s){var t=new o(s),u=s.addCommand('undo',{exec:function(){if(t.undo()){s.selectionChange();this.fire('afterUndo');}},state:0,canUndo:false}),v=s.addCommand('redo',{exec:function(){if(t.redo()){s.selectionChange();this.fire('afterRedo');}},state:0,canUndo:false});t.onChange=function(){u.setState(t.undoable()?2:0);v.setState(t.redoable()?2:0);};function w(x){if(t.enabled&&x.data.command.canUndo!==false)t.save();};s.on('beforeCommandExec',w);s.on('afterCommandExec',w);s.on('saveSnapshot',function(x){t.save(x.data&&x.data.contentOnly);});s.on('contentDom',function(){s.document.on('keydown',function(x){if(!x.data.$.ctrlKey&&!x.data.$.metaKey)t.type(x);});});s.on('beforeModeUnload',function(){s.mode=='wysiwyg'&&t.save(true);});s.on('mode',function(){t.enabled=s.readOnly?false:s.mode=='wysiwyg';t.onChange();});s.ui.addButton('Undo',{label:s.lang.undo,command:'undo'});s.ui.addButton('Redo',{label:s.lang.redo,command:'redo'});
+s.resetUndo=function(){t.reset();s.fire('saveSnapshot');};s.on('updateSnapshot',function(){if(t.currentImage)t.update();});}});j.undo={};var m=j.undo.Image=function(s){this.editor=s;s.fire('beforeUndoImage');var t=s.getSnapshot(),u=t&&s.getSelection();c&&t&&(t=t.replace(/\s+data-cke-expando=".*?"/g,''));this.contents=t;this.bookmarks=u&&u.createBookmarks2(true);s.fire('afterUndoImage');},n=/\b(?:href|src|name)="[^"]*?"/gi;m.prototype={equals:function(s,t){var u=this.contents,v=s.contents;if(c&&(b.ie7Compat||b.ie6Compat)){u=u.replace(n,'');v=v.replace(n,'');}if(u!=v)return false;if(t)return true;var w=this.bookmarks,x=s.bookmarks;if(w||x){if(!w||!x||w.length!=x.length)return false;for(var y=0;y<w.length;y++){var z=w[y],A=x[y];if(z.startOffset!=A.startOffset||z.endOffset!=A.endOffset||!e.arrayCompare(z.start,A.start)||!e.arrayCompare(z.end,A.end))return false;}}return true;}};function o(s){this.editor=s;this.reset();};var p={8:1,46:1},q={16:1,17:1,18:1},r={37:1,38:1,39:1,40:1};o.prototype={type:function(s){var t=s&&s.data.getKey(),u=t in q,v=t in p,w=this.lastKeystroke in p,x=v&&t==this.lastKeystroke,y=t in r,z=this.lastKeystroke in r,A=!v&&!y,B=v&&!x,C=!(u||this.typing)||A&&(w||z);if(C||B){var D=new m(this.editor),E=this.snapshots.length;e.setTimeout(function(){var G=this;var F=G.editor.getSnapshot();if(c)F=F.replace(/\s+data-cke-expando=".*?"/g,'');if(D.contents!=F&&E==G.snapshots.length){G.typing=true;if(!G.save(false,D,false))G.snapshots.splice(G.index+1,G.snapshots.length-G.index-1);G.hasUndo=true;G.hasRedo=false;G.typesCount=1;G.modifiersCount=1;G.onChange();}},0,this);}this.lastKeystroke=t;if(v){this.typesCount=0;this.modifiersCount++;if(this.modifiersCount>25){this.save(false,null,false);this.modifiersCount=1;}}else if(!y){this.modifiersCount=0;this.typesCount++;if(this.typesCount>25){this.save(false,null,false);this.typesCount=1;}}},reset:function(){var s=this;s.lastKeystroke=0;s.snapshots=[];s.index=-1;s.limit=s.editor.config.undoStackSize||20;s.currentImage=null;s.hasUndo=false;s.hasRedo=false;s.resetType();},resetType:function(){var s=this;s.typing=false;delete s.lastKeystroke;s.typesCount=0;s.modifiersCount=0;},fireChange:function(){var s=this;s.hasUndo=!!s.getNextImage(true);s.hasRedo=!!s.getNextImage(false);s.resetType();s.onChange();},save:function(s,t,u){var w=this;var v=w.snapshots;if(!t)t=new m(w.editor);if(t.contents===false)return false;if(w.currentImage&&t.equals(w.currentImage,s))return false;v.splice(w.index+1,v.length-w.index-1);if(v.length==w.limit)v.shift();
+w.index=v.push(t)-1;w.currentImage=t;if(u!==false)w.fireChange();return true;},restoreImage:function(s){var w=this;var t=w.editor,u;if(s.bookmarks){t.focus();u=t.getSelection();}w.editor.loadSnapshot(s.contents);if(s.bookmarks)u.selectBookmarks(s.bookmarks);else if(c){var v=w.editor.document.getBody().$.createTextRange();v.collapse(true);v.select();}w.index=s.index;w.update();w.fireChange();},getNextImage:function(s){var x=this;var t=x.snapshots,u=x.currentImage,v,w;if(u)if(s)for(w=x.index-1;w>=0;w--){v=t[w];if(!u.equals(v,true)){v.index=w;return v;}}else for(w=x.index+1;w<t.length;w++){v=t[w];if(!u.equals(v,true)){v.index=w;return v;}}return null;},redoable:function(){return this.enabled&&this.hasRedo;},undoable:function(){return this.enabled&&this.hasUndo;},undo:function(){var t=this;if(t.undoable()){t.save(true);var s=t.getNextImage(true);if(s)return t.restoreImage(s),true;}return false;},redo:function(){var t=this;if(t.redoable()){t.save(true);if(t.redoable()){var s=t.getNextImage(false);if(s)return t.restoreImage(s),true;}}return false;},update:function(){var s=this;s.snapshots.splice(s.index,1,s.currentImage=new m(s.editor));}};})();(function(){var m=/(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi,n=d.walker.whitespaces(true);function o(C){return C.isBlockBoundary()&&f.$empty[C.getName()];};function p(C){return function(D){if(this.mode=='wysiwyg'){this.focus();var E=this.getSelection(),F=E.isLocked;F&&E.unlock();this.fire('saveSnapshot');C.call(this,D.data);F&&this.getSelection().lock();e.setTimeout(function(){this.fire('saveSnapshot');},0,this);}};};function q(C){var L=this;if(L.dataProcessor)C=L.dataProcessor.toHtml(C);if(!C)return;var D=L.getSelection(),E=D.getRanges()[0];if(E.checkReadOnly())return;if(b.opera){var F=new d.elementPath(E.startContainer);if(F.block){var G=a.htmlParser.fragment.fromHtml(C,false).children;for(var H=0,I=G.length;H<I;H++){if(G[H]._.isBlockLike){E.splitBlock(L.enterMode==3?'div':'p');E.insertNode(E.document.createText(''));E.select();break;}}}}if(c){var J=D.getNative();if(J.type=='Control')J.clear();else if(D.getType()==2){E=D.getRanges()[0];var K=E&&E.endContainer;if(K&&K.type==1&&K.getAttribute('contenteditable')=='false'&&E.checkBoundaryOfElement(K,2)){E.setEndAfter(E.endContainer);E.deleteContents();}}J.createRange().pasteHTML(C);}else L.document.$.execCommand('inserthtml',false,C);if(b.webkit){D=L.getSelection();D.scrollIntoView();}};function r(C){var D=this.getSelection(),E=D.getStartElement().hasAscendant('pre',true)?2:this.config.enterMode,F=E==2,G=e.htmlEncode(C.replace(/\r\n|\r/g,'\n'));
 G=G.replace(/^[ \t]+|[ \t]+$/g,function(M,N,O){if(M.length==1)return ' ';else if(!N)return e.repeat(' ',M.length-1)+' ';else return ' '+e.repeat(' ',M.length-1);});G=G.replace(/[ \t]{2,}/g,function(M){return e.repeat(' ',M.length-1)+' ';});var H=E==1?'p':'div';if(!F)G=G.replace(/(\n{2})([\s\S]*?)(?:$|\1)/g,function(M,N,O){return '<'+H+'>'+O+'</'+H+'>';});G=G.replace(/\n/g,'<br>');if(!(F||c))G=G.replace(new RegExp('<br>(?=</'+H+'>)'),function(M){return e.repeat(M,2);});if(b.gecko||b.webkit){var I=new d.elementPath(D.getStartElement()),J=[];for(var K=0;K<I.elements.length;K++){var L=I.elements[K].getName();if(L in f.$inline)J.unshift(I.elements[K].getOuterHtml().match(/^<.*?>/));else if(L in f.$block)break;}G=J.join('')+G;}q.call(this,G);};function s(C){var D=this.getSelection(),E=D.getRanges(),F=C.getName(),G=f.$block[F],H=D.isLocked;if(H)D.unlock();var I,J,K,L;for(var M=E.length-1;M>=0;M--){I=E[M];if(!I.checkReadOnly()){I.deleteContents(1);J=!M&&C||C.clone(1);var N,O;if(G)while((N=I.getCommonAncestor(0,1))&&(O=f[N.getName()])&&!(O&&O[F])){if(N.getName() in f.span)I.splitElement(N);else if(I.checkStartOfBlock()&&I.checkEndOfBlock()){I.setStartBefore(N);I.collapse(true);N.remove();}else I.splitBlock();}I.insertNode(J);if(!K)K=J;}}if(K){I.moveToPosition(K,4);if(G){var P=K.getNext(n),Q=P&&P.type==1&&P.getName();if(Q&&f.$block[Q]&&f[Q]['#'])I.moveToElementEditStart(P);}}D.selectRanges([I]);if(H)this.getSelection().lock();};function t(C){if(!C.checkDirty())setTimeout(function(){C.resetDirty();},0);};var u=d.walker.whitespaces(true),v=d.walker.bookmark(false,true);function w(C){return u(C)&&v(C);};function x(C){return C.type==3&&e.trim(C.getText()).match(/^(?: |\xa0)$/);};function y(C){if(C.isLocked){C.unlock();setTimeout(function(){C.lock();},0);}};function z(C){return C.getOuterHtml().match(m);};u=d.walker.whitespaces(true);function A(C){var D=C.window,E=C.document,F=C.document.getBody(),G=F.getFirst(),H=F.getChildren().count();if(!H||H==1&&G.type==1&&G.hasAttribute('_moz_editor_bogus_node')){t(C);var I=C.element.getDocument(),J=I.getDocumentElement(),K=J.$.scrollTop,L=J.$.scrollLeft,M=E.$.createEvent('KeyEvents');M.initKeyEvent('keypress',true,true,D.$,false,false,false,false,0,32);E.$.dispatchEvent(M);if(K!=J.$.scrollTop||L!=J.$.scrollLeft)I.getWindow().$.scrollTo(L,K);H&&F.getFirst().remove();E.getBody().appendBogus();var N=new d.range(E);N.setStartAt(F,1);N.select();}};function B(C){var D=C.editor,E=C.data.path,F=E.blockLimit,G=C.data.selection,H=G.getRanges()[0],I=D.document.getBody(),J=D.config.enterMode;
-if(b.gecko){A(D);var K=E.block||E.blockLimit,L=K&&K.getLast(w);if(K&&K.isBlockBoundary()&&!(L&&L.type==1&&L.isBlockBoundary())&&!K.is('pre')&&!K.getBogus()){D.fire('updateSnapshot');t(D);K.appendBogus();}}if(D.config.autoParagraph!==false&&J!=2&&H.collapsed&&F.getName()=='body'&&!E.block){D.fire('updateSnapshot');t(D);c&&y(G);var M=H.fixBlock(true,D.config.enterMode==3?'div':'p');if(c){var N=M.getFirst(w);N&&x(N)&&N.remove();}if(z(M)){var O=M.getNext(u);if(O&&O.type==1&&!o(O)){H.moveToElementEditStart(O);M.remove();}else{O=M.getPrevious(u);if(O&&O.type==1&&!o(O)){H.moveToElementEditEnd(O);M.remove();}}}H.select();C.cancel();}var P=new d.range(D.document);P.moveToElementEditEnd(D.document.getBody());var Q=new d.elementPath(P.startContainer);if(!Q.blockLimit.is('body')){D.fire('updateSnapshot');t(D);c&&y(G);var R;if(J!=2)R=I.append(D.document.createElement(J==1?'p':'div'));else R=I;if(!c)R.appendBogus();}};j.add('wysiwygarea',{requires:['editingblock'],init:function(C){var D=C.config.enterMode!=2&&C.config.autoParagraph!==false?C.config.enterMode==3?'div':'p':false,E=C.lang.editorTitle.replace('%1',C.name),F;C.on('editingBlockReady',function(){var L,M,N,O,P,Q,R=b.isCustomDomain(),S=function(V){if(M)M.remove();var W='document.open();'+(R?'document.domain="'+document.domain+'";':'')+'document.close();';W=b.air?'javascript:void(0)':c?'javascript:void(function(){'+encodeURIComponent(W)+'}())':'';M=h.createFromHtml('<iframe style="width:100%;height:100%" frameBorder="0" title="'+E+'"'+' src="'+W+'"'+' tabIndex="'+(b.webkit?-1:C.tabIndex)+'"'+' allowTransparency="true"'+'></iframe>');if(document.location.protocol=='chrome:')a.event.useCapture=true;M.on('load',function(X){P=1;X.removeListener();var Y=M.getFrameDocument();Y.write(V);b.air&&U(Y.getWindow().$);});if(document.location.protocol=='chrome:')a.event.useCapture=false;L.append(M);};F=e.addFunction(U);var T='<script id="cke_actscrpt" type="text/javascript" data-cke-temp="1">'+(R?'document.domain="'+document.domain+'";':'')+'window.parent.CKEDITOR.tools.callFunction( '+F+', window );'+'</script>';function U(V){if(!P)return;P=0;C.fire('ariaWidget',M);var W=V.document,X=W.body,Y=W.getElementById('cke_actscrpt');Y&&Y.parentNode.removeChild(Y);X.spellcheck=!C.config.disableNativeSpellChecker;var Z=!C.readOnly;if(c){X.hideFocus=true;X.disabled=true;X.contentEditable=Z;X.removeAttribute('disabled');}else setTimeout(function(){if(b.gecko&&b.version>=10900||b.opera)W.$.body.contentEditable=Z;else if(b.webkit)W.$.body.parentNode.contentEditable=Z;
-else W.$.designMode=Z?'off':'on';},0);Z&&b.gecko&&e.setTimeout(A,0,null,C);V=C.window=new d.window(V);W=C.document=new g(W);Z&&W.on('dblclick',function(af){var ag=af.data.getTarget(),ah={element:ag,dialog:''};C.fire('doubleclick',ah);ah.dialog&&C.openDialog(ah.dialog);});c&&W.on('click',function(af){var ag=af.data.getTarget();if(ag.is('input')){var ah=ag.getAttribute('type');if(ah=='submit'||ah=='reset')af.data.preventDefault();}});if(!(c||b.opera))W.on('mousedown',function(af){var ag=af.data.getTarget();if(ag.is('img','hr','input','textarea','select'))C.getSelection().selectElement(ag);});if(b.gecko)W.on('mouseup',function(af){if(af.data.$.button==2){var ag=af.data.getTarget();if(!ag.getOuterHtml().replace(m,'')){var ah=new d.range(W);ah.moveToElementEditStart(ag);ah.select(true);}}});W.on('click',function(af){af=af.data;if(af.getTarget().is('a')&&af.$.button!=2)af.preventDefault();});if(b.webkit){W.on('mousedown',function(){ac=1;});W.on('click',function(af){if(af.data.getTarget().is('input','select'))af.data.preventDefault();});W.on('mouseup',function(af){if(af.data.getTarget().is('input','textarea'))af.data.preventDefault();});}if(Z&&c&&W.$.compatMode=='CSS1Compat'||b.gecko||b.opera){var aa=W.getDocumentElement();aa.on('mousedown',function(af){if(af.data.getTarget().equals(aa)){if(b.gecko&&b.version>=10900)J();K.focus();}});}var ab=c?M:V;ab.on('blur',function(){C.focusManager.blur();});var ac;ab.on('focus',function(){var af=C.document;if(Z&&b.gecko&&b.version>=10900)J();else if(b.opera)af.getBody().focus();else if(b.webkit)if(!ac){C.document.getDocumentElement().focus();ac=1;}C.focusManager.focus();});var ad=C.keystrokeHandler;ad.blockedKeystrokes[8]=!Z;ad.attach(W);if(c){W.getDocumentElement().addClass(W.$.compatMode);Z&&W.on('keydown',function(af){var ag=af.data.getKeystroke();if(ag in {8:1,46:1}){var ah=C.getSelection(),ai=ah.getSelectedElement();if(ai){C.fire('saveSnapshot');var aj=ah.getRanges()[0].createBookmark();ai.remove();ah.selectBookmarks([aj]);C.fire('saveSnapshot');af.data.preventDefault();}}});if(W.$.compatMode=='CSS1Compat'){var ae={33:1,34:1};W.on('keydown',function(af){if(af.data.getKeystroke() in ae)setTimeout(function(){C.getSelection().scrollIntoView();},0);});}C.config.enterMode!=1&&W.on('selectionchange',function(){var af=W.getBody(),ag=C.getSelection().getRanges()[0];if(af.getHtml().match(/^<p> <\/p>$/i)&&ag.startContainer.equals(af))setTimeout(function(){ag=C.getSelection().getRanges()[0];if(!ag.startContainer.equals('body')){af.getFirst().remove(1);
-ag.moveToElementEditEnd(af);ag.select(1);}},0);});}if(C.contextMenu)C.contextMenu.addTarget(W,C.config.browserContextMenuOnCtrl!==false);setTimeout(function(){C.fire('contentDom');if(Q){C.mode='wysiwyg';C.fire('mode');Q=false;}N=false;if(O){C.focus();O=false;}setTimeout(function(){C.fire('dataReady');},0);try{C.document.$.execCommand('enableInlineTableEditing',false,!C.config.disableNativeTableHandles);}catch(af){}if(C.config.disableObjectResizing)try{C.document.$.execCommand('enableObjectResizing',false,false);}catch(ag){C.document.getBody().on(c?'resizestart':'resize',function(ah){ah.data.preventDefault();});}if(c)setTimeout(function(){if(C.document){var ah=C.document.$.body;ah.runtimeStyle.marginBottom='0px';ah.runtimeStyle.marginBottom='';}},1000);},0);};C.addMode('wysiwyg',{load:function(V,W,X){L=V;if(c&&b.quirks)V.setStyle('position','relative');C.mayBeDirty=true;Q=true;if(X)this.loadSnapshotData(W);else this.loadData(W);},loadData:function(V){N=true;C._.dataStore={id:1};var W=C.config,X=W.fullPage,Y=W.docType,Z='<style type="text/css" data-cke-temp="1">'+C._.styles.join('\n')+'</style>';!X&&(Z=e.buildStyleHtml(C.config.contentsCss)+Z);var aa=W.baseHref?'<base href="'+W.baseHref+'" data-cke-temp="1" />':'';if(X)V=V.replace(/<!DOCTYPE[^>]*>/i,function(ab){C.docType=Y=ab;return '';}).replace(/<\?xml\s[^\?]*\?>/i,function(ab){C.xmlDeclaration=ab;return '';});if(C.dataProcessor)V=C.dataProcessor.toHtml(V,D);if(X){if(!/<body[\s|>]/.test(V))V='<body>'+V;if(!/<html[\s|>]/.test(V))V='<html>'+V+'</html>';if(!/<head[\s|>]/.test(V))V=V.replace(/<html[^>]*>/,'$&<head><title></title></head>');else if(!/<title[\s|>]/.test(V))V=V.replace(/<head[^>]*>/,'$&<title></title>');aa&&(V=V.replace(/<head>/,'$&'+aa));V=V.replace(/<\/head\s*>/,Z+'$&');V=Y+V;}else V=W.docType+'<html dir="'+W.contentsLangDirection+'"'+' lang="'+(W.contentsLanguage||C.langCode)+'">'+'<head>'+'<title>'+E+'</title>'+aa+Z+'</head>'+'<body'+(W.bodyId?' id="'+W.bodyId+'"':'')+(W.bodyClass?' class="'+W.bodyClass+'"':'')+'>'+V+'</html>';if(b.gecko)V=V.replace(/<br \/>(?=\s*<\/(:?html|body)>)/,'$&<br type="_moz" />');V+=T;this.onDispose();S(V);},getData:function(){var V=C.config,W=V.fullPage,X=W&&C.docType,Y=W&&C.xmlDeclaration,Z=M.getFrameDocument(),aa=W?Z.getDocumentElement().getOuterHtml():Z.getBody().getHtml();if(b.gecko)aa=aa.replace(/<br>(?=\s*(:?$|<\/body>))/,'');if(C.dataProcessor)aa=C.dataProcessor.toDataFormat(aa,D);if(V.ignoreEmptyParagraph)aa=aa.replace(m,function(ab,ac){return ac;});if(Y)aa=Y+'\n'+aa;
-if(X)aa=X+'\n'+aa;return aa;},getSnapshotData:function(){return M.getFrameDocument().getBody().getHtml();},loadSnapshotData:function(V){M.getFrameDocument().getBody().setHtml(V);},onDispose:function(){if(!C.document)return;C.document.getDocumentElement().clearCustomData();C.document.getBody().clearCustomData();C.window.clearCustomData();C.document.clearCustomData();M.clearCustomData();M.remove();},unload:function(V){this.onDispose();C.window=C.document=M=L=O=null;C.fire('contentDomUnload');},focus:function(){var V=C.window;if(N)O=true;else if(b.opera&&C.document){var W=C.window.$.frameElement;W.blur(),W.focus();C.document.getBody().focus();C.selectionChange();}else if(!b.opera&&V){b.air?setTimeout(function(){V.focus();},0):V.focus();C.selectionChange();}}});C.on('insertHtml',p(q),null,null,20);C.on('insertElement',p(s),null,null,20);C.on('insertText',p(r),null,null,20);C.on('selectionChange',B,null,null,1);});var G;C.on('contentDom',function(){var L=C.document.getElementsByTag('title').getItem(0);L.data('cke-title',C.document.$.title);C.document.$.title=E;});C.on('readOnly',function(){if(C.mode=='wysiwyg'){var L=C.getMode();L.loadData(L.getData());}});if(a.document.$.documentMode>=8){C.addCss('html.CSS1Compat [contenteditable=false]{ min-height:0 !important;}');var H=[];for(var I in f.$removeEmpty)H.push('html.CSS1Compat '+I+'[contenteditable=false]');C.addCss(H.join(',')+'{ display:inline-block;}');}else if(b.gecko){C.addCss('html { height: 100% !important; }');C.addCss('img:-moz-broken { -moz-force-broken-image-icon : 1;\twidth : 24px; height : 24px; }');}C.addCss('html {\t_overflow-y: scroll; cursor: text;\t*cursor:auto;}');C.addCss('img, input, textarea { cursor: default;}');function J(L){if(C.readOnly)return;e.tryThese(function(){C.document.$.designMode='on';setTimeout(function(){C.document.$.designMode='off';if(a.currentInstance==C)C.document.getBody().focus();},50);},function(){C.document.$.designMode='off';var M=C.document.getBody();M.setAttribute('contentEditable',false);M.setAttribute('contentEditable',true);!L&&J(1);});};if(b.gecko||c||b.opera){var K;C.on('uiReady',function(){K=C.container.append(h.createFromHtml('<span tabindex="-1" style="position:absolute;" role="presentation"></span>'));K.on('focus',function(){C.focus();});C.focusGrabber=K;});C.on('destroy',function(){e.removeFunction(F);K.clearCustomData();delete C.focusGrabber;});}C.on('insertElement',function(L){var M=L.data;if(M.type==1&&(M.is('input')||M.is('textarea'))){if(!M.isReadOnly())M.data('cke-editable',M.hasAttribute('contenteditable')?'true':'1');
-M.setAttribute('contentEditable',false);}});}});if(b.gecko)(function(){var C=document.body;if(!C)window.addEventListener('load',arguments.callee,false);else{var D=C.getAttribute('onpageshow');C.setAttribute('onpageshow',(D?D+';':'')+'event.persisted && (function(){'+'var allInstances = CKEDITOR.instances, editor, doc;'+'for ( var i in allInstances )'+'{'+'\teditor = allInstances[ i ];'+'\tdoc = editor.document;'+'\tif ( doc )'+'\t{'+'\t\tdoc.$.designMode = "off";'+'\t\tdoc.$.designMode = "on";'+'\t}'+'}'+'})();');}})();})();i.disableObjectResizing=false;i.disableNativeTableHandles=true;i.disableNativeSpellChecker=true;i.ignoreEmptyParagraph=true;j.add('wsc',{requires:['dialog'],init:function(m){var n='checkspell',o=m.addCommand(n,new a.dialogCommand(n));o.modes={wysiwyg:!b.opera&&!b.air&&document.domain==window.location.hostname};m.ui.addButton('SpellChecker',{label:m.lang.spellCheck.toolbar,command:n});a.dialog.add(n,this.path+'dialogs/wsc.js');}});i.wsc_customerId=i.wsc_customerId||'1:ua3xw1-2XyGJ3-GWruD3-6OFNT1-oXcuB1-nR6Bp4-hgQHc-EcYng3-sdRXG3-NOfFk';i.wsc_customLoaderScript=i.wsc_customLoaderScript||null;a.DIALOG_RESIZE_NONE=0;a.DIALOG_RESIZE_WIDTH=1;a.DIALOG_RESIZE_HEIGHT=2;a.DIALOG_RESIZE_BOTH=3;(function(){var m=e.cssLength;function n(S){return!!this._.tabs[S][0].$.offsetHeight;};function o(){var W=this;var S=W._.currentTabId,T=W._.tabIdList.length,U=e.indexOf(W._.tabIdList,S)+T;for(var V=U-1;V>U-T;V--){if(n.call(W,W._.tabIdList[V%T]))return W._.tabIdList[V%T];}return null;};function p(){var W=this;var S=W._.currentTabId,T=W._.tabIdList.length,U=e.indexOf(W._.tabIdList,S);for(var V=U+1;V<U+T;V++){if(n.call(W,W._.tabIdList[V%T]))return W._.tabIdList[V%T];}return null;};function q(S,T){var U=S.$.getElementsByTagName('input');for(var V=0,W=U.length;V<W;V++){var X=new h(U[V]);if(X.getAttribute('type').toLowerCase()=='text')if(T){X.setAttribute('value',X.getCustomData('fake_value')||'');X.removeCustomData('fake_value');}else{X.setCustomData('fake_value',X.getAttribute('value'));X.setAttribute('value','');}}};function r(S,T){var V=this;var U=V.getInputElement();if(U)S?U.removeAttribute('aria-invalid'):U.setAttribute('aria-invalid',true);if(!S)if(V.select)V.select();else V.focus();T&&alert(T);V.fire('validated',{valid:S,msg:T});};function s(){var S=this.getInputElement();S&&S.removeAttribute('aria-invalid');};a.dialog=function(S,T){var U=a.dialog._.dialogDefinitions[T],V=e.clone(u),W=S.config.dialog_buttonsOrder||'OS',X=S.lang.dir;if(W=='OS'&&b.mac||W=='rtl'&&X=='ltr'||W=='ltr'&&X=='rtl')V.buttons.reverse();
-U=e.extend(U(S),V);U=e.clone(U);U=new y(this,U);var Y=a.document,Z=S.theme.buildDialog(S);this._={editor:S,element:Z.element,name:T,contentSize:{width:0,height:0},size:{width:0,height:0},contents:{},buttons:{},accessKeyMap:{},tabs:{},tabIdList:[],currentTabId:null,currentTabIndex:null,pageCount:0,lastTab:null,tabBarMode:false,focusList:[],currentFocusIndex:0,hasFocus:false};this.parts=Z.parts;e.setTimeout(function(){S.fire('ariaWidget',this.parts.contents);},0,this);var aa={position:b.ie6Compat?'absolute':'fixed',top:0,visibility:'hidden'};aa[X=='rtl'?'right':'left']=0;this.parts.dialog.setStyles(aa);a.event.call(this);this.definition=U=a.fire('dialogDefinition',{name:T,definition:U},S).definition;var ab={};if(!('removeDialogTabs' in S._)&&S.config.removeDialogTabs){var ac=S.config.removeDialogTabs.split(';');for(i=0;i<ac.length;i++){var ad=ac[i].split(':');if(ad.length==2){var ae=ad[0];if(!ab[ae])ab[ae]=[];ab[ae].push(ad[1]);}}S._.removeDialogTabs=ab;}if(S._.removeDialogTabs&&(ab=S._.removeDialogTabs[T]))for(i=0;i<ab.length;i++)U.removeContents(ab[i]);if(U.onLoad)this.on('load',U.onLoad);if(U.onShow)this.on('show',U.onShow);if(U.onHide)this.on('hide',U.onHide);if(U.onOk)this.on('ok',function(ar){S.fire('saveSnapshot');setTimeout(function(){S.fire('saveSnapshot');},0);if(U.onOk.call(this,ar)===false)ar.data.hide=false;});if(U.onCancel)this.on('cancel',function(ar){if(U.onCancel.call(this,ar)===false)ar.data.hide=false;});var af=this,ag=function(ar){var as=af._.contents,at=false;for(var au in as)for(var av in as[au]){at=ar.call(this,as[au][av]);if(at)return;}};this.on('ok',function(ar){ag(function(as){if(as.validate){var at=as.validate(this),au=typeof at=='string'||at===false;if(au){ar.data.hide=false;ar.stop();}r.call(as,!au,typeof at=='string'?at:undefined);return au;}});},this,null,0);this.on('cancel',function(ar){ag(function(as){if(as.isChanged()){if(!confirm(S.lang.common.confirmCancel))ar.data.hide=false;return true;}});},this,null,0);this.parts.close.on('click',function(ar){if(this.fire('cancel',{hide:true}).hide!==false)this.hide();ar.data.preventDefault();},this);function ah(){var ar=af._.focusList;ar.sort(function(au,av){if(au.tabIndex!=av.tabIndex)return av.tabIndex-au.tabIndex;else return au.focusIndex-av.focusIndex;});var as=ar.length;for(var at=0;at<as;at++)ar[at].focusIndex=at;};function ai(ar){var as=af._.focusList,at=ar?1:-1;if(as.length<1)return;var au=af._.currentFocusIndex;try{as[au].getInputElement().$.blur();}catch(ax){}var av=(au+at+as.length)%as.length,aw=av;
-while(!as[aw].isFocusable()){aw=(aw+at+as.length)%as.length;if(aw==av)break;}as[aw].focus();if(as[aw].type=='text')as[aw].select();};this.changeFocus=ai;var aj;function ak(ar){var aw=this;if(af!=a.dialog._.currentTop)return;var as=ar.data.getKeystroke(),at=S.lang.dir=='rtl';aj=0;if(as==9||as==2228224+9){var au=as==2228224+9;if(af._.tabBarMode){var av=au?o.call(af):p.call(af);af.selectPage(av);af._.tabs[av][0].focus();}else ai(!au);aj=1;}else if(as==4456448+121&&!af._.tabBarMode&&af.getPageCount()>1){af._.tabBarMode=true;af._.tabs[af._.currentTabId][0].focus();aj=1;}else if((as==37||as==39)&&af._.tabBarMode){av=as==(at?39:37)?o.call(af):p.call(af);af.selectPage(av);af._.tabs[av][0].focus();aj=1;}else if((as==13||as==32)&&af._.tabBarMode){aw.selectPage(aw._.currentTabId);aw._.tabBarMode=false;aw._.currentFocusIndex=-1;ai(true);aj=1;}if(aj){ar.stop();ar.data.preventDefault();}};function al(ar){aj&&ar.data.preventDefault();};var am=this._.element;this.on('show',function(){am.on('keydown',ak,this,null,0);if(b.opera||b.gecko&&b.mac)am.on('keypress',al,this);});this.on('hide',function(){am.removeListener('keydown',ak);if(b.opera||b.gecko&&b.mac)am.removeListener('keypress',al);ag(function(ar){s.apply(ar);});});this.on('iframeAdded',function(ar){var as=new g(ar.data.iframe.$.contentWindow.document);as.on('keydown',ak,this,null,0);});this.on('show',function(){var av=this;ah();if(S.config.dialog_startupFocusTab&&af._.pageCount>1){af._.tabBarMode=true;af._.tabs[af._.currentTabId][0].focus();}else if(!av._.hasFocus){av._.currentFocusIndex=-1;if(U.onFocus){var ar=U.onFocus.call(av);ar&&ar.focus();}else ai(true);if(av._.editor.mode=='wysiwyg'&&c){var as=S.document.$.selection,at=as.createRange();if(at)if(at.parentElement&&at.parentElement().ownerDocument==S.document.$||at.item&&at.item(0).ownerDocument==S.document.$){var au=document.body.createTextRange();au.moveToElementText(av.getElement().getFirst().$);au.collapse(true);au.select();}}}},this,null,4294967295);if(b.ie6Compat)this.on('load',function(ar){var as=this.getElement(),at=as.getFirst();at.remove();at.appendTo(as);},this);A(this);B(this);new d.text(U.title,a.document).appendTo(this.parts.title);for(var an=0;an<U.contents.length;an++){var ao=U.contents[an];ao&&this.addPage(ao);}this.parts.tabs.on('click',function(ar){var au=this;var as=ar.data.getTarget();if(as.hasClass('cke_dialog_tab')){var at=as.$.id;au.selectPage(at.substring(4,at.lastIndexOf('_')));if(au._.tabBarMode){au._.tabBarMode=false;au._.currentFocusIndex=-1;
-ai(true);}ar.data.preventDefault();}},this);var ap=[],aq=a.dialog._.uiElementBuilders.hbox.build(this,{type:'hbox',className:'cke_dialog_footer_buttons',widths:[],children:U.buttons},ap).getChild();this.parts.footer.setHtml(ap.join(''));for(an=0;an<aq.length;an++)this._.buttons[aq[an].id]=aq[an];};function t(S,T,U){this.element=T;this.focusIndex=U;this.tabIndex=0;this.isFocusable=function(){return!T.getAttribute('disabled')&&T.isVisible();};this.focus=function(){S._.currentFocusIndex=this.focusIndex;this.element.focus();};T.on('keydown',function(V){if(V.data.getKeystroke() in {32:1,13:1})this.fire('click');});T.on('focus',function(){this.fire('mouseover');});T.on('blur',function(){this.fire('mouseout');});};a.dialog.prototype={destroy:function(){this.hide();this._.element.remove();},resize:(function(){return function(S,T){var U=this;if(U._.contentSize&&U._.contentSize.width==S&&U._.contentSize.height==T)return;a.dialog.fire('resize',{dialog:U,skin:U._.editor.skinName,width:S,height:T},U._.editor);U.fire('resize',{skin:U._.editor.skinName,width:S,height:T},U._.editor);if(U._.editor.lang.dir=='rtl'&&U._.position)U._.position.x=a.document.getWindow().getViewPaneSize().width-U._.contentSize.width-parseInt(U._.element.getFirst().getStyle('right'),10);U._.contentSize={width:S,height:T};};})(),getSize:function(){var S=this._.element.getFirst();return{width:S.$.offsetWidth||0,height:S.$.offsetHeight||0};},move:(function(){var S;return function(T,U,V){var ac=this;var W=ac._.element.getFirst(),X=ac._.editor.lang.dir=='rtl';if(S===undefined)S=W.getComputedStyle('position')=='fixed';if(S&&ac._.position&&ac._.position.x==T&&ac._.position.y==U)return;ac._.position={x:T,y:U};if(!S){var Y=a.document.getWindow().getScrollPosition();T+=Y.x;U+=Y.y;}if(X){var Z=ac.getSize(),aa=a.document.getWindow().getViewPaneSize();T=aa.width-Z.width-T;}var ab={top:(U>0?U:0)+'px'};ab[X?'right':'left']=(T>0?T:0)+'px';W.setStyles(ab);V&&(ac._.moved=1);};})(),getPosition:function(){return e.extend({},this._.position);},show:function(){var S=this._.element,T=this.definition;if(!(S.getParent()&&S.getParent().equals(a.document.getBody())))S.appendTo(a.document.getBody());else S.setStyle('display','block');if(b.gecko&&b.version<10900){var U=this.parts.dialog;U.setStyle('position','absolute');setTimeout(function(){U.setStyle('position','fixed');},0);}this.resize(this._.contentSize&&this._.contentSize.width||T.width||T.minWidth,this._.contentSize&&this._.contentSize.height||T.height||T.minHeight);this.reset();
-this.selectPage(this.definition.contents[0].id);if(a.dialog._.currentZIndex===null)a.dialog._.currentZIndex=this._.editor.config.baseFloatZIndex;this._.element.getFirst().setStyle('z-index',a.dialog._.currentZIndex+=10);if(a.dialog._.currentTop===null){a.dialog._.currentTop=this;this._.parentDialog=null;G(this._.editor);S.on('keydown',K);S.on(b.opera?'keypress':'keyup',L);for(var V in {keyup:1,keydown:1,keypress:1})S.on(V,R);}else{this._.parentDialog=a.dialog._.currentTop;var W=this._.parentDialog.getElement().getFirst();W.$.style.zIndex-=Math.floor(this._.editor.config.baseFloatZIndex/2);a.dialog._.currentTop=this;}M(this,this,'\x1b',null,function(){this.getButton('cancel')&&this.getButton('cancel').click();});this._.hasFocus=false;e.setTimeout(function(){this.layout();this.parts.dialog.setStyle('visibility','');this.fireOnce('load',{});k.fire('ready',this);this.fire('show',{});this._.editor.fire('dialogShow',this);this.foreach(function(X){X.setInitValue&&X.setInitValue();});},100,this);},layout:function(){var U=this;var S=a.document.getWindow().getViewPaneSize(),T=U.getSize();U.move(U._.moved?U._.position.x:(S.width-T.width)/2,U._.moved?U._.position.y:(S.height-T.height)/2);},foreach:function(S){var V=this;for(var T in V._.contents)for(var U in V._.contents[T])S.call(V,V._.contents[T][U]);return V;},reset:(function(){var S=function(T){if(T.reset)T.reset(1);};return function(){this.foreach(S);return this;};})(),setupContent:function(){var S=arguments;this.foreach(function(T){if(T.setup)T.setup.apply(T,S);});},commitContent:function(){var S=arguments;this.foreach(function(T){if(c&&this._.currentFocusIndex==T.focusIndex)T.getInputElement().$.blur();if(T.commit)T.commit.apply(T,S);});},hide:function(){if(!this.parts.dialog.isVisible())return;this.fire('hide',{});this._.editor.fire('dialogHide',this);var S=this._.element;S.setStyle('display','none');this.parts.dialog.setStyle('visibility','hidden');N(this);while(a.dialog._.currentTop!=this)a.dialog._.currentTop.hide();if(!this._.parentDialog)H();else{var T=this._.parentDialog.getElement().getFirst();T.setStyle('z-index',parseInt(T.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2));}a.dialog._.currentTop=this._.parentDialog;if(!this._.parentDialog){a.dialog._.currentZIndex=null;S.removeListener('keydown',K);S.removeListener(b.opera?'keypress':'keyup',L);for(var U in {keyup:1,keydown:1,keypress:1})S.removeListener(U,R);var V=this._.editor;V.focus();if(V.mode=='wysiwyg'&&c){var W=V.getSelection();
+if(b.gecko){A(D);var K=E.block||E.blockLimit,L=K&&K.getLast(w);if(K&&K.isBlockBoundary()&&!(L&&L.type==1&&L.isBlockBoundary())&&!K.is('pre')&&!K.getBogus())K.appendBogus();}if(D.config.autoParagraph!==false&&J!=2&&H.collapsed&&F.getName()=='body'&&!E.block){var M=H.fixBlock(true,D.config.enterMode==3?'div':'p');if(c){var N=M.getFirst(w);N&&x(N)&&N.remove();}if(z(M)){var O=M.getNext(u);if(O&&O.type==1&&!o(O)){H.moveToElementEditStart(O);M.remove();}else{O=M.getPrevious(u);if(O&&O.type==1&&!o(O)){H.moveToElementEditEnd(O);M.remove();}}}H.select();C.cancel();}var P=new d.range(D.document);P.moveToElementEditEnd(D.document.getBody());var Q=new d.elementPath(P.startContainer);if(!Q.blockLimit.is('body')){var R;if(J!=2)R=I.append(D.document.createElement(J==1?'p':'div'));else R=I;if(!c)R.appendBogus();}};j.add('wysiwygarea',{requires:['editingblock'],init:function(C){var D=C.config.enterMode!=2&&C.config.autoParagraph!==false?C.config.enterMode==3?'div':'p':false,E=C.lang.editorTitle.replace('%1',C.name),F=a.document.getWindow(),G;C.on('editingBlockReady',function(){var L,M,N,O,P,Q,R,S=b.isCustomDomain(),T=function(W){if(M)M.remove();var X='document.open();'+(S?'document.domain="'+document.domain+'";':'')+'document.close();';X=b.air?'javascript:void(0)':c?'javascript:void(function(){'+encodeURIComponent(X)+'}())':'';M=h.createFromHtml('<iframe style="width:100%;height:100%" frameBorder="0" title="'+E+'"'+' src="'+X+'"'+' tabIndex="'+(b.webkit?-1:C.tabIndex)+'"'+' allowTransparency="true"'+'></iframe>');if(document.location.protocol=='chrome:')a.event.useCapture=true;M.on('load',function(Y){P=1;Y.removeListener();var Z=M.getFrameDocument();Z.write(W);b.air&&V(Z.getWindow().$);});if(document.location.protocol=='chrome:')a.event.useCapture=false;L.append(M);if(b.webkit){R=function(){M.hide();M.setSize('width',L.getSize('width'));M.show();};F.on('resize',R);}};G=e.addFunction(V);var U='<script id="cke_actscrpt" type="text/javascript" data-cke-temp="1">'+(S?'document.domain="'+document.domain+'";':'')+'window.parent.CKEDITOR.tools.callFunction( '+G+', window );'+'</script>';function V(W){if(!P)return;P=0;C.fire('ariaWidget',M);var X=W.document,Y=X.body,Z=X.getElementById('cke_actscrpt');Z&&Z.parentNode.removeChild(Z);Y.spellcheck=!C.config.disableNativeSpellChecker;var aa=!C.readOnly;if(c){Y.hideFocus=true;Y.disabled=true;Y.contentEditable=aa;Y.removeAttribute('disabled');}else setTimeout(function(){if(b.gecko&&b.version>=10900||b.opera)X.$.body.contentEditable=aa;else if(b.webkit)X.$.body.parentNode.contentEditable=aa;
+else X.$.designMode=aa?'off':'on';},0);aa&&b.gecko&&e.setTimeout(A,0,null,C);W=C.window=new d.window(W);X=C.document=new g(X);aa&&X.on('dblclick',function(af){var ag=af.data.getTarget(),ah={element:ag,dialog:''};C.fire('doubleclick',ah);ah.dialog&&C.openDialog(ah.dialog);});c&&X.on('click',function(af){var ag=af.data.getTarget();if(ag.is('input')){var ah=ag.getAttribute('type');if(ah=='submit'||ah=='reset')af.data.preventDefault();}});if(!(c||b.opera))X.on('mousedown',function(af){var ag=af.data.getTarget();if(ag.is('img','hr','input','textarea','select'))C.getSelection().selectElement(ag);});if(b.gecko)X.on('mouseup',function(af){if(af.data.$.button==2){var ag=af.data.getTarget();if(!ag.getOuterHtml().replace(m,'')){var ah=new d.range(X);ah.moveToElementEditStart(ag);ah.select(true);}}});X.on('click',function(af){af=af.data;if(af.getTarget().is('a')&&af.$.button!=2)af.preventDefault();});if(b.webkit){X.on('mousedown',function(){ac=1;});X.on('click',function(af){if(af.data.getTarget().is('input','select'))af.data.preventDefault();});X.on('mouseup',function(af){if(af.data.getTarget().is('input','textarea'))af.data.preventDefault();});}var ab=c?M:W;ab.on('blur',function(){C.focusManager.blur();});var ac;ab.on('focus',function(){var af=C.document;if(aa&&b.gecko&&b.version>=10900)K();else if(b.opera)af.getBody().focus();else if(b.webkit)if(!ac){C.document.getDocumentElement().focus();ac=1;}C.focusManager.focus();});var ad=C.keystrokeHandler;ad.blockedKeystrokes[8]=!aa;ad.attach(X);X.getDocumentElement().addClass(X.$.compatMode);aa&&X.on('keydown',function(af){var ag=af.data.getKeystroke();if(ag in {8:1,46:1}){var ah=C.getSelection(),ai=ah.getSelectedElement(),aj=ah.getRanges()[0];if(ai){C.fire('saveSnapshot');aj.moveToPosition(ai,3);ai.remove();aj.select();C.fire('saveSnapshot');af.data.preventDefault();return;}}if(ag==33||ag==34)if(b.gecko){var ak=X.getBody();if(W.$.innerHeight>ak.$.offsetHeight){aj=new d.range(X);aj[ag==33?'moveToElementEditStart':'moveToElementEditEnd'](ak);aj.select();af.data.preventDefault();}}});if(c&&X.$.compatMode=='CSS1Compat'){var ae={33:1,34:1};X.on('keydown',function(af){if(af.data.getKeystroke() in ae)setTimeout(function(){C.getSelection().scrollIntoView();},0);});}if(c&&C.config.enterMode!=1)X.on('selectionchange',function(){var af=X.getBody(),ag=C.getSelection(),ah=ag&&ag.getRanges()[0];if(ah&&af.getHtml().match(/^<p> <\/p>$/i)&&ah.startContainer.equals(af))setTimeout(function(){ah=C.getSelection().getRanges()[0];if(!ah.startContainer.equals('body')){af.getFirst().remove(1);
+ah.moveToElementEditEnd(af);ah.select(1);}},0);});if(C.contextMenu)C.contextMenu.addTarget(X,C.config.browserContextMenuOnCtrl!==false);setTimeout(function(){C.fire('contentDom');if(Q){C.mode='wysiwyg';C.fire('mode',{previousMode:C._.previousMode});Q=false;}N=false;if(O){C.focus();O=false;}setTimeout(function(){C.fire('dataReady');},0);try{C.document.$.execCommand('enableInlineTableEditing',false,!C.config.disableNativeTableHandles);}catch(af){}if(C.config.disableObjectResizing)try{C.document.$.execCommand('enableObjectResizing',false,false);}catch(ag){C.document.getBody().on(c?'resizestart':'resize',function(ah){ah.data.preventDefault();});}if(c)setTimeout(function(){if(C.document){var ah=C.document.$.body;ah.runtimeStyle.marginBottom='0px';ah.runtimeStyle.marginBottom='';}},1000);},0);};C.addMode('wysiwyg',{load:function(W,X,Y){L=W;if(c&&b.quirks)W.setStyle('position','relative');C.mayBeDirty=true;Q=true;if(Y)this.loadSnapshotData(X);else this.loadData(X);},loadData:function(W){N=true;C._.dataStore={id:1};var X=C.config,Y=X.fullPage,Z=X.docType,aa='<style type="text/css" data-cke-temp="1">'+C._.styles.join('\n')+'</style>';!Y&&(aa=e.buildStyleHtml(C.config.contentsCss)+aa);var ab=X.baseHref?'<base href="'+X.baseHref+'" data-cke-temp="1" />':'';if(Y)W=W.replace(/<!DOCTYPE[^>]*>/i,function(ac){C.docType=Z=ac;return '';}).replace(/<\?xml\s[^\?]*\?>/i,function(ac){C.xmlDeclaration=ac;return '';});if(C.dataProcessor)W=C.dataProcessor.toHtml(W,D);if(Y){if(!/<body[\s|>]/.test(W))W='<body>'+W;if(!/<html[\s|>]/.test(W))W='<html>'+W+'</html>';if(!/<head[\s|>]/.test(W))W=W.replace(/<html[^>]*>/,'$&<head><title></title></head>');else if(!/<title[\s|>]/.test(W))W=W.replace(/<head[^>]*>/,'$&<title></title>');ab&&(W=W.replace(/<head>/,'$&'+ab));W=W.replace(/<\/head\s*>/,aa+'$&');W=Z+W;}else W=X.docType+'<html dir="'+X.contentsLangDirection+'"'+' lang="'+(X.contentsLanguage||C.langCode)+'">'+'<head>'+'<title>'+E+'</title>'+ab+aa+'</head>'+'<body'+(X.bodyId?' id="'+X.bodyId+'"':'')+(X.bodyClass?' class="'+X.bodyClass+'"':'')+'>'+W+'</html>';if(b.gecko)W=W.replace(/<br \/>(?=\s*<\/(:?html|body)>)/,'$&<br type="_moz" />');W+=U;this.onDispose();T(W);},getData:function(){var W=C.config,X=W.fullPage,Y=X&&C.docType,Z=X&&C.xmlDeclaration,aa=M.getFrameDocument(),ab=X?aa.getDocumentElement().getOuterHtml():aa.getBody().getHtml();if(b.gecko)ab=ab.replace(/<br>(?=\s*(:?$|<\/body>))/,'');if(C.dataProcessor)ab=C.dataProcessor.toDataFormat(ab,D);if(W.ignoreEmptyParagraph)ab=ab.replace(m,function(ac,ad){return ad;
+});if(Z)ab=Z+'\n'+ab;if(Y)ab=Y+'\n'+ab;return ab;},getSnapshotData:function(){return M.getFrameDocument().getBody().getHtml();},loadSnapshotData:function(W){M.getFrameDocument().getBody().setHtml(W);},onDispose:function(){if(!C.document)return;C.document.getDocumentElement().clearCustomData();C.document.getBody().clearCustomData();C.window.clearCustomData();C.document.clearCustomData();M.clearCustomData();M.remove();},unload:function(W){this.onDispose();if(R)F.removeListener('resize',R);C.window=C.document=M=L=O=null;C.fire('contentDomUnload');},focus:function(){var W=C.window;if(N)O=true;else if(W){b.air?setTimeout(function(){W.focus();},0):W.focus();C.selectionChange();}}});C.on('insertHtml',p(q),null,null,20);C.on('insertElement',p(s),null,null,20);C.on('insertText',p(r),null,null,20);C.on('selectionChange',function(W){if(C.readOnly)return;var X=C.getSelection();if(X&&!X.isLocked){var Y=C.checkDirty();C.fire('saveSnapshot',{contentOnly:1});B.call(this,W);C.fire('updateSnapshot');!Y&&C.resetDirty();}},null,null,1);});var H;C.on('contentDom',function(){var L=C.document.getElementsByTag('title').getItem(0);L.data('cke-title',C.document.$.title);C.document.$.title=E;});C.on('readOnly',function(){if(C.mode=='wysiwyg'){var L=C.getMode();L.loadData(L.getData());}});if(a.document.$.documentMode>=8){C.addCss('html.CSS1Compat [contenteditable=false]{ min-height:0 !important;}');var I=[];for(var J in f.$removeEmpty)I.push('html.CSS1Compat '+J+'[contenteditable=false]');C.addCss(I.join(',')+'{ display:inline-block;}');}else if(b.gecko){C.addCss('html { height: 100% !important; }');C.addCss('img:-moz-broken { -moz-force-broken-image-icon : 1;\twidth : 24px; height : 24px; }');}else if(c&&b.version<8&&C.config.contentsLangDirection=='ltr')C.addCss('body{margin-right:0;}');C.addCss('html {\t_overflow-y: scroll; cursor: text;\t*cursor:auto;}');C.addCss('img, input, textarea { cursor: default;}');function K(L){if(C.readOnly)return;e.tryThese(function(){C.document.$.designMode='on';setTimeout(function(){C.document.$.designMode='off';if(a.currentInstance==C)C.document.getBody().focus();},50);},function(){C.document.$.designMode='off';var M=C.document.getBody();M.setAttribute('contentEditable',false);M.setAttribute('contentEditable',true);!L&&K(1);});};C.on('insertElement',function(L){var M=L.data;if(M.type==1&&(M.is('input')||M.is('textarea'))){var N=M.getAttribute('contenteditable')=='false';if(!N){M.data('cke-editable',M.hasAttribute('contenteditable')?'true':'1');M.setAttribute('contenteditable',false);
+}}});}});if(b.gecko)(function(){var C=document.body;if(!C)window.addEventListener('load',arguments.callee,false);else{var D=C.getAttribute('onpageshow');C.setAttribute('onpageshow',(D?D+';':'')+'event.persisted && (function(){'+'var allInstances = CKEDITOR.instances, editor, doc;'+'for ( var i in allInstances )'+'{'+'\teditor = allInstances[ i ];'+'\tdoc = editor.document;'+'\tif ( doc )'+'\t{'+'\t\tdoc.$.designMode = "off";'+'\t\tdoc.$.designMode = "on";'+'\t}'+'}'+'})();');}})();})();i.disableObjectResizing=false;i.disableNativeTableHandles=true;i.disableNativeSpellChecker=true;i.ignoreEmptyParagraph=true;j.add('wsc',{requires:['dialog'],init:function(m){var n='checkspell',o=m.addCommand(n,new a.dialogCommand(n));o.modes={wysiwyg:!b.opera&&!b.air&&document.domain==window.location.hostname};m.ui.addButton('SpellChecker',{label:m.lang.spellCheck.toolbar,command:n});a.dialog.add(n,this.path+'dialogs/wsc.js');}});i.wsc_customerId=i.wsc_customerId||'1:ua3xw1-2XyGJ3-GWruD3-6OFNT1-oXcuB1-nR6Bp4-hgQHc-EcYng3-sdRXG3-NOfFk';i.wsc_customLoaderScript=i.wsc_customLoaderScript||null;a.DIALOG_RESIZE_NONE=0;a.DIALOG_RESIZE_WIDTH=1;a.DIALOG_RESIZE_HEIGHT=2;a.DIALOG_RESIZE_BOTH=3;(function(){var m=e.cssLength;function n(S){return!!this._.tabs[S][0].$.offsetHeight;};function o(){var W=this;var S=W._.currentTabId,T=W._.tabIdList.length,U=e.indexOf(W._.tabIdList,S)+T;for(var V=U-1;V>U-T;V--){if(n.call(W,W._.tabIdList[V%T]))return W._.tabIdList[V%T];}return null;};function p(){var W=this;var S=W._.currentTabId,T=W._.tabIdList.length,U=e.indexOf(W._.tabIdList,S);for(var V=U+1;V<U+T;V++){if(n.call(W,W._.tabIdList[V%T]))return W._.tabIdList[V%T];}return null;};function q(S,T){var U=S.$.getElementsByTagName('input');for(var V=0,W=U.length;V<W;V++){var X=new h(U[V]);if(X.getAttribute('type').toLowerCase()=='text')if(T){X.setAttribute('value',X.getCustomData('fake_value')||'');X.removeCustomData('fake_value');}else{X.setCustomData('fake_value',X.getAttribute('value'));X.setAttribute('value','');}}};function r(S,T){var V=this;var U=V.getInputElement();if(U)S?U.removeAttribute('aria-invalid'):U.setAttribute('aria-invalid',true);if(!S)if(V.select)V.select();else V.focus();T&&alert(T);V.fire('validated',{valid:S,msg:T});};function s(){var S=this.getInputElement();S&&S.removeAttribute('aria-invalid');};a.dialog=function(S,T){var U=a.dialog._.dialogDefinitions[T],V=e.clone(u),W=S.config.dialog_buttonsOrder||'OS',X=S.lang.dir,Y={},Z,aa;if(W=='OS'&&b.mac||W=='rtl'&&X=='ltr'||W=='ltr'&&X=='rtl')V.buttons.reverse();
+U=e.extend(U(S),V);U=e.clone(U);U=new y(this,U);var ab=a.document,ac=S.theme.buildDialog(S);this._={editor:S,element:ac.element,name:T,contentSize:{width:0,height:0},size:{width:0,height:0},contents:{},buttons:{},accessKeyMap:{},tabs:{},tabIdList:[],currentTabId:null,currentTabIndex:null,pageCount:0,lastTab:null,tabBarMode:false,focusList:[],currentFocusIndex:0,hasFocus:false};this.parts=ac.parts;e.setTimeout(function(){S.fire('ariaWidget',this.parts.contents);},0,this);var ad={position:b.ie6Compat?'absolute':'fixed',top:0,visibility:'hidden'};ad[X=='rtl'?'right':'left']=0;this.parts.dialog.setStyles(ad);a.event.call(this);this.definition=U=a.fire('dialogDefinition',{name:T,definition:U},S).definition;if(!('removeDialogTabs' in S._)&&S.config.removeDialogTabs){var ae=S.config.removeDialogTabs.split(';');for(Z=0;Z<ae.length;Z++){var af=ae[Z].split(':');if(af.length==2){var ag=af[0];if(!Y[ag])Y[ag]=[];Y[ag].push(af[1]);}}S._.removeDialogTabs=Y;}if(S._.removeDialogTabs&&(Y=S._.removeDialogTabs[T]))for(Z=0;Z<Y.length;Z++)U.removeContents(Y[Z]);if(U.onLoad)this.on('load',U.onLoad);if(U.onShow)this.on('show',U.onShow);if(U.onHide)this.on('hide',U.onHide);if(U.onOk)this.on('ok',function(ar){S.fire('saveSnapshot');setTimeout(function(){S.fire('saveSnapshot');},0);if(U.onOk.call(this,ar)===false)ar.data.hide=false;});if(U.onCancel)this.on('cancel',function(ar){if(U.onCancel.call(this,ar)===false)ar.data.hide=false;});var ah=this,ai=function(ar){var as=ah._.contents,at=false;for(var au in as)for(var av in as[au]){at=ar.call(this,as[au][av]);if(at)return;}};this.on('ok',function(ar){ai(function(as){if(as.validate){var at=as.validate(this),au=typeof at=='string'||at===false;if(au){ar.data.hide=false;ar.stop();}r.call(as,!au,typeof at=='string'?at:undefined);return au;}});},this,null,0);this.on('cancel',function(ar){ai(function(as){if(as.isChanged()){if(!confirm(S.lang.common.confirmCancel))ar.data.hide=false;return true;}});},this,null,0);this.parts.close.on('click',function(ar){if(this.fire('cancel',{hide:true}).hide!==false)this.hide();ar.data.preventDefault();},this);function aj(){var ar=ah._.focusList;ar.sort(function(au,av){if(au.tabIndex!=av.tabIndex)return av.tabIndex-au.tabIndex;else return au.focusIndex-av.focusIndex;});var as=ar.length;for(var at=0;at<as;at++)ar[at].focusIndex=at;};function ak(ar){var as=ah._.focusList;ar=ar||0;if(as.length<1)return;var at=ah._.currentFocusIndex;try{as[at].getInputElement().$.blur();}catch(aw){}var au=(at+ar+as.length)%as.length,av=au;
+while(ar&&!as[av].isFocusable()){av=(av+ar+as.length)%as.length;if(av==au)break;}as[av].focus();if(as[av].type=='text')as[av].select();};this.changeFocus=ak;function al(ar){var aw=this;if(ah!=a.dialog._.currentTop)return;var as=ar.data.getKeystroke(),at=S.lang.dir=='rtl';aa=0;if(as==9||as==2228224+9){var au=as==2228224+9;if(ah._.tabBarMode){var av=au?o.call(ah):p.call(ah);ah.selectPage(av);ah._.tabs[av][0].focus();}else ak(au?-1:1);aa=1;}else if(as==4456448+121&&!ah._.tabBarMode&&ah.getPageCount()>1){ah._.tabBarMode=true;ah._.tabs[ah._.currentTabId][0].focus();aa=1;}else if((as==37||as==39)&&ah._.tabBarMode){av=as==(at?39:37)?o.call(ah):p.call(ah);ah.selectPage(av);ah._.tabs[av][0].focus();aa=1;}else if((as==13||as==32)&&ah._.tabBarMode){aw.selectPage(aw._.currentTabId);aw._.tabBarMode=false;aw._.currentFocusIndex=-1;ak(1);aa=1;}if(aa){ar.stop();ar.data.preventDefault();}};function am(ar){aa&&ar.data.preventDefault();};var an=this._.element;this.on('show',function(){an.on('keydown',al,this,null,0);if(b.opera||b.gecko&&b.mac)an.on('keypress',am,this);});this.on('hide',function(){an.removeListener('keydown',al);if(b.opera||b.gecko&&b.mac)an.removeListener('keypress',am);ai(function(ar){s.apply(ar);});});this.on('iframeAdded',function(ar){var as=new g(ar.data.iframe.$.contentWindow.document);as.on('keydown',al,this,null,0);});this.on('show',function(){var av=this;aj();if(S.config.dialog_startupFocusTab&&ah._.pageCount>1){ah._.tabBarMode=true;ah._.tabs[ah._.currentTabId][0].focus();}else if(!av._.hasFocus){av._.currentFocusIndex=-1;if(U.onFocus){var ar=U.onFocus.call(av);ar&&ar.focus();}else ak(1);if(av._.editor.mode=='wysiwyg'&&c){var as=S.document.$.selection,at=as.createRange();if(at)if(at.parentElement&&at.parentElement().ownerDocument==S.document.$||at.item&&at.item(0).ownerDocument==S.document.$){var au=document.body.createTextRange();au.moveToElementText(av.getElement().getFirst().$);au.collapse(true);au.select();}}}},this,null,4294967295);if(b.ie6Compat)this.on('load',function(ar){var as=this.getElement(),at=as.getFirst();at.remove();at.appendTo(as);},this);A(this);B(this);new d.text(U.title,a.document).appendTo(this.parts.title);for(Z=0;Z<U.contents.length;Z++){var ao=U.contents[Z];ao&&this.addPage(ao);}this.parts.tabs.on('click',function(ar){var au=this;var as=ar.data.getTarget();if(as.hasClass('cke_dialog_tab')){var at=as.$.id;au.selectPage(at.substring(4,at.lastIndexOf('_')));if(au._.tabBarMode){au._.tabBarMode=false;au._.currentFocusIndex=-1;ak(1);
+}ar.data.preventDefault();}},this);var ap=[],aq=a.dialog._.uiElementBuilders.hbox.build(this,{type:'hbox',className:'cke_dialog_footer_buttons',widths:[],children:U.buttons},ap).getChild();this.parts.footer.setHtml(ap.join(''));for(Z=0;Z<aq.length;Z++)this._.buttons[aq[Z].id]=aq[Z];};function t(S,T,U){this.element=T;this.focusIndex=U;this.tabIndex=0;this.isFocusable=function(){return!T.getAttribute('disabled')&&T.isVisible();};this.focus=function(){S._.currentFocusIndex=this.focusIndex;this.element.focus();};T.on('keydown',function(V){if(V.data.getKeystroke() in {32:1,13:1})this.fire('click');});T.on('focus',function(){this.fire('mouseover');});T.on('blur',function(){this.fire('mouseout');});};a.dialog.prototype={destroy:function(){this.hide();this._.element.remove();},resize:(function(){return function(S,T){var U=this;if(U._.contentSize&&U._.contentSize.width==S&&U._.contentSize.height==T)return;a.dialog.fire('resize',{dialog:U,skin:U._.editor.skinName,width:S,height:T},U._.editor);U.fire('resize',{skin:U._.editor.skinName,width:S,height:T},U._.editor);if(U._.editor.lang.dir=='rtl'&&U._.position)U._.position.x=a.document.getWindow().getViewPaneSize().width-U._.contentSize.width-parseInt(U._.element.getFirst().getStyle('right'),10);U._.contentSize={width:S,height:T};};})(),getSize:function(){var S=this._.element.getFirst();return{width:S.$.offsetWidth||0,height:S.$.offsetHeight||0};},move:(function(){var S;return function(T,U,V){var ac=this;var W=ac._.element.getFirst(),X=ac._.editor.lang.dir=='rtl';if(S===undefined)S=W.getComputedStyle('position')=='fixed';if(S&&ac._.position&&ac._.position.x==T&&ac._.position.y==U)return;ac._.position={x:T,y:U};if(!S){var Y=a.document.getWindow().getScrollPosition();T+=Y.x;U+=Y.y;}if(X){var Z=ac.getSize(),aa=a.document.getWindow().getViewPaneSize();T=aa.width-Z.width-T;}var ab={top:(U>0?U:0)+'px'};ab[X?'right':'left']=(T>0?T:0)+'px';W.setStyles(ab);V&&(ac._.moved=1);};})(),getPosition:function(){return e.extend({},this._.position);},show:function(){var S=this._.element,T=this.definition;if(!(S.getParent()&&S.getParent().equals(a.document.getBody())))S.appendTo(a.document.getBody());else S.setStyle('display','block');if(b.gecko&&b.version<10900){var U=this.parts.dialog;U.setStyle('position','absolute');setTimeout(function(){U.setStyle('position','fixed');},0);}this.resize(this._.contentSize&&this._.contentSize.width||T.width||T.minWidth,this._.contentSize&&this._.contentSize.height||T.height||T.minHeight);this.reset();this.selectPage(this.definition.contents[0].id);
+if(a.dialog._.currentZIndex===null)a.dialog._.currentZIndex=this._.editor.config.baseFloatZIndex;this._.element.getFirst().setStyle('z-index',a.dialog._.currentZIndex+=10);if(a.dialog._.currentTop===null){a.dialog._.currentTop=this;this._.parentDialog=null;G(this._.editor);}else{this._.parentDialog=a.dialog._.currentTop;var V=this._.parentDialog.getElement().getFirst();V.$.style.zIndex-=Math.floor(this._.editor.config.baseFloatZIndex/2);a.dialog._.currentTop=this;}S.on('keydown',K);S.on(b.opera?'keypress':'keyup',L);for(var W in {keyup:1,keydown:1,keypress:1})S.on(W,R);M(this,this,'\x1b',null,function(){var X=this.getButton('cancel');if(X)X.click();else if(this.fire('cancel',{hide:true}).hide!==false)this.hide();});this._.hasFocus=false;e.setTimeout(function(){this.layout();this.parts.dialog.setStyle('visibility','');this.fireOnce('load',{});k.fire('ready',this);this.fire('show',{});this._.editor.fire('dialogShow',this);this.foreach(function(X){X.setInitValue&&X.setInitValue();});},100,this);},layout:function(){var U=this;var S=a.document.getWindow().getViewPaneSize(),T=U.getSize();U.move(U._.moved?U._.position.x:(S.width-T.width)/2,U._.moved?U._.position.y:(S.height-T.height)/2);},foreach:function(S){var V=this;for(var T in V._.contents)for(var U in V._.contents[T])S.call(V,V._.contents[T][U]);return V;},reset:(function(){var S=function(T){if(T.reset)T.reset(1);};return function(){this.foreach(S);return this;};})(),setupContent:function(){var S=arguments;this.foreach(function(T){if(T.setup)T.setup.apply(T,S);});},commitContent:function(){var S=arguments;this.foreach(function(T){if(c&&this._.currentFocusIndex==T.focusIndex)T.getInputElement().$.blur();if(T.commit)T.commit.apply(T,S);});},hide:function(){if(!this.parts.dialog.isVisible())return;this.fire('hide',{});this._.editor.fire('dialogHide',this);var S=this._.element;S.setStyle('display','none');this.parts.dialog.setStyle('visibility','hidden');N(this);while(a.dialog._.currentTop!=this)a.dialog._.currentTop.hide();if(!this._.parentDialog)H();else{var T=this._.parentDialog.getElement().getFirst();T.setStyle('z-index',parseInt(T.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2));}a.dialog._.currentTop=this._.parentDialog;if(!this._.parentDialog){a.dialog._.currentZIndex=null;S.removeListener('keydown',K);S.removeListener(b.opera?'keypress':'keyup',L);for(var U in {keyup:1,keydown:1,keypress:1})S.removeListener(U,R);var V=this._.editor;V.focus();if(V.mode=='wysiwyg'&&c){var W=V.getSelection();
 W&&W.unlock(true);}}else a.dialog._.currentZIndex-=10;delete this._.parentDialog;this.foreach(function(X){X.resetInitValue&&X.resetInitValue();});},addPage:function(S){var ae=this;var T=[],U=S.label?' title="'+e.htmlEncode(S.label)+'"':'',V=S.elements,W=a.dialog._.uiElementBuilders.vbox.build(ae,{type:'vbox',className:'cke_dialog_page_contents',children:S.elements,expand:!!S.expand,padding:S.padding,style:S.style||'width: 100%;height:100%'},T),X=h.createFromHtml(T.join(''));X.setAttribute('role','tabpanel');var Y=b,Z='cke_'+S.id+'_'+e.getNextNumber(),aa=h.createFromHtml(['<a class="cke_dialog_tab"',ae._.pageCount>0?' cke_last':'cke_first',U,!!S.hidden?' style="display:none"':'',' id="',Z,'"',Y.gecko&&Y.version>=10900&&!Y.hc?'':' href="javascript:void(0)"',' tabIndex="-1"',' hidefocus="true"',' role="tab">',S.label,'</a>'].join(''));X.setAttribute('aria-labelledby',Z);ae._.tabs[S.id]=[aa,X];ae._.tabIdList.push(S.id);!S.hidden&&ae._.pageCount++;ae._.lastTab=aa;ae.updateStyle();var ab=ae._.contents[S.id]={},ac,ad=W.getChild();while(ac=ad.shift()){ab[ac.id]=ac;if(typeof ac.getChild=='function')ad.push.apply(ad,ac.getChild());}X.setAttribute('name',S.id);X.appendTo(ae.parts.contents);aa.unselectable();ae.parts.tabs.append(aa);if(S.accessKey){M(ae,ae,'CTRL+'+S.accessKey,P,O);ae._.accessKeyMap['CTRL+'+S.accessKey]=S.id;}},selectPage:function(S){if(this._.currentTabId==S)return;if(this.fire('selectPage',{page:S,currentPage:this._.currentTabId})===true)return;for(var T in this._.tabs){var U=this._.tabs[T][0],V=this._.tabs[T][1];if(T!=S){U.removeClass('cke_dialog_tab_selected');V.hide();}V.setAttribute('aria-hidden',T!=S);}var W=this._.tabs[S];W[0].addClass('cke_dialog_tab_selected');if(b.ie6Compat||b.ie7Compat){q(W[1]);W[1].show();setTimeout(function(){q(W[1],1);},0);}else W[1].show();this._.currentTabId=S;this._.currentTabIndex=e.indexOf(this._.tabIdList,S);},updateStyle:function(){this.parts.dialog[(this._.pageCount===1?'add':'remove')+'Class']('cke_single_page');},hidePage:function(S){var U=this;var T=U._.tabs[S]&&U._.tabs[S][0];if(!T||U._.pageCount==1||!T.isVisible())return;else if(S==U._.currentTabId)U.selectPage(o.call(U));T.hide();U._.pageCount--;U.updateStyle();},showPage:function(S){var U=this;var T=U._.tabs[S]&&U._.tabs[S][0];if(!T)return;T.show();U._.pageCount++;U.updateStyle();},getElement:function(){return this._.element;},getName:function(){return this._.name;},getContentElement:function(S,T){var U=this._.contents[S];return U&&U[T];},getValueOf:function(S,T){return this.getContentElement(S,T).getValue();
 },setValueOf:function(S,T,U){return this.getContentElement(S,T).setValue(U);},getButton:function(S){return this._.buttons[S];},click:function(S){return this._.buttons[S].click();},disableButton:function(S){return this._.buttons[S].disable();},enableButton:function(S){return this._.buttons[S].enable();},getPageCount:function(){return this._.pageCount;},getParentEditor:function(){return this._.editor;},getSelectedElement:function(){return this.getParentEditor().getSelection().getSelectedElement();},addFocusable:function(S,T){var V=this;if(typeof T=='undefined'){T=V._.focusList.length;V._.focusList.push(new t(V,S,T));}else{V._.focusList.splice(T,0,new t(V,S,T));for(var U=T+1;U<V._.focusList.length;U++)V._.focusList[U].focusIndex++;}}};e.extend(a.dialog,{add:function(S,T){if(!this._.dialogDefinitions[S]||typeof T=='function')this._.dialogDefinitions[S]=T;},exists:function(S){return!!this._.dialogDefinitions[S];},getCurrent:function(){return a.dialog._.currentTop;},okButton:(function(){var S=function(T,U){U=U||{};return e.extend({id:'ok',type:'button',label:T.lang.common.ok,'class':'cke_dialog_ui_button_ok',onClick:function(V){var W=V.data.dialog;if(W.fire('ok',{hide:true}).hide!==false)W.hide();}},U,true);};S.type='button';S.override=function(T){return e.extend(function(U){return S(U,T);},{type:'button'},true);};return S;})(),cancelButton:(function(){var S=function(T,U){U=U||{};return e.extend({id:'cancel',type:'button',label:T.lang.common.cancel,'class':'cke_dialog_ui_button_cancel',onClick:function(V){var W=V.data.dialog;if(W.fire('cancel',{hide:true}).hide!==false)W.hide();}},U,true);};S.type='button';S.override=function(T){return e.extend(function(U){return S(U,T);},{type:'button'},true);};return S;})(),addUIElement:function(S,T){this._.uiElementBuilders[S]=T;}});a.dialog._={uiElementBuilders:{},dialogDefinitions:{},currentTop:null,currentZIndex:null};a.event.implementOn(a.dialog);a.event.implementOn(a.dialog.prototype,true);var u={resizable:3,minWidth:600,minHeight:400,buttons:[a.dialog.okButton,a.dialog.cancelButton]},v=function(S,T,U){for(var V=0,W;W=S[V];V++){if(W.id==T)return W;if(U&&W[U]){var X=v(W[U],T,U);if(X)return X;}}return null;},w=function(S,T,U,V,W){if(U){for(var X=0,Y;Y=S[X];X++){if(Y.id==U){S.splice(X,0,T);return T;}if(V&&Y[V]){var Z=w(Y[V],T,U,V,true);if(Z)return Z;}}if(W)return null;}S.push(T);return T;},x=function(S,T,U){for(var V=0,W;W=S[V];V++){if(W.id==T)return S.splice(V,1);if(U&&W[U]){var X=x(W[U],T,U);if(X)return X;}}return null;},y=function(S,T){this.dialog=S;
 var U=T.contents;for(var V=0,W;W=U[V];V++)U[V]=W&&new z(S,W);e.extend(this,T);};y.prototype={getContents:function(S){return v(this.contents,S);},getButton:function(S){return v(this.buttons,S);},addContents:function(S,T){return w(this.contents,S,T);},addButton:function(S,T){return w(this.buttons,S,T);},removeContents:function(S){x(this.contents,S);},removeButton:function(S){x(this.buttons,S);}};function z(S,T){this._={dialog:S};e.extend(this,T);};z.prototype={get:function(S){return v(this.elements,S,'children');},add:function(S,T){return w(this.elements,S,T,'children');},remove:function(S){x(this.elements,S,'children');}};function A(S){var T=null,U=null,V=S.getElement().getFirst(),W=S.getParentEditor(),X=W.config.dialog_magnetDistance,Y=W.skin.margins||[0,0,0,0];if(typeof X=='undefined')X=20;function Z(ab){var ac=S.getSize(),ad=a.document.getWindow().getViewPaneSize(),ae=ab.data.$.screenX,af=ab.data.$.screenY,ag=ae-T.x,ah=af-T.y,ai,aj;T={x:ae,y:af};U.x+=ag;U.y+=ah;if(U.x+Y[3]<X)ai=-Y[3];else if(U.x-Y[1]>ad.width-ac.width-X)ai=ad.width-ac.width+(W.lang.dir=='rtl'?0:Y[1]);else ai=U.x;if(U.y+Y[0]<X)aj=-Y[0];else if(U.y-Y[2]>ad.height-ac.height-X)aj=ad.height-ac.height+Y[2];else aj=U.y;S.move(ai,aj,1);ab.data.preventDefault();};function aa(ab){a.document.removeListener('mousemove',Z);a.document.removeListener('mouseup',aa);if(b.ie6Compat){var ac=E.getChild(0).getFrameDocument();ac.removeListener('mousemove',Z);ac.removeListener('mouseup',aa);}};S.parts.title.on('mousedown',function(ab){T={x:ab.data.$.screenX,y:ab.data.$.screenY};a.document.on('mousemove',Z);a.document.on('mouseup',aa);U=S.getPosition();if(b.ie6Compat){var ac=E.getChild(0).getFrameDocument();ac.on('mousemove',Z);ac.on('mouseup',aa);}ab.data.preventDefault();},S);};function B(S){var T=S.definition,U=T.resizable;if(U==0)return;var V=S.getParentEditor(),W,X,Y,Z,aa,ab,ac=e.addFunction(function(af){aa=S.getSize();var ag=S.parts.contents,ah=ag.$.getElementsByTagName('iframe').length;if(ah){ab=h.createFromHtml('<div class="cke_dialog_resize_cover" style="height: 100%; position: absolute; width: 100%;"></div>');ag.append(ab);}X=aa.height-S.parts.contents.getSize('height',!(b.gecko||b.opera||c&&b.quirks));W=aa.width-S.parts.contents.getSize('width',1);Z={x:af.screenX,y:af.screenY};Y=a.document.getWindow().getViewPaneSize();a.document.on('mousemove',ad);a.document.on('mouseup',ae);if(b.ie6Compat){var ai=E.getChild(0).getFrameDocument();ai.on('mousemove',ad);ai.on('mouseup',ae);}af.preventDefault&&af.preventDefault();
 });S.on('load',function(){var af='';if(U==1)af=' cke_resizer_horizontal';else if(U==2)af=' cke_resizer_vertical';var ag=h.createFromHtml('<div class="cke_resizer'+af+' cke_resizer_'+V.lang.dir+'"'+' title="'+e.htmlEncode(V.lang.resize)+'"'+' onmousedown="CKEDITOR.tools.callFunction('+ac+', event )"></div>');S.parts.footer.append(ag,1);});V.on('destroy',function(){e.removeFunction(ac);});function ad(af){var ag=V.lang.dir=='rtl',ah=(af.data.$.screenX-Z.x)*(ag?-1:1),ai=af.data.$.screenY-Z.y,aj=aa.width,ak=aa.height,al=aj+ah*(S._.moved?1:2),am=ak+ai*(S._.moved?1:2),an=S._.element.getFirst(),ao=ag&&an.getComputedStyle('right'),ap=S.getPosition();if(ap.y+am>Y.height)am=Y.height-ap.y;if((ag?ao:ap.x)+al>Y.width)al=Y.width-(ag?ao:ap.x);if(U==1||U==3)aj=Math.max(T.minWidth||0,al-W);if(U==2||U==3)ak=Math.max(T.minHeight||0,am-X);S.resize(aj,ak);if(!S._.moved)S.layout();af.data.preventDefault();};function ae(){a.document.removeListener('mouseup',ae);a.document.removeListener('mousemove',ad);if(ab){ab.remove();ab=null;}if(b.ie6Compat){var af=E.getChild(0).getFrameDocument();af.removeListener('mouseup',ae);af.removeListener('mousemove',ad);}};};var C,D={},E;function F(S){S.data.preventDefault(1);};function G(S){var T=a.document.getWindow(),U=S.config,V=U.dialog_backgroundCoverColor||'white',W=U.dialog_backgroundCoverOpacity,X=U.baseFloatZIndex,Y=e.genKey(V,W,X),Z=D[Y];if(!Z){var aa=['<div tabIndex="-1" style="position: ',b.ie6Compat?'absolute':'fixed','; z-index: ',X,'; top: 0px; left: 0px; ',!b.ie6Compat?'background-color: '+V:'','" class="cke_dialog_background_cover">'];if(b.ie6Compat){var ab=b.isCustomDomain(),ac="<html><body style=\\'background-color:"+V+";\\'></body></html>";aa.push('<iframe hidefocus="true" frameborder="0" id="cke_dialog_background_iframe" src="javascript:');aa.push('void((function(){document.open();'+(ab?"document.domain='"+document.domain+"';":'')+"document.write( '"+ac+"' );"+'document.close();'+'})())');aa.push('" style="position:absolute;left:0;top:0;width:100%;height: 100%;progid:DXImageTransform.Microsoft.Alpha(opacity=0)"></iframe>');}aa.push('</div>');Z=h.createFromHtml(aa.join(''));Z.setOpacity(W!=undefined?W:0.5);Z.on('keydown',F);Z.on('keypress',F);Z.on('keyup',F);Z.appendTo(a.document.getBody());D[Y]=Z;}else Z.show();E=Z;var ad=function(){var ag=T.getViewPaneSize();Z.setStyles({width:ag.width+'px',height:ag.height+'px'});},ae=function(){var ag=T.getScrollPosition(),ah=a.dialog._.currentTop;Z.setStyles({left:ag.x+'px',top:ag.y+'px'});if(ah)do{var ai=ah.getPosition();
 ah.move(ai.x,ai.y);}while(ah=ah._.parentDialog)};C=ad;T.on('resize',ad);ad();if(!(b.mac&&b.webkit))Z.focus();if(b.ie6Compat){var af=function(){ae();arguments.callee.prevScrollHandler.apply(this,arguments);};T.$.setTimeout(function(){af.prevScrollHandler=window.onscroll||(function(){});window.onscroll=af;},0);ae();}};function H(){if(!E)return;var S=a.document.getWindow();E.hide();S.removeListener('resize',C);if(b.ie6Compat)S.$.setTimeout(function(){var T=window.onscroll&&window.onscroll.prevScrollHandler;window.onscroll=T||null;},0);C=null;};function I(){for(var S in D)D[S].remove();D={};};var J={},K=function(S){var T=S.data.$.ctrlKey||S.data.$.metaKey,U=S.data.$.altKey,V=S.data.$.shiftKey,W=String.fromCharCode(S.data.$.keyCode),X=J[(T?'CTRL+':'')+(U?'ALT+':'')+(V?'SHIFT+':'')+W];if(!X||!X.length)return;X=X[X.length-1];X.keydown&&X.keydown.call(X.uiElement,X.dialog,X.key);S.data.preventDefault();},L=function(S){var T=S.data.$.ctrlKey||S.data.$.metaKey,U=S.data.$.altKey,V=S.data.$.shiftKey,W=String.fromCharCode(S.data.$.keyCode),X=J[(T?'CTRL+':'')+(U?'ALT+':'')+(V?'SHIFT+':'')+W];if(!X||!X.length)return;X=X[X.length-1];if(X.keyup){X.keyup.call(X.uiElement,X.dialog,X.key);S.data.preventDefault();}},M=function(S,T,U,V,W){var X=J[U]||(J[U]=[]);X.push({uiElement:S,dialog:T,key:U,keyup:W||S.accessKeyUp,keydown:V||S.accessKeyDown});},N=function(S){for(var T in J){var U=J[T];for(var V=U.length-1;V>=0;V--){if(U[V].dialog==S||U[V].uiElement==S)U.splice(V,1);}if(U.length===0)delete J[T];}},O=function(S,T){if(S._.accessKeyMap[T])S.selectPage(S._.accessKeyMap[T]);},P=function(S,T){},Q={27:1,13:1},R=function(S){if(S.data.getKeystroke() in Q)S.data.stopPropagation();};(function(){k.dialog={uiElement:function(S,T,U,V,W,X,Y){if(arguments.length<4)return;var Z=(V.call?V(T):V)||'div',aa=['<',Z,' '],ab=(W&&W.call?W(T):W)||{},ac=(X&&X.call?X(T):X)||{},ad=(Y&&Y.call?Y.call(this,S,T):Y)||'',ae=this.domId=ac.id||e.getNextId()+'_uiElement',af=this.id=T.id,ag;ac.id=ae;var ah={};if(T.type)ah['cke_dialog_ui_'+T.type]=1;if(T.className)ah[T.className]=1;if(T.disabled)ah.cke_disabled=1;var ai=ac['class']&&ac['class'].split?ac['class'].split(' '):[];for(ag=0;ag<ai.length;ag++){if(ai[ag])ah[ai[ag]]=1;}var aj=[];for(ag in ah)aj.push(ag);ac['class']=aj.join(' ');if(T.title)ac.title=T.title;var ak=(T.style||'').split(';');if(T.align){var al=T.align;ab['margin-left']=al=='left'?0:'auto';ab['margin-right']=al=='right'?0:'auto';}for(ag in ab)ak.push(ag+':'+ab[ag]);if(T.hidden)ak.push('display:none');
-for(ag=ak.length-1;ag>=0;ag--){if(ak[ag]==='')ak.splice(ag,1);}if(ak.length>0)ac.style=(ac.style?ac.style+'; ':'')+ak.join('; ');for(ag in ac)aa.push(ag+'="'+e.htmlEncode(ac[ag])+'" ');aa.push('>',ad,'</',Z,'>');U.push(aa.join(''));(this._||(this._={})).dialog=S;if(typeof T.isChanged=='boolean')this.isChanged=function(){return T.isChanged;};if(typeof T.isChanged=='function')this.isChanged=T.isChanged;if(typeof T.setValue=='function')this.setValue=e.override(this.setValue,function(an){return function(ao){an.call(this,T.setValue.call(this,ao));};});if(typeof T.getValue=='function')this.getValue=e.override(this.getValue,function(an){return function(){return T.getValue.call(this,an.call(this));};});a.event.implementOn(this);this.registerEvents(T);if(this.accessKeyUp&&this.accessKeyDown&&T.accessKey)M(this,S,'CTRL+'+T.accessKey);var am=this;S.on('load',function(){if(am.getInputElement())am.getInputElement().on('focus',function(){S._.tabBarMode=false;S._.hasFocus=true;am.fire('focus');},am);});if(this.keyboardFocusable){this.tabIndex=T.tabIndex||0;this.focusIndex=S._.focusList.push(this)-1;this.on('focus',function(){S._.currentFocusIndex=am.focusIndex;});}e.extend(this,T);},hbox:function(S,T,U,V,W){if(arguments.length<4)return;this._||(this._={});var X=this._.children=T,Y=W&&W.widths||null,Z=W&&W.height||null,aa={},ab,ac=function(){var ae=['<tbody><tr class="cke_dialog_ui_hbox">'];for(ab=0;ab<U.length;ab++){var af='cke_dialog_ui_hbox_child',ag=[];if(ab===0)af='cke_dialog_ui_hbox_first';if(ab==U.length-1)af='cke_dialog_ui_hbox_last';ae.push('<td class="',af,'" role="presentation" ');if(Y){if(Y[ab])ag.push('width:'+m(Y[ab]));}else ag.push('width:'+Math.floor(100/U.length)+'%');if(Z)ag.push('height:'+m(Z));if(W&&W.padding!=undefined)ag.push('padding:'+m(W.padding));if(c&&b.quirks&&X[ab].align)ag.push('text-align:'+X[ab].align);if(ag.length>0)ae.push('style="'+ag.join('; ')+'" ');ae.push('>',U[ab],'</td>');}ae.push('</tr></tbody>');return ae.join('');},ad={role:'presentation'};W&&W.align&&(ad.align=W.align);k.dialog.uiElement.call(this,S,W||{type:'hbox'},V,'table',aa,ad,ac);},vbox:function(S,T,U,V,W){if(arguments.length<3)return;this._||(this._={});var X=this._.children=T,Y=W&&W.width||null,Z=W&&W.heights||null,aa=function(){var ab=['<table role="presentation" cellspacing="0" border="0" '];ab.push('style="');if(W&&W.expand)ab.push('height:100%;');ab.push('width:'+m(Y||'100%'),';');ab.push('"');ab.push('align="',e.htmlEncode(W&&W.align||(S.getParentEditor().lang.dir=='ltr'?'left':'right')),'" ');
-ab.push('><tbody>');for(var ac=0;ac<U.length;ac++){var ad=[];ab.push('<tr><td role="presentation" ');if(Y)ad.push('width:'+m(Y||'100%'));if(Z)ad.push('height:'+m(Z[ac]));else if(W&&W.expand)ad.push('height:'+Math.floor(100/U.length)+'%');if(W&&W.padding!=undefined)ad.push('padding:'+m(W.padding));if(c&&b.quirks&&X[ac].align)ad.push('text-align:'+X[ac].align);if(ad.length>0)ab.push('style="',ad.join('; '),'" ');ab.push(' class="cke_dialog_ui_vbox_child">',U[ac],'</td></tr>');}ab.push('</tbody></table>');return ab.join('');};k.dialog.uiElement.call(this,S,W||{type:'vbox'},V,'div',null,{role:'presentation'},aa);}};})();k.dialog.uiElement.prototype={getElement:function(){return a.document.getById(this.domId);},getInputElement:function(){return this.getElement();},getDialog:function(){return this._.dialog;},setValue:function(S,T){this.getInputElement().setValue(S);!T&&this.fire('change',{value:S});return this;},getValue:function(){return this.getInputElement().getValue();},isChanged:function(){return false;},selectParentTab:function(){var V=this;var S=V.getInputElement(),T=S,U;while((T=T.getParent())&&T.$.className.search('cke_dialog_page_contents')==-1){}if(!T)return V;U=T.getAttribute('name');if(V._.dialog._.currentTabId!=U)V._.dialog.selectPage(U);return V;},focus:function(){this.selectParentTab().getInputElement().focus();return this;},registerEvents:function(S){var T=/^on([A-Z]\w+)/,U,V=function(X,Y,Z,aa){Y.on('load',function(){X.getInputElement().on(Z,aa,X);});};for(var W in S){if(!(U=W.match(T)))continue;if(this.eventProcessors[W])this.eventProcessors[W].call(this,this._.dialog,S[W]);else V(this,this._.dialog,U[1].toLowerCase(),S[W]);}return this;},eventProcessors:{onLoad:function(S,T){S.on('load',T,this);},onShow:function(S,T){S.on('show',T,this);},onHide:function(S,T){S.on('hide',T,this);}},accessKeyDown:function(S,T){this.focus();},accessKeyUp:function(S,T){},disable:function(){var S=this.getElement(),T=this.getInputElement();T.setAttribute('disabled','true');S.addClass('cke_disabled');},enable:function(){var S=this.getElement(),T=this.getInputElement();T.removeAttribute('disabled');S.removeClass('cke_disabled');},isEnabled:function(){return!this.getElement().hasClass('cke_disabled');},isVisible:function(){return this.getInputElement().isVisible();},isFocusable:function(){if(!this.isEnabled()||!this.isVisible())return false;return true;}};k.dialog.hbox.prototype=e.extend(new k.dialog.uiElement(),{getChild:function(S){var T=this;if(arguments.length<1)return T._.children.concat();
-if(!S.splice)S=[S];if(S.length<2)return T._.children[S[0]];else return T._.children[S[0]]&&T._.children[S[0]].getChild?T._.children[S[0]].getChild(S.slice(1,S.length)):null;}},true);k.dialog.vbox.prototype=new k.dialog.hbox();(function(){var S={build:function(T,U,V){var W=U.children,X,Y=[],Z=[];for(var aa=0;aa<W.length&&(X=W[aa]);aa++){var ab=[];Y.push(ab);Z.push(a.dialog._.uiElementBuilders[X.type].build(T,X,ab));}return new k.dialog[U.type](T,Z,Y,V,U);}};a.dialog.addUIElement('hbox',S);a.dialog.addUIElement('vbox',S);})();a.dialogCommand=function(S){this.dialogName=S;};a.dialogCommand.prototype={exec:function(S){S.openDialog(this.dialogName);},canUndo:false,editorFocus:c||b.webkit};(function(){var S=/^([a]|[^a])+$/,T=/^\d*$/,U=/^\d*(?:\.\d+)?$/,V=/^(((\d*(\.\d+))|(\d*))(px|\%)?)?$/,W=/^(((\d*(\.\d+))|(\d*))(px|em|ex|in|cm|mm|pt|pc|\%)?)?$/i;a.VALIDATE_OR=1;a.VALIDATE_AND=2;a.dialog.validate={functions:function(){var X=arguments;return function(){var Y=this&&this.getValue?this.getValue():X[0],Z=undefined,aa=2,ab=[],ac;for(ac=0;ac<X.length;ac++){if(typeof X[ac]=='function')ab.push(X[ac]);else break;}if(ac<X.length&&typeof X[ac]=='string'){Z=X[ac];ac++;}if(ac<X.length&&typeof X[ac]=='number')aa=X[ac];var ad=aa==2?true:false;for(ac=0;ac<ab.length;ac++){if(aa==2)ad=ad&&ab[ac](Y);else ad=ad||ab[ac](Y);}return!ad?Z:true;};},regex:function(X,Y){return function(){var Z=this&&this.getValue?this.getValue():arguments[0];return!X.test(Z)?Y:true;};},notEmpty:function(X){return this.regex(S,X);},integer:function(X){return this.regex(T,X);},number:function(X){return this.regex(U,X);},cssLength:function(X){return this.functions(function(Y){return W.test(e.trim(Y));},X);},htmlLength:function(X){return this.functions(function(Y){return V.test(e.trim(Y));},X);},equals:function(X,Y){return this.functions(function(Z){return Z==X;},Y);},notEqual:function(X,Y){return this.functions(function(Z){return Z!=X;},Y);}};a.on('instanceDestroyed',function(X){if(e.isEmpty(a.instances)){var Y;while(Y=a.dialog._.currentTop)Y.hide();I();}var Z=X.editor._.storedDialogs;for(var aa in Z)Z[aa].destroy();});})();e.extend(a.editor.prototype,{openDialog:function(S,T){if(this.mode=='wysiwyg'&&c){var U=this.getSelection();U&&U.lock();}var V=a.dialog._.dialogDefinitions[S],W=this.skin.dialog;if(a.dialog._.currentTop===null)G(this);if(typeof V=='function'&&W._isLoaded){var X=this._.storedDialogs||(this._.storedDialogs={}),Y=X[S]||(X[S]=new a.dialog(this,S));T&&T.call(Y,Y);Y.show();return Y;}else if(V=='failed'){H();
-throw new Error('[CKEDITOR.dialog.openDialog] Dialog "'+S+'" failed when loading definition.');}var Z=this;function aa(ac){var ad=a.dialog._.dialogDefinitions[S],ae=Z.skin.dialog;if(!ae._isLoaded||ab&&typeof ac=='undefined')return;if(typeof ad!='function')a.dialog._.dialogDefinitions[S]='failed';Z.openDialog(S,T);};if(typeof V=='string'){var ab=1;a.scriptLoader.load(a.getUrl(V),aa,null,0,1);}a.skins.load(this,'dialog',aa);return null;}});})();j.add('dialog',{requires:['dialogui']});j.add('styles',{requires:['selection'],init:function(m){m.on('contentDom',function(){m.document.setCustomData('cke_includeReadonly',!m.config.disableReadonlyStyling);});}});a.editor.prototype.attachStyleStateChange=function(m,n){var o=this._.styleStateChangeCallbacks;if(!o){o=this._.styleStateChangeCallbacks=[];this.on('selectionChange',function(p){for(var q=0;q<o.length;q++){var r=o[q],s=r.style.checkActive(p.data.path)?1:2;r.fn.call(this,s);}});}o.push({style:m,fn:n});};a.STYLE_BLOCK=1;a.STYLE_INLINE=2;a.STYLE_OBJECT=3;(function(){var m={address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,section:1,header:1,footer:1,nav:1,article:1,aside:1,figure:1,dialog:1,hgroup:1,time:1,meter:1,menu:1,command:1,keygen:1,output:1,progress:1,details:1,datagrid:1,datalist:1},n={a:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1,dd:1,form:1,audio:1,video:1},o=/\s*(?:;\s*|$)/,p=/#\((.+?)\)/g,q=d.walker.bookmark(0,1),r=d.walker.whitespaces(1);a.style=function(T,U){var W=this;if(U){T=e.clone(T);L(T.attributes,U);L(T.styles,U);}var V=W.element=T.element?typeof T.element=='string'?T.element.toLowerCase():T.element:'*';W.type=m[V]?1:n[V]?3:2;if(typeof W.element=='object')W.type=3;W._={definition:T};};a.style.prototype={apply:function(T){S.call(this,T,false);},remove:function(T){S.call(this,T,true);},applyToRange:function(T){var U=this;return(U.applyToRange=U.type==2?t:U.type==1?x:U.type==3?v:null).call(U,T);},removeFromRange:function(T){var U=this;return(U.removeFromRange=U.type==2?u:U.type==1?y:U.type==3?w:null).call(U,T);},applyToObject:function(T){K(T,this);},checkActive:function(T){var Y=this;switch(Y.type){case 1:return Y.checkElementRemovable(T.block||T.blockLimit,true);case 3:case 2:var U=T.elements;for(var V=0,W;V<U.length;V++){W=U[V];if(Y.type==2&&(W==T.block||W==T.blockLimit))continue;if(Y.type==3){var X=W.getName();if(!(typeof Y.element=='string'?X==Y.element:X in Y.element))continue;}if(Y.checkElementRemovable(W,true))return true;}}return false;},checkApplicable:function(T){switch(this.type){case 2:case 1:break;
-case 3:return T.lastElement.getAscendant(this.element,true);}return true;},checkElementRemovable:function(T,U){var ae=this;if(!T||T.isReadOnly())return false;var V=ae._.definition,W,X=T.getName();if(typeof ae.element=='string'?X==ae.element:X in ae.element){if(!U&&!T.hasAttributes())return true;W=M(V);if(W._length){for(var Y in W){if(Y=='_length')continue;var Z=T.getAttribute(Y)||'';if(Y=='style'?R(W[Y],P(Z,false)):W[Y]==Z){if(!U)return true;}else if(U)return false;}if(U)return true;}else return true;}var aa=N(ae)[T.getName()];if(aa){if(!(W=aa.attributes))return true;for(var ab=0;ab<W.length;ab++){Y=W[ab][0];var ac=T.getAttribute(Y);if(ac){var ad=W[ab][1];if(ad===null||typeof ad=='string'&&ac==ad||ad.test(ac))return true;}}}return false;},buildPreview:function(T){var U=this._.definition,V=[],W=U.element;if(W=='bdo')W='span';V=['<',W];var X=U.attributes;if(X)for(var Y in X)V.push(' ',Y,'="',X[Y],'"');var Z=a.style.getStyleText(U);if(Z)V.push(' style="',Z,'"');V.push('>',T||U.name,'</',W,'>');return V.join('');}};a.style.getStyleText=function(T){var U=T._ST;if(U)return U;U=T.styles;var V=T.attributes&&T.attributes.style||'',W='';if(V.length)V=V.replace(o,';');for(var X in U){var Y=U[X],Z=(X+':'+Y).replace(o,';');if(Y=='inherit')W+=Z;else V+=Z;}if(V.length)V=P(V);V+=W;return T._ST=V;};function s(T){var U,V;while(T=T.getParent()){if(T.getName()=='body')break;if(T.getAttribute('data-nostyle'))U=T;else if(!V){var W=T.getAttribute('contentEditable');if(W=='false')U=T;else if(W=='true')V=1;}}return U;};function t(T){var ax=this;var U=T.document;if(T.collapsed){var V=J(ax,U);T.insertNode(V);T.moveToPosition(V,2);return;}var W=ax.element,X=ax._.definition,Y,Z=X.includeReadonly;if(Z==undefined)Z=U.getCustomData('cke_includeReadonly');var aa=f[W]||(Y=true,f.span);T.enlarge(1,1);T.trim();var ab=T.createBookmark(),ac=ab.startNode,ad=ab.endNode,ae=ac,af,ag=s(ac),ah=s(ad);if(ag)ae=ag.getNextSourceNode(true);if(ah)ad=ah;if(ae.getPosition(ad)==2)ae=0;while(ae){var ai=false;if(ae.equals(ad)){ae=null;ai=true;}else{var aj=ae.type,ak=aj==1?ae.getName():null,al=ak&&ae.getAttribute('contentEditable')=='false',am=ak&&ae.getAttribute('data-nostyle');if(ak&&ae.data('cke-bookmark')){ae=ae.getNextSourceNode(true);continue;}if(!ak||aa[ak]&&!am&&(!al||Z)&&(ae.getPosition(ad)|4|0|8)==4+0+8&&(!X.childRule||X.childRule(ae))){var an=ae.getParent();if(an&&((an.getDtd()||f.span)[W]||Y)&&(!X.parentRule||X.parentRule(an))){if(!af&&(!ak||!f.$removeEmpty[ak]||(ae.getPosition(ad)|4|0|8)==4+0+8)){af=new d.range(U);
-af.setStartBefore(ae);}if(aj==3||al||aj==1&&!ae.getChildCount()){var ao=ae,ap;while((ai=!ao.getNext(q))&&(ap=ao.getParent(),aa[ap.getName()])&&(ap.getPosition(ac)|2|0|8)==2+0+8&&(!X.childRule||X.childRule(ap)))ao=ap;af.setEndAfter(ao);}}else ai=true;}else ai=true;ae=ae.getNextSourceNode(am||al);}if(ai&&af&&!af.collapsed){var aq=J(ax,U),ar=aq.hasAttributes(),as=af.getCommonAncestor(),at={styles:{},attrs:{},blockedStyles:{},blockedAttrs:{}},au,av,aw;while(aq&&as){if(as.getName()==W){for(au in X.attributes){if(at.blockedAttrs[au]||!(aw=as.getAttribute(av)))continue;if(aq.getAttribute(au)==aw)at.attrs[au]=1;else at.blockedAttrs[au]=1;}for(av in X.styles){if(at.blockedStyles[av]||!(aw=as.getStyle(av)))continue;if(aq.getStyle(av)==aw)at.styles[av]=1;else at.blockedStyles[av]=1;}}as=as.getParent();}for(au in at.attrs)aq.removeAttribute(au);for(av in at.styles)aq.removeStyle(av);if(ar&&!aq.hasAttributes())aq=null;if(aq){af.extractContents().appendTo(aq);G(ax,aq);af.insertNode(aq);aq.mergeSiblings();if(!c)aq.$.normalize();}else{aq=new h('span');af.extractContents().appendTo(aq);af.insertNode(aq);G(ax,aq);aq.remove(true);}af=null;}}T.moveToBookmark(ab);T.shrink(2);};function u(T){T.enlarge(1,1);var U=T.createBookmark(),V=U.startNode;if(T.collapsed){var W=new d.elementPath(V.getParent()),X;for(var Y=0,Z;Y<W.elements.length&&(Z=W.elements[Y]);Y++){if(Z==W.block||Z==W.blockLimit)break;if(this.checkElementRemovable(Z)){var aa;if(T.collapsed&&(T.checkBoundaryOfElement(Z,2)||(aa=T.checkBoundaryOfElement(Z,1)))){X=Z;X.match=aa?'start':'end';}else{Z.mergeSiblings();if(Z.getName()==this.element)F(this,Z);else H(Z,N(this)[Z.getName()]);}}}if(X){var ab=V;for(Y=0;true;Y++){var ac=W.elements[Y];if(ac.equals(X))break;else if(ac.match)continue;else ac=ac.clone();ac.append(ab);ab=ac;}ab[X.match=='start'?'insertBefore':'insertAfter'](X);}}else{var ad=U.endNode,ae=this;function af(){var ai=new d.elementPath(V.getParent()),aj=new d.elementPath(ad.getParent()),ak=null,al=null;for(var am=0;am<ai.elements.length;am++){var an=ai.elements[am];if(an==ai.block||an==ai.blockLimit)break;if(ae.checkElementRemovable(an))ak=an;}for(am=0;am<aj.elements.length;am++){an=aj.elements[am];if(an==aj.block||an==aj.blockLimit)break;if(ae.checkElementRemovable(an))al=an;}if(al)ad.breakParent(al);if(ak)V.breakParent(ak);};af();var ag=V.getNext();while(!ag.equals(ad)){var ah=ag.getNextSourceNode();if(ag.type==1&&this.checkElementRemovable(ag)){if(ag.getName()==this.element)F(this,ag);else H(ag,N(this)[ag.getName()]);
-if(ah.type==1&&ah.contains(V)){af();ah=V.getNext();}}ag=ah;}}T.moveToBookmark(U);};function v(T){var U=T.getCommonAncestor(true,true),V=U.getAscendant(this.element,true);V&&!V.isReadOnly()&&K(V,this);};function w(T){var U=T.getCommonAncestor(true,true),V=U.getAscendant(this.element,true);if(!V)return;var W=this,X=W._.definition,Y=X.attributes,Z=a.style.getStyleText(X);if(Y)for(var aa in Y)V.removeAttribute(aa,Y[aa]);if(X.styles)for(var ab in X.styles){if(!X.styles.hasOwnProperty(ab))continue;V.removeStyle(ab);}};function x(T){var U=T.createBookmark(true),V=T.createIterator();V.enforceRealBlocks=true;if(this._.enterMode)V.enlargeBr=this._.enterMode!=2;var W,X=T.document,Y;while(W=V.getNextParagraph()){if(!W.isReadOnly()){var Z=J(this,X,W);z(W,Z);}}T.moveToBookmark(U);};function y(T){var Y=this;var U=T.createBookmark(1),V=T.createIterator();V.enforceRealBlocks=true;V.enlargeBr=Y._.enterMode!=2;var W;while(W=V.getNextParagraph()){if(Y.checkElementRemovable(W))if(W.is('pre')){var X=Y._.enterMode==2?null:T.document.createElement(Y._.enterMode==1?'p':'div');X&&W.copyAttributes(X);z(W,X);}else F(Y,W,1);}T.moveToBookmark(U);};function z(T,U){var V=!U;if(V){U=T.getDocument().createElement('div');T.copyAttributes(U);}var W=U&&U.is('pre'),X=T.is('pre'),Y=W&&!X,Z=!W&&X;if(Y)U=E(T,U);else if(Z)U=D(V?[T.getHtml()]:B(T),U);else T.moveChildren(U);U.replace(T);if(W)A(U);else if(V)I(U);};function A(T){var U;if(!((U=T.getPrevious(r))&&U.is&&U.is('pre')))return;var V=C(U.getHtml(),/\n$/,'')+'\n\n'+C(T.getHtml(),/^\n/,'');if(c)T.$.outerHTML='<pre>'+V+'</pre>';else T.setHtml(V);U.remove();};function B(T){var U=/(\S\s*)\n(?:\s|(<span[^>]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,V=T.getName(),W=C(T.getOuterHtml(),U,function(Y,Z,aa){return Z+'</pre>'+aa+'<pre>';}),X=[];W.replace(/<pre\b.*?>([\s\S]*?)<\/pre>/gi,function(Y,Z){X.push(Z);});return X;};function C(T,U,V){var W='',X='';T=T.replace(/(^<span[^>]+data-cke-bookmark.*?\/span>)|(<span[^>]+data-cke-bookmark.*?\/span>$)/gi,function(Y,Z,aa){Z&&(W=Z);aa&&(X=aa);return '';});return W+T.replace(U,V)+X;};function D(T,U){var V;if(T.length>1)V=new d.documentFragment(U.getDocument());for(var W=0;W<T.length;W++){var X=T[W];X=X.replace(/(\r\n|\r)/g,'\n');X=C(X,/^[ \t]*\n/,'');X=C(X,/\n$/,'');X=C(X,/^[ \t]+|[ \t]+$/g,function(Z,aa,ab){if(Z.length==1)return ' ';else if(!aa)return e.repeat(' ',Z.length-1)+' ';else return ' '+e.repeat(' ',Z.length-1);});X=X.replace(/\n/g,'<br>');X=X.replace(/[ \t]{2,}/g,function(Z){return e.repeat(' ',Z.length-1)+' ';
-});if(V){var Y=U.clone();Y.setHtml(X);V.append(Y);}else U.setHtml(X);}return V||U;};function E(T,U){var V=T.getBogus();V&&V.remove();var W=T.getHtml();W=C(W,/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,'');W=W.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,'$1');W=W.replace(/([ \t\n\r]+| )/g,' ');W=W.replace(/<br\b[^>]*>/gi,'\n');if(c){var X=T.getDocument().createElement('div');X.append(U);U.$.outerHTML='<pre>'+W+'</pre>';U.copyAttributes(X.getFirst());U=X.getFirst().remove();}else U.setHtml(W);return U;};function F(T,U){var V=T._.definition,W=e.extend({},V.attributes,N(T)[U.getName()]),X=V.styles,Y=e.isEmpty(W)&&e.isEmpty(X);for(var Z in W){if((Z=='class'||T._.definition.fullMatch)&&U.getAttribute(Z)!=O(Z,W[Z]))continue;Y=U.hasAttribute(Z);U.removeAttribute(Z);}for(var aa in X){if(T._.definition.fullMatch&&U.getStyle(aa)!=O(aa,X[aa],true))continue;Y=Y||!!U.getStyle(aa);U.removeStyle(aa);}if(Y)!f.$block[U.getName()]||T._.enterMode==2&&!U.hasAttributes()?I(U):U.renameNode(T._.enterMode==1?'p':'div');};function G(T,U){var V=T._.definition,W=V.attributes,X=V.styles,Y=N(T),Z=U.getElementsByTag(T.element);for(var aa=Z.count();--aa>=0;)F(T,Z.getItem(aa));for(var ab in Y){if(ab!=T.element){Z=U.getElementsByTag(ab);for(aa=Z.count()-1;aa>=0;aa--){var ac=Z.getItem(aa);H(ac,Y[ab]);}}}};function H(T,U){var V=U&&U.attributes;if(V)for(var W=0;W<V.length;W++){var X=V[W][0],Y;if(Y=T.getAttribute(X)){var Z=V[W][1];if(Z===null||Z.test&&Z.test(Y)||typeof Z=='string'&&Y==Z)T.removeAttribute(X);}}I(T);};function I(T){if(!T.hasAttributes())if(f.$block[T.getName()]){var U=T.getPrevious(r),V=T.getNext(r);if(U&&(U.type==3||!U.isBlockBoundary({br:1})))T.append('br',1);if(V&&(V.type==3||!V.isBlockBoundary({br:1})))T.append('br');T.remove(true);}else{var W=T.getFirst(),X=T.getLast();T.remove(true);if(W){W.type==1&&W.mergeSiblings();if(X&&!W.equals(X)&&X.type==1)X.mergeSiblings();}}};function J(T,U,V){var W,X=T._.definition,Y=T.element;if(Y=='*')Y='span';W=new h(Y,U);if(V)V.copyAttributes(W);W=K(W,T);if(U.getCustomData('doc_processing_style')&&W.hasAttribute('id'))W.removeAttribute('id');else U.setCustomData('doc_processing_style',1);return W;};function K(T,U){var V=U._.definition,W=V.attributes,X=a.style.getStyleText(V);if(W)for(var Y in W)T.setAttribute(Y,W[Y]);if(X)T.setAttribute('style',X);return T;};function L(T,U){for(var V in T)T[V]=T[V].replace(p,function(W,X){return U[X];});};function M(T){var U=T._AC;if(U)return U;U={};var V=0,W=T.attributes;if(W)for(var X in W){V++;U[X]=W[X];}var Y=a.style.getStyleText(T);
-if(Y){if(!U.style)V++;U.style=Y;}U._length=V;return T._AC=U;};function N(T){if(T._.overrides)return T._.overrides;var U=T._.overrides={},V=T._.definition.overrides;if(V){if(!e.isArray(V))V=[V];for(var W=0;W<V.length;W++){var X=V[W],Y,Z,aa;if(typeof X=='string')Y=X.toLowerCase();else{Y=X.element?X.element.toLowerCase():T.element;aa=X.attributes;}Z=U[Y]||(U[Y]={});if(aa){var ab=Z.attributes=Z.attributes||[];for(var ac in aa)ab.push([ac.toLowerCase(),aa[ac]]);}}}return U;};function O(T,U,V){var W=new h('span');W[V?'setStyle':'setAttribute'](T,U);return W[V?'getStyle':'getAttribute'](T);};function P(T,U){var V;if(U!==false){var W=new h('span');W.setAttribute('style',T);V=W.getAttribute('style')||'';}else V=T;V=V.replace(/(font-family:)(.*?)(?=;|$)/,function(X,Y,Z){var aa=Z.split(',');for(var ab=0;ab<aa.length;ab++)aa[ab]=e.trim(aa[ab].replace(/["']/g,''));return Y+aa.join(',');});return V.replace(/\s*([;:])\s*/,'$1').replace(/([^\s;])$/,'$1;').replace(/,\s+/g,',').replace(/\"/g,'').toLowerCase();};function Q(T){var U={};T.replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(V,W,X){U[W]=X;});return U;};function R(T,U){typeof T=='string'&&(T=Q(T));typeof U=='string'&&(U=Q(U));for(var V in T){if(!(V in U&&(U[V]==T[V]||T[V]=='inherit'||U[V]=='inherit')))return false;}return true;};function S(T,U){var V=T.getSelection(),W=V.createBookmarks(1),X=V.getRanges(),Y=U?this.removeFromRange:this.applyToRange,Z,aa=X.createIterator();while(Z=aa.getNextRange())Y.call(this,Z);if(W.length==1&&W[0].collapsed){V.selectRanges(X);T.getById(W[0].startNode).remove();}else V.selectBookmarks(W);T.removeCustomData('doc_processing_style');};})();a.styleCommand=function(m){this.style=m;};a.styleCommand.prototype.exec=function(m){var o=this;m.focus();var n=m.document;if(n)if(o.state==2)o.style.apply(n);else if(o.state==1)o.style.remove(n);return!!n;};a.stylesSet=new a.resourceManager('','stylesSet');a.addStylesSet=e.bind(a.stylesSet.add,a.stylesSet);a.loadStylesSet=function(m,n,o){a.stylesSet.addExternal(m,n,'');a.stylesSet.load(m,o);};a.editor.prototype.getStylesSet=function(m){if(!this._.stylesDefinitions){var n=this,o=n.config.stylesCombo_stylesSet||n.config.stylesSet||'default';if(o instanceof Array){n._.stylesDefinitions=o;m(o);return;}var p=o.split(':'),q=p[0],r=p[1],s=j.registered.styles.path;a.stylesSet.addExternal(q,r?p.slice(1).join(':'):s+'styles/'+q+'.js','');a.stylesSet.load(q,function(t){n._.stylesDefinitions=t[q];m(n._.stylesDefinitions);});}else m(this._.stylesDefinitions);
-};j.add('domiterator');(function(){function m(s){var t=this;if(arguments.length<1)return;t.range=s;t.forceBrBreak=0;t.enlargeBr=1;t.enforceRealBlocks=0;t._||(t._={});};var n=/^[\r\n\t ]+$/,o=d.walker.bookmark(false,true),p=d.walker.whitespaces(true),q=function(s){return o(s)&&p(s);};function r(s,t,u){var v=s.getNextSourceNode(t,null,u);while(!o(v))v=v.getNextSourceNode(t,null,u);return v;};m.prototype={getNextParagraph:function(s){var S=this;var t,u,v,w,x,y;if(!S._.lastNode){u=S.range.clone();u.shrink(1,true);w=u.endContainer.hasAscendant('pre',true)||u.startContainer.hasAscendant('pre',true);u.enlarge(S.forceBrBreak&&!w||!S.enlargeBr?3:2);var z=new d.walker(u),A=d.walker.bookmark(true,true);z.evaluator=A;S._.nextNode=z.next();z=new d.walker(u);z.evaluator=A;var B=z.previous();S._.lastNode=B.getNextSourceNode(true);if(S._.lastNode&&S._.lastNode.type==3&&!e.trim(S._.lastNode.getText())&&S._.lastNode.getParent().isBlockBoundary()){var C=new d.range(u.document);C.moveToPosition(S._.lastNode,4);if(C.checkEndOfBlock()){var D=new d.elementPath(C.endContainer),E=D.block||D.blockLimit;S._.lastNode=E.getNextSourceNode(true);}}if(!S._.lastNode){S._.lastNode=S._.docEndMarker=u.document.createText('');S._.lastNode.insertAfter(B);}u=null;}var F=S._.nextNode;B=S._.lastNode;S._.nextNode=null;while(F){var G=0,H=F.hasAscendant('pre'),I=F.type!=1,J=0;if(!I){var K=F.getName();if(F.isBlockBoundary(S.forceBrBreak&&!H&&{br:1})){if(K=='br')I=1;else if(!u&&!F.getChildCount()&&K!='hr'){t=F;v=F.equals(B);break;}if(u){u.setEndAt(F,3);if(K!='br')S._.nextNode=F;}G=1;}else{if(F.getFirst()){if(!u){u=new d.range(S.range.document);u.setStartAt(F,3);}F=F.getFirst();continue;}I=1;}}else if(F.type==3)if(n.test(F.getText()))I=0;if(I&&!u){u=new d.range(S.range.document);u.setStartAt(F,3);}v=(!G||I)&&F.equals(B);if(u&&!G)while(!F.getNext(q)&&!v){var L=F.getParent();if(L.isBlockBoundary(S.forceBrBreak&&!H&&{br:1})){G=1;I=0;v=v||L.equals(B);u.setEndAt(L,2);break;}F=L;I=1;v=F.equals(B);J=1;}if(I)u.setEndAt(F,4);F=r(F,J,B);v=!F;if(v||G&&u)break;}if(!t){if(!u){S._.docEndMarker&&S._.docEndMarker.remove();S._.nextNode=null;return null;}var M=new d.elementPath(u.startContainer),N=M.blockLimit,O={div:1,th:1,td:1};t=M.block;if(!t&&!S.enforceRealBlocks&&O[N.getName()]&&u.checkStartOfBlock()&&u.checkEndOfBlock())t=N;else if(!t||S.enforceRealBlocks&&t.getName()=='li'){t=S.range.document.createElement(s||'p');u.extractContents().appendTo(t);t.trim();u.insertNode(t);x=y=true;}else if(t.getName()!='li'){if(!u.checkStartOfBlock()||!u.checkEndOfBlock()){t=t.clone(false);
-u.extractContents().appendTo(t);t.trim();var P=u.splitBlock();x=!P.wasStartOfBlock;y=!P.wasEndOfBlock;u.insertNode(t);}}else if(!v)S._.nextNode=t.equals(B)?null:r(u.getBoundaryNodes().endNode,1,B);}if(x){var Q=t.getPrevious();if(Q&&Q.type==1)if(Q.getName()=='br')Q.remove();else if(Q.getLast()&&Q.getLast().$.nodeName.toLowerCase()=='br')Q.getLast().remove();}if(y){var R=t.getLast();if(R&&R.type==1&&R.getName()=='br')if(c||R.getPrevious(o)||R.getNext(o))R.remove();}if(!S._.nextNode)S._.nextNode=v||t.equals(B)?null:r(t,1,B);return t;}};d.range.prototype.createIterator=function(){return new m(this);};})();j.add('panelbutton',{requires:['button'],onLoad:function(){function m(n){var p=this;var o=p._;if(o.state==0)return;p.createPanel(n);if(o.on){o.panel.hide();return;}o.panel.showBlock(p._.id,p.document.getById(p._.id),4);};k.panelButton=e.createClass({base:k.button,$:function(n){var p=this;var o=n.panel;delete n.panel;p.base(n);p.document=o&&o.parent&&o.parent.getDocument()||a.document;o.block={attributes:o.attributes};p.hasArrow=true;p.click=m;p._={panelDefinition:o};},statics:{handler:{create:function(n){return new k.panelButton(n);}}},proto:{createPanel:function(n){var o=this._;if(o.panel)return;var p=this._.panelDefinition||{},q=this._.panelDefinition.block,r=p.parent||a.document.getBody(),s=this._.panel=new k.floatPanel(n,r,p),t=s.addBlock(o.id,q),u=this;s.onShow=function(){if(u.className)this.element.getFirst().addClass(u.className+'_panel');u.setState(1);o.on=1;if(u.onOpen)u.onOpen();};s.onHide=function(v){if(u.className)this.element.getFirst().removeClass(u.className+'_panel');u.setState(u.modes&&u.modes[n.mode]?2:0);o.on=0;if(!v&&u.onClose)u.onClose();};s.onEscape=function(){s.hide();u.document.getById(o.id).focus();};if(this.onBlock)this.onBlock(s,t);t.onHide=function(){o.on=0;u.setState(2);};}}});},beforeInit:function(m){m.ui.addHandler('panelbutton',k.panelButton.handler);}});a.UI_PANELBUTTON='panelbutton';j.add('floatpanel',{requires:['panel']});(function(){var m={},n=false;function o(p,q,r,s,t){var u=e.genKey(q.getUniqueId(),r.getUniqueId(),p.skinName,p.lang.dir,p.uiColor||'',s.css||'',t||''),v=m[u];if(!v){v=m[u]=new k.panel(q,s);v.element=r.append(h.createFromHtml(v.renderHtml(p),q));v.element.setStyles({display:'none',position:'absolute'});}return v;};k.floatPanel=e.createClass({$:function(p,q,r,s){r.forceIFrame=1;var t=q.getDocument(),u=o(p,t,q,r,s||0),v=u.element,w=v.getFirst().getFirst();this.element=v;this._={editor:p,panel:u,parentElement:q,definition:r,document:t,iframe:w,children:[],dir:p.lang.dir};
-p.on('mode',function(){this.hide();},this);},proto:{addBlock:function(p,q){return this._.panel.addBlock(p,q);},addListBlock:function(p,q){return this._.panel.addListBlock(p,q);},getBlock:function(p){return this._.panel.getBlock(p);},showBlock:function(p,q,r,s,t){var u=this._.panel,v=u.showBlock(p);this.allowBlur(false);n=1;this._.returnFocus=this._.editor.focusManager.hasFocus?this._.editor:new h(a.document.$.activeElement);var w=this.element,x=this._.iframe,y=this._.definition,z=q.getDocumentPosition(w.getDocument()),A=this._.dir=='rtl',B=z.x+(s||0),C=z.y+(t||0);if(A&&(r==1||r==4))B+=q.$.offsetWidth;else if(!A&&(r==2||r==3))B+=q.$.offsetWidth-1;if(r==3||r==4)C+=q.$.offsetHeight-1;this._.panel._.offsetParentId=q.getId();w.setStyles({top:C+'px',left:0,display:''});w.setOpacity(0);w.getFirst().removeStyle('width');if(!this._.blurSet){var D=c?x:new d.window(x.$.contentWindow);a.event.useCapture=true;D.on('blur',function(E){var G=this;if(!G.allowBlur())return;var F=E.data.getTarget();if(F.getName&&F.getName()!='iframe')return;if(G.visible&&!G._.activeChild&&!n){delete G._.returnFocus;G.hide();}},this);D.on('focus',function(){this._.focused=true;this.hideChild();this.allowBlur(true);},this);a.event.useCapture=false;this._.blurSet=1;}u.onEscape=e.bind(function(E){if(this.onEscape&&this.onEscape(E)===false)return false;},this);e.setTimeout(function(){if(A)B-=w.$.offsetWidth;var E=e.bind(function(){var F=w.getFirst();if(v.autoSize){var G=v.element.$;if(b.gecko||b.opera)G=G.parentNode;if(c)G=G.document.body;var H=G.scrollWidth;if(c&&b.quirks&&H>0)H+=(F.$.offsetWidth||0)-(F.$.clientWidth||0)+3;H+=4;F.setStyle('width',H+'px');v.element.addClass('cke_frameLoaded');var I=v.element.$.scrollHeight;if(c&&b.quirks&&I>0)I+=(F.$.offsetHeight||0)-(F.$.clientHeight||0)+3;F.setStyle('height',I+'px');u._.currentBlock.element.setStyle('display','none').removeStyle('display');}else F.removeStyle('height');var J=u.element,K=J.getWindow(),L=K.getScrollPosition(),M=K.getViewPaneSize(),N={height:J.$.offsetHeight,width:J.$.offsetWidth};if(A?B<0:B+N.width>M.width+L.x)B+=N.width*(A?1:-1);if(C+N.height>M.height+L.y)C-=N.height;if(c){var O=new h(w.$.offsetParent),P=O;if(P.getName()=='html')P=P.getDocument().getBody();if(P.getComputedStyle('direction')=='rtl')if(b.ie8Compat)B-=w.getDocument().getDocumentElement().$.scrollLeft*2;else B-=O.$.scrollWidth-O.$.clientWidth;}var Q=w.getFirst(),R;if(R=Q.getCustomData('activePanel'))R.onHide&&R.onHide.call(this,1);Q.setCustomData('activePanel',this);
-w.setStyles({top:C+'px',left:B+'px'});w.setOpacity(1);},this);u.isLoaded?E():u.onLoad=E;e.setTimeout(function(){x.$.contentWindow.focus();this.allowBlur(true);},0,this);},b.air?200:0,this);this.visible=1;if(this.onShow)this.onShow.call(this);n=0;},hide:function(p){var r=this;if(r.visible&&(!r.onHide||r.onHide.call(r)!==true)){r.hideChild();b.gecko&&r._.iframe.getFrameDocument().$.activeElement.blur();r.element.setStyle('display','none');r.visible=0;r.element.getFirst().removeCustomData('activePanel');var q=p!==false&&r._.returnFocus;if(q){if(b.webkit&&q.type)q.getWindow().$.focus();q.focus();}}},allowBlur:function(p){var q=this._.panel;if(p!=undefined)q.allowBlur=p;return q.allowBlur;},showAsChild:function(p,q,r,s,t,u){if(this._.activeChild==p&&p._.panel._.offsetParentId==r.getId())return;this.hideChild();p.onHide=e.bind(function(){e.setTimeout(function(){if(!this._.focused)this.hide();},0,this);},this);this._.activeChild=p;this._.focused=false;p.showBlock(q,r,s,t,u);if(b.ie7Compat||b.ie8&&b.ie6Compat)setTimeout(function(){p.element.getChild(0).$.style.cssText+='';},100);},hideChild:function(){var p=this._.activeChild;if(p){delete p.onHide;delete p._.returnFocus;delete this._.activeChild;p.hide();}}}});a.on('instanceDestroyed',function(){var p=e.isEmpty(a.instances);for(var q in m){var r=m[q];if(p)r.destroy();else r.element.hide();}p&&(m={});});})();j.add('menu',{beforeInit:function(m){var n=m.config.menu_groups.split(','),o=m._.menuGroups={},p=m._.menuItems={};for(var q=0;q<n.length;q++)o[n[q]]=q+1;m.addMenuGroup=function(r,s){o[r]=s||100;};m.addMenuItem=function(r,s){if(o[s.group])p[r]=new a.menuItem(this,r,s);};m.addMenuItems=function(r){for(var s in r)this.addMenuItem(s,r[s]);};m.getMenuItem=function(r){return p[r];};m.removeMenuItem=function(r){delete p[r];};},requires:['floatpanel']});(function(){a.menu=e.createClass({$:function(n,o){var r=this;o=r._.definition=o||{};r.id=e.getNextId();r.editor=n;r.items=[];r._.listeners=[];r._.level=o.level||1;var p=e.extend({},o.panel,{css:n.skin.editor.css,level:r._.level-1,block:{}}),q=p.block.attributes=p.attributes||{};!q.role&&(q.role='menu');r._.panelDefinition=p;},_:{onShow:function(){var v=this;var n=v.editor.getSelection();if(c)n&&n.lock();var o=n&&n.getStartElement(),p=v._.listeners,q=[];v.removeAll();for(var r=0;r<p.length;r++){var s=p[r](o,n);if(s)for(var t in s){var u=v.editor.getMenuItem(t);if(u&&(!u.command||v.editor.getCommand(u.command).state)){u.state=s[t];v.add(u);}}}},onClick:function(n){this.hide(false);
-if(n.onClick)n.onClick();else if(n.command)this.editor.execCommand(n.command);},onEscape:function(n){var o=this.parent;if(o){o._.panel.hideChild();var p=o._.panel._.panel._.currentBlock,q=p._.focusIndex;p._.markItem(q);}else if(n==27)this.hide();return false;},onHide:function(){if(c){var n=this.editor.getSelection();n&&n.unlock();}this.onHide&&this.onHide();},showSubMenu:function(n){var v=this;var o=v._.subMenu,p=v.items[n],q=p.getItems&&p.getItems();if(!q){v._.panel.hideChild();return;}var r=v._.panel.getBlock(v.id);r._.focusIndex=n;if(o)o.removeAll();else{o=v._.subMenu=new a.menu(v.editor,e.extend({},v._.definition,{level:v._.level+1},true));o.parent=v;o._.onClick=e.bind(v._.onClick,v);}for(var s in q){var t=v.editor.getMenuItem(s);if(t){t.state=q[s];o.add(t);}}var u=v._.panel.getBlock(v.id).element.getDocument().getById(v.id+String(n));o.show(u,2);}},proto:{add:function(n){if(!n.order)n.order=this.items.length;this.items.push(n);},removeAll:function(){this.items=[];},show:function(n,o,p,q){if(!this.parent){this._.onShow();if(!this.items.length)return;}o=o||(this.editor.lang.dir=='rtl'?2:1);var r=this.items,s=this.editor,t=this._.panel,u=this._.element;if(!t){t=this._.panel=new k.floatPanel(this.editor,a.document.getBody(),this._.panelDefinition,this._.level);t.onEscape=e.bind(function(F){if(this._.onEscape(F)===false)return false;},this);t.onHide=e.bind(function(){this._.onHide&&this._.onHide();},this);var v=t.addBlock(this.id,this._.panelDefinition.block);v.autoSize=true;var w=v.keys;w[40]='next';w[9]='next';w[38]='prev';w[2228224+9]='prev';w[s.lang.dir=='rtl'?37:39]=c?'mouseup':'click';w[32]=c?'mouseup':'click';c&&(w[13]='mouseup');u=this._.element=v.element;u.addClass(s.skinClass);var x=u.getDocument();x.getBody().setStyle('overflow','hidden');x.getElementsByTag('html').getItem(0).setStyle('overflow','hidden');this._.itemOverFn=e.addFunction(function(F){var G=this;clearTimeout(G._.showSubTimeout);G._.showSubTimeout=e.setTimeout(G._.showSubMenu,s.config.menu_subMenuDelay||400,G,[F]);},this);this._.itemOutFn=e.addFunction(function(F){clearTimeout(this._.showSubTimeout);},this);this._.itemClickFn=e.addFunction(function(F){var H=this;var G=H.items[F];if(G.state==0){H.hide();return;}if(G.getItems)H._.showSubMenu(F);else H._.onClick(G);},this);}m(r);var y=s.container.getChild(1),z=y.hasClass('cke_mixed_dir_content')?' cke_mixed_dir_content':'',A=['<div class="cke_menu'+z+'" role="presentation">'],B=r.length,C=B&&r[0].group;for(var D=0;D<B;D++){var E=r[D];if(C!=E.group){A.push('<div class="cke_menuseparator" role="separator"></div>');
-C=E.group;}E.render(this,D,A);}A.push('</div>');u.setHtml(A.join(''));k.fire('ready',this);if(this.parent)this.parent._.panel.showAsChild(t,this.id,n,o,p,q);else t.showBlock(this.id,n,o,p,q);s.fire('menuShow',[t]);},addListener:function(n){this._.listeners.push(n);},hide:function(n){var o=this;o._.onHide&&o._.onHide();o._.panel&&o._.panel.hide(n);}}});function m(n){n.sort(function(o,p){if(o.group<p.group)return-1;else if(o.group>p.group)return 1;return o.order<p.order?-1:o.order>p.order?1:0;});};a.menuItem=e.createClass({$:function(n,o,p){var q=this;e.extend(q,p,{order:0,className:'cke_button_'+o});q.group=n._.menuGroups[q.group];q.editor=n;q.name=o;},proto:{render:function(n,o,p){var w=this;var q=n.id+String(o),r=typeof w.state=='undefined'?2:w.state,s=' cke_'+(r==1?'on':r==0?'disabled':'off'),t=w.label;if(w.className)s+=' '+w.className;var u=w.getItems;p.push('<span class="cke_menuitem'+(w.icon&&w.icon.indexOf('.png')==-1?' cke_noalphafix':'')+'">'+'<a id="',q,'" class="',s,'" href="javascript:void(\'',(w.label||'').replace("'",''),'\')" title="',w.label,'" tabindex="-1"_cke_focus=1 hidefocus="true" role="menuitem"'+(u?'aria-haspopup="true"':'')+(r==0?'aria-disabled="true"':'')+(r==1?'aria-pressed="true"':''));if(b.opera||b.gecko&&b.mac)p.push(' onkeypress="return false;"');if(b.gecko)p.push(' onblur="this.style.cssText = this.style.cssText;"');var v=(w.iconOffset||0)*-16;p.push(' onmouseover="CKEDITOR.tools.callFunction(',n._.itemOverFn,',',o,');" onmouseout="CKEDITOR.tools.callFunction(',n._.itemOutFn,',',o,');" '+(c?'onclick="return false;" onmouseup':'onclick')+'="CKEDITOR.tools.callFunction(',n._.itemClickFn,',',o,'); return false;"><span class="cke_icon_wrapper"><span class="cke_icon"'+(w.icon?' style="background-image:url('+a.getUrl(w.icon)+');background-position:0 '+v+'px;"':'')+'></span></span>'+'<span class="cke_label">');if(u)p.push('<span class="cke_menuarrow">','<span>&#',w.editor.lang.dir=='rtl'?'9668':'9658',';</span>','</span>');p.push(t,'</span></a></span>');}}});})();i.menu_groups='clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div';(function(){var m;j.add('editingblock',{init:function(n){if(!n.config.editingBlock)return;n.on('themeSpace',function(o){if(o.data.space=='contents')o.data.html+='<br>';});n.on('themeLoaded',function(){n.fireOnce('editingBlockReady');});n.on('uiReady',function(){n.setMode(n.config.startupMode);
-});n.on('afterSetData',function(){if(!m){function o(){m=true;n.getMode().loadData(n.getData());m=false;};if(n.mode)o();else n.on('mode',function(){if(n.mode){o();n.removeListener('mode',arguments.callee);}});}});n.on('beforeGetData',function(){if(!m&&n.mode){m=true;n.setData(n.getMode().getData(),null,1);m=false;}});n.on('getSnapshot',function(o){if(n.mode)o.data=n.getMode().getSnapshotData();});n.on('loadSnapshot',function(o){if(n.mode)n.getMode().loadSnapshotData(o.data);});n.on('mode',function(o){o.removeListener();b.webkit&&n.container.on('focus',function(){n.focus();});if(n.config.startupFocus)n.focus();setTimeout(function(){n.fireOnce('instanceReady');a.fire('instanceReady',null,n);},0);});n.on('destroy',function(){var o=this;if(o.mode)o._.modes[o.mode].unload(o.getThemeSpace('contents'));});}});a.editor.prototype.mode='';a.editor.prototype.addMode=function(n,o){o.name=n;(this._.modes||(this._.modes={}))[n]=o;};a.editor.prototype.setMode=function(n){this.fire('beforeSetMode',{newMode:n});var o,p=this.getThemeSpace('contents'),q=this.checkDirty();if(this.mode){if(n==this.mode)return;this.fire('beforeModeUnload');var r=this.getMode();o=r.getData();r.unload(p);this.mode='';}p.setHtml('');var s=this.getMode(n);if(!s)throw '[CKEDITOR.editor.setMode] Unknown mode "'+n+'".';if(!q)this.on('mode',function(){this.resetDirty();this.removeListener('mode',arguments.callee);});s.load(p,typeof o!='string'?this.getData():o);};a.editor.prototype.getMode=function(n){return this._.modes&&this._.modes[n||this.mode];};a.editor.prototype.focus=function(){this.forceNextSelectionCheck();var n=this.getMode();if(n)n.focus();};})();i.startupMode='wysiwyg';i.editingBlock=true;(function(){function m(){var B=this;try{var y=B.getSelection();if(!y||!y.document.getWindow().$)return;var z=y.getStartElement(),A=new d.elementPath(z);if(!A.compare(B._.selectionPreviousPath)){B._.selectionPreviousPath=A;B.fire('selectionChange',{selection:y,path:A,element:z});}}catch(C){}};var n,o;function p(){o=true;if(n)return;q.call(this);n=e.setTimeout(q,200,this);};function q(){n=null;if(o){e.setTimeout(m,0,this);o=false;}};function r(y){function z(D){return D&&D.type==1&&D.getName() in f.$removeEmpty;};function A(D){var E=y.document.getBody();return!D.is('body')&&E.getChildCount()==1;};var B=y.startContainer,C=y.startOffset;if(B.type==3)return false;return!e.trim(B.getHtml())?z(B)||A(B):z(B.getChild(C-1))||z(B.getChild(C));};var s={modes:{wysiwyg:1,source:1},readOnly:c||b.webkit,exec:function(y){switch(y.mode){case 'wysiwyg':y.document.$.execCommand('SelectAll',false,null);
-y.forceNextSelectionCheck();y.selectionChange();break;case 'source':var z=y.textarea.$;if(c)z.createTextRange().execCommand('SelectAll');else{z.selectionStart=0;z.selectionEnd=z.value.length;}z.focus();}},canUndo:false};function t(y){w(y);var z=y.createText('​');y.setCustomData('cke-fillingChar',z);return z;};function u(y){return y&&y.getCustomData('cke-fillingChar');};function v(y){var z=y&&u(y);if(z)if(z.getCustomData('ready'))w(y);else z.setCustomData('ready',1);};function w(y){var z=y&&y.removeCustomData('cke-fillingChar');if(z){z.setText(z.getText().replace(/\u200B/g,''));z=0;}};j.add('selection',{init:function(y){if(b.webkit){y.on('selectionChange',function(){v(y.document);});y.on('beforeSetMode',function(){w(y.document);});y.on('key',function(D){switch(D.data.keyCode){case 13:case 2228224+13:case 37:case 39:case 8:w(y.document);}},null,null,10);var z,A;function B(){var D=y.document,E=u(D);if(E){var F=D.$.defaultView.getSelection();if(F.type=='Caret'&&F.anchorNode==E.$)A=1;z=E.getText();E.setText(z.replace(/\u200B/g,''));}};function C(){var D=y.document,E=u(D);if(E){E.setText(z);if(A){D.$.defaultView.getSelection().setPosition(E.$,E.getLength());A=0;}}};y.on('beforeUndoImage',B);y.on('afterUndoImage',C);y.on('beforeGetData',B,null,null,0);y.on('getData',C);}y.on('contentDom',function(){var D=y.document,E=D.getBody(),F=D.getDocumentElement();if(c){var G,H,I=1;E.on('focusin',function(M){if(M.data.$.srcElement.nodeName!='BODY')return;if(G){if(I){try{G.select();}catch(O){}var N=D.getCustomData('cke_locked_selection');if(N){N.unlock();N.lock();}}G=null;}});E.on('focus',function(){H=1;L();});E.on('beforedeactivate',function(M){if(M.data.$.toElement)return;H=0;I=1;});if(c&&b.version<8)y.on('blur',function(M){try{y.document&&y.document.$.selection.empty();}catch(N){}});F.on('mousedown',function(){I=0;});F.on('mouseup',function(){I=1;});if(c&&(b.ie7Compat||b.version<8||b.quirks))F.on('click',function(M){if(M.data.getTarget().getName()=='html')y.getSelection().getRanges()[0].select();});var J;E.on('mousedown',function(M){if(M.data.$.button==2){var N=y.document.$.selection;if(N.type=='None')J=y.window.getScrollPosition();}K();});E.on('mouseup',function(M){if(M.data.$.button==2&&J){y.document.$.documentElement.scrollLeft=J.x;y.document.$.documentElement.scrollTop=J.y;}J=null;H=1;setTimeout(function(){L(true);},0);});E.on('keydown',K);E.on('keyup',function(){H=1;L();});D.on('selectionchange',L);function K(){H=0;};function L(M){if(H){var N=y.document,O=y.getSelection(),P=O&&O.getNative();
-if(M&&P&&P.type=='None')if(!N.$.queryCommandEnabled('InsertImage')){e.setTimeout(L,50,this,true);return;}var Q;if(P&&P.type&&P.type!='Control'&&(Q=P.createRange())&&(Q=Q.parentElement())&&(Q=Q.nodeName)&&Q.toLowerCase() in {input:1,textarea:1})return;G=P&&O.getRanges()[0];p.call(y);}};}else{D.on('mouseup',p,y);D.on('keyup',p,y);}});y.on('contentDomUnload',y.forceNextSelectionCheck,y);y.addCommand('selectAll',s);y.ui.addButton('SelectAll',{label:y.lang.selectAll,command:'selectAll'});y.selectionChange=p;b.ie9Compat&&y.on('destroy',function(){var D=y.getSelection();D&&D.getNative().clear();},null,null,9);}});a.editor.prototype.getSelection=function(){return this.document&&this.document.getSelection();};a.editor.prototype.forceNextSelectionCheck=function(){delete this._.selectionPreviousPath;};g.prototype.getSelection=function(){var y=new d.selection(this);return!y||y.isInvalid?null:y;};a.SELECTION_NONE=1;a.SELECTION_TEXT=2;a.SELECTION_ELEMENT=3;d.selection=function(y){var B=this;var z=y.getCustomData('cke_locked_selection');if(z)return z;B.document=y;B.isLocked=0;B._={cache:{}};if(c){var A=B.getNative().createRange();if(!A||A.item&&A.item(0).ownerDocument!=B.document.$||A.parentElement&&A.parentElement().ownerDocument!=B.document.$)B.isInvalid=true;}return B;};var x={img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1};d.selection.prototype={getNative:c?function(){return this._.cache.nativeSel||(this._.cache.nativeSel=this.document.$.selection);}:function(){return this._.cache.nativeSel||(this._.cache.nativeSel=this.document.getWindow().$.getSelection());},getType:c?function(){var y=this._.cache;if(y.type)return y.type;var z=1;try{var A=this.getNative(),B=A.type;if(B=='Text')z=2;if(B=='Control')z=3;if(A.createRange().parentElement)z=2;}catch(C){}return y.type=z;}:function(){var y=this._.cache;if(y.type)return y.type;var z=2,A=this.getNative();if(!A)z=1;else if(A.rangeCount==1){var B=A.getRangeAt(0),C=B.startContainer;if(C==B.endContainer&&C.nodeType==1&&B.endOffset-B.startOffset==1&&x[C.childNodes[B.startOffset].nodeName.toLowerCase()])z=3;}return y.type=z;},getRanges:(function(){var y=c?(function(){function z(B){return new d.node(B).getIndex();};var A=function(B,C){B=B.duplicate();B.collapse(C);var D=B.parentElement(),E=D.ownerDocument;if(!D.hasChildNodes())return{container:D,offset:0};var F=D.children,G,H,I=B.duplicate(),J=0,K=F.length-1,L=-1,M,N;while(J<=K){L=Math.floor((J+K)/2);
-G=F[L];I.moveToElementText(G);M=I.compareEndPoints('StartToStart',B);if(M>0)K=L-1;else if(M<0)J=L+1;else if(b.ie9Compat&&G.tagName=='BR'){var O='cke_range_marker';B.execCommand('CreateBookmark',false,O);G=E.getElementsByName(O)[0];var P=z(G);D.removeChild(G);return{container:D,offset:P};}else return{container:D,offset:z(G)};}if(L==-1||L==F.length-1&&M<0){I.moveToElementText(D);I.setEndPoint('StartToStart',B);N=I.text.replace(/(\r\n|\r)/g,'\n').length;F=D.childNodes;if(!N){G=F[F.length-1];if(G.nodeType==1)return{container:D,offset:F.length};else return{container:G,offset:G.nodeValue.length};}var Q=F.length;while(N>0)N-=F[--Q].nodeValue.length;return{container:F[Q],offset:-N};}else{I.collapse(M>0?true:false);I.setEndPoint(M>0?'StartToStart':'EndToStart',B);N=I.text.replace(/(\r\n|\r)/g,'\n').length;if(!N)return{container:D,offset:z(G)+(M>0?0:1)};while(N>0)try{H=G[M>0?'previousSibling':'nextSibling'];N-=H.nodeValue.length;G=H;}catch(R){return{container:D,offset:z(G)};}return{container:G,offset:M>0?-N:G.nodeValue.length+N};}};return function(){var L=this;var B=L.getNative(),C=B&&B.createRange(),D=L.getType(),E;if(!B)return[];if(D==2){E=new d.range(L.document);var F=A(C,true);E.setStart(new d.node(F.container),F.offset);F=A(C);E.setEnd(new d.node(F.container),F.offset);if(E.endContainer.getPosition(E.startContainer)&4&&E.endOffset<=E.startContainer.getIndex())E.collapse();return[E];}else if(D==3){var G=[];for(var H=0;H<C.length;H++){var I=C.item(H),J=I.parentNode,K=0;E=new d.range(L.document);for(;K<J.childNodes.length&&J.childNodes[K]!=I;K++){}E.setStart(new d.node(J),K);E.setEnd(new d.node(J),K+1);G.push(E);}return G;}return[];};})():function(){var z=[],A,B=this.document,C=this.getNative();if(!C)return z;if(!C.rangeCount){A=new d.range(B);A.moveToElementEditStart(B.getBody());z.push(A);}for(var D=0;D<C.rangeCount;D++){var E=C.getRangeAt(D);A=new d.range(B);A.setStart(new d.node(E.startContainer),E.startOffset);A.setEnd(new d.node(E.endContainer),E.endOffset);z.push(A);}return z;};return function(z){var A=this._.cache;if(A.ranges&&!z)return A.ranges;else if(!A.ranges)A.ranges=new d.rangeList(y.call(this));if(z){var B=A.ranges;for(var C=0;C<B.length;C++){var D=B[C],E=D.getCommonAncestor();if(E.isReadOnly())B.splice(C,1);if(D.collapsed)continue;var F=D.startContainer,G=D.endContainer,H=D.startOffset,I=D.endOffset,J=D.clone(),K;if(K=F.isReadOnly())D.setStartAfter(K);if(F&&F.type==3)if(H>=F.getLength())J.setStartAfter(F);else J.setStartBefore(F);if(G&&G.type==3)if(!I)J.setEndBefore(G);
-else J.setEndAfter(G);var L=new d.walker(J);L.evaluator=function(M){if(M.type==1&&M.isReadOnly()){var N=D.clone();D.setEndBefore(M);if(D.collapsed)B.splice(C--,1);if(!(M.getPosition(J.endContainer)&16)){N.setStartAfter(M);if(!N.collapsed)B.splice(C+1,0,N);}return true;}return false;};L.next();}}return A.ranges;};})(),getStartElement:function(){var F=this;var y=F._.cache;if(y.startElement!==undefined)return y.startElement;var z,A=F.getNative();switch(F.getType()){case 3:return F.getSelectedElement();case 2:var B=F.getRanges()[0];if(B){if(!B.collapsed){B.optimize();while(1){var C=B.startContainer,D=B.startOffset;if(D==(C.getChildCount?C.getChildCount():C.getLength())&&!C.isBlockBoundary())B.setStartAfter(C);else break;}z=B.startContainer;if(z.type!=1)return z.getParent();z=z.getChild(B.startOffset);if(!z||z.type!=1)z=B.startContainer;else{var E=z.getFirst();while(E&&E.type==1){z=E;E=E.getFirst();}}}else{z=B.startContainer;if(z.type!=1)z=z.getParent();}z=z.$;}}return y.startElement=z?new h(z):null;},getSelectedElement:function(){var y=this._.cache;if(y.selectedElement!==undefined)return y.selectedElement;var z=this,A=e.tryThese(function(){return z.getNative().createRange().item(0);},function(){var B=z.getRanges()[0],C,D;for(var E=2;E&&!((C=B.getEnclosedNode())&&C.type==1&&x[C.getName()]&&(D=C));E--)B.shrink(1);return D.$;});return y.selectedElement=A?new h(A):null;},getSelectedText:function(){var y=this._.cache;if(y.selectedText!==undefined)return y.selectedText;var z='',A=this.getNative();if(this.getType()==2)z=c?A.createRange().text:A.toString();return y.selectedText=z;},lock:function(){var y=this;y.getRanges();y.getStartElement();y.getSelectedElement();y.getSelectedText();y._.cache.nativeSel={};y.isLocked=1;y.document.setCustomData('cke_locked_selection',y);},unlock:function(y){var D=this;var z=D.document,A=z.getCustomData('cke_locked_selection');if(A){z.setCustomData('cke_locked_selection',null);if(y){var B=A.getSelectedElement(),C=!B&&A.getRanges();D.isLocked=0;D.reset();z.getBody().focus();if(B)D.selectElement(B);else D.selectRanges(C);}}if(!A||!y){D.isLocked=0;D.reset();}},reset:function(){this._.cache={};},selectElement:function(y){var A=this;if(A.isLocked){var z=new d.range(A.document);z.setStartBefore(y);z.setEndAfter(y);A._.cache.selectedElement=y;A._.cache.startElement=y;A._.cache.ranges=new d.rangeList(z);A._.cache.type=3;return;}z=new d.range(y.getDocument());z.setStartBefore(y);z.setEndAfter(y);z.select();A.document.fire('selectionchange');A.reset();
-},selectRanges:function(y){var M=this;if(M.isLocked){M._.cache.selectedElement=null;M._.cache.startElement=y[0]&&y[0].getTouchedStartNode();M._.cache.ranges=new d.rangeList(y);M._.cache.type=2;return;}if(c){if(y.length>1){var z=y[y.length-1];y[0].setEnd(z.endContainer,z.endOffset);y.length=1;}if(y[0])y[0].select();M.reset();}else{var A=M.getNative();if(!A)return;if(y.length){A.removeAllRanges();b.webkit&&w(M.document);}for(var B=0;B<y.length;B++){if(B<y.length-1){var C=y[B],D=y[B+1],E=C.clone();E.setStart(C.endContainer,C.endOffset);E.setEnd(D.startContainer,D.startOffset);if(!E.collapsed){E.shrink(1,true);var F=E.getCommonAncestor(),G=E.getEnclosedNode();if(F.isReadOnly()||G&&G.isReadOnly()){D.setStart(C.startContainer,C.startOffset);y.splice(B--,1);continue;}}}var H=y[B],I=M.document.$.createRange(),J=H.startContainer;if(H.collapsed&&(b.opera||b.gecko&&b.version<10900)&&J.type==1&&!J.getChildCount())J.appendText('');if(H.collapsed&&b.webkit&&r(H)){var K=t(M.document);H.insertNode(K);var L=K.getNext();if(L&&!K.getPrevious()&&L.type==1&&L.getName()=='br'){w(M.document);H.moveToPosition(L,3);}else H.moveToPosition(K,4);}I.setStart(H.startContainer.$,H.startOffset);try{I.setEnd(H.endContainer.$,H.endOffset);}catch(N){if(N.toString().indexOf('NS_ERROR_ILLEGAL_VALUE')>=0){H.collapse(1);I.setEnd(H.endContainer.$,H.endOffset);}else throw N;}A.addRange(I);}M.reset();}},createBookmarks:function(y){return this.getRanges().createBookmarks(y);},createBookmarks2:function(y){return this.getRanges().createBookmarks2(y);},selectBookmarks:function(y){var z=[];for(var A=0;A<y.length;A++){var B=new d.range(this.document);B.moveToBookmark(y[A]);z.push(B);}this.selectRanges(z);return this;},getCommonAncestor:function(){var y=this.getRanges(),z=y[0].startContainer,A=y[y.length-1].endContainer;return z.getCommonAncestor(A);},scrollIntoView:function(){var y=this.getStartElement();y.scrollIntoView();}};})();(function(){var m=d.walker.whitespaces(true),n=/\ufeff|\u00a0/,o={table:1,tbody:1,tr:1};d.range.prototype.select=c?function(p){var A=this;var q=A.collapsed,r,s,t,u=A.getEnclosedNode();if(u)try{t=A.document.$.body.createControlRange();t.addElement(u.$);t.select();return;}catch(B){}if(A.startContainer.type==1&&A.startContainer.getName() in o||A.endContainer.type==1&&A.endContainer.getName() in o)A.shrink(1,true);var v=A.createBookmark(),w=v.startNode,x;if(!q)x=v.endNode;t=A.document.$.body.createTextRange();t.moveToElementText(w.$);t.moveStart('character',1);if(x){var y=A.document.$.body.createTextRange();
-y.moveToElementText(x.$);t.setEndPoint('EndToEnd',y);t.moveEnd('character',-1);}else{var z=w.getNext(m);r=!(z&&z.getText&&z.getText().match(n))&&(p||!w.hasPrevious()||w.getPrevious().is&&w.getPrevious().is('br'));s=A.document.createElement('span');s.setHtml('');s.insertBefore(w);if(r)A.document.createText('\ufeff').insertBefore(w);}A.setStartBefore(w);w.remove();if(q){if(r){t.moveStart('character',-1);t.select();A.document.$.selection.clear();}else t.select();A.moveToPosition(s,3);s.remove();}else{A.setEndBefore(x);x.remove();t.select();}A.document.fire('selectionchange');}:function(){this.document.getSelection().selectRanges([this]);};})();(function(){var m=a.htmlParser.cssStyle,n=e.cssLength,o=/^((?:\d*(?:\.\d+))|(?:\d+))(.*)?$/i;function p(r,s){var t=o.exec(r),u=o.exec(s);if(t){if(!t[2]&&u[2]=='px')return u[1];if(t[2]=='px'&&!u[2])return u[1]+'px';}return s;};var q={elements:{$:function(r){var s=r.attributes,t=s&&s['data-cke-realelement'],u=t&&new a.htmlParser.fragment.fromHtml(decodeURIComponent(t)),v=u&&u.children[0];if(v&&r.attributes['data-cke-resizable']){var w=new m(r).rules,x=v.attributes,y=w.width,z=w.height;y&&(x.width=p(x.width,y));z&&(x.height=p(x.height,z));}return v;}}};j.add('fakeobjects',{requires:['htmlwriter'],afterInit:function(r){var s=r.dataProcessor,t=s&&s.htmlFilter;if(t)t.addRules(q);}});a.editor.prototype.createFakeElement=function(r,s,t,u){var v=this.lang.fakeobjects,w=v[t]||v.unknown,x={'class':s,src:a.getUrl('images/spacer.gif'),'data-cke-realelement':encodeURIComponent(r.getOuterHtml()),'data-cke-real-node-type':r.type,alt:w,title:w,align:r.getAttribute('align')||''};if(t)x['data-cke-real-element-type']=t;if(u){x['data-cke-resizable']=u;var y=new m(),z=r.getAttribute('width'),A=r.getAttribute('height');z&&(y.rules.width=n(z));A&&(y.rules.height=n(A));y.populate(x);}return this.document.createElement('img',{attributes:x});};a.editor.prototype.createFakeParserElement=function(r,s,t,u){var v=this.lang.fakeobjects,w=v[t]||v.unknown,x,y=new a.htmlParser.basicWriter();r.writeHtml(y);x=y.getHtml();var z={'class':s,src:a.getUrl('images/spacer.gif'),'data-cke-realelement':encodeURIComponent(x),'data-cke-real-node-type':r.type,alt:w,title:w,align:r.attributes.align||''};if(t)z['data-cke-real-element-type']=t;if(u){z['data-cke-resizable']=u;var A=r.attributes,B=new m(),C=A.width,D=A.height;C!=undefined&&(B.rules.width=n(C));D!=undefined&&(B.rules.height=n(D));B.populate(z);}return new a.htmlParser.element('img',z);};a.editor.prototype.restoreRealElement=function(r){if(r.data('cke-real-node-type')!=1)return null;
-var s=h.createFromHtml(decodeURIComponent(r.data('cke-realelement')),this.document);if(r.data('cke-resizable')){var t=r.getStyle('width'),u=r.getStyle('height');t&&s.setAttribute('width',p(s.getAttribute('width'),t));u&&s.setAttribute('height',p(s.getAttribute('height'),u));}return s;};})();j.add('richcombo',{requires:['floatpanel','listblock','button'],beforeInit:function(m){m.ui.addHandler('richcombo',k.richCombo.handler);}});a.UI_RICHCOMBO='richcombo';k.richCombo=e.createClass({$:function(m){var o=this;e.extend(o,m,{title:m.label,modes:{wysiwyg:1}});var n=o.panel||{};delete o.panel;o.id=e.getNextNumber();o.document=n&&n.parent&&n.parent.getDocument()||a.document;n.className=(n.className||'')+' cke_rcombopanel';n.block={multiSelect:n.multiSelect,attributes:n.attributes};o._={panelDefinition:n,items:{},state:2};},statics:{handler:{create:function(m){return new k.richCombo(m);}}},proto:{renderHtml:function(m){var n=[];this.render(m,n);return n.join('');},render:function(m,n){var o=b,p='cke_'+this.id,q=e.addFunction(function(v){var y=this;var w=y._;if(w.state==0)return;y.createPanel(m);if(w.on){w.panel.hide();return;}y.commit();var x=y.getValue();if(x)w.list.mark(x);else w.list.unmarkAll();w.panel.showBlock(y.id,new h(v),4);},this),r={id:p,combo:this,focus:function(){var v=a.document.getById(p).getChild(1);v.focus();},clickFn:q};function s(){var w=this;var v=w.modes[m.mode]?2:0;w.setState(m.readOnly&&!w.readOnly?0:v);w.setValue('');};m.on('mode',s,this);!this.readOnly&&m.on('readOnly',s,this);var t=e.addFunction(function(v,w){v=new d.event(v);var x=v.getKeystroke();switch(x){case 13:case 32:case 40:e.callFunction(q,w);break;default:r.onkey(r,x);}v.preventDefault();}),u=e.addFunction(function(){r.onfocus&&r.onfocus();});r.keyDownFn=t;n.push('<span class="cke_rcombo" role="presentation">','<span id=',p);if(this.className)n.push(' class="',this.className,' cke_off"');n.push(' role="presentation">','<span id="'+p+'_label" class=cke_label>',this.label,'</span>','<a hidefocus=true title="',this.title,'" tabindex="-1"',o.gecko&&o.version>=10900&&!o.hc?'':" href=\"javascript:void('"+this.label+"')\"",' role="button" aria-labelledby="',p,'_label" aria-describedby="',p,'_text" aria-haspopup="true"');if(b.opera||b.gecko&&b.mac)n.push(' onkeypress="return false;"');if(b.gecko)n.push(' onblur="this.style.cssText = this.style.cssText;"');n.push(' onkeydown="CKEDITOR.tools.callFunction( ',t,', event, this );" onfocus="return CKEDITOR.tools.callFunction(',u,', event);" '+(c?'onclick="return false;" onmouseup':'onclick')+'="CKEDITOR.tools.callFunction(',q,', this); return false;"><span><span id="'+p+'_text" class="cke_text cke_inline_label">'+this.label+'</span>'+'</span>'+'<span class=cke_openbutton><span class=cke_icon>'+(b.hc?'▼':b.air?' ':'')+'</span></span>'+'</a>'+'</span>'+'</span>');
-if(this.onRender)this.onRender();return r;},createPanel:function(m){if(this._.panel)return;var n=this._.panelDefinition,o=this._.panelDefinition.block,p=n.parent||a.document.getBody(),q=new k.floatPanel(m,p,n),r=q.addListBlock(this.id,o),s=this;q.onShow=function(){if(s.className)this.element.getFirst().addClass(s.className+'_panel');s.setState(1);r.focus(!s.multiSelect&&s.getValue());s._.on=1;if(s.onOpen)s.onOpen();};q.onHide=function(t){if(s.className)this.element.getFirst().removeClass(s.className+'_panel');s.setState(s.modes&&s.modes[m.mode]?2:0);s._.on=0;if(!t&&s.onClose)s.onClose();};q.onEscape=function(){q.hide();};r.onClick=function(t,u){s.document.getWindow().focus();if(s.onClick)s.onClick.call(s,t,u);if(u)s.setValue(t,s._.items[t]);else s.setValue('');q.hide(false);};this._.panel=q;this._.list=r;q.getBlock(this.id).onHide=function(){s._.on=0;s.setState(2);};if(this.init)this.init();},setValue:function(m,n){var p=this;p._.value=m;var o=p.document.getById('cke_'+p.id+'_text');if(o){if(!(m||n)){n=p.label;o.addClass('cke_inline_label');}else o.removeClass('cke_inline_label');o.setHtml(typeof n!='undefined'?n:m);}},getValue:function(){return this._.value||'';},unmarkAll:function(){this._.list.unmarkAll();},mark:function(m){this._.list.mark(m);},hideItem:function(m){this._.list.hideItem(m);},hideGroup:function(m){this._.list.hideGroup(m);},showAll:function(){this._.list.showAll();},add:function(m,n,o){this._.items[m]=o||m;this._.list.add(m,n,o);},startGroup:function(m){this._.list.startGroup(m);},commit:function(){var m=this;if(!m._.committed){m._.list.commit();m._.committed=1;k.fire('ready',m);}m._.committed=1;},setState:function(m){var n=this;if(n._.state==m)return;n.document.getById('cke_'+n.id).setState(m);n._.state=m;}}});k.prototype.addRichCombo=function(m,n){this.add(m,'richcombo',n);};j.add('htmlwriter');a.htmlWriter=e.createClass({base:a.htmlParser.basicWriter,$:function(){var o=this;o.base();o.indentationChars='\t';o.selfClosingEnd=' />';o.lineBreakChars='\n';o.forceSimpleAmpersand=0;o.sortAttributes=1;o._.indent=0;o._.indentation='';o._.inPre=0;o._.rules={};var m=f;for(var n in e.extend({},m.$nonBodyContent,m.$block,m.$listItem,m.$tableContent))o.setRules(n,{indent:1,breakBeforeOpen:1,breakAfterOpen:1,breakBeforeClose:!m[n]['#'],breakAfterClose:1});o.setRules('br',{breakAfterOpen:1});o.setRules('title',{indent:0,breakAfterOpen:0});o.setRules('style',{indent:0,breakBeforeClose:1});o.setRules('pre',{indent:0});},proto:{openTag:function(m,n){var p=this;
-var o=p._.rules[m];if(p._.indent)p.indentation();else if(o&&o.breakBeforeOpen){p.lineBreak();p.indentation();}p._.output.push('<',m);},openTagClose:function(m,n){var p=this;var o=p._.rules[m];if(n)p._.output.push(p.selfClosingEnd);else{p._.output.push('>');if(o&&o.indent)p._.indentation+=p.indentationChars;}if(o&&o.breakAfterOpen)p.lineBreak();m=='pre'&&(p._.inPre=1);},attribute:function(m,n){if(typeof n=='string'){this.forceSimpleAmpersand&&(n=n.replace(/&/g,'&'));n=e.htmlEncodeAttr(n);}this._.output.push(' ',m,'="',n,'"');},closeTag:function(m){var o=this;var n=o._.rules[m];if(n&&n.indent)o._.indentation=o._.indentation.substr(o.indentationChars.length);if(o._.indent)o.indentation();else if(n&&n.breakBeforeClose){o.lineBreak();o.indentation();}o._.output.push('</',m,'>');m=='pre'&&(o._.inPre=0);if(n&&n.breakAfterClose)o.lineBreak();},text:function(m){var n=this;if(n._.indent){n.indentation();!n._.inPre&&(m=e.ltrim(m));}n._.output.push(m);},comment:function(m){if(this._.indent)this.indentation();this._.output.push('<!--',m,'-->');},lineBreak:function(){var m=this;if(!m._.inPre&&m._.output.length>0)m._.output.push(m.lineBreakChars);m._.indent=1;},indentation:function(){var m=this;if(!m._.inPre)m._.output.push(m._.indentation);m._.indent=0;},setRules:function(m,n){var o=this._.rules[m];if(o)e.extend(o,n,true);else this._.rules[m]=n;}}});j.add('menubutton',{requires:['button','menu'],beforeInit:function(m){m.ui.addHandler('menubutton',k.menuButton.handler);}});a.UI_MENUBUTTON='menubutton';(function(){var m=function(n){var o=this._;if(o.state===0)return;o.previousState=o.state;var p=o.menu;if(!p){p=o.menu=new a.menu(n,{panel:{className:n.skinClass+' cke_contextmenu',attributes:{'aria-label':n.lang.common.options}}});p.onHide=e.bind(function(){this.setState(this.modes&&this.modes[n.mode]?o.previousState:0);},this);if(this.onMenu)p.addListener(this.onMenu);}if(o.on){p.hide();return;}this.setState(1);p.show(a.document.getById(this._.id),4);};k.menuButton=e.createClass({base:k.button,$:function(n){var o=n.panel;delete n.panel;this.base(n);this.hasArrow=true;this.click=m;},statics:{handler:{create:function(n){return new k.menuButton(n);}}}});})();j.add('dialogui');(function(){var m=function(u){var x=this;x._||(x._={});x._['default']=x._.initValue=u['default']||'';x._.required=u.required||false;var v=[x._];for(var w=1;w<arguments.length;w++)v.push(arguments[w]);v.push(true);e.extend.apply(e,v);return x._;},n={build:function(u,v,w){return new k.dialog.textInput(u,v,w);
-}},o={build:function(u,v,w){return new k.dialog[v.type](u,v,w);}},p={build:function(u,v,w){var x=v.children,y,z=[],A=[];for(var B=0;B<x.length&&(y=x[B]);B++){var C=[];z.push(C);A.push(a.dialog._.uiElementBuilders[y.type].build(u,y,C));}return new k.dialog[v.type](u,A,z,w,v);}},q={isChanged:function(){return this.getValue()!=this.getInitValue();},reset:function(u){this.setValue(this.getInitValue(),u);},setInitValue:function(){this._.initValue=this.getValue();},resetInitValue:function(){this._.initValue=this._['default'];},getInitValue:function(){return this._.initValue;}},r=e.extend({},k.dialog.uiElement.prototype.eventProcessors,{onChange:function(u,v){if(!this._.domOnChangeRegistered){u.on('load',function(){this.getInputElement().on('change',function(){if(!u.parts.dialog.isVisible())return;this.fire('change',{value:this.getValue()});},this);},this);this._.domOnChangeRegistered=true;}this.on('change',v);}},true),s=/^on([A-Z]\w+)/,t=function(u){for(var v in u){if(s.test(v)||v=='title'||v=='type')delete u[v];}return u;};e.extend(k.dialog,{labeledElement:function(u,v,w,x){if(arguments.length<4)return;var y=m.call(this,v);y.labelId=e.getNextId()+'_label';var z=this._.children=[],A=function(){var B=[],C=v.required?' cke_required':'';if(v.labelLayout!='horizontal')B.push('<label class="cke_dialog_ui_labeled_label'+C+'" ',' id="'+y.labelId+'"',' for="'+y.inputId+'"',(v.labelStyle?' style="'+v.labelStyle+'"':'')+'>',v.label,'</label>','<div class="cke_dialog_ui_labeled_content"'+(v.controlStyle?' style="'+v.controlStyle+'"':'')+' role="presentation">',x.call(this,u,v),'</div>');else{var D={type:'hbox',widths:v.widths,padding:0,children:[{type:'html',html:'<label class="cke_dialog_ui_labeled_label'+C+'"'+' id="'+y.labelId+'"'+' for="'+y.inputId+'"'+(v.labelStyle?' style="'+v.labelStyle+'"':'')+'>'+e.htmlEncode(v.label)+'</span>'},{type:'html',html:'<span class="cke_dialog_ui_labeled_content"'+(v.controlStyle?' style="'+v.controlStyle+'"':'')+'>'+x.call(this,u,v)+'</span>'}]};a.dialog._.uiElementBuilders.hbox.build(u,D,B);}return B.join('');};k.dialog.uiElement.call(this,u,v,w,'div',null,{role:'presentation'},A);},textInput:function(u,v,w){if(arguments.length<3)return;m.call(this,v);var x=this._.inputId=e.getNextId()+'_textInput',y={'class':'cke_dialog_ui_input_'+v.type,id:x,type:'text'},z;if(v.validate)this.validate=v.validate;if(v.maxLength)y.maxlength=v.maxLength;if(v.size)y.size=v.size;if(v.inputStyle)y.style=v.inputStyle;var A=this,B=false;u.on('load',function(){A.getInputElement().on('keydown',function(D){if(D.data.getKeystroke()==13)B=true;
-});A.getInputElement().on('keyup',function(D){if(D.data.getKeystroke()==13&&B){u.getButton('ok')&&setTimeout(function(){u.getButton('ok').click();},0);B=false;}},null,null,1000);});var C=function(){var D=['<div class="cke_dialog_ui_input_',v.type,'" role="presentation"'];if(v.width)D.push('style="width:'+v.width+'" ');D.push('><input ');y['aria-labelledby']=this._.labelId;this._.required&&(y['aria-required']=this._.required);for(var E in y)D.push(E+'="'+y[E]+'" ');D.push(' /></div>');return D.join('');};k.dialog.labeledElement.call(this,u,v,w,C);},textarea:function(u,v,w){if(arguments.length<3)return;m.call(this,v);var x=this,y=this._.inputId=e.getNextId()+'_textarea',z={};if(v.validate)this.validate=v.validate;z.rows=v.rows||5;z.cols=v.cols||20;if(typeof v.inputStyle!='undefined')z.style=v.inputStyle;var A=function(){z['aria-labelledby']=this._.labelId;this._.required&&(z['aria-required']=this._.required);var B=['<div class="cke_dialog_ui_input_textarea" role="presentation"><textarea class="cke_dialog_ui_input_textarea" id="',y,'" '];for(var C in z)B.push(C+'="'+e.htmlEncode(z[C])+'" ');B.push('>',e.htmlEncode(x._['default']),'</textarea></div>');return B.join('');};k.dialog.labeledElement.call(this,u,v,w,A);},checkbox:function(u,v,w){if(arguments.length<3)return;var x=m.call(this,v,{'default':!!v['default']});if(v.validate)this.validate=v.validate;var y=function(){var z=e.extend({},v,{id:v.id?v.id+'_checkbox':e.getNextId()+'_checkbox'},true),A=[],B=e.getNextId()+'_label',C={'class':'cke_dialog_ui_checkbox_input',type:'checkbox','aria-labelledby':B};t(z);if(v['default'])C.checked='checked';if(typeof z.inputStyle!='undefined')z.style=z.inputStyle;x.checkbox=new k.dialog.uiElement(u,z,A,'input',null,C);A.push(' <label id="',B,'" for="',C.id,'"'+(v.labelStyle?' style="'+v.labelStyle+'"':'')+'>',e.htmlEncode(v.label),'</label>');return A.join('');};k.dialog.uiElement.call(this,u,v,w,'span',null,null,y);},radio:function(u,v,w){if(arguments.length<3)return;m.call(this,v);if(!this._['default'])this._['default']=this._.initValue=v.items[0][1];if(v.validate)this.validate=v.valdiate;var x=[],y=this,z=function(){var A=[],B=[],C={'class':'cke_dialog_ui_radio_item','aria-labelledby':this._.labelId},D=v.id?v.id+'_radio':e.getNextId()+'_radio';for(var E=0;E<v.items.length;E++){var F=v.items[E],G=F[2]!==undefined?F[2]:F[0],H=F[1]!==undefined?F[1]:F[0],I=e.getNextId()+'_radio_input',J=I+'_label',K=e.extend({},v,{id:I,title:null,type:null},true),L=e.extend({},K,{title:G},true),M={type:'radio','class':'cke_dialog_ui_radio_input',name:D,value:H,'aria-labelledby':J},N=[];
-if(y._['default']==H)M.checked='checked';t(K);t(L);if(typeof K.inputStyle!='undefined')K.style=K.inputStyle;x.push(new k.dialog.uiElement(u,K,N,'input',null,M));N.push(' ');new k.dialog.uiElement(u,L,N,'label',null,{id:J,'for':M.id},F[0]);A.push(N.join(''));}new k.dialog.hbox(u,[],A,B);return B.join('');};k.dialog.labeledElement.call(this,u,v,w,z);this._.children=x;},button:function(u,v,w){if(!arguments.length)return;if(typeof v=='function')v=v(u.getParentEditor());m.call(this,v,{disabled:v.disabled||false});a.event.implementOn(this);var x=this;u.on('load',function(A){var B=this.getElement();(function(){B.on('click',function(C){x.fire('click',{dialog:x.getDialog()});C.data.preventDefault();});B.on('keydown',function(C){if(C.data.getKeystroke() in {32:1}){x.click();C.data.preventDefault();}});})();B.unselectable();},this);var y=e.extend({},v);delete y.style;var z=e.getNextId()+'_label';k.dialog.uiElement.call(this,u,y,w,'a',null,{style:v.style,href:'javascript:void(0)',title:v.label,hidefocus:'true','class':v['class'],role:'button','aria-labelledby':z},'<span id="'+z+'" class="cke_dialog_ui_button">'+e.htmlEncode(v.label)+'</span>');},select:function(u,v,w){if(arguments.length<3)return;var x=m.call(this,v);if(v.validate)this.validate=v.validate;x.inputId=e.getNextId()+'_select';var y=function(){var z=e.extend({},v,{id:v.id?v.id+'_select':e.getNextId()+'_select'},true),A=[],B=[],C={id:x.inputId,'class':'cke_dialog_ui_input_select','aria-labelledby':this._.labelId};if(v.size!=undefined)C.size=v.size;if(v.multiple!=undefined)C.multiple=v.multiple;t(z);for(var D=0,E;D<v.items.length&&(E=v.items[D]);D++)B.push('<option value="',e.htmlEncode(E[1]!==undefined?E[1]:E[0]).replace(/"/g,'"'),'" /> ',e.htmlEncode(E[0]));if(typeof z.inputStyle!='undefined')z.style=z.inputStyle;x.select=new k.dialog.uiElement(u,z,A,'select',null,C,B.join(''));return A.join('');};k.dialog.labeledElement.call(this,u,v,w,y);},file:function(u,v,w){if(arguments.length<3)return;if(v['default']===undefined)v['default']='';var x=e.extend(m.call(this,v),{definition:v,buttons:[]});if(v.validate)this.validate=v.validate;var y=function(){x.frameId=e.getNextId()+'_fileInput';var z=b.isCustomDomain(),A=['<iframe frameborder="0" allowtransparency="0" class="cke_dialog_ui_input_file" id="',x.frameId,'" title="',v.label,'" src="javascript:void('];A.push(z?"(function(){document.open();document.domain='"+document.domain+"';"+'document.close();'+'})()':'0');A.push(')"></iframe>');return A.join('');};u.on('load',function(){var z=a.document.getById(x.frameId),A=z.getParent();
-A.addClass('cke_dialog_ui_input_file');});k.dialog.labeledElement.call(this,u,v,w,y);},fileButton:function(u,v,w){if(arguments.length<3)return;var x=m.call(this,v),y=this;if(v.validate)this.validate=v.validate;var z=e.extend({},v),A=z.onClick;z.className=(z.className?z.className+' ':'')+'cke_dialog_ui_button';z.onClick=function(B){var C=v['for'];if(!A||A.call(this,B)!==false){u.getContentElement(C[0],C[1]).submit();this.disable();}};u.on('load',function(){u.getContentElement(v['for'][0],v['for'][1])._.buttons.push(y);});k.dialog.button.call(this,u,z,w);},html:(function(){var u=/^\s*<[\w:]+\s+([^>]*)?>/,v=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,w=/\/$/;return function(x,y,z){if(arguments.length<3)return;var A=[],B,C=y.html,D,E;if(C.charAt(0)!='<')C='<span>'+C+'</span>';var F=y.focus;if(F){var G=this.focus;this.focus=function(){G.call(this);typeof F=='function'&&F.call(this);this.fire('focus');};if(y.isFocusable){var H=this.isFocusable;this.isFocusable=H;}this.keyboardFocusable=true;}k.dialog.uiElement.call(this,x,y,A,'span',null,null,'');B=A.join('');D=B.match(u);E=C.match(v)||['','',''];if(w.test(E[1])){E[1]=E[1].slice(0,-1);E[2]='/'+E[2];}z.push([E[1],' ',D[1]||'',E[2]].join(''));};})(),fieldset:function(u,v,w,x,y){var z=y.label,A=function(){var B=[];z&&B.push('<legend>'+z+'</legend>');for(var C=0;C<w.length;C++)B.push(w[C]);return B.join('');};this._={children:v};k.dialog.uiElement.call(this,u,y,x,'fieldset',null,null,A);}},true);k.dialog.html.prototype=new k.dialog.uiElement();k.dialog.labeledElement.prototype=e.extend(new k.dialog.uiElement(),{setLabel:function(u){var v=a.document.getById(this._.labelId);if(v.getChildCount()<1)new d.text(u,a.document).appendTo(v);else v.getChild(0).$.nodeValue=u;return this;},getLabel:function(){var u=a.document.getById(this._.labelId);if(!u||u.getChildCount()<1)return '';else return u.getChild(0).getText();},eventProcessors:r},true);k.dialog.button.prototype=e.extend(new k.dialog.uiElement(),{click:function(){var u=this;if(!u._.disabled)return u.fire('click',{dialog:u._.dialog});u.getElement().$.blur();return false;},enable:function(){this._.disabled=false;var u=this.getElement();u&&u.removeClass('cke_disabled');},disable:function(){this._.disabled=true;this.getElement().addClass('cke_disabled');},isVisible:function(){return this.getElement().getFirst().isVisible();},isEnabled:function(){return!this._.disabled;},eventProcessors:e.extend({},k.dialog.uiElement.prototype.eventProcessors,{onClick:function(u,v){this.on('click',v);
-}},true),accessKeyUp:function(){this.click();},accessKeyDown:function(){this.focus();},keyboardFocusable:true},true);k.dialog.textInput.prototype=e.extend(new k.dialog.labeledElement(),{getInputElement:function(){return a.document.getById(this._.inputId);},focus:function(){var u=this.selectParentTab();setTimeout(function(){var v=u.getInputElement();v&&v.$.focus();},0);},select:function(){var u=this.selectParentTab();setTimeout(function(){var v=u.getInputElement();if(v){v.$.focus();v.$.select();}},0);},accessKeyUp:function(){this.select();},setValue:function(u){!u&&(u='');return k.dialog.uiElement.prototype.setValue.apply(this,arguments);},keyboardFocusable:true},q,true);k.dialog.textarea.prototype=new k.dialog.textInput();k.dialog.select.prototype=e.extend(new k.dialog.labeledElement(),{getInputElement:function(){return this._.select.getElement();},add:function(u,v,w){var x=new h('option',this.getDialog().getParentEditor().document),y=this.getInputElement().$;x.$.text=u;x.$.value=v===undefined||v===null?u:v;if(w===undefined||w===null){if(c)y.add(x.$);else y.add(x.$,null);}else y.add(x.$,w);return this;},remove:function(u){var v=this.getInputElement().$;v.remove(u);return this;},clear:function(){var u=this.getInputElement().$;while(u.length>0)u.remove(0);return this;},keyboardFocusable:true},q,true);k.dialog.checkbox.prototype=e.extend(new k.dialog.uiElement(),{getInputElement:function(){return this._.checkbox.getElement();},setValue:function(u,v){this.getInputElement().$.checked=u;!v&&this.fire('change',{value:u});},getValue:function(){return this.getInputElement().$.checked;},accessKeyUp:function(){this.setValue(!this.getValue());},eventProcessors:{onChange:function(u,v){if(!c)return r.onChange.apply(this,arguments);else{u.on('load',function(){var w=this._.checkbox.getElement();w.on('propertychange',function(x){x=x.data.$;if(x.propertyName=='checked')this.fire('change',{value:w.$.checked});},this);},this);this.on('change',v);}return null;}},keyboardFocusable:true},q,true);k.dialog.radio.prototype=e.extend(new k.dialog.uiElement(),{setValue:function(u,v){var w=this._.children,x;for(var y=0;y<w.length&&(x=w[y]);y++)x.getElement().$.checked=x.getValue()==u;!v&&this.fire('change',{value:u});},getValue:function(){var u=this._.children;for(var v=0;v<u.length;v++){if(u[v].getElement().$.checked)return u[v].getValue();}return null;},accessKeyUp:function(){var u=this._.children,v;for(v=0;v<u.length;v++){if(u[v].getElement().$.checked){u[v].getElement().focus();return;
-}}u[0].getElement().focus();},eventProcessors:{onChange:function(u,v){if(!c)return r.onChange.apply(this,arguments);else{u.on('load',function(){var w=this._.children,x=this;for(var y=0;y<w.length;y++){var z=w[y].getElement();z.on('propertychange',function(A){A=A.data.$;if(A.propertyName=='checked'&&this.$.checked)x.fire('change',{value:this.getAttribute('value')});});}},this);this.on('change',v);}return null;}},keyboardFocusable:true},q,true);k.dialog.file.prototype=e.extend(new k.dialog.labeledElement(),q,{getInputElement:function(){var u=a.document.getById(this._.frameId).getFrameDocument();return u.$.forms.length>0?new h(u.$.forms[0].elements[0]):this.getElement();},submit:function(){this.getInputElement().getParent().$.submit();return this;},getAction:function(){return this.getInputElement().getParent().$.action;},registerEvents:function(u){var v=/^on([A-Z]\w+)/,w,x=function(z,A,B,C){z.on('formLoaded',function(){z.getInputElement().on(B,C,z);});};for(var y in u){if(!(w=y.match(v)))continue;if(this.eventProcessors[y])this.eventProcessors[y].call(this,this._.dialog,u[y]);else x(this,this._.dialog,w[1].toLowerCase(),u[y]);}return this;},reset:function(){var u=this._,v=a.document.getById(u.frameId),w=v.getFrameDocument(),x=u.definition,y=u.buttons,z=this.formLoadedNumber,A=this.formUnloadNumber,B=u.dialog._.editor.lang.dir,C=u.dialog._.editor.langCode;if(!z){z=this.formLoadedNumber=e.addFunction(function(){this.fire('formLoaded');},this);A=this.formUnloadNumber=e.addFunction(function(){this.getInputElement().clearCustomData();},this);this.getDialog()._.editor.on('destroy',function(){e.removeFunction(z);e.removeFunction(A);});}function D(){w.$.open();if(b.isCustomDomain())w.$.domain=document.domain;var E='';if(x.size)E=x.size-(c?7:0);w.$.write(['<html dir="'+B+'" lang="'+C+'"><head><title></title></head><body style="margin: 0; overflow: hidden; background: transparent;">','<form enctype="multipart/form-data" method="POST" dir="'+B+'" lang="'+C+'" action="',e.htmlEncode(x.action),'">','<input type="file" name="',e.htmlEncode(x.id||'cke_upload'),'" size="',e.htmlEncode(E>0?E:''),'" />','</form>','</body></html>','<script>window.parent.CKEDITOR.tools.callFunction('+z+');','window.onbeforeunload = function() {window.parent.CKEDITOR.tools.callFunction('+A+')}</script>'].join(''));w.$.close();for(var F=0;F<y.length;F++)y[F].enable();};if(b.gecko)setTimeout(D,500);else D();},getValue:function(){return this.getInputElement().$.value||'';},setInitValue:function(){this._.initValue='';
-},eventProcessors:{onChange:function(u,v){if(!this._.domOnChangeRegistered){this.on('formLoaded',function(){this.getInputElement().on('change',function(){this.fire('change',{value:this.getValue()});},this);},this);this._.domOnChangeRegistered=true;}this.on('change',v);}},keyboardFocusable:true},true);k.dialog.fileButton.prototype=new k.dialog.button();k.dialog.fieldset.prototype=e.clone(k.dialog.hbox.prototype);a.dialog.addUIElement('text',n);a.dialog.addUIElement('password',n);a.dialog.addUIElement('textarea',o);a.dialog.addUIElement('checkbox',o);a.dialog.addUIElement('radio',o);a.dialog.addUIElement('button',o);a.dialog.addUIElement('select',o);a.dialog.addUIElement('file',o);a.dialog.addUIElement('fileButton',o);a.dialog.addUIElement('html',o);a.dialog.addUIElement('fieldset',p);})();j.add('panel',{beforeInit:function(m){m.ui.addHandler('panel',k.panel.handler);}});a.UI_PANEL='panel';k.panel=function(m,n){var o=this;if(n)e.extend(o,n);e.extend(o,{className:'',css:[]});o.id=e.getNextId();o.document=m;o._={blocks:{}};};k.panel.handler={create:function(m){return new k.panel(m);}};k.panel.prototype={renderHtml:function(m){var n=[];this.render(m,n);return n.join('');},render:function(m,n){var p=this;var o=p.id;n.push('<div class="',m.skinClass,'" lang="',m.langCode,'" role="presentation" style="display:none;z-index:'+(m.config.baseFloatZIndex+1)+'">'+'<div'+' id=',o,' dir=',m.lang.dir,' role="presentation" class="cke_panel cke_',m.lang.dir);if(p.className)n.push(' ',p.className);n.push('">');if(p.forceIFrame||p.css.length){n.push('<iframe id="',o,'_frame" frameborder="0" role="application" src="javascript:void(');n.push(b.isCustomDomain()?"(function(){document.open();document.domain='"+document.domain+"';"+'document.close();'+'})()':'0');n.push(')"></iframe>');}n.push('</div></div>');return o;},getHolderElement:function(){var m=this._.holder;if(!m){if(this.forceIFrame||this.css.length){var n=this.document.getById(this.id+'_frame'),o=n.getParent(),p=o.getAttribute('dir'),q=o.getParent().getAttribute('class'),r=o.getParent().getAttribute('lang'),s=n.getFrameDocument(),t=e.addFunction(e.bind(function(w){this.isLoaded=true;if(this.onLoad)this.onLoad();},this)),u='<!DOCTYPE html><html dir="'+p+'" class="'+q+'_container" lang="'+r+'">'+'<head>'+'<style>.'+q+'_container{visibility:hidden}</style>'+'</head>'+'<body class="cke_'+p+' cke_panel_frame '+b.cssClass+'" style="margin:0;padding:0"'+' onload="( window.CKEDITOR || window.parent.CKEDITOR ).tools.callFunction('+t+');"></body>'+e.buildStyleHtml(this.css)+'</html>';
-s.write(u);var v=s.getWindow();v.$.CKEDITOR=a;s.on('key'+(b.opera?'press':'down'),function(w){var z=this;var x=w.data.getKeystroke(),y=z.document.getById(z.id).getAttribute('dir');if(z._.onKeyDown&&z._.onKeyDown(x)===false){w.data.preventDefault();return;}if(x==27||x==(y=='rtl'?39:37))if(z.onEscape&&z.onEscape(x)===false)w.data.preventDefault();},this);m=s.getBody();m.unselectable();b.air&&e.callFunction(t);}else m=this.document.getById(this.id);this._.holder=m;}return m;},addBlock:function(m,n){var o=this;n=o._.blocks[m]=n instanceof k.panel.block?n:new k.panel.block(o.getHolderElement(),n);if(!o._.currentBlock)o.showBlock(m);return n;},getBlock:function(m){return this._.blocks[m];},showBlock:function(m){var n=this._.blocks,o=n[m],p=this._.currentBlock,q=this.forceIFrame?this.document.getById(this.id+'_frame'):this._.holder;q.getParent().getParent().disableContextMenu();if(p){q.removeAttributes(p.attributes);p.hide();}this._.currentBlock=o;q.setAttributes(o.attributes);a.fire('ariaWidget',q);o._.focusIndex=-1;this._.onKeyDown=o.onKeyDown&&e.bind(o.onKeyDown,o);o.onMark=function(r){q.setAttribute('aria-activedescendant',r.getId()+'_option');};o.onUnmark=function(){q.removeAttribute('aria-activedescendant');};o.show();return o;},destroy:function(){this.element&&this.element.remove();}};k.panel.block=e.createClass({$:function(m,n){var o=this;o.element=m.append(m.getDocument().createElement('div',{attributes:{tabIndex:-1,'class':'cke_panel_block',role:'presentation'},styles:{display:'none'}}));if(n)e.extend(o,n);if(!o.attributes.title)o.attributes.title=o.attributes['aria-label'];o.keys={};o._.focusIndex=-1;o.element.disableContextMenu();},_:{markItem:function(m){var p=this;if(m==-1)return;var n=p.element.getElementsByTag('a'),o=n.getItem(p._.focusIndex=m);if(b.webkit||b.opera)o.getDocument().getWindow().focus();o.focus();p.onMark&&p.onMark(o);}},proto:{show:function(){this.element.setStyle('display','');},hide:function(){var m=this;if(!m.onHide||m.onHide.call(m)!==true)m.element.setStyle('display','none');},onKeyDown:function(m){var r=this;var n=r.keys[m];switch(n){case 'next':var o=r._.focusIndex,p=r.element.getElementsByTag('a'),q;while(q=p.getItem(++o)){if(q.getAttribute('_cke_focus')&&q.$.offsetWidth){r._.focusIndex=o;q.focus();break;}}return false;case 'prev':o=r._.focusIndex;p=r.element.getElementsByTag('a');while(o>0&&(q=p.getItem(--o))){if(q.getAttribute('_cke_focus')&&q.$.offsetWidth){r._.focusIndex=o;q.focus();break;}}return false;case 'click':case 'mouseup':o=r._.focusIndex;
-q=o>=0&&r.element.getElementsByTag('a').getItem(o);if(q)q.$[n]?q.$[n]():q.$['on'+n]();return false;}return true;}}});j.add('listblock',{requires:['panel'],onLoad:function(){k.panel.prototype.addListBlock=function(m,n){return this.addBlock(m,new k.listBlock(this.getHolderElement(),n));};k.listBlock=e.createClass({base:k.panel.block,$:function(m,n){var q=this;n=n||{};var o=n.attributes||(n.attributes={});(q.multiSelect=!!n.multiSelect)&&(o['aria-multiselectable']=true);!o.role&&(o.role='listbox');q.base.apply(q,arguments);var p=q.keys;p[40]='next';p[9]='next';p[38]='prev';p[2228224+9]='prev';p[32]=c?'mouseup':'click';c&&(p[13]='mouseup');q._.pendingHtml=[];q._.items={};q._.groups={};},_:{close:function(){if(this._.started){this._.pendingHtml.push('</ul>');delete this._.started;}},getClick:function(){if(!this._.click)this._.click=e.addFunction(function(m){var o=this;var n=true;if(o.multiSelect)n=o.toggle(m);else o.mark(m);if(o.onClick)o.onClick(m,n);},this);return this._.click;}},proto:{add:function(m,n,o){var r=this;var p=r._.pendingHtml,q=e.getNextId();if(!r._.started){p.push('<ul role="presentation" class=cke_panel_list>');r._.started=1;r._.size=r._.size||0;}r._.items[m]=q;p.push('<li id=',q,' class=cke_panel_listItem role=presentation><a id="',q,'_option" _cke_focus=1 hidefocus=true title="',o||m,'" href="javascript:void(\'',m,"')\" "+(c?'onclick="return false;" onmouseup':'onclick')+'="CKEDITOR.tools.callFunction(',r._.getClick(),",'",m,"'); return false;\"",' role="option" aria-posinset="'+ ++r._.size+'">',n||m,'</a></li>');},startGroup:function(m){this._.close();var n=e.getNextId();this._.groups[m]=n;this._.pendingHtml.push('<h1 role="presentation" id=',n,' class=cke_panel_grouptitle>',m,'</h1>');},commit:function(){var p=this;p._.close();p.element.appendHtml(p._.pendingHtml.join(''));var m=p._.items,n=p.element.getDocument();for(var o in m)n.getById(m[o]+'_option').setAttribute('aria-setsize',p._.size);delete p._.size;p._.pendingHtml=[];},toggle:function(m){var n=this.isMarked(m);if(n)this.unmark(m);else this.mark(m);return!n;},hideGroup:function(m){var n=this.element.getDocument().getById(this._.groups[m]),o=n&&n.getNext();if(n){n.setStyle('display','none');if(o&&o.getName()=='ul')o.setStyle('display','none');}},hideItem:function(m){this.element.getDocument().getById(this._.items[m]).setStyle('display','none');},showAll:function(){var m=this._.items,n=this._.groups,o=this.element.getDocument();for(var p in m)o.getById(m[p]).setStyle('display','');for(var q in n){var r=o.getById(n[q]),s=r.getNext();
-r.setStyle('display','');if(s&&s.getName()=='ul')s.setStyle('display','');}},mark:function(m){var p=this;if(!p.multiSelect)p.unmarkAll();var n=p._.items[m],o=p.element.getDocument().getById(n);o.addClass('cke_selected');p.element.getDocument().getById(n+'_option').setAttribute('aria-selected',true);p.element.setAttribute('aria-activedescendant',n+'_option');p.onMark&&p.onMark(o);},unmark:function(m){var q=this;var n=q.element.getDocument(),o=q._.items[m],p=n.getById(o);p.removeClass('cke_selected');n.getById(o+'_option').removeAttribute('aria-selected');q.onUnmark&&q.onUnmark(p);},unmarkAll:function(){var q=this;var m=q._.items,n=q.element.getDocument();for(var o in m){var p=m[o];n.getById(p).removeClass('cke_selected');n.getById(p+'_option').removeAttribute('aria-selected');}q.onUnmark&&q.onUnmark();},isMarked:function(m){return this.element.getDocument().getById(this._.items[m]).hasClass('cke_selected');},focus:function(m){this._.focusIndex=-1;if(m){var n=this.element.getDocument().getById(this._.items[m]).getFirst(),o=this.element.getElementsByTag('a'),p,q=-1;while(p=o.getItem(++q)){if(p.equals(n)){this._.focusIndex=q;break;}}setTimeout(function(){n.focus();},0);}}}});}});a.themes.add('default',(function(){var m={};function n(o,p){var q,r;r=o.config.sharedSpaces;r=r&&r[p];r=r&&a.document.getById(r);if(r){var s='<span class="cke_shared " dir="'+o.lang.dir+'"'+'>'+'<span class="'+o.skinClass+' '+o.id+' cke_editor_'+o.name+'">'+'<span class="'+b.cssClass+'">'+'<span class="cke_wrapper cke_'+o.lang.dir+'">'+'<span class="cke_editor">'+'<div class="cke_'+p+'">'+'</div></span></span></span></span></span>',t=r.append(h.createFromHtml(s,r.getDocument()));if(r.getCustomData('cke_hasshared'))t.hide();else r.setCustomData('cke_hasshared',1);q=t.getChild([0,0,0,0]);!o.sharedSpaces&&(o.sharedSpaces={});o.sharedSpaces[p]=q;o.on('focus',function(){for(var u=0,v,w=r.getChildren();v=w.getItem(u);u++){if(v.type==1&&!v.equals(t)&&v.hasClass('cke_shared'))v.hide();}t.show();});o.on('destroy',function(){t.remove();});}return q;};return{build:function(o,p){var q=o.name,r=o.element,s=o.elementMode;if(!r||s==0)return;if(s==1)r.hide();var t=o.fire('themeSpace',{space:'top',html:''}).html,u=o.fire('themeSpace',{space:'contents',html:''}).html,v=o.fireOnce('themeSpace',{space:'bottom',html:''}).html,w=u&&o.config.height,x=o.config.tabIndex||o.element.getAttribute('tabindex')||0;if(!u)w='auto';else if(!isNaN(w))w+='px';var y='',z=o.config.width;if(z){if(!isNaN(z))z+='px';y+='width: '+z+';';
-}var A=t&&n(o,'top'),B=n(o,'bottom');A&&(A.setHtml(t),t='');B&&(B.setHtml(v),v='');var C='<style>.'+o.skinClass+'{visibility:hidden;}</style>';if(m[o.skinClass])C='';else m[o.skinClass]=1;var D=h.createFromHtml(['<span id="cke_',q,'" class="',o.skinClass,' ',o.id,' cke_editor_',q,'" dir="',o.lang.dir,'" title="',b.gecko?' ':'','" lang="',o.langCode,'"'+(b.webkit?' tabindex="'+x+'"':'')+' role="application"'+' aria-labelledby="cke_',q,'_arialbl"'+(y?' style="'+y+'"':'')+'>'+'<span id="cke_',q,'_arialbl" class="cke_voice_label">'+o.lang.editor+'</span>'+'<span class="',b.cssClass,'" role="presentation"><span class="cke_wrapper cke_',o.lang.dir,'" role="presentation"><table class="cke_editor" border="0" cellspacing="0" cellpadding="0" role="presentation"><tbody><tr',t?'':' style="display:none"',' role="presentation"><td id="cke_top_',q,'" class="cke_top" role="presentation">',t,'</td></tr><tr',u?'':' style="display:none"',' role="presentation"><td id="cke_contents_',q,'" class="cke_contents" style="height:',w,'" role="presentation">',u,'</td></tr><tr',v?'':' style="display:none"',' role="presentation"><td id="cke_bottom_',q,'" class="cke_bottom" role="presentation">',v,'</td></tr></tbody></table>'+C+'</span>'+'</span>'+'</span>'].join(''));D.getChild([1,0,0,0,0]).unselectable();D.getChild([1,0,0,0,2]).unselectable();if(s==1)D.insertAfter(r);else r.append(D);o.container=D;D.disableContextMenu();o.on('contentDirChanged',function(E){var F=(o.lang.dir!=E.data?'add':'remove')+'Class';D.getChild(1)[F]('cke_mixed_dir_content');var G=this.sharedSpaces&&this.sharedSpaces[this.config.toolbarLocation];G&&G.getParent().getParent()[F]('cke_mixed_dir_content');});o.fireOnce('themeLoaded');o.fireOnce('uiReady');},buildDialog:function(o){var p=e.getNextNumber(),q=h.createFromHtml(['<div class="',o.id,'_dialog cke_editor_',o.name.replace('.','\\.'),'_dialog cke_skin_',o.skinName,'" dir="',o.lang.dir,'" lang="',o.langCode,'" role="dialog" aria-labelledby="%title#"><table class="cke_dialog',' '+b.cssClass,' cke_',o.lang.dir,'" style="position:absolute" role="presentation"><tr><td role="presentation"><div class="%body" role="presentation"><div id="%title#" class="%title" role="presentation"></div><a id="%close_button#" class="%close_button" href="javascript:void(0)" title="'+o.lang.common.close+'" role="button"><span class="cke_label">X</span></a>'+'<div id="%tabs#" class="%tabs" role="tablist"></div>'+'<table class="%contents" role="presentation">'+'<tr>'+'<td id="%contents#" class="%contents" role="presentation"></td>'+'</tr>'+'<tr>'+'<td id="%footer#" class="%footer" role="presentation"></td>'+'</tr>'+'</table>'+'</div>'+'<div id="%tl#" class="%tl"></div>'+'<div id="%tc#" class="%tc"></div>'+'<div id="%tr#" class="%tr"></div>'+'<div id="%ml#" class="%ml"></div>'+'<div id="%mr#" class="%mr"></div>'+'<div id="%bl#" class="%bl"></div>'+'<div id="%bc#" class="%bc"></div>'+'<div id="%br#" class="%br"></div>'+'</td></tr>'+'</table>',c?'':'<style>.cke_dialog{visibility:hidden;}</style>','</div>'].join('').replace(/#/g,'_'+p).replace(/%/g,'cke_dialog_')),r=q.getChild([0,0,0,0,0]),s=r.getChild(0),t=r.getChild(1);
-s.unselectable();t.unselectable();return{element:q,parts:{dialog:q.getChild(0),title:s,close:t,tabs:r.getChild(2),contents:r.getChild([3,0,0,0]),footer:r.getChild([3,0,1,0])}};},destroy:function(o){var p=o.container,q=o.element;if(p){p.clearCustomData();p.remove();}if(q){q.clearCustomData();o.elementMode==1&&q.show();delete o.element;}}};})());a.editor.prototype.getThemeSpace=function(m){var n='cke_'+m,o=this._[n]||(this._[n]=a.document.getById(n+'_'+this.name));return o;};a.editor.prototype.resize=function(m,n,o,p){var q=this.container,r=a.document.getById('cke_contents_'+this.name),s=p?q.getChild(1):q;b.webkit&&s.setStyle('display','none');s.setSize('width',m,true);if(b.webkit){s.$.offsetWidth;s.setStyle('display','');}var t=o?0:(s.$.offsetHeight||0)-(r.$.clientHeight||0);r.setStyle('height',Math.max(n-t,0)+'px');this.fire('resize');};a.editor.prototype.getResizable=function(m){return m?a.document.getById('cke_contents_'+this.name):this.container;};})();
+for(ag=ak.length-1;ag>=0;ag--){if(ak[ag]==='')ak.splice(ag,1);}if(ak.length>0)ac.style=(ac.style?ac.style+'; ':'')+ak.join('; ');for(ag in ac)aa.push(ag+'="'+e.htmlEncode(ac[ag])+'" ');aa.push('>',ad,'</',Z,'>');U.push(aa.join(''));(this._||(this._={})).dialog=S;if(typeof T.isChanged=='boolean')this.isChanged=function(){return T.isChanged;};if(typeof T.isChanged=='function')this.isChanged=T.isChanged;if(typeof T.setValue=='function')this.setValue=e.override(this.setValue,function(an){return function(ao){an.call(this,T.setValue.call(this,ao));};});if(typeof T.getValue=='function')this.getValue=e.override(this.getValue,function(an){return function(){return T.getValue.call(this,an.call(this));};});a.event.implementOn(this);this.registerEvents(T);if(this.accessKeyUp&&this.accessKeyDown&&T.accessKey)M(this,S,'CTRL+'+T.accessKey);var am=this;S.on('load',function(){var an=am.getInputElement();if(an){var ao=am.type in {checkbox:1,ratio:1}&&c&&b.version<8?'cke_dialog_ui_focused':'';an.on('focus',function(){S._.tabBarMode=false;S._.hasFocus=true;am.fire('focus');ao&&this.addClass(ao);});an.on('blur',function(){am.fire('blur');ao&&this.removeClass(ao);});}});if(this.keyboardFocusable){this.tabIndex=T.tabIndex||0;this.focusIndex=S._.focusList.push(this)-1;this.on('focus',function(){S._.currentFocusIndex=am.focusIndex;});}e.extend(this,T);},hbox:function(S,T,U,V,W){if(arguments.length<4)return;this._||(this._={});var X=this._.children=T,Y=W&&W.widths||null,Z=W&&W.height||null,aa={},ab,ac=function(){var ae=['<tbody><tr class="cke_dialog_ui_hbox">'];for(ab=0;ab<U.length;ab++){var af='cke_dialog_ui_hbox_child',ag=[];if(ab===0)af='cke_dialog_ui_hbox_first';if(ab==U.length-1)af='cke_dialog_ui_hbox_last';ae.push('<td class="',af,'" role="presentation" ');if(Y){if(Y[ab])ag.push('width:'+m(Y[ab]));}else ag.push('width:'+Math.floor(100/U.length)+'%');if(Z)ag.push('height:'+m(Z));if(W&&W.padding!=undefined)ag.push('padding:'+m(W.padding));if(c&&b.quirks&&X[ab].align)ag.push('text-align:'+X[ab].align);if(ag.length>0)ae.push('style="'+ag.join('; ')+'" ');ae.push('>',U[ab],'</td>');}ae.push('</tr></tbody>');return ae.join('');},ad={role:'presentation'};W&&W.align&&(ad.align=W.align);k.dialog.uiElement.call(this,S,W||{type:'hbox'},V,'table',aa,ad,ac);},vbox:function(S,T,U,V,W){if(arguments.length<3)return;this._||(this._={});var X=this._.children=T,Y=W&&W.width||null,Z=W&&W.heights||null,aa=function(){var ab=['<table role="presentation" cellspacing="0" border="0" '];ab.push('style="');
+if(W&&W.expand)ab.push('height:100%;');ab.push('width:'+m(Y||'100%'),';');ab.push('"');ab.push('align="',e.htmlEncode(W&&W.align||(S.getParentEditor().lang.dir=='ltr'?'left':'right')),'" ');ab.push('><tbody>');for(var ac=0;ac<U.length;ac++){var ad=[];ab.push('<tr><td role="presentation" ');if(Y)ad.push('width:'+m(Y||'100%'));if(Z)ad.push('height:'+m(Z[ac]));else if(W&&W.expand)ad.push('height:'+Math.floor(100/U.length)+'%');if(W&&W.padding!=undefined)ad.push('padding:'+m(W.padding));if(c&&b.quirks&&X[ac].align)ad.push('text-align:'+X[ac].align);if(ad.length>0)ab.push('style="',ad.join('; '),'" ');ab.push(' class="cke_dialog_ui_vbox_child">',U[ac],'</td></tr>');}ab.push('</tbody></table>');return ab.join('');};k.dialog.uiElement.call(this,S,W||{type:'vbox'},V,'div',null,{role:'presentation'},aa);}};})();k.dialog.uiElement.prototype={getElement:function(){return a.document.getById(this.domId);},getInputElement:function(){return this.getElement();},getDialog:function(){return this._.dialog;},setValue:function(S,T){this.getInputElement().setValue(S);!T&&this.fire('change',{value:S});return this;},getValue:function(){return this.getInputElement().getValue();},isChanged:function(){return false;},selectParentTab:function(){var V=this;var S=V.getInputElement(),T=S,U;while((T=T.getParent())&&T.$.className.search('cke_dialog_page_contents')==-1){}if(!T)return V;U=T.getAttribute('name');if(V._.dialog._.currentTabId!=U)V._.dialog.selectPage(U);return V;},focus:function(){this.selectParentTab().getInputElement().focus();return this;},registerEvents:function(S){var T=/^on([A-Z]\w+)/,U,V=function(X,Y,Z,aa){Y.on('load',function(){X.getInputElement().on(Z,aa,X);});};for(var W in S){if(!(U=W.match(T)))continue;if(this.eventProcessors[W])this.eventProcessors[W].call(this,this._.dialog,S[W]);else V(this,this._.dialog,U[1].toLowerCase(),S[W]);}return this;},eventProcessors:{onLoad:function(S,T){S.on('load',T,this);},onShow:function(S,T){S.on('show',T,this);},onHide:function(S,T){S.on('hide',T,this);}},accessKeyDown:function(S,T){this.focus();},accessKeyUp:function(S,T){},disable:function(){var S=this.getElement(),T=this.getInputElement();T.setAttribute('disabled','true');S.addClass('cke_disabled');},enable:function(){var S=this.getElement(),T=this.getInputElement();T.removeAttribute('disabled');S.removeClass('cke_disabled');},isEnabled:function(){return!this.getElement().hasClass('cke_disabled');},isVisible:function(){return this.getInputElement().isVisible();},isFocusable:function(){if(!this.isEnabled()||!this.isVisible())return false;
+return true;}};k.dialog.hbox.prototype=e.extend(new k.dialog.uiElement(),{getChild:function(S){var T=this;if(arguments.length<1)return T._.children.concat();if(!S.splice)S=[S];if(S.length<2)return T._.children[S[0]];else return T._.children[S[0]]&&T._.children[S[0]].getChild?T._.children[S[0]].getChild(S.slice(1,S.length)):null;}},true);k.dialog.vbox.prototype=new k.dialog.hbox();(function(){var S={build:function(T,U,V){var W=U.children,X,Y=[],Z=[];for(var aa=0;aa<W.length&&(X=W[aa]);aa++){var ab=[];Y.push(ab);Z.push(a.dialog._.uiElementBuilders[X.type].build(T,X,ab));}return new k.dialog[U.type](T,Z,Y,V,U);}};a.dialog.addUIElement('hbox',S);a.dialog.addUIElement('vbox',S);})();a.dialogCommand=function(S){this.dialogName=S;};a.dialogCommand.prototype={exec:function(S){b.opera?e.setTimeout(function(){S.openDialog(this.dialogName);},0,this):S.openDialog(this.dialogName);},canUndo:false,editorFocus:c||b.webkit};(function(){var S=/^([a]|[^a])+$/,T=/^\d*$/,U=/^\d*(?:\.\d+)?$/,V=/^(((\d*(\.\d+))|(\d*))(px|\%)?)?$/,W=/^(((\d*(\.\d+))|(\d*))(px|em|ex|in|cm|mm|pt|pc|\%)?)?$/i,X=/^(\s*[\w-]+\s*:\s*[^:;]+(?:;|$))*$/;a.VALIDATE_OR=1;a.VALIDATE_AND=2;a.dialog.validate={functions:function(){var Y=arguments;return function(){var Z=this&&this.getValue?this.getValue():Y[0],aa=undefined,ab=2,ac=[],ad;for(ad=0;ad<Y.length;ad++){if(typeof Y[ad]=='function')ac.push(Y[ad]);else break;}if(ad<Y.length&&typeof Y[ad]=='string'){aa=Y[ad];ad++;}if(ad<Y.length&&typeof Y[ad]=='number')ab=Y[ad];var ae=ab==2?true:false;for(ad=0;ad<ac.length;ad++){if(ab==2)ae=ae&&ac[ad](Z);else ae=ae||ac[ad](Z);}return!ae?aa:true;};},regex:function(Y,Z){return function(){var aa=this&&this.getValue?this.getValue():arguments[0];return!Y.test(aa)?Z:true;};},notEmpty:function(Y){return this.regex(S,Y);},integer:function(Y){return this.regex(T,Y);},number:function(Y){return this.regex(U,Y);},cssLength:function(Y){return this.functions(function(Z){return W.test(e.trim(Z));},Y);},htmlLength:function(Y){return this.functions(function(Z){return V.test(e.trim(Z));},Y);},inlineStyle:function(Y){return this.functions(function(Z){return X.test(e.trim(Z));},Y);},equals:function(Y,Z){return this.functions(function(aa){return aa==Y;},Z);},notEqual:function(Y,Z){return this.functions(function(aa){return aa!=Y;},Z);}};a.on('instanceDestroyed',function(Y){if(e.isEmpty(a.instances)){var Z;while(Z=a.dialog._.currentTop)Z.hide();I();}var aa=Y.editor._.storedDialogs;for(var ab in aa)aa[ab].destroy();});})();e.extend(a.editor.prototype,{openDialog:function(S,T){if(this.mode=='wysiwyg'&&c){var U=this.getSelection();
+U&&U.lock();}var V=a.dialog._.dialogDefinitions[S],W=this.skin.dialog;if(a.dialog._.currentTop===null)G(this);if(typeof V=='function'&&W._isLoaded){var X=this._.storedDialogs||(this._.storedDialogs={}),Y=X[S]||(X[S]=new a.dialog(this,S));T&&T.call(Y,Y);Y.show();return Y;}else if(V=='failed'){H();throw new Error('[CKEDITOR.dialog.openDialog] Dialog "'+S+'" failed when loading definition.');}var Z=this;function aa(ac){var ad=a.dialog._.dialogDefinitions[S],ae=Z.skin.dialog;if(!ae._isLoaded||ab&&typeof ac=='undefined')return;if(typeof ad!='function')a.dialog._.dialogDefinitions[S]='failed';Z.openDialog(S,T);};if(typeof V=='string'){var ab=1;a.scriptLoader.load(a.getUrl(V),aa,null,0,1);}a.skins.load(this,'dialog',aa);return null;}});})();j.add('dialog',{requires:['dialogui']});j.add('styles',{requires:['selection'],init:function(m){m.on('contentDom',function(){m.document.setCustomData('cke_includeReadonly',!m.config.disableReadonlyStyling);});}});a.editor.prototype.attachStyleStateChange=function(m,n){var o=this._.styleStateChangeCallbacks;if(!o){o=this._.styleStateChangeCallbacks=[];this.on('selectionChange',function(p){for(var q=0;q<o.length;q++){var r=o[q],s=r.style.checkActive(p.data.path)?1:2;r.fn.call(this,s);}});}o.push({style:m,fn:n});};a.STYLE_BLOCK=1;a.STYLE_INLINE=2;a.STYLE_OBJECT=3;(function(){var m={address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,section:1,header:1,footer:1,nav:1,article:1,aside:1,figure:1,dialog:1,hgroup:1,time:1,meter:1,menu:1,command:1,keygen:1,output:1,progress:1,details:1,datagrid:1,datalist:1},n={a:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1,dd:1,form:1,audio:1,video:1},o=/\s*(?:;\s*|$)/,p=/#\((.+?)\)/g,q=d.walker.bookmark(0,1),r=d.walker.whitespaces(1);a.style=function(T,U){var W=this;if(U){T=e.clone(T);L(T.attributes,U);L(T.styles,U);}var V=W.element=T.element?typeof T.element=='string'?T.element.toLowerCase():T.element:'*';W.type=m[V]?1:n[V]?3:2;if(typeof W.element=='object')W.type=3;W._={definition:T};};a.style.prototype={apply:function(T){S.call(this,T,false);},remove:function(T){S.call(this,T,true);},applyToRange:function(T){var U=this;return(U.applyToRange=U.type==2?t:U.type==1?x:U.type==3?v:null).call(U,T);},removeFromRange:function(T){var U=this;return(U.removeFromRange=U.type==2?u:U.type==1?y:U.type==3?w:null).call(U,T);},applyToObject:function(T){K(T,this);},checkActive:function(T){var Y=this;switch(Y.type){case 1:return Y.checkElementRemovable(T.block||T.blockLimit,true);case 3:case 2:var U=T.elements;
+for(var V=0,W;V<U.length;V++){W=U[V];if(Y.type==2&&(W==T.block||W==T.blockLimit))continue;if(Y.type==3){var X=W.getName();if(!(typeof Y.element=='string'?X==Y.element:X in Y.element))continue;}if(Y.checkElementRemovable(W,true))return true;}}return false;},checkApplicable:function(T){switch(this.type){case 2:case 1:break;case 3:return T.lastElement.getAscendant(this.element,true);}return true;},checkElementRemovable:function(T,U){var ae=this;var V=ae._.definition;if(!T||!V.ignoreReadonly&&T.isReadOnly())return false;var W,X=T.getName();if(typeof ae.element=='string'?X==ae.element:X in ae.element){if(!U&&!T.hasAttributes())return true;W=M(V);if(W._length){for(var Y in W){if(Y=='_length')continue;var Z=T.getAttribute(Y)||'';if(Y=='style'?R(W[Y],P(Z,false)):W[Y]==Z){if(!U)return true;}else if(U)return false;}if(U)return true;}else return true;}var aa=N(ae)[T.getName()];if(aa){if(!(W=aa.attributes))return true;for(var ab=0;ab<W.length;ab++){Y=W[ab][0];var ac=T.getAttribute(Y);if(ac){var ad=W[ab][1];if(ad===null||typeof ad=='string'&&ac==ad||ad.test(ac))return true;}}}return false;},buildPreview:function(T){var U=this._.definition,V=[],W=U.element;if(W=='bdo')W='span';V=['<',W];var X=U.attributes;if(X)for(var Y in X)V.push(' ',Y,'="',X[Y],'"');var Z=a.style.getStyleText(U);if(Z)V.push(' style="',Z,'"');V.push('>',T||U.name,'</',W,'>');return V.join('');}};a.style.getStyleText=function(T){var U=T._ST;if(U)return U;U=T.styles;var V=T.attributes&&T.attributes.style||'',W='';if(V.length)V=V.replace(o,';');for(var X in U){var Y=U[X],Z=(X+':'+Y).replace(o,';');if(Y=='inherit')W+=Z;else V+=Z;}if(V.length)V=P(V);V+=W;return T._ST=V;};function s(T){var U,V;while(T=T.getParent()){if(T.getName()=='body')break;if(T.getAttribute('data-nostyle'))U=T;else if(!V){var W=T.getAttribute('contentEditable');if(W=='false')U=T;else if(W=='true')V=1;}}return U;};function t(T){var ay=this;var U=T.document;if(T.collapsed){var V=J(ay,U);T.insertNode(V);T.moveToPosition(V,2);return;}var W=ay.element,X=ay._.definition,Y,Z=X.ignoreReadonly,aa=Z||X.includeReadonly;if(aa==undefined)aa=U.getCustomData('cke_includeReadonly');var ab=f[W]||(Y=true,f.span);T.enlarge(1,1);T.trim();var ac=T.createBookmark(),ad=ac.startNode,ae=ac.endNode,af=ad,ag;if(!Z){var ah=s(ad),ai=s(ae);if(ah)af=ah.getNextSourceNode(true);if(ai)ae=ai;}if(af.getPosition(ae)==2)af=0;while(af){var aj=false;if(af.equals(ae)){af=null;aj=true;}else{var ak=af.type,al=ak==1?af.getName():null,am=al&&af.getAttribute('contentEditable')=='false',an=al&&af.getAttribute('data-nostyle');
+if(al&&af.data('cke-bookmark')){af=af.getNextSourceNode(true);continue;}if(!al||ab[al]&&!an&&(!am||aa)&&(af.getPosition(ae)|4|0|8)==4+0+8&&(!X.childRule||X.childRule(af))){var ao=af.getParent();if(ao&&((ao.getDtd()||f.span)[W]||Y)&&(!X.parentRule||X.parentRule(ao))){if(!ag&&(!al||!f.$removeEmpty[al]||(af.getPosition(ae)|4|0|8)==4+0+8)){ag=new d.range(U);ag.setStartBefore(af);}if(ak==3||am||ak==1&&!af.getChildCount()){var ap=af,aq;while((aj=!ap.getNext(q))&&(aq=ap.getParent(),ab[aq.getName()])&&(aq.getPosition(ad)|2|0|8)==2+0+8&&(!X.childRule||X.childRule(aq)))ap=aq;ag.setEndAfter(ap);}}else aj=true;}else aj=true;af=af.getNextSourceNode(an||am);}if(aj&&ag&&!ag.collapsed){var ar=J(ay,U),as=ar.hasAttributes(),at=ag.getCommonAncestor(),au={styles:{},attrs:{},blockedStyles:{},blockedAttrs:{}},av,aw,ax;while(ar&&at){if(at.getName()==W){for(av in X.attributes){if(au.blockedAttrs[av]||!(ax=at.getAttribute(aw)))continue;if(ar.getAttribute(av)==ax)au.attrs[av]=1;else au.blockedAttrs[av]=1;}for(aw in X.styles){if(au.blockedStyles[aw]||!(ax=at.getStyle(aw)))continue;if(ar.getStyle(aw)==ax)au.styles[aw]=1;else au.blockedStyles[aw]=1;}}at=at.getParent();}for(av in au.attrs)ar.removeAttribute(av);for(aw in au.styles)ar.removeStyle(aw);if(as&&!ar.hasAttributes())ar=null;if(ar){ag.extractContents().appendTo(ar);G(ay,ar);ag.insertNode(ar);ar.mergeSiblings();if(!c)ar.$.normalize();}else{ar=new h('span');ag.extractContents().appendTo(ar);ag.insertNode(ar);G(ay,ar);ar.remove(true);}ag=null;}}T.moveToBookmark(ac);T.shrink(2);};function u(T){T.enlarge(1,1);var U=T.createBookmark(),V=U.startNode;if(T.collapsed){var W=new d.elementPath(V.getParent()),X;for(var Y=0,Z;Y<W.elements.length&&(Z=W.elements[Y]);Y++){if(Z==W.block||Z==W.blockLimit)break;if(this.checkElementRemovable(Z)){var aa;if(T.collapsed&&(T.checkBoundaryOfElement(Z,2)||(aa=T.checkBoundaryOfElement(Z,1)))){X=Z;X.match=aa?'start':'end';}else{Z.mergeSiblings();if(Z.getName()==this.element)F(this,Z);else H(Z,N(this)[Z.getName()]);}}}if(X){var ab=V;for(Y=0;true;Y++){var ac=W.elements[Y];if(ac.equals(X))break;else if(ac.match)continue;else ac=ac.clone();ac.append(ab);ab=ac;}ab[X.match=='start'?'insertBefore':'insertAfter'](X);}}else{var ad=U.endNode,ae=this;function af(){var ai=new d.elementPath(V.getParent()),aj=new d.elementPath(ad.getParent()),ak=null,al=null;for(var am=0;am<ai.elements.length;am++){var an=ai.elements[am];if(an==ai.block||an==ai.blockLimit)break;if(ae.checkElementRemovable(an))ak=an;}for(am=0;am<aj.elements.length;
+am++){an=aj.elements[am];if(an==aj.block||an==aj.blockLimit)break;if(ae.checkElementRemovable(an))al=an;}if(al)ad.breakParent(al);if(ak)V.breakParent(ak);};af();var ag=V;while(!ag.equals(ad)){var ah=ag.getNextSourceNode();if(ag.type==1&&this.checkElementRemovable(ag)){if(ag.getName()==this.element)F(this,ag);else H(ag,N(this)[ag.getName()]);if(ah.type==1&&ah.contains(V)){af();ah=V.getNext();}}ag=ah;}}T.moveToBookmark(U);};function v(T){var U=T.getCommonAncestor(true,true),V=U.getAscendant(this.element,true);V&&!V.isReadOnly()&&K(V,this);};function w(T){var U=T.getCommonAncestor(true,true),V=U.getAscendant(this.element,true);if(!V)return;var W=this,X=W._.definition,Y=X.attributes;if(Y)for(var Z in Y)V.removeAttribute(Z,Y[Z]);if(X.styles)for(var aa in X.styles){if(!X.styles.hasOwnProperty(aa))continue;V.removeStyle(aa);}};function x(T){var U=T.createBookmark(true),V=T.createIterator();V.enforceRealBlocks=true;if(this._.enterMode)V.enlargeBr=this._.enterMode!=2;var W,X=T.document,Y;while(W=V.getNextParagraph()){if(!W.isReadOnly()){var Z=J(this,X,W);z(W,Z);}}T.moveToBookmark(U);};function y(T){var Y=this;var U=T.createBookmark(1),V=T.createIterator();V.enforceRealBlocks=true;V.enlargeBr=Y._.enterMode!=2;var W;while(W=V.getNextParagraph()){if(Y.checkElementRemovable(W))if(W.is('pre')){var X=Y._.enterMode==2?null:T.document.createElement(Y._.enterMode==1?'p':'div');X&&W.copyAttributes(X);z(W,X);}else F(Y,W,1);}T.moveToBookmark(U);};function z(T,U){var V=!U;if(V){U=T.getDocument().createElement('div');T.copyAttributes(U);}var W=U&&U.is('pre'),X=T.is('pre'),Y=W&&!X,Z=!W&&X;if(Y)U=E(T,U);else if(Z)U=D(V?[T.getHtml()]:B(T),U);else T.moveChildren(U);U.replace(T);if(W)A(U);else if(V)I(U);};function A(T){var U;if(!((U=T.getPrevious(r))&&U.is&&U.is('pre')))return;var V=C(U.getHtml(),/\n$/,'')+'\n\n'+C(T.getHtml(),/^\n/,'');if(c)T.$.outerHTML='<pre>'+V+'</pre>';else T.setHtml(V);U.remove();};function B(T){var U=/(\S\s*)\n(?:\s|(<span[^>]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,V=T.getName(),W=C(T.getOuterHtml(),U,function(Y,Z,aa){return Z+'</pre>'+aa+'<pre>';}),X=[];W.replace(/<pre\b.*?>([\s\S]*?)<\/pre>/gi,function(Y,Z){X.push(Z);});return X;};function C(T,U,V){var W='',X='';T=T.replace(/(^<span[^>]+data-cke-bookmark.*?\/span>)|(<span[^>]+data-cke-bookmark.*?\/span>$)/gi,function(Y,Z,aa){Z&&(W=Z);aa&&(X=aa);return '';});return W+T.replace(U,V)+X;};function D(T,U){var V;if(T.length>1)V=new d.documentFragment(U.getDocument());for(var W=0;W<T.length;W++){var X=T[W];X=X.replace(/(\r\n|\r)/g,'\n');
+X=C(X,/^[ \t]*\n/,'');X=C(X,/\n$/,'');X=C(X,/^[ \t]+|[ \t]+$/g,function(Z,aa,ab){if(Z.length==1)return ' ';else if(!aa)return e.repeat(' ',Z.length-1)+' ';else return ' '+e.repeat(' ',Z.length-1);});X=X.replace(/\n/g,'<br>');X=X.replace(/[ \t]{2,}/g,function(Z){return e.repeat(' ',Z.length-1)+' ';});if(V){var Y=U.clone();Y.setHtml(X);V.append(Y);}else U.setHtml(X);}return V||U;};function E(T,U){var V=T.getBogus();V&&V.remove();var W=T.getHtml();W=C(W,/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,'');W=W.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,'$1');W=W.replace(/([ \t\n\r]+| )/g,' ');W=W.replace(/<br\b[^>]*>/gi,'\n');if(c){var X=T.getDocument().createElement('div');X.append(U);U.$.outerHTML='<pre>'+W+'</pre>';U.copyAttributes(X.getFirst());U=X.getFirst().remove();}else U.setHtml(W);return U;};function F(T,U){var V=T._.definition,W=V.attributes,X=V.styles,Y=N(T)[U.getName()],Z=e.isEmpty(W)&&e.isEmpty(X);for(var aa in W){if((aa=='class'||T._.definition.fullMatch)&&U.getAttribute(aa)!=O(aa,W[aa]))continue;Z=U.hasAttribute(aa);U.removeAttribute(aa);}for(var ab in X){if(T._.definition.fullMatch&&U.getStyle(ab)!=O(ab,X[ab],true))continue;Z=Z||!!U.getStyle(ab);U.removeStyle(ab);}H(U,Y,m[U.getName()]);if(Z)!f.$block[U.getName()]||T._.enterMode==2&&!U.hasAttributes()?I(U):U.renameNode(T._.enterMode==1?'p':'div');};function G(T,U){var V=T._.definition,W=V.attributes,X=V.styles,Y=N(T),Z=U.getElementsByTag(T.element);for(var aa=Z.count();--aa>=0;)F(T,Z.getItem(aa));for(var ab in Y){if(ab!=T.element){Z=U.getElementsByTag(ab);for(aa=Z.count()-1;aa>=0;aa--){var ac=Z.getItem(aa);H(ac,Y[ab]);}}}};function H(T,U,V){var W=U&&U.attributes;if(W)for(var X=0;X<W.length;X++){var Y=W[X][0],Z;if(Z=T.getAttribute(Y)){var aa=W[X][1];if(aa===null||aa.test&&aa.test(Z)||typeof aa=='string'&&Z==aa)T.removeAttribute(Y);}}if(!V)I(T);};function I(T){if(!T.hasAttributes())if(f.$block[T.getName()]){var U=T.getPrevious(r),V=T.getNext(r);if(U&&(U.type==3||!U.isBlockBoundary({br:1})))T.append('br',1);if(V&&(V.type==3||!V.isBlockBoundary({br:1})))T.append('br');T.remove(true);}else{var W=T.getFirst(),X=T.getLast();T.remove(true);if(W){W.type==1&&W.mergeSiblings();if(X&&!W.equals(X)&&X.type==1)X.mergeSiblings();}}};function J(T,U,V){var W,X=T._.definition,Y=T.element;if(Y=='*')Y='span';W=new h(Y,U);if(V)V.copyAttributes(W);W=K(W,T);if(U.getCustomData('doc_processing_style')&&W.hasAttribute('id'))W.removeAttribute('id');else U.setCustomData('doc_processing_style',1);return W;};function K(T,U){var V=U._.definition,W=V.attributes,X=a.style.getStyleText(V);
+if(W)for(var Y in W)T.setAttribute(Y,W[Y]);if(X)T.setAttribute('style',X);return T;};function L(T,U){for(var V in T)T[V]=T[V].replace(p,function(W,X){return U[X];});};function M(T){var U=T._AC;if(U)return U;U={};var V=0,W=T.attributes;if(W)for(var X in W){V++;U[X]=W[X];}var Y=a.style.getStyleText(T);if(Y){if(!U.style)V++;U.style=Y;}U._length=V;return T._AC=U;};function N(T){if(T._.overrides)return T._.overrides;var U=T._.overrides={},V=T._.definition.overrides;if(V){if(!e.isArray(V))V=[V];for(var W=0;W<V.length;W++){var X=V[W],Y,Z,aa;if(typeof X=='string')Y=X.toLowerCase();else{Y=X.element?X.element.toLowerCase():T.element;aa=X.attributes;}Z=U[Y]||(U[Y]={});if(aa){var ab=Z.attributes=Z.attributes||[];for(var ac in aa)ab.push([ac.toLowerCase(),aa[ac]]);}}}return U;};function O(T,U,V){var W=new h('span');W[V?'setStyle':'setAttribute'](T,U);return W[V?'getStyle':'getAttribute'](T);};function P(T,U){var V;if(U!==false){var W=new h('span');W.setAttribute('style',T);V=W.getAttribute('style')||'';}else V=T;V=V.replace(/(font-family:)(.*?)(?=;|$)/,function(X,Y,Z){var aa=Z.split(',');for(var ab=0;ab<aa.length;ab++)aa[ab]=e.trim(aa[ab].replace(/["']/g,''));return Y+aa.join(',');});return V.replace(/\s*([;:])\s*/,'$1').replace(/([^\s;])$/,'$1;').replace(/,\s+/g,',').replace(/\"/g,'').toLowerCase();};function Q(T){var U={};T.replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(V,W,X){U[W]=X;});return U;};function R(T,U){typeof T=='string'&&(T=Q(T));typeof U=='string'&&(U=Q(U));for(var V in T){if(!(V in U&&(U[V]==T[V]||T[V]=='inherit'||U[V]=='inherit')))return false;}return true;};function S(T,U){var V=T.getSelection(),W=V.createBookmarks(1),X=V.getRanges(),Y=U?this.removeFromRange:this.applyToRange,Z,aa=X.createIterator();while(Z=aa.getNextRange())Y.call(this,Z);if(W.length==1&&W[0].collapsed){V.selectRanges(X);T.getById(W[0].startNode).remove();}else V.selectBookmarks(W);T.removeCustomData('doc_processing_style');};})();a.styleCommand=function(m){this.style=m;};a.styleCommand.prototype.exec=function(m){var o=this;m.focus();var n=m.document;if(n)if(o.state==2)o.style.apply(n);else if(o.state==1)o.style.remove(n);return!!n;};a.stylesSet=new a.resourceManager('','stylesSet');a.addStylesSet=e.bind(a.stylesSet.add,a.stylesSet);a.loadStylesSet=function(m,n,o){a.stylesSet.addExternal(m,n,'');a.stylesSet.load(m,o);};a.editor.prototype.getStylesSet=function(m){if(!this._.stylesDefinitions){var n=this,o=n.config.stylesCombo_stylesSet||n.config.stylesSet||'default';
+if(o instanceof Array){n._.stylesDefinitions=o;m(o);return;}var p=o.split(':'),q=p[0],r=p[1],s=j.registered.styles.path;a.stylesSet.addExternal(q,r?p.slice(1).join(':'):s+'styles/'+q+'.js','');a.stylesSet.load(q,function(t){n._.stylesDefinitions=t[q];m(n._.stylesDefinitions);});}else m(this._.stylesDefinitions);};j.add('domiterator');(function(){function m(s){var t=this;if(arguments.length<1)return;t.range=s;t.forceBrBreak=0;t.enlargeBr=1;t.enforceRealBlocks=0;t._||(t._={});};var n=/^[\r\n\t ]+$/,o=d.walker.bookmark(false,true),p=d.walker.whitespaces(true),q=function(s){return o(s)&&p(s);};function r(s,t,u){var v=s.getNextSourceNode(t,null,u);while(!o(v))v=v.getNextSourceNode(t,null,u);return v;};m.prototype={getNextParagraph:function(s){var S=this;var t,u,v,w,x,y;if(!S._.started){u=S.range.clone();u.shrink(1,true);w=u.endContainer.hasAscendant('pre',true)||u.startContainer.hasAscendant('pre',true);u.enlarge(S.forceBrBreak&&!w||!S.enlargeBr?3:2);if(!u.collapsed){var z=new d.walker(u.clone()),A=d.walker.bookmark(true,true);z.evaluator=A;S._.nextNode=z.next();z=new d.walker(u.clone());z.evaluator=A;var B=z.previous();S._.lastNode=B.getNextSourceNode(true);if(S._.lastNode&&S._.lastNode.type==3&&!e.trim(S._.lastNode.getText())&&S._.lastNode.getParent().isBlockBoundary()){var C=new d.range(u.document);C.moveToPosition(S._.lastNode,4);if(C.checkEndOfBlock()){var D=new d.elementPath(C.endContainer),E=D.block||D.blockLimit;S._.lastNode=E.getNextSourceNode(true);}}if(!S._.lastNode){S._.lastNode=S._.docEndMarker=u.document.createText('');S._.lastNode.insertAfter(B);}u=null;}S._.started=1;}var F=S._.nextNode;B=S._.lastNode;S._.nextNode=null;while(F){var G=0,H=F.hasAscendant('pre'),I=F.type!=1,J=0;if(!I){var K=F.getName();if(F.isBlockBoundary(S.forceBrBreak&&!H&&{br:1})){if(K=='br')I=1;else if(!u&&!F.getChildCount()&&K!='hr'){t=F;v=F.equals(B);break;}if(u){u.setEndAt(F,3);if(K!='br')S._.nextNode=F;}G=1;}else{if(F.getFirst()){if(!u){u=new d.range(S.range.document);u.setStartAt(F,3);}F=F.getFirst();continue;}I=1;}}else if(F.type==3)if(n.test(F.getText()))I=0;if(I&&!u){u=new d.range(S.range.document);u.setStartAt(F,3);}v=(!G||I)&&F.equals(B);if(u&&!G)while(!F.getNext(q)&&!v){var L=F.getParent();if(L.isBlockBoundary(S.forceBrBreak&&!H&&{br:1})){G=1;I=0;v=v||L.equals(B);u.setEndAt(L,2);break;}F=L;I=1;v=F.equals(B);J=1;}if(I)u.setEndAt(F,4);F=r(F,J,B);v=!F;if(v||G&&u)break;}if(!t){if(!u){S._.docEndMarker&&S._.docEndMarker.remove();S._.nextNode=null;return null;}var M=new d.elementPath(u.startContainer),N=M.blockLimit,O={div:1,th:1,td:1};
+t=M.block;if(!t&&!S.enforceRealBlocks&&O[N.getName()]&&u.checkStartOfBlock()&&u.checkEndOfBlock())t=N;else if(!t||S.enforceRealBlocks&&t.getName()=='li'){t=S.range.document.createElement(s||'p');u.extractContents().appendTo(t);t.trim();u.insertNode(t);x=y=true;}else if(t.getName()!='li'){if(!u.checkStartOfBlock()||!u.checkEndOfBlock()){t=t.clone(false);u.extractContents().appendTo(t);t.trim();var P=u.splitBlock();x=!P.wasStartOfBlock;y=!P.wasEndOfBlock;u.insertNode(t);}}else if(!v)S._.nextNode=t.equals(B)?null:r(u.getBoundaryNodes().endNode,1,B);}if(x){var Q=t.getPrevious();if(Q&&Q.type==1)if(Q.getName()=='br')Q.remove();else if(Q.getLast()&&Q.getLast().$.nodeName.toLowerCase()=='br')Q.getLast().remove();}if(y){var R=t.getLast();if(R&&R.type==1&&R.getName()=='br')if(c||R.getPrevious(o)||R.getNext(o))R.remove();}if(!S._.nextNode)S._.nextNode=v||t.equals(B)||!B?null:r(t,1,B);return t;}};d.range.prototype.createIterator=function(){return new m(this);};})();j.add('panelbutton',{requires:['button'],onLoad:function(){function m(n){var p=this;var o=p._;if(o.state==0)return;p.createPanel(n);if(o.on){o.panel.hide();return;}o.panel.showBlock(p._.id,p.document.getById(p._.id),4);};k.panelButton=e.createClass({base:k.button,$:function(n){var p=this;var o=n.panel;delete n.panel;p.base(n);p.document=o&&o.parent&&o.parent.getDocument()||a.document;o.block={attributes:o.attributes};p.hasArrow=true;p.click=m;p._={panelDefinition:o};},statics:{handler:{create:function(n){return new k.panelButton(n);}}},proto:{createPanel:function(n){var o=this._;if(o.panel)return;var p=this._.panelDefinition||{},q=this._.panelDefinition.block,r=p.parent||a.document.getBody(),s=this._.panel=new k.floatPanel(n,r,p),t=s.addBlock(o.id,q),u=this;s.onShow=function(){if(u.className)this.element.getFirst().addClass(u.className+'_panel');u.setState(1);o.on=1;if(u.onOpen)u.onOpen();};s.onHide=function(v){if(u.className)this.element.getFirst().removeClass(u.className+'_panel');u.setState(u.modes&&u.modes[n.mode]?2:0);o.on=0;if(!v&&u.onClose)u.onClose();};s.onEscape=function(){s.hide();u.document.getById(o.id).focus();};if(this.onBlock)this.onBlock(s,t);t.onHide=function(){o.on=0;u.setState(2);};}}});},beforeInit:function(m){m.ui.addHandler('panelbutton',k.panelButton.handler);}});a.UI_PANELBUTTON='panelbutton';j.add('floatpanel',{requires:['panel']});(function(){var m={},n=false;function o(p,q,r,s,t){var u=e.genKey(q.getUniqueId(),r.getUniqueId(),p.skinName,p.lang.dir,p.uiColor||'',s.css||'',t||''),v=m[u];
+if(!v){v=m[u]=new k.panel(q,s);v.element=r.append(h.createFromHtml(v.renderHtml(p),q));v.element.setStyles({display:'none',position:'absolute'});}return v;};k.floatPanel=e.createClass({$:function(p,q,r,s){r.forceIFrame=1;var t=q.getDocument(),u=o(p,t,q,r,s||0),v=u.element,w=v.getFirst().getFirst();v.disableContextMenu();this.element=v;this._={editor:p,panel:u,parentElement:q,definition:r,document:t,iframe:w,children:[],dir:p.lang.dir};p.on('mode',function(){this.hide();},this);},proto:{addBlock:function(p,q){return this._.panel.addBlock(p,q);},addListBlock:function(p,q){return this._.panel.addListBlock(p,q);},getBlock:function(p){return this._.panel.getBlock(p);},showBlock:function(p,q,r,s,t){var u=this._.panel,v=u.showBlock(p);this.allowBlur(false);n=1;this._.returnFocus=this._.editor.focusManager.hasFocus?this._.editor:new h(a.document.$.activeElement);var w=this.element,x=this._.iframe,y=this._.definition,z=q.getDocumentPosition(w.getDocument()),A=this._.dir=='rtl',B=z.x+(s||0),C=z.y+(t||0);if(A&&(r==1||r==4))B+=q.$.offsetWidth;else if(!A&&(r==2||r==3))B+=q.$.offsetWidth-1;if(r==3||r==4)C+=q.$.offsetHeight-1;this._.panel._.offsetParentId=q.getId();w.setStyles({top:C+'px',left:0,display:''});w.setOpacity(0);w.getFirst().removeStyle('width');if(!this._.blurSet){var D=c?x:new d.window(x.$.contentWindow);a.event.useCapture=true;D.on('blur',function(E){var G=this;if(!G.allowBlur())return;var F=E.data.getTarget();if(F.getName&&F.getName()!='iframe')return;if(G.visible&&!G._.activeChild&&!n){delete G._.returnFocus;G.hide();}},this);D.on('focus',function(){this._.focused=true;this.hideChild();this.allowBlur(true);},this);a.event.useCapture=false;this._.blurSet=1;}u.onEscape=e.bind(function(E){if(this.onEscape&&this.onEscape(E)===false)return false;},this);e.setTimeout(function(){var E=e.bind(function(){var F=w.getFirst();if(v.autoSize){var G=v.element.$;if(b.gecko||b.opera)G=G.parentNode;if(c)G=G.document.body;var H=G.scrollWidth;if(c&&b.quirks&&H>0)H+=(F.$.offsetWidth||0)-(F.$.clientWidth||0)+3;H+=4;F.setStyle('width',H+'px');v.element.addClass('cke_frameLoaded');var I=v.element.$.scrollHeight;if(c&&b.quirks&&I>0)I+=(F.$.offsetHeight||0)-(F.$.clientHeight||0)+3;F.setStyle('height',I+'px');u._.currentBlock.element.setStyle('display','none').removeStyle('display');}else F.removeStyle('height');if(A)B-=w.$.offsetWidth;w.setStyle('left',B+'px');var J=u.element,K=J.getWindow(),L=w.$.getBoundingClientRect(),M=K.getViewPaneSize(),N=L.width||L.right-L.left,O=L.height||L.bottom-L.top,P=A?L.right:M.width-L.left,Q=A?M.width-L.right:L.left;
+if(A){if(P<N)if(Q>N)B+=N;else if(M.width>N)B-=L.left;else B=B-L.right+M.width;}else if(P<N)if(Q>N)B-=N;else if(M.width>N)B=B-L.right+M.width;else B-=L.left;var R=M.height-L.top,S=L.top;if(R<O)if(S>O)C-=O;else if(M.height>O)C=C-L.bottom+M.height;else C-=L.top;if(c){var T=new h(w.$.offsetParent),U=T;if(U.getName()=='html')U=U.getDocument().getBody();if(U.getComputedStyle('direction')=='rtl')if(b.ie8Compat)B-=w.getDocument().getDocumentElement().$.scrollLeft*2;else B-=T.$.scrollWidth-T.$.clientWidth;}var V=w.getFirst(),W;if(W=V.getCustomData('activePanel'))W.onHide&&W.onHide.call(this,1);V.setCustomData('activePanel',this);w.setStyles({top:C+'px',left:B+'px'});w.setOpacity(1);},this);u.isLoaded?E():u.onLoad=E;e.setTimeout(function(){x.$.contentWindow.focus();this.allowBlur(true);},0,this);},b.air?200:0,this);this.visible=1;if(this.onShow)this.onShow.call(this);n=0;},hide:function(p){var r=this;if(r.visible&&(!r.onHide||r.onHide.call(r)!==true)){r.hideChild();b.gecko&&r._.iframe.getFrameDocument().$.activeElement.blur();r.element.setStyle('display','none');r.visible=0;r.element.getFirst().removeCustomData('activePanel');var q=p!==false&&r._.returnFocus;if(q){if(b.webkit&&q.type)q.getWindow().$.focus();q.focus();}}},allowBlur:function(p){var q=this._.panel;if(p!=undefined)q.allowBlur=p;return q.allowBlur;},showAsChild:function(p,q,r,s,t,u){if(this._.activeChild==p&&p._.panel._.offsetParentId==r.getId())return;this.hideChild();p.onHide=e.bind(function(){e.setTimeout(function(){if(!this._.focused)this.hide();},0,this);},this);this._.activeChild=p;this._.focused=false;p.showBlock(q,r,s,t,u);if(b.ie7Compat||b.ie8&&b.ie6Compat)setTimeout(function(){p.element.getChild(0).$.style.cssText+='';},100);},hideChild:function(){var p=this._.activeChild;if(p){delete p.onHide;delete p._.returnFocus;delete this._.activeChild;p.hide();}}}});a.on('instanceDestroyed',function(){var p=e.isEmpty(a.instances);for(var q in m){var r=m[q];if(p)r.destroy();else r.element.hide();}p&&(m={});});})();j.add('menu',{beforeInit:function(m){var n=m.config.menu_groups.split(','),o=m._.menuGroups={},p=m._.menuItems={};for(var q=0;q<n.length;q++)o[n[q]]=q+1;m.addMenuGroup=function(r,s){o[r]=s||100;};m.addMenuItem=function(r,s){if(o[s.group])p[r]=new a.menuItem(this,r,s);};m.addMenuItems=function(r){for(var s in r)this.addMenuItem(s,r[s]);};m.getMenuItem=function(r){return p[r];};m.removeMenuItem=function(r){delete p[r];};},requires:['floatpanel']});(function(){a.menu=e.createClass({$:function(n,o){var r=this;
+o=r._.definition=o||{};r.id=e.getNextId();r.editor=n;r.items=[];r._.listeners=[];r._.level=o.level||1;var p=e.extend({},o.panel,{css:n.skin.editor.css,level:r._.level-1,block:{}}),q=p.block.attributes=p.attributes||{};!q.role&&(q.role='menu');r._.panelDefinition=p;},_:{onShow:function(){var v=this;var n=v.editor.getSelection();if(c)n&&n.lock();var o=n&&n.getStartElement(),p=v._.listeners,q=[];v.removeAll();for(var r=0;r<p.length;r++){var s=p[r](o,n);if(s)for(var t in s){var u=v.editor.getMenuItem(t);if(u&&(!u.command||v.editor.getCommand(u.command).state)){u.state=s[t];v.add(u);}}}},onClick:function(n){this.hide(false);if(n.onClick)n.onClick();else if(n.command)this.editor.execCommand(n.command);},onEscape:function(n){var o=this.parent;if(o){o._.panel.hideChild();var p=o._.panel._.panel._.currentBlock,q=p._.focusIndex;p._.markItem(q);}else if(n==27)this.hide();return false;},onHide:function(){var o=this;if(c&&!o.parent){var n=o.editor.getSelection();n&&n.unlock(true);}o.onHide&&o.onHide();},showSubMenu:function(n){var v=this;var o=v._.subMenu,p=v.items[n],q=p.getItems&&p.getItems();if(!q){v._.panel.hideChild();return;}var r=v._.panel.getBlock(v.id);r._.focusIndex=n;if(o)o.removeAll();else{o=v._.subMenu=new a.menu(v.editor,e.extend({},v._.definition,{level:v._.level+1},true));o.parent=v;o._.onClick=e.bind(v._.onClick,v);}for(var s in q){var t=v.editor.getMenuItem(s);if(t){t.state=q[s];o.add(t);}}var u=v._.panel.getBlock(v.id).element.getDocument().getById(v.id+String(n));o.show(u,2);}},proto:{add:function(n){if(!n.order)n.order=this.items.length;this.items.push(n);},removeAll:function(){this.items=[];},show:function(n,o,p,q){if(!this.parent){this._.onShow();if(!this.items.length)return;}o=o||(this.editor.lang.dir=='rtl'?2:1);var r=this.items,s=this.editor,t=this._.panel,u=this._.element;if(!t){t=this._.panel=new k.floatPanel(this.editor,a.document.getBody(),this._.panelDefinition,this._.level);t.onEscape=e.bind(function(F){if(this._.onEscape(F)===false)return false;},this);t.onHide=e.bind(function(){this._.onHide&&this._.onHide();},this);var v=t.addBlock(this.id,this._.panelDefinition.block);v.autoSize=true;var w=v.keys;w[40]='next';w[9]='next';w[38]='prev';w[2228224+9]='prev';w[s.lang.dir=='rtl'?37:39]=c?'mouseup':'click';w[32]=c?'mouseup':'click';c&&(w[13]='mouseup');u=this._.element=v.element;u.addClass(s.skinClass);var x=u.getDocument();x.getBody().setStyle('overflow','hidden');x.getElementsByTag('html').getItem(0).setStyle('overflow','hidden');this._.itemOverFn=e.addFunction(function(F){var G=this;
+clearTimeout(G._.showSubTimeout);G._.showSubTimeout=e.setTimeout(G._.showSubMenu,s.config.menu_subMenuDelay||400,G,[F]);},this);this._.itemOutFn=e.addFunction(function(F){clearTimeout(this._.showSubTimeout);},this);this._.itemClickFn=e.addFunction(function(F){var H=this;var G=H.items[F];if(G.state==0){H.hide();return;}if(G.getItems)H._.showSubMenu(F);else H._.onClick(G);},this);}m(r);var y=s.container.getChild(1),z=y.hasClass('cke_mixed_dir_content')?' cke_mixed_dir_content':'',A=['<div class="cke_menu'+z+'" role="presentation">'],B=r.length,C=B&&r[0].group;for(var D=0;D<B;D++){var E=r[D];if(C!=E.group){A.push('<div class="cke_menuseparator" role="separator"></div>');C=E.group;}E.render(this,D,A);}A.push('</div>');u.setHtml(A.join(''));k.fire('ready',this);if(this.parent)this.parent._.panel.showAsChild(t,this.id,n,o,p,q);else t.showBlock(this.id,n,o,p,q);s.fire('menuShow',[t]);},addListener:function(n){this._.listeners.push(n);},hide:function(n){var o=this;o._.onHide&&o._.onHide();o._.panel&&o._.panel.hide(n);}}});function m(n){n.sort(function(o,p){if(o.group<p.group)return-1;else if(o.group>p.group)return 1;return o.order<p.order?-1:o.order>p.order?1:0;});};a.menuItem=e.createClass({$:function(n,o,p){var q=this;e.extend(q,p,{order:0,className:'cke_button_'+o});q.group=n._.menuGroups[q.group];q.editor=n;q.name=o;},proto:{render:function(n,o,p){var w=this;var q=n.id+String(o),r=typeof w.state=='undefined'?2:w.state,s=' cke_'+(r==1?'on':r==0?'disabled':'off'),t=w.label;if(w.className)s+=' '+w.className;var u=w.getItems;p.push('<span class="cke_menuitem'+(w.icon&&w.icon.indexOf('.png')==-1?' cke_noalphafix':'')+'">'+'<a id="',q,'" class="',s,'" href="javascript:void(\'',(w.label||'').replace("'",''),'\')" title="',w.label,'" tabindex="-1"_cke_focus=1 hidefocus="true" role="menuitem"'+(u?'aria-haspopup="true"':'')+(r==0?'aria-disabled="true"':'')+(r==1?'aria-pressed="true"':''));if(b.opera||b.gecko&&b.mac)p.push(' onkeypress="return false;"');if(b.gecko)p.push(' onblur="this.style.cssText = this.style.cssText;"');var v=(w.iconOffset||0)*-16;p.push(' onmouseover="CKEDITOR.tools.callFunction(',n._.itemOverFn,',',o,');" onmouseout="CKEDITOR.tools.callFunction(',n._.itemOutFn,',',o,');" '+(c?'onclick="return false;" onmouseup':'onclick')+'="CKEDITOR.tools.callFunction(',n._.itemClickFn,',',o,'); return false;"><span class="cke_icon_wrapper"><span class="cke_icon"'+(w.icon?' style="background-image:url('+a.getUrl(w.icon)+');background-position:0 '+v+'px;"':'')+'></span></span>'+'<span class="cke_label">');
+if(u)p.push('<span class="cke_menuarrow">','<span>&#',w.editor.lang.dir=='rtl'?'9668':'9658',';</span>','</span>');p.push(t,'</span></a></span>');}}});})();i.menu_groups='clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div';(function(){var m;j.add('editingblock',{init:function(n){if(!n.config.editingBlock)return;n.on('themeSpace',function(o){if(o.data.space=='contents')o.data.html+='<br>';});n.on('themeLoaded',function(){n.fireOnce('editingBlockReady');});n.on('uiReady',function(){n.setMode(n.config.startupMode);});n.on('afterSetData',function(){if(!m){function o(){m=true;n.getMode().loadData(n.getData());m=false;};if(n.mode)o();else n.on('mode',function(){if(n.mode){o();n.removeListener('mode',arguments.callee);}});}});n.on('beforeGetData',function(){if(!m&&n.mode){m=true;n.setData(n.getMode().getData(),null,1);m=false;}});n.on('getSnapshot',function(o){if(n.mode)o.data=n.getMode().getSnapshotData();});n.on('loadSnapshot',function(o){if(n.mode)n.getMode().loadSnapshotData(o.data);});n.on('mode',function(o){o.removeListener();b.webkit&&n.container.on('focus',function(){n.focus();});if(n.config.startupFocus)n.focus();setTimeout(function(){n.fireOnce('instanceReady');a.fire('instanceReady',null,n);},0);});n.on('destroy',function(){var o=this;if(o.mode)o._.modes[o.mode].unload(o.getThemeSpace('contents'));});}});a.editor.prototype.mode='';a.editor.prototype.addMode=function(n,o){o.name=n;(this._.modes||(this._.modes={}))[n]=o;};a.editor.prototype.setMode=function(n){this.fire('beforeSetMode',{newMode:n});var o,p=this.getThemeSpace('contents'),q=this.checkDirty();if(this.mode){if(n==this.mode)return;this._.previousMode=this.mode;this.fire('beforeModeUnload');var r=this.getMode();o=r.getData();r.unload(p);this.mode='';}p.setHtml('');var s=this.getMode(n);if(!s)throw '[CKEDITOR.editor.setMode] Unknown mode "'+n+'".';if(!q)this.on('mode',function(){this.resetDirty();this.removeListener('mode',arguments.callee);});s.load(p,typeof o!='string'?this.getData():o);};a.editor.prototype.getMode=function(n){return this._.modes&&this._.modes[n||this.mode];};a.editor.prototype.focus=function(){this.forceNextSelectionCheck();var n=this.getMode();if(n)n.focus();};})();i.startupMode='wysiwyg';i.editingBlock=true;(function(){function m(){var C=this;try{var z=C.getSelection();if(!z||!z.document.getWindow().$)return;var A=z.getStartElement(),B=new d.elementPath(A);
+if(!B.compare(C._.selectionPreviousPath)){C._.selectionPreviousPath=B;C.fire('selectionChange',{selection:z,path:B,element:A});}}catch(D){}};var n,o;function p(){o=true;if(n)return;q.call(this);n=e.setTimeout(q,200,this);};function q(){n=null;if(o){e.setTimeout(m,0,this);o=false;}};function r(z){function A(E){return E&&E.type==1&&E.getName() in f.$removeEmpty;};function B(E){var F=z.document.getBody();return!E.is('body')&&F.getChildCount()==1;};var C=z.startContainer,D=z.startOffset;if(C.type==3)return false;return!e.trim(C.getHtml())?A(C)||B(C):A(C.getChild(D-1))||A(C.getChild(D));};var s={modes:{wysiwyg:1,source:1},readOnly:c||b.webkit,exec:function(z){switch(z.mode){case 'wysiwyg':z.document.$.execCommand('SelectAll',false,null);z.forceNextSelectionCheck();z.selectionChange();break;case 'source':var A=z.textarea.$;if(c)A.createTextRange().execCommand('SelectAll');else{A.selectionStart=0;A.selectionEnd=A.value.length;}A.focus();}},canUndo:false};function t(z){w(z);var A=z.createText('​');z.setCustomData('cke-fillingChar',A);return A;};function u(z){return z&&z.getCustomData('cke-fillingChar');};function v(z){var A=z&&u(z);if(A)if(A.getCustomData('ready'))w(z);else A.setCustomData('ready',1);};function w(z){var A=z&&z.removeCustomData('cke-fillingChar');if(A){var B,C=z.getSelection().getNative(),D=C&&C.type!='None'&&C.getRangeAt(0);if(A.getLength()>1&&D&&D.intersectsNode(A.$)){B=[C.anchorOffset,C.focusOffset];var E=C.anchorNode==A.$&&C.anchorOffset>0,F=C.focusNode==A.$&&C.focusOffset>0;E&&B[0]--;F&&B[1]--;x(C)&&B.unshift(B.pop());}A.setText(A.getText().replace(/\u200B/g,''));if(B){var G=C.getRangeAt(0);G.setStart(G.startContainer,B[0]);G.setEnd(G.startContainer,B[1]);C.removeAllRanges();C.addRange(G);}}};function x(z){if(!z.isCollapsed){var A=z.getRangeAt(0);A.setStart(z.anchorNode,z.anchorOffset);A.setEnd(z.focusNode,z.focusOffset);return A.collapsed;}};j.add('selection',{init:function(z){if(b.webkit){z.on('selectionChange',function(){v(z.document);});z.on('beforeSetMode',function(){w(z.document);});var A,B;function C(){var E=z.document,F=u(E);if(F){var G=E.$.defaultView.getSelection();if(G.type=='Caret'&&G.anchorNode==F.$)B=1;A=F.getText();F.setText(A.replace(/\u200B/g,''));}};function D(){var E=z.document,F=u(E);if(F){F.setText(A);if(B){E.$.defaultView.getSelection().setPosition(F.$,F.getLength());B=0;}}};z.on('beforeUndoImage',C);z.on('afterUndoImage',D);z.on('beforeGetData',C,null,null,0);z.on('getData',D);}z.on('contentDom',function(){var E=z.document,F=E.getBody(),G=E.getDocumentElement();
+if(c){var H,I,J=1;F.on('focusin',function(N){if(N.data.$.srcElement.nodeName!='BODY')return;var O=E.getCustomData('cke_locked_selection');if(O){O.unlock(1);O.lock();}else if(H&&J){try{H.select();}catch(P){}H=null;}});F.on('focus',function(){I=1;M();});F.on('beforedeactivate',function(N){if(N.data.$.toElement)return;I=0;J=1;});c&&z.on('blur',function(){try{E.$.selection.empty();}catch(N){}});G.on('mousedown',function(){J=0;});G.on('mouseup',function(){J=1;});var K;F.on('mousedown',function(N){if(N.data.$.button==2){var O=z.document.$.selection;if(O.type=='None')K=z.window.getScrollPosition();}L();});F.on('mouseup',function(N){if(N.data.$.button==2&&K){z.document.$.documentElement.scrollLeft=K.x;z.document.$.documentElement.scrollTop=K.y;}K=null;I=1;setTimeout(function(){M(true);},0);});F.on('keydown',L);F.on('keyup',function(){I=1;M();});if((b.ie7Compat||b.ie6Compat)&&E.$.compatMode!='BackCompat')G.on('mousedown',function(N){N=N.data.$;function O(Q){Q=Q.data.$;if(P){var R=F.$.createTextRange();R.moveToPoint(Q.x,Q.y);P.setEndPoint(P.compareEndPoints('StartToStart',R)<0?'EndToEnd':'StartToStart',R);P.select();}};if(N.y<G.$.clientHeight&&N.y>F.$.offsetTop+F.$.clientHeight&&N.x<G.$.clientWidth){var P=F.$.createTextRange();P.moveToPoint(N.x,N.y);P.select();G.on('mousemove',O);G.on('mouseup',function(Q){G.removeListener('mousemove',O);Q.removeListener();P.select();P=null;});}});if(b.ie8)G.on('mouseup',function(N){if(N.data.getTarget().getName()=='html'){var O=a.document.$.selection,P=O.createRange();if(O.type!='None'&&P.parentElement().ownerDocument==E.$)P.select();}});E.on('selectionchange',M);function L(){I=0;};function M(N){if(I){var O=z.document,P=z.getSelection(),Q=P&&P.getNative();if(N&&Q&&Q.type=='None')if(!O.$.queryCommandEnabled('InsertImage')){e.setTimeout(M,50,this,true);return;}var R;if(Q&&Q.type&&Q.type!='Control'&&(R=Q.createRange())&&(R=R.parentElement())&&(R=R.nodeName)&&R.toLowerCase() in {input:1,textarea:1})return;H=Q&&P.getRanges()[0];p.call(z);}};}else{E.on('mouseup',p,z);E.on('keyup',p,z);E.on('selectionchange',p,z);}if(b.webkit)E.on('keydown',function(N){var O=N.data.getKey();switch(O){case 13:case 33:case 34:case 35:case 36:case 37:case 39:case 8:case 45:case 46:w(z.document);}},null,null,10);});z.on('contentDomUnload',z.forceNextSelectionCheck,z);z.addCommand('selectAll',s);z.ui.addButton('SelectAll',{label:z.lang.selectAll,command:'selectAll'});z.selectionChange=p;b.ie9Compat&&z.on('destroy',function(){var E=z.getSelection();E&&E.getNative().clear();
+},null,null,9);}});a.editor.prototype.getSelection=function(){return this.document&&this.document.getSelection();};a.editor.prototype.forceNextSelectionCheck=function(){delete this._.selectionPreviousPath;};g.prototype.getSelection=function(){var z=new d.selection(this);return!z||z.isInvalid?null:z;};a.SELECTION_NONE=1;a.SELECTION_TEXT=2;a.SELECTION_ELEMENT=3;d.selection=function(z){var C=this;var A=z.getCustomData('cke_locked_selection');if(A)return A;C.document=z;C.isLocked=0;C._={cache:{}};if(c)try{var B=C.getNative().createRange();if(!B||B.item&&B.item(0).ownerDocument!=C.document.$||B.parentElement&&B.parentElement().ownerDocument!=C.document.$)throw 0;}catch(D){C.isInvalid=true;}return C;};var y={img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1};d.selection.prototype={getNative:c?function(){return this._.cache.nativeSel||(this._.cache.nativeSel=this.document.$.selection);}:function(){return this._.cache.nativeSel||(this._.cache.nativeSel=this.document.getWindow().$.getSelection());},getType:c?function(){var z=this._.cache;if(z.type)return z.type;var A=1;try{var B=this.getNative(),C=B.type;if(C=='Text')A=2;if(C=='Control')A=3;if(B.createRange().parentElement)A=2;}catch(D){}return z.type=A;}:function(){var z=this._.cache;if(z.type)return z.type;var A=2,B=this.getNative();if(!B)A=1;else if(B.rangeCount==1){var C=B.getRangeAt(0),D=C.startContainer;if(D==C.endContainer&&D.nodeType==1&&C.endOffset-C.startOffset==1&&y[D.childNodes[C.startOffset].nodeName.toLowerCase()])A=3;}return z.type=A;},getRanges:(function(){var z=c?(function(){function A(C){return new d.node(C).getIndex();};var B=function(C,D){C=C.duplicate();C.collapse(D);var E=C.parentElement(),F=E.ownerDocument;if(!E.hasChildNodes())return{container:E,offset:0};var G=E.children,H,I,J=C.duplicate(),K=0,L=G.length-1,M=-1,N,O,P;while(K<=L){M=Math.floor((K+L)/2);H=G[M];J.moveToElementText(H);N=J.compareEndPoints('StartToStart',C);if(N>0)L=M-1;else if(N<0)K=M+1;else if(b.ie9Compat&&H.tagName=='BR'){var Q=F.defaultView.getSelection();return{container:Q[D?'anchorNode':'focusNode'],offset:Q[D?'anchorOffset':'focusOffset']};}else return{container:E,offset:A(H)};}if(M==-1||M==G.length-1&&N<0){J.moveToElementText(E);J.setEndPoint('StartToStart',C);O=J.text.replace(/(\r\n|\r)/g,'\n').length;G=E.childNodes;if(!O){H=G[G.length-1];if(H.nodeType!=3)return{container:E,offset:G.length};else return{container:H,offset:H.nodeValue.length};
+}var R=G.length;while(O>0&&R>0){I=G[--R];if(I.nodeType==3){P=I;O-=I.nodeValue.length;}}return{container:P,offset:-O};}else{J.collapse(N>0?true:false);J.setEndPoint(N>0?'StartToStart':'EndToStart',C);O=J.text.replace(/(\r\n|\r)/g,'\n').length;if(!O)return{container:E,offset:A(H)+(N>0?0:1)};while(O>0)try{I=H[N>0?'previousSibling':'nextSibling'];if(I.nodeType==3){O-=I.nodeValue.length;P=I;}H=I;}catch(S){return{container:E,offset:A(H)};}return{container:P,offset:N>0?-O:P.nodeValue.length+O};}};return function(){var M=this;var C=M.getNative(),D=C&&C.createRange(),E=M.getType(),F;if(!C)return[];if(E==2){F=new d.range(M.document);var G=B(D,true);F.setStart(new d.node(G.container),G.offset);G=B(D);F.setEnd(new d.node(G.container),G.offset);if(F.endContainer.getPosition(F.startContainer)&4&&F.endOffset<=F.startContainer.getIndex())F.collapse();return[F];}else if(E==3){var H=[];for(var I=0;I<D.length;I++){var J=D.item(I),K=J.parentNode,L=0;F=new d.range(M.document);for(;L<K.childNodes.length&&K.childNodes[L]!=J;L++){}F.setStart(new d.node(K),L);F.setEnd(new d.node(K),L+1);H.push(F);}return H;}return[];};})():function(){var A=[],B,C=this.document,D=this.getNative();if(!D)return A;if(!D.rangeCount){B=new d.range(C);B.moveToElementEditStart(C.getBody());A.push(B);}for(var E=0;E<D.rangeCount;E++){var F=D.getRangeAt(E);B=new d.range(C);B.setStart(new d.node(F.startContainer),F.startOffset);B.setEnd(new d.node(F.endContainer),F.endOffset);A.push(B);}return A;};return function(A){var B=this._.cache;if(B.ranges&&!A)return B.ranges;else if(!B.ranges)B.ranges=new d.rangeList(z.call(this));if(A){var C=B.ranges;for(var D=0;D<C.length;D++){var E=C[D],F=E.getCommonAncestor();if(F.isReadOnly())C.splice(D,1);if(E.collapsed)continue;if(E.startContainer.isReadOnly()){var G=E.startContainer;while(G){if(G.is('body')||!G.isReadOnly())break;if(G.type==1&&G.getAttribute('contentEditable')=='false')E.setStartAfter(G);G=G.getParent();}}var H=E.startContainer,I=E.endContainer,J=E.startOffset,K=E.endOffset,L=E.clone();if(H&&H.type==3)if(J>=H.getLength())L.setStartAfter(H);else L.setStartBefore(H);if(I&&I.type==3)if(!K)L.setEndBefore(I);else L.setEndAfter(I);var M=new d.walker(L);M.evaluator=function(N){if(N.type==1&&N.isReadOnly()){var O=E.clone();E.setEndBefore(N);if(E.collapsed)C.splice(D--,1);if(!(N.getPosition(L.endContainer)&16)){O.setStartAfter(N);if(!O.collapsed)C.splice(D+1,0,O);}return true;}return false;};M.next();}}return B.ranges;};})(),getStartElement:function(){var G=this;var z=G._.cache;
+if(z.startElement!==undefined)return z.startElement;var A,B=G.getNative();switch(G.getType()){case 3:return G.getSelectedElement();case 2:var C=G.getRanges()[0];if(C){if(!C.collapsed){C.optimize();while(1){var D=C.startContainer,E=C.startOffset;if(E==(D.getChildCount?D.getChildCount():D.getLength())&&!D.isBlockBoundary())C.setStartAfter(D);else break;}A=C.startContainer;if(A.type!=1)return A.getParent();A=A.getChild(C.startOffset);if(!A||A.type!=1)A=C.startContainer;else{var F=A.getFirst();while(F&&F.type==1){A=F;F=F.getFirst();}}}else{A=C.startContainer;if(A.type!=1)A=A.getParent();}A=A.$;}}return z.startElement=A?new h(A):null;},getSelectedElement:function(){var z=this._.cache;if(z.selectedElement!==undefined)return z.selectedElement;var A=this,B=e.tryThese(function(){return A.getNative().createRange().item(0);},function(){var C,D,E=A.getRanges()[0],F=E.getCommonAncestor(1,1),G={table:1,ul:1,ol:1,dl:1};for(var H in G){if(C=F.getAscendant(H,1))break;}if(C){var I=new d.range(this.document);I.setStartAt(C,1);I.setEnd(E.startContainer,E.startOffset);var J=e.extend(G,f.$listItem,f.$tableContent),K=new d.walker(I),L=function(M,N){return function(O,P){if(O.type==3&&(!e.trim(O.getText())||O.getParent().data('cke-bookmark')))return true;var Q;if(O.type==1){Q=O.getName();if(Q=='br'&&N&&O.equals(O.getParent().getBogus()))return true;if(P&&Q in J||Q in f.$removeEmpty)return true;}M.halted=1;return false;};};K.guard=L(K);if(K.checkBackward()&&!K.halted){K=new d.walker(I);I.setStart(E.endContainer,E.endOffset);I.setEndAt(C,2);K.guard=L(K,1);if(K.checkForward()&&!K.halted)D=C.$;}}if(!D)throw 0;return D;},function(){var C=A.getRanges()[0],D,E;for(var F=2;F&&!((D=C.getEnclosedNode())&&D.type==1&&y[D.getName()]&&(E=D));F--)C.shrink(1);return E.$;});return z.selectedElement=B?new h(B):null;},getSelectedText:function(){var z=this._.cache;if(z.selectedText!==undefined)return z.selectedText;var A='',B=this.getNative();if(this.getType()==2)A=c?B.createRange().text:B.toString();return z.selectedText=A;},lock:function(){var z=this;z.getRanges();z.getStartElement();z.getSelectedElement();z.getSelectedText();z._.cache.nativeSel={};z.isLocked=1;z.document.setCustomData('cke_locked_selection',z);},unlock:function(z){var E=this;var A=E.document,B=A.getCustomData('cke_locked_selection');if(B){A.setCustomData('cke_locked_selection',null);if(z){var C=B.getSelectedElement(),D=!C&&B.getRanges();E.isLocked=0;E.reset();A.getBody().focus();if(C)E.selectElement(C);else E.selectRanges(D);}}if(!B||!z){E.isLocked=0;
+E.reset();}},reset:function(){this._.cache={};},selectElement:function(z){var B=this;if(B.isLocked){var A=new d.range(B.document);A.setStartBefore(z);A.setEndAfter(z);B._.cache.selectedElement=z;B._.cache.startElement=z;B._.cache.ranges=new d.rangeList(A);B._.cache.type=3;return;}A=new d.range(z.getDocument());A.setStartBefore(z);A.setEndAfter(z);A.select();B.document.fire('selectionchange');B.reset();},selectRanges:function(z){var N=this;if(N.isLocked){N._.cache.selectedElement=null;N._.cache.startElement=z[0]&&z[0].getTouchedStartNode();N._.cache.ranges=new d.rangeList(z);N._.cache.type=2;return;}if(c){if(z.length>1){var A=z[z.length-1];z[0].setEnd(A.endContainer,A.endOffset);z.length=1;}if(z[0])z[0].select();N.reset();}else{var B=N.getNative();if(!B)return;if(z.length){B.removeAllRanges();b.webkit&&w(N.document);}for(var C=0;C<z.length;C++){if(C<z.length-1){var D=z[C],E=z[C+1],F=D.clone();F.setStart(D.endContainer,D.endOffset);F.setEnd(E.startContainer,E.startOffset);if(!F.collapsed){F.shrink(1,true);var G=F.getCommonAncestor(),H=F.getEnclosedNode();if(G.isReadOnly()||H&&H.isReadOnly()){E.setStart(D.startContainer,D.startOffset);z.splice(C--,1);continue;}}}var I=z[C],J=N.document.$.createRange(),K=I.startContainer;if(I.collapsed&&(b.opera||b.gecko&&b.version<10900)&&K.type==1&&!K.getChildCount())K.appendText('');if(I.collapsed&&b.webkit&&r(I)){var L=t(N.document);I.insertNode(L);var M=L.getNext();if(M&&!L.getPrevious()&&M.type==1&&M.getName()=='br'){w(N.document);I.moveToPosition(M,3);}else I.moveToPosition(L,4);}J.setStart(I.startContainer.$,I.startOffset);try{J.setEnd(I.endContainer.$,I.endOffset);}catch(O){if(O.toString().indexOf('NS_ERROR_ILLEGAL_VALUE')>=0){I.collapse(1);J.setEnd(I.endContainer.$,I.endOffset);}else throw O;}B.addRange(J);}N.document.fire('selectionchange');N.reset();}},createBookmarks:function(z){return this.getRanges().createBookmarks(z);},createBookmarks2:function(z){return this.getRanges().createBookmarks2(z);},selectBookmarks:function(z){var A=[];for(var B=0;B<z.length;B++){var C=new d.range(this.document);C.moveToBookmark(z[B]);A.push(C);}this.selectRanges(A);return this;},getCommonAncestor:function(){var z=this.getRanges(),A=z[0].startContainer,B=z[z.length-1].endContainer;return A.getCommonAncestor(B);},scrollIntoView:function(){var z=this.getStartElement();z.scrollIntoView();}};})();(function(){var m=d.walker.whitespaces(true),n=/\ufeff|\u00a0/,o={table:1,tbody:1,tr:1};d.range.prototype.select=c?function(p){var A=this;var q=A.collapsed,r,s,t,u=A.getEnclosedNode();
+if(u)try{t=A.document.$.body.createControlRange();t.addElement(u.$);t.select();return;}catch(B){}if(A.startContainer.type==1&&A.startContainer.getName() in o||A.endContainer.type==1&&A.endContainer.getName() in o)A.shrink(1,true);var v=A.createBookmark(),w=v.startNode,x;if(!q)x=v.endNode;t=A.document.$.body.createTextRange();t.moveToElementText(w.$);t.moveStart('character',1);if(x){var y=A.document.$.body.createTextRange();y.moveToElementText(x.$);t.setEndPoint('EndToEnd',y);t.moveEnd('character',-1);}else{var z=w.getNext(m);r=!(z&&z.getText&&z.getText().match(n))&&(p||!w.hasPrevious()||w.getPrevious().is&&w.getPrevious().is('br'));s=A.document.createElement('span');s.setHtml('');s.insertBefore(w);if(r)A.document.createText('\ufeff').insertBefore(w);}A.setStartBefore(w);w.remove();if(q){if(r){t.moveStart('character',-1);t.select();A.document.$.selection.clear();}else t.select();A.moveToPosition(s,3);s.remove();}else{A.setEndBefore(x);x.remove();t.select();}A.document.fire('selectionchange');}:function(){this.document.getSelection().selectRanges([this]);};})();(function(){var m=a.htmlParser.cssStyle,n=e.cssLength,o=/^((?:\d*(?:\.\d+))|(?:\d+))(.*)?$/i;function p(r,s){var t=o.exec(r),u=o.exec(s);if(t){if(!t[2]&&u[2]=='px')return u[1];if(t[2]=='px'&&!u[2])return u[1]+'px';}return s;};var q={elements:{$:function(r){var s=r.attributes,t=s&&s['data-cke-realelement'],u=t&&new a.htmlParser.fragment.fromHtml(decodeURIComponent(t)),v=u&&u.children[0];if(v&&r.attributes['data-cke-resizable']){var w=new m(r).rules,x=v.attributes,y=w.width,z=w.height;y&&(x.width=p(x.width,y));z&&(x.height=p(x.height,z));}return v;}}};j.add('fakeobjects',{requires:['htmlwriter'],afterInit:function(r){var s=r.dataProcessor,t=s&&s.htmlFilter;if(t)t.addRules(q);}});a.editor.prototype.createFakeElement=function(r,s,t,u){var v=this.lang.fakeobjects,w=v[t]||v.unknown,x={'class':s,src:a.getUrl('images/spacer.gif'),'data-cke-realelement':encodeURIComponent(r.getOuterHtml()),'data-cke-real-node-type':r.type,alt:w,title:w,align:r.getAttribute('align')||''};if(t)x['data-cke-real-element-type']=t;if(u){x['data-cke-resizable']=u;var y=new m(),z=r.getAttribute('width'),A=r.getAttribute('height');z&&(y.rules.width=n(z));A&&(y.rules.height=n(A));y.populate(x);}return this.document.createElement('img',{attributes:x});};a.editor.prototype.createFakeParserElement=function(r,s,t,u){var v=this.lang.fakeobjects,w=v[t]||v.unknown,x,y=new a.htmlParser.basicWriter();r.writeHtml(y);x=y.getHtml();var z={'class':s,src:a.getUrl('images/spacer.gif'),'data-cke-realelement':encodeURIComponent(x),'data-cke-real-node-type':r.type,alt:w,title:w,align:r.attributes.align||''};
+if(t)z['data-cke-real-element-type']=t;if(u){z['data-cke-resizable']=u;var A=r.attributes,B=new m(),C=A.width,D=A.height;C!=undefined&&(B.rules.width=n(C));D!=undefined&&(B.rules.height=n(D));B.populate(z);}return new a.htmlParser.element('img',z);};a.editor.prototype.restoreRealElement=function(r){if(r.data('cke-real-node-type')!=1)return null;var s=h.createFromHtml(decodeURIComponent(r.data('cke-realelement')),this.document);if(r.data('cke-resizable')){var t=r.getStyle('width'),u=r.getStyle('height');t&&s.setAttribute('width',p(s.getAttribute('width'),t));u&&s.setAttribute('height',p(s.getAttribute('height'),u));}return s;};})();j.add('richcombo',{requires:['floatpanel','listblock','button'],beforeInit:function(m){m.ui.addHandler('richcombo',k.richCombo.handler);}});a.UI_RICHCOMBO='richcombo';k.richCombo=e.createClass({$:function(m){var o=this;e.extend(o,m,{title:m.label,modes:{wysiwyg:1}});var n=o.panel||{};delete o.panel;o.id=e.getNextNumber();o.document=n&&n.parent&&n.parent.getDocument()||a.document;n.className=(n.className||'')+' cke_rcombopanel';n.block={multiSelect:n.multiSelect,attributes:n.attributes};o._={panelDefinition:n,items:{},state:2};},statics:{handler:{create:function(m){return new k.richCombo(m);}}},proto:{renderHtml:function(m){var n=[];this.render(m,n);return n.join('');},render:function(m,n){var o=b,p='cke_'+this.id,q=e.addFunction(function(v){var y=this;var w=y._;if(w.state==0)return;y.createPanel(m);if(w.on){w.panel.hide();return;}y.commit();var x=y.getValue();if(x)w.list.mark(x);else w.list.unmarkAll();w.panel.showBlock(y.id,new h(v),4);},this),r={id:p,combo:this,focus:function(){var v=a.document.getById(p).getChild(1);v.focus();},clickFn:q};function s(){var w=this;var v=w.modes[m.mode]?2:0;w.setState(m.readOnly&&!w.readOnly?0:v);w.setValue('');};m.on('mode',s,this);!this.readOnly&&m.on('readOnly',s,this);var t=e.addFunction(function(v,w){v=new d.event(v);var x=v.getKeystroke();switch(x){case 13:case 32:case 40:e.callFunction(q,w);break;default:r.onkey(r,x);}v.preventDefault();}),u=e.addFunction(function(){r.onfocus&&r.onfocus();});r.keyDownFn=t;n.push('<span class="cke_rcombo" role="presentation">','<span id=',p);if(this.className)n.push(' class="',this.className,' cke_off"');n.push(' role="presentation">','<span id="'+p+'_label" class=cke_label>',this.label,'</span>','<a hidefocus=true title="',this.title,'" tabindex="-1"',o.gecko&&o.version>=10900&&!o.hc?'':" href=\"javascript:void('"+this.label+"')\"",' role="button" aria-labelledby="',p,'_label" aria-describedby="',p,'_text" aria-haspopup="true"');
+if(b.opera||b.gecko&&b.mac)n.push(' onkeypress="return false;"');if(b.gecko)n.push(' onblur="this.style.cssText = this.style.cssText;"');n.push(' onkeydown="CKEDITOR.tools.callFunction( ',t,', event, this );" onfocus="return CKEDITOR.tools.callFunction(',u,', event);" '+(c?'onclick="return false;" onmouseup':'onclick')+'="CKEDITOR.tools.callFunction(',q,', this); return false;"><span><span id="'+p+'_text" class="cke_text cke_inline_label">'+this.label+'</span>'+'</span>'+'<span class=cke_openbutton><span class=cke_icon>'+(b.hc?'▼':b.air?' ':'')+'</span></span>'+'</a>'+'</span>'+'</span>');if(this.onRender)this.onRender();return r;},createPanel:function(m){if(this._.panel)return;var n=this._.panelDefinition,o=this._.panelDefinition.block,p=n.parent||a.document.getBody(),q=new k.floatPanel(m,p,n),r=q.addListBlock(this.id,o),s=this;q.onShow=function(){if(s.className)this.element.getFirst().addClass(s.className+'_panel');s.setState(1);r.focus(!s.multiSelect&&s.getValue());s._.on=1;if(s.onOpen)s.onOpen();};q.onHide=function(t){if(s.className)this.element.getFirst().removeClass(s.className+'_panel');s.setState(s.modes&&s.modes[m.mode]?2:0);s._.on=0;if(!t&&s.onClose)s.onClose();};q.onEscape=function(){q.hide();};r.onClick=function(t,u){s.document.getWindow().focus();if(s.onClick)s.onClick.call(s,t,u);if(u)s.setValue(t,s._.items[t]);else s.setValue('');q.hide(false);};this._.panel=q;this._.list=r;q.getBlock(this.id).onHide=function(){s._.on=0;s.setState(2);};if(this.init)this.init();},setValue:function(m,n){var p=this;p._.value=m;var o=p.document.getById('cke_'+p.id+'_text');if(o){if(!(m||n)){n=p.label;o.addClass('cke_inline_label');}else o.removeClass('cke_inline_label');o.setHtml(typeof n!='undefined'?n:m);}},getValue:function(){return this._.value||'';},unmarkAll:function(){this._.list.unmarkAll();},mark:function(m){this._.list.mark(m);},hideItem:function(m){this._.list.hideItem(m);},hideGroup:function(m){this._.list.hideGroup(m);},showAll:function(){this._.list.showAll();},add:function(m,n,o){this._.items[m]=o||m;this._.list.add(m,n,o);},startGroup:function(m){this._.list.startGroup(m);},commit:function(){var m=this;if(!m._.committed){m._.list.commit();m._.committed=1;k.fire('ready',m);}m._.committed=1;},setState:function(m){var n=this;if(n._.state==m)return;n.document.getById('cke_'+n.id).setState(m);n._.state=m;}}});k.prototype.addRichCombo=function(m,n){this.add(m,'richcombo',n);};j.add('htmlwriter');a.htmlWriter=e.createClass({base:a.htmlParser.basicWriter,$:function(){var o=this;
+o.base();o.indentationChars='\t';o.selfClosingEnd=' />';o.lineBreakChars='\n';o.forceSimpleAmpersand=0;o.sortAttributes=1;o._.indent=0;o._.indentation='';o._.inPre=0;o._.rules={};var m=f;for(var n in e.extend({},m.$nonBodyContent,m.$block,m.$listItem,m.$tableContent))o.setRules(n,{indent:1,breakBeforeOpen:1,breakAfterOpen:1,breakBeforeClose:!m[n]['#'],breakAfterClose:1});o.setRules('br',{breakAfterOpen:1});o.setRules('title',{indent:0,breakAfterOpen:0});o.setRules('style',{indent:0,breakBeforeClose:1});o.setRules('pre',{indent:0});},proto:{openTag:function(m,n){var p=this;var o=p._.rules[m];if(p._.indent)p.indentation();else if(o&&o.breakBeforeOpen){p.lineBreak();p.indentation();}p._.output.push('<',m);},openTagClose:function(m,n){var p=this;var o=p._.rules[m];if(n)p._.output.push(p.selfClosingEnd);else{p._.output.push('>');if(o&&o.indent)p._.indentation+=p.indentationChars;}if(o&&o.breakAfterOpen)p.lineBreak();m=='pre'&&(p._.inPre=1);},attribute:function(m,n){if(typeof n=='string'){this.forceSimpleAmpersand&&(n=n.replace(/&/g,'&'));n=e.htmlEncodeAttr(n);}this._.output.push(' ',m,'="',n,'"');},closeTag:function(m){var o=this;var n=o._.rules[m];if(n&&n.indent)o._.indentation=o._.indentation.substr(o.indentationChars.length);if(o._.indent)o.indentation();else if(n&&n.breakBeforeClose){o.lineBreak();o.indentation();}o._.output.push('</',m,'>');m=='pre'&&(o._.inPre=0);if(n&&n.breakAfterClose)o.lineBreak();},text:function(m){var n=this;if(n._.indent){n.indentation();!n._.inPre&&(m=e.ltrim(m));}n._.output.push(m);},comment:function(m){if(this._.indent)this.indentation();this._.output.push('<!--',m,'-->');},lineBreak:function(){var m=this;if(!m._.inPre&&m._.output.length>0)m._.output.push(m.lineBreakChars);m._.indent=1;},indentation:function(){var m=this;if(!m._.inPre)m._.output.push(m._.indentation);m._.indent=0;},setRules:function(m,n){var o=this._.rules[m];if(o)e.extend(o,n,true);else this._.rules[m]=n;}}});j.add('menubutton',{requires:['button','menu'],beforeInit:function(m){m.ui.addHandler('menubutton',k.menuButton.handler);}});a.UI_MENUBUTTON='menubutton';(function(){var m=function(n){var o=this._;if(o.state===0)return;o.previousState=o.state;var p=o.menu;if(!p){p=o.menu=new a.menu(n,{panel:{className:n.skinClass+' cke_contextmenu',attributes:{'aria-label':n.lang.common.options}}});p.onHide=e.bind(function(){this.setState(this.modes&&this.modes[n.mode]?o.previousState:0);},this);if(this.onMenu)p.addListener(this.onMenu);}if(o.on){p.hide();return;}this.setState(1);
+p.show(a.document.getById(this._.id),4);};k.menuButton=e.createClass({base:k.button,$:function(n){var o=n.panel;delete n.panel;this.base(n);this.hasArrow=true;this.click=m;},statics:{handler:{create:function(n){return new k.menuButton(n);}}}});})();j.add('dialogui');(function(){var m=function(u){var x=this;x._||(x._={});x._['default']=x._.initValue=u['default']||'';x._.required=u.required||false;var v=[x._];for(var w=1;w<arguments.length;w++)v.push(arguments[w]);v.push(true);e.extend.apply(e,v);return x._;},n={build:function(u,v,w){return new k.dialog.textInput(u,v,w);}},o={build:function(u,v,w){return new k.dialog[v.type](u,v,w);}},p={build:function(u,v,w){var x=v.children,y,z=[],A=[];for(var B=0;B<x.length&&(y=x[B]);B++){var C=[];z.push(C);A.push(a.dialog._.uiElementBuilders[y.type].build(u,y,C));}return new k.dialog[v.type](u,A,z,w,v);}},q={isChanged:function(){return this.getValue()!=this.getInitValue();},reset:function(u){this.setValue(this.getInitValue(),u);},setInitValue:function(){this._.initValue=this.getValue();},resetInitValue:function(){this._.initValue=this._['default'];},getInitValue:function(){return this._.initValue;}},r=e.extend({},k.dialog.uiElement.prototype.eventProcessors,{onChange:function(u,v){if(!this._.domOnChangeRegistered){u.on('load',function(){this.getInputElement().on('change',function(){if(!u.parts.dialog.isVisible())return;this.fire('change',{value:this.getValue()});},this);},this);this._.domOnChangeRegistered=true;}this.on('change',v);}},true),s=/^on([A-Z]\w+)/,t=function(u){for(var v in u){if(s.test(v)||v=='title'||v=='type')delete u[v];}return u;};e.extend(k.dialog,{labeledElement:function(u,v,w,x){if(arguments.length<4)return;var y=m.call(this,v);y.labelId=e.getNextId()+'_label';var z=this._.children=[],A=function(){var B=[],C=v.required?' cke_required':'';if(v.labelLayout!='horizontal')B.push('<label class="cke_dialog_ui_labeled_label'+C+'" ',' id="'+y.labelId+'"',' for="'+y.inputId+'"',(v.labelStyle?' style="'+v.labelStyle+'"':'')+'>',v.label,'</label>','<div class="cke_dialog_ui_labeled_content"'+(v.controlStyle?' style="'+v.controlStyle+'"':'')+' role="presentation">',x.call(this,u,v),'</div>');else{var D={type:'hbox',widths:v.widths,padding:0,children:[{type:'html',html:'<label class="cke_dialog_ui_labeled_label'+C+'"'+' id="'+y.labelId+'"'+' for="'+y.inputId+'"'+(v.labelStyle?' style="'+v.labelStyle+'"':'')+'>'+e.htmlEncode(v.label)+'</span>'},{type:'html',html:'<span class="cke_dialog_ui_labeled_content"'+(v.controlStyle?' style="'+v.controlStyle+'"':'')+'>'+x.call(this,u,v)+'</span>'}]};
+a.dialog._.uiElementBuilders.hbox.build(u,D,B);}return B.join('');};k.dialog.uiElement.call(this,u,v,w,'div',null,{role:'presentation'},A);},textInput:function(u,v,w){if(arguments.length<3)return;m.call(this,v);var x=this._.inputId=e.getNextId()+'_textInput',y={'class':'cke_dialog_ui_input_'+v.type,id:x,type:v.type},z;if(v.validate)this.validate=v.validate;if(v.maxLength)y.maxlength=v.maxLength;if(v.size)y.size=v.size;if(v.inputStyle)y.style=v.inputStyle;var A=this,B=false;u.on('load',function(){A.getInputElement().on('keydown',function(D){if(D.data.getKeystroke()==13)B=true;});A.getInputElement().on('keyup',function(D){if(D.data.getKeystroke()==13&&B){u.getButton('ok')&&setTimeout(function(){u.getButton('ok').click();},0);B=false;}},null,null,1000);});var C=function(){var D=['<div class="cke_dialog_ui_input_',v.type,'" role="presentation"'];if(v.width)D.push('style="width:'+v.width+'" ');D.push('><input ');y['aria-labelledby']=this._.labelId;this._.required&&(y['aria-required']=this._.required);for(var E in y)D.push(E+'="'+y[E]+'" ');D.push(' /></div>');return D.join('');};k.dialog.labeledElement.call(this,u,v,w,C);},textarea:function(u,v,w){if(arguments.length<3)return;m.call(this,v);var x=this,y=this._.inputId=e.getNextId()+'_textarea',z={};if(v.validate)this.validate=v.validate;z.rows=v.rows||5;z.cols=v.cols||20;if(typeof v.inputStyle!='undefined')z.style=v.inputStyle;var A=function(){z['aria-labelledby']=this._.labelId;this._.required&&(z['aria-required']=this._.required);var B=['<div class="cke_dialog_ui_input_textarea" role="presentation"><textarea class="cke_dialog_ui_input_textarea" id="',y,'" '];for(var C in z)B.push(C+'="'+e.htmlEncode(z[C])+'" ');B.push('>',e.htmlEncode(x._['default']),'</textarea></div>');return B.join('');};k.dialog.labeledElement.call(this,u,v,w,A);},checkbox:function(u,v,w){if(arguments.length<3)return;var x=m.call(this,v,{'default':!!v['default']});if(v.validate)this.validate=v.validate;var y=function(){var z=e.extend({},v,{id:v.id?v.id+'_checkbox':e.getNextId()+'_checkbox'},true),A=[],B=e.getNextId()+'_label',C={'class':'cke_dialog_ui_checkbox_input',type:'checkbox','aria-labelledby':B};t(z);if(v['default'])C.checked='checked';if(typeof z.inputStyle!='undefined')z.style=z.inputStyle;x.checkbox=new k.dialog.uiElement(u,z,A,'input',null,C);A.push(' <label id="',B,'" for="',C.id,'"'+(v.labelStyle?' style="'+v.labelStyle+'"':'')+'>',e.htmlEncode(v.label),'</label>');return A.join('');};k.dialog.uiElement.call(this,u,v,w,'span',null,null,y);
+},radio:function(u,v,w){if(arguments.length<3)return;m.call(this,v);if(!this._['default'])this._['default']=this._.initValue=v.items[0][1];if(v.validate)this.validate=v.valdiate;var x=[],y=this,z=function(){var A=[],B=[],C={'class':'cke_dialog_ui_radio_item','aria-labelledby':this._.labelId},D=v.id?v.id+'_radio':e.getNextId()+'_radio';for(var E=0;E<v.items.length;E++){var F=v.items[E],G=F[2]!==undefined?F[2]:F[0],H=F[1]!==undefined?F[1]:F[0],I=e.getNextId()+'_radio_input',J=I+'_label',K=e.extend({},v,{id:I,title:null,type:null},true),L=e.extend({},K,{title:G},true),M={type:'radio','class':'cke_dialog_ui_radio_input',name:D,value:H,'aria-labelledby':J},N=[];if(y._['default']==H)M.checked='checked';t(K);t(L);if(typeof K.inputStyle!='undefined')K.style=K.inputStyle;x.push(new k.dialog.uiElement(u,K,N,'input',null,M));N.push(' ');new k.dialog.uiElement(u,L,N,'label',null,{id:J,'for':M.id},F[0]);A.push(N.join(''));}new k.dialog.hbox(u,x,A,B);return B.join('');};k.dialog.labeledElement.call(this,u,v,w,z);this._.children=x;},button:function(u,v,w){if(!arguments.length)return;if(typeof v=='function')v=v(u.getParentEditor());m.call(this,v,{disabled:v.disabled||false});a.event.implementOn(this);var x=this;u.on('load',function(A){var B=this.getElement();(function(){B.on('click',function(C){x.fire('click',{dialog:x.getDialog()});C.data.preventDefault();});B.on('keydown',function(C){if(C.data.getKeystroke() in {32:1}){x.click();C.data.preventDefault();}});})();B.unselectable();},this);var y=e.extend({},v);delete y.style;var z=e.getNextId()+'_label';k.dialog.uiElement.call(this,u,y,w,'a',null,{style:v.style,href:'javascript:void(0)',title:v.label,hidefocus:'true','class':v['class'],role:'button','aria-labelledby':z},'<span id="'+z+'" class="cke_dialog_ui_button">'+e.htmlEncode(v.label)+'</span>');},select:function(u,v,w){if(arguments.length<3)return;var x=m.call(this,v);if(v.validate)this.validate=v.validate;x.inputId=e.getNextId()+'_select';var y=function(){var z=e.extend({},v,{id:v.id?v.id+'_select':e.getNextId()+'_select'},true),A=[],B=[],C={id:x.inputId,'class':'cke_dialog_ui_input_select','aria-labelledby':this._.labelId};if(v.size!=undefined)C.size=v.size;if(v.multiple!=undefined)C.multiple=v.multiple;t(z);for(var D=0,E;D<v.items.length&&(E=v.items[D]);D++)B.push('<option value="',e.htmlEncode(E[1]!==undefined?E[1]:E[0]).replace(/"/g,'"'),'" /> ',e.htmlEncode(E[0]));if(typeof z.inputStyle!='undefined')z.style=z.inputStyle;x.select=new k.dialog.uiElement(u,z,A,'select',null,C,B.join(''));
+return A.join('');};k.dialog.labeledElement.call(this,u,v,w,y);},file:function(u,v,w){if(arguments.length<3)return;if(v['default']===undefined)v['default']='';var x=e.extend(m.call(this,v),{definition:v,buttons:[]});if(v.validate)this.validate=v.validate;var y=function(){x.frameId=e.getNextId()+'_fileInput';var z=b.isCustomDomain(),A=['<iframe frameborder="0" allowtransparency="0" class="cke_dialog_ui_input_file" id="',x.frameId,'" title="',v.label,'" src="javascript:void('];A.push(z?"(function(){document.open();document.domain='"+document.domain+"';"+'document.close();'+'})()':'0');A.push(')"></iframe>');return A.join('');};u.on('load',function(){var z=a.document.getById(x.frameId),A=z.getParent();A.addClass('cke_dialog_ui_input_file');});k.dialog.labeledElement.call(this,u,v,w,y);},fileButton:function(u,v,w){if(arguments.length<3)return;var x=m.call(this,v),y=this;if(v.validate)this.validate=v.validate;var z=e.extend({},v),A=z.onClick;z.className=(z.className?z.className+' ':'')+'cke_dialog_ui_button';z.onClick=function(B){var C=v['for'];if(!A||A.call(this,B)!==false){u.getContentElement(C[0],C[1]).submit();this.disable();}};u.on('load',function(){u.getContentElement(v['for'][0],v['for'][1])._.buttons.push(y);});k.dialog.button.call(this,u,z,w);},html:(function(){var u=/^\s*<[\w:]+\s+([^>]*)?>/,v=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,w=/\/$/;return function(x,y,z){if(arguments.length<3)return;var A=[],B,C=y.html,D,E;if(C.charAt(0)!='<')C='<span>'+C+'</span>';var F=y.focus;if(F){var G=this.focus;this.focus=function(){G.call(this);typeof F=='function'&&F.call(this);this.fire('focus');};if(y.isFocusable){var H=this.isFocusable;this.isFocusable=H;}this.keyboardFocusable=true;}k.dialog.uiElement.call(this,x,y,A,'span',null,null,'');B=A.join('');D=B.match(u);E=C.match(v)||['','',''];if(w.test(E[1])){E[1]=E[1].slice(0,-1);E[2]='/'+E[2];}z.push([E[1],' ',D[1]||'',E[2]].join(''));};})(),fieldset:function(u,v,w,x,y){var z=y.label,A=function(){var B=[];z&&B.push('<legend'+(y.labelStyle?' style="'+y.labelStyle+'"':'')+'>'+z+'</legend>');for(var C=0;C<w.length;C++)B.push(w[C]);return B.join('');};this._={children:v};k.dialog.uiElement.call(this,u,y,x,'fieldset',null,null,A);}},true);k.dialog.html.prototype=new k.dialog.uiElement();k.dialog.labeledElement.prototype=e.extend(new k.dialog.uiElement(),{setLabel:function(u){var v=a.document.getById(this._.labelId);if(v.getChildCount()<1)new d.text(u,a.document).appendTo(v);else v.getChild(0).$.nodeValue=u;return this;
+},getLabel:function(){var u=a.document.getById(this._.labelId);if(!u||u.getChildCount()<1)return '';else return u.getChild(0).getText();},eventProcessors:r},true);k.dialog.button.prototype=e.extend(new k.dialog.uiElement(),{click:function(){var u=this;if(!u._.disabled)return u.fire('click',{dialog:u._.dialog});u.getElement().$.blur();return false;},enable:function(){this._.disabled=false;var u=this.getElement();u&&u.removeClass('cke_disabled');},disable:function(){this._.disabled=true;this.getElement().addClass('cke_disabled');},isVisible:function(){return this.getElement().getFirst().isVisible();},isEnabled:function(){return!this._.disabled;},eventProcessors:e.extend({},k.dialog.uiElement.prototype.eventProcessors,{onClick:function(u,v){this.on('click',function(){this.getElement().focus();v.apply(this,arguments);});}},true),accessKeyUp:function(){this.click();},accessKeyDown:function(){this.focus();},keyboardFocusable:true},true);k.dialog.textInput.prototype=e.extend(new k.dialog.labeledElement(),{getInputElement:function(){return a.document.getById(this._.inputId);},focus:function(){var u=this.selectParentTab();setTimeout(function(){var v=u.getInputElement();v&&v.$.focus();},0);},select:function(){var u=this.selectParentTab();setTimeout(function(){var v=u.getInputElement();if(v){v.$.focus();v.$.select();}},0);},accessKeyUp:function(){this.select();},setValue:function(u){!u&&(u='');return k.dialog.uiElement.prototype.setValue.apply(this,arguments);},keyboardFocusable:true},q,true);k.dialog.textarea.prototype=new k.dialog.textInput();k.dialog.select.prototype=e.extend(new k.dialog.labeledElement(),{getInputElement:function(){return this._.select.getElement();},add:function(u,v,w){var x=new h('option',this.getDialog().getParentEditor().document),y=this.getInputElement().$;x.$.text=u;x.$.value=v===undefined||v===null?u:v;if(w===undefined||w===null){if(c)y.add(x.$);else y.add(x.$,null);}else y.add(x.$,w);return this;},remove:function(u){var v=this.getInputElement().$;v.remove(u);return this;},clear:function(){var u=this.getInputElement().$;while(u.length>0)u.remove(0);return this;},keyboardFocusable:true},q,true);k.dialog.checkbox.prototype=e.extend(new k.dialog.uiElement(),{getInputElement:function(){return this._.checkbox.getElement();},setValue:function(u,v){this.getInputElement().$.checked=u;!v&&this.fire('change',{value:u});},getValue:function(){return this.getInputElement().$.checked;},accessKeyUp:function(){this.setValue(!this.getValue());},eventProcessors:{onChange:function(u,v){if(!c)return r.onChange.apply(this,arguments);
+else{u.on('load',function(){var w=this._.checkbox.getElement();w.on('propertychange',function(x){x=x.data.$;if(x.propertyName=='checked')this.fire('change',{value:w.$.checked});},this);},this);this.on('change',v);}return null;}},keyboardFocusable:true},q,true);k.dialog.radio.prototype=e.extend(new k.dialog.uiElement(),{setValue:function(u,v){var w=this._.children,x;for(var y=0;y<w.length&&(x=w[y]);y++)x.getElement().$.checked=x.getValue()==u;!v&&this.fire('change',{value:u});},getValue:function(){var u=this._.children;for(var v=0;v<u.length;v++){if(u[v].getElement().$.checked)return u[v].getValue();}return null;},accessKeyUp:function(){var u=this._.children,v;for(v=0;v<u.length;v++){if(u[v].getElement().$.checked){u[v].getElement().focus();return;}}u[0].getElement().focus();},eventProcessors:{onChange:function(u,v){if(!c)return r.onChange.apply(this,arguments);else{u.on('load',function(){var w=this._.children,x=this;for(var y=0;y<w.length;y++){var z=w[y].getElement();z.on('propertychange',function(A){A=A.data.$;if(A.propertyName=='checked'&&this.$.checked)x.fire('change',{value:this.getAttribute('value')});});}},this);this.on('change',v);}return null;}},keyboardFocusable:true},q,true);k.dialog.file.prototype=e.extend(new k.dialog.labeledElement(),q,{getInputElement:function(){var u=a.document.getById(this._.frameId).getFrameDocument();return u.$.forms.length>0?new h(u.$.forms[0].elements[0]):this.getElement();},submit:function(){this.getInputElement().getParent().$.submit();return this;},getAction:function(){return this.getInputElement().getParent().$.action;},registerEvents:function(u){var v=/^on([A-Z]\w+)/,w,x=function(z,A,B,C){z.on('formLoaded',function(){z.getInputElement().on(B,C,z);});};for(var y in u){if(!(w=y.match(v)))continue;if(this.eventProcessors[y])this.eventProcessors[y].call(this,this._.dialog,u[y]);else x(this,this._.dialog,w[1].toLowerCase(),u[y]);}return this;},reset:function(){var u=this._,v=a.document.getById(u.frameId),w=v.getFrameDocument(),x=u.definition,y=u.buttons,z=this.formLoadedNumber,A=this.formUnloadNumber,B=u.dialog._.editor.lang.dir,C=u.dialog._.editor.langCode;if(!z){z=this.formLoadedNumber=e.addFunction(function(){this.fire('formLoaded');},this);A=this.formUnloadNumber=e.addFunction(function(){this.getInputElement().clearCustomData();},this);this.getDialog()._.editor.on('destroy',function(){e.removeFunction(z);e.removeFunction(A);});}function D(){w.$.open();if(b.isCustomDomain())w.$.domain=document.domain;var E='';if(x.size)E=x.size-(c?7:0);
+w.$.write(['<html dir="'+B+'" lang="'+C+'"><head><title></title></head><body style="margin: 0; overflow: hidden; background: transparent;">','<form enctype="multipart/form-data" method="POST" dir="'+B+'" lang="'+C+'" action="',e.htmlEncode(x.action),'">','<input type="file" name="',e.htmlEncode(x.id||'cke_upload'),'" size="',e.htmlEncode(E>0?E:''),'" />','</form>','</body></html>','<script>window.parent.CKEDITOR.tools.callFunction('+z+');','window.onbeforeunload = function() {window.parent.CKEDITOR.tools.callFunction('+A+')}</script>'].join(''));w.$.close();for(var F=0;F<y.length;F++)y[F].enable();};if(b.gecko)setTimeout(D,500);else D();},getValue:function(){return this.getInputElement().$.value||'';},setInitValue:function(){this._.initValue='';},eventProcessors:{onChange:function(u,v){if(!this._.domOnChangeRegistered){this.on('formLoaded',function(){this.getInputElement().on('change',function(){this.fire('change',{value:this.getValue()});},this);},this);this._.domOnChangeRegistered=true;}this.on('change',v);}},keyboardFocusable:true},true);k.dialog.fileButton.prototype=new k.dialog.button();k.dialog.fieldset.prototype=e.clone(k.dialog.hbox.prototype);a.dialog.addUIElement('text',n);a.dialog.addUIElement('password',n);a.dialog.addUIElement('textarea',o);a.dialog.addUIElement('checkbox',o);a.dialog.addUIElement('radio',o);a.dialog.addUIElement('button',o);a.dialog.addUIElement('select',o);a.dialog.addUIElement('file',o);a.dialog.addUIElement('fileButton',o);a.dialog.addUIElement('html',o);a.dialog.addUIElement('fieldset',p);})();j.add('panel',{beforeInit:function(m){m.ui.addHandler('panel',k.panel.handler);}});a.UI_PANEL='panel';k.panel=function(m,n){var o=this;if(n)e.extend(o,n);e.extend(o,{className:'',css:[]});o.id=e.getNextId();o.document=m;o._={blocks:{}};};k.panel.handler={create:function(m){return new k.panel(m);}};k.panel.prototype={renderHtml:function(m){var n=[];this.render(m,n);return n.join('');},render:function(m,n){var p=this;var o=p.id;n.push('<div class="',m.skinClass,'" lang="',m.langCode,'" role="presentation" style="display:none;z-index:'+(m.config.baseFloatZIndex+1)+'">'+'<div'+' id=',o,' dir=',m.lang.dir,' role="presentation" class="cke_panel cke_',m.lang.dir);if(p.className)n.push(' ',p.className);n.push('">');if(p.forceIFrame||p.css.length){n.push('<iframe id="',o,'_frame" frameborder="0" role="application" src="javascript:void(');n.push(b.isCustomDomain()?"(function(){document.open();document.domain='"+document.domain+"';"+'document.close();'+'})()':'0');
+n.push(')"></iframe>');}n.push('</div></div>');return o;},getHolderElement:function(){var m=this._.holder;if(!m){if(this.forceIFrame||this.css.length){var n=this.document.getById(this.id+'_frame'),o=n.getParent(),p=o.getAttribute('dir'),q=o.getParent().getAttribute('class'),r=o.getParent().getAttribute('lang'),s=n.getFrameDocument();b.iOS&&o.setStyles({overflow:'scroll','-webkit-overflow-scrolling':'touch'});var t=e.addFunction(e.bind(function(w){this.isLoaded=true;if(this.onLoad)this.onLoad();},this)),u='<!DOCTYPE html><html dir="'+p+'" class="'+q+'_container" lang="'+r+'">'+'<head>'+'<style>.'+q+'_container{visibility:hidden}</style>'+e.buildStyleHtml(this.css)+'</head>'+'<body class="cke_'+p+' cke_panel_frame '+b.cssClass+'" style="margin:0;padding:0"'+' onload="( window.CKEDITOR || window.parent.CKEDITOR ).tools.callFunction('+t+');"></body>'+'</html>';s.write(u);var v=s.getWindow();v.$.CKEDITOR=a;s.on('key'+(b.opera?'press':'down'),function(w){var z=this;var x=w.data.getKeystroke(),y=z.document.getById(z.id).getAttribute('dir');if(z._.onKeyDown&&z._.onKeyDown(x)===false){w.data.preventDefault();return;}if(x==27||x==(y=='rtl'?39:37))if(z.onEscape&&z.onEscape(x)===false)w.data.preventDefault();},this);m=s.getBody();m.unselectable();b.air&&e.callFunction(t);}else m=this.document.getById(this.id);this._.holder=m;}return m;},addBlock:function(m,n){var o=this;n=o._.blocks[m]=n instanceof k.panel.block?n:new k.panel.block(o.getHolderElement(),n);if(!o._.currentBlock)o.showBlock(m);return n;},getBlock:function(m){return this._.blocks[m];},showBlock:function(m){var r=this;var n=r._.blocks,o=n[m],p=r._.currentBlock,q=!r.forceIFrame||c?r._.holder:r.document.getById(r.id+'_frame');if(p){q.removeAttributes(p.attributes);p.hide();}r._.currentBlock=o;q.setAttributes(o.attributes);a.fire('ariaWidget',q);o._.focusIndex=-1;r._.onKeyDown=o.onKeyDown&&e.bind(o.onKeyDown,o);o.show();return o;},destroy:function(){this.element&&this.element.remove();}};k.panel.block=e.createClass({$:function(m,n){var o=this;o.element=m.append(m.getDocument().createElement('div',{attributes:{tabIndex:-1,'class':'cke_panel_block',role:'presentation'},styles:{display:'none'}}));if(n)e.extend(o,n);if(!o.attributes.title)o.attributes.title=o.attributes['aria-label'];o.keys={};o._.focusIndex=-1;o.element.disableContextMenu();},_:{markItem:function(m){var p=this;if(m==-1)return;var n=p.element.getElementsByTag('a'),o=n.getItem(p._.focusIndex=m);if(b.webkit||b.opera)o.getDocument().getWindow().focus();
+o.focus();p.onMark&&p.onMark(o);}},proto:{show:function(){this.element.setStyle('display','');},hide:function(){var m=this;if(!m.onHide||m.onHide.call(m)!==true)m.element.setStyle('display','none');},onKeyDown:function(m){var r=this;var n=r.keys[m];switch(n){case 'next':var o=r._.focusIndex,p=r.element.getElementsByTag('a'),q;while(q=p.getItem(++o)){if(q.getAttribute('_cke_focus')&&q.$.offsetWidth){r._.focusIndex=o;q.focus();break;}}return false;case 'prev':o=r._.focusIndex;p=r.element.getElementsByTag('a');while(o>0&&(q=p.getItem(--o))){if(q.getAttribute('_cke_focus')&&q.$.offsetWidth){r._.focusIndex=o;q.focus();break;}}return false;case 'click':case 'mouseup':o=r._.focusIndex;q=o>=0&&r.element.getElementsByTag('a').getItem(o);if(q)q.$[n]?q.$[n]():q.$['on'+n]();return false;}return true;}}});j.add('listblock',{requires:['panel'],onLoad:function(){k.panel.prototype.addListBlock=function(m,n){return this.addBlock(m,new k.listBlock(this.getHolderElement(),n));};k.listBlock=e.createClass({base:k.panel.block,$:function(m,n){var q=this;n=n||{};var o=n.attributes||(n.attributes={});(q.multiSelect=!!n.multiSelect)&&(o['aria-multiselectable']=true);!o.role&&(o.role='listbox');q.base.apply(q,arguments);var p=q.keys;p[40]='next';p[9]='next';p[38]='prev';p[2228224+9]='prev';p[32]=c?'mouseup':'click';c&&(p[13]='mouseup');q._.pendingHtml=[];q._.items={};q._.groups={};},_:{close:function(){if(this._.started){this._.pendingHtml.push('</ul>');delete this._.started;}},getClick:function(){if(!this._.click)this._.click=e.addFunction(function(m){var o=this;var n=true;if(o.multiSelect)n=o.toggle(m);else o.mark(m);if(o.onClick)o.onClick(m,n);},this);return this._.click;}},proto:{add:function(m,n,o){var r=this;var p=r._.pendingHtml,q=e.getNextId();if(!r._.started){p.push('<ul role="presentation" class=cke_panel_list>');r._.started=1;r._.size=r._.size||0;}r._.items[m]=q;p.push('<li id=',q,' class=cke_panel_listItem role=presentation><a id="',q,'_option" _cke_focus=1 hidefocus=true title="',o||m,'" href="javascript:void(\'',m,"')\" "+(c?'onclick="return false;" onmouseup':'onclick')+'="CKEDITOR.tools.callFunction(',r._.getClick(),",'",m,"'); return false;\"",' role="option">',n||m,'</a></li>');},startGroup:function(m){this._.close();var n=e.getNextId();this._.groups[m]=n;this._.pendingHtml.push('<h1 role="presentation" id=',n,' class=cke_panel_grouptitle>',m,'</h1>');},commit:function(){var m=this;m._.close();m.element.appendHtml(m._.pendingHtml.join(''));delete m._.size;m._.pendingHtml=[];
+},toggle:function(m){var n=this.isMarked(m);if(n)this.unmark(m);else this.mark(m);return!n;},hideGroup:function(m){var n=this.element.getDocument().getById(this._.groups[m]),o=n&&n.getNext();if(n){n.setStyle('display','none');if(o&&o.getName()=='ul')o.setStyle('display','none');}},hideItem:function(m){this.element.getDocument().getById(this._.items[m]).setStyle('display','none');},showAll:function(){var m=this._.items,n=this._.groups,o=this.element.getDocument();for(var p in m)o.getById(m[p]).setStyle('display','');for(var q in n){var r=o.getById(n[q]),s=r.getNext();r.setStyle('display','');if(s&&s.getName()=='ul')s.setStyle('display','');}},mark:function(m){var p=this;if(!p.multiSelect)p.unmarkAll();var n=p._.items[m],o=p.element.getDocument().getById(n);o.addClass('cke_selected');p.element.getDocument().getById(n+'_option').setAttribute('aria-selected',true);p.onMark&&p.onMark(o);},unmark:function(m){var q=this;var n=q.element.getDocument(),o=q._.items[m],p=n.getById(o);p.removeClass('cke_selected');n.getById(o+'_option').removeAttribute('aria-selected');q.onUnmark&&q.onUnmark(p);},unmarkAll:function(){var q=this;var m=q._.items,n=q.element.getDocument();for(var o in m){var p=m[o];n.getById(p).removeClass('cke_selected');n.getById(p+'_option').removeAttribute('aria-selected');}q.onUnmark&&q.onUnmark();},isMarked:function(m){return this.element.getDocument().getById(this._.items[m]).hasClass('cke_selected');},focus:function(m){this._.focusIndex=-1;if(m){var n=this.element.getDocument().getById(this._.items[m]).getFirst(),o=this.element.getElementsByTag('a'),p,q=-1;while(p=o.getItem(++q)){if(p.equals(n)){this._.focusIndex=q;break;}}setTimeout(function(){n.focus();},0);}}}});}});a.themes.add('default',(function(){var m={};function n(o,p){var q,r;r=o.config.sharedSpaces;r=r&&r[p];r=r&&a.document.getById(r);if(r){var s='<span class="cke_shared " dir="'+o.lang.dir+'"'+'>'+'<span class="'+o.skinClass+' '+o.id+' cke_editor_'+o.name+'">'+'<span class="'+b.cssClass+'">'+'<span class="cke_wrapper cke_'+o.lang.dir+'">'+'<span class="cke_editor">'+'<div class="cke_'+p+'">'+'</div></span></span></span></span></span>',t=r.append(h.createFromHtml(s,r.getDocument()));if(r.getCustomData('cke_hasshared'))t.hide();else r.setCustomData('cke_hasshared',1);q=t.getChild([0,0,0,0]);!o.sharedSpaces&&(o.sharedSpaces={});o.sharedSpaces[p]=q;o.on('focus',function(){for(var u=0,v,w=r.getChildren();v=w.getItem(u);u++){if(v.type==1&&!v.equals(t)&&v.hasClass('cke_shared'))v.hide();}t.show();
+});o.on('destroy',function(){t.remove();});}return q;};return{build:function(o,p){var q=o.name,r=o.element,s=o.elementMode;if(!r||s==0)return;if(s==1)r.hide();var t=o.fire('themeSpace',{space:'top',html:''}).html,u=o.fire('themeSpace',{space:'contents',html:''}).html,v=o.fireOnce('themeSpace',{space:'bottom',html:''}).html,w=u&&o.config.height,x=o.config.tabIndex||o.element.getAttribute('tabindex')||0;if(!u)w='auto';else if(!isNaN(w))w+='px';var y='',z=o.config.width;if(z){if(!isNaN(z))z+='px';y+='width: '+z+';';}var A=t&&n(o,'top'),B=n(o,'bottom');A&&(A.setHtml(t),t='');B&&(B.setHtml(v),v='');var C='<style>.'+o.skinClass+'{visibility:hidden;}</style>';if(m[o.skinClass])C='';else m[o.skinClass]=1;var D=h.createFromHtml(['<span id="cke_',q,'" class="',o.skinClass,' ',o.id,' cke_editor_',q,'" dir="',o.lang.dir,'" title="',b.gecko?' ':'','" lang="',o.langCode,'"'+(b.webkit?' tabindex="'+x+'"':'')+' role="application"'+' aria-labelledby="cke_',q,'_arialbl"'+(y?' style="'+y+'"':'')+'>'+'<span id="cke_',q,'_arialbl" class="cke_voice_label">'+o.lang.editor+'</span>'+'<span class="',b.cssClass,'" role="presentation"><span class="cke_wrapper cke_',o.lang.dir,'" role="presentation"><table class="cke_editor" border="0" cellspacing="0" cellpadding="0" role="presentation"><tbody><tr',t?'':' style="display:none"',' role="presentation"><td id="cke_top_',q,'" class="cke_top" role="presentation">',t,'</td></tr><tr',u?'':' style="display:none"',' role="presentation"><td id="cke_contents_',q,'" class="cke_contents" style="height:',w,'" role="presentation">',u,'</td></tr><tr',v?'':' style="display:none"',' role="presentation"><td id="cke_bottom_',q,'" class="cke_bottom" role="presentation">',v,'</td></tr></tbody></table>'+C+'</span>'+'</span>'+'</span>'].join(''));D.getChild([1,0,0,0,0]).unselectable();D.getChild([1,0,0,0,2]).unselectable();if(s==1)D.insertAfter(r);else r.append(D);o.container=D;D.disableContextMenu();o.on('contentDirChanged',function(E){var F=(o.lang.dir!=E.data?'add':'remove')+'Class';D.getChild(1)[F]('cke_mixed_dir_content');var G=this.sharedSpaces&&this.sharedSpaces[this.config.toolbarLocation];G&&G.getParent().getParent()[F]('cke_mixed_dir_content');});o.fireOnce('themeLoaded');o.fireOnce('uiReady');},buildDialog:function(o){var p=e.getNextNumber(),q=h.createFromHtml(['<div class="',o.id,'_dialog cke_editor_',o.name.replace('.','\\.'),'_dialog cke_skin_',o.skinName,'" dir="',o.lang.dir,'" lang="',o.langCode,'" role="dialog" aria-labelledby="%title#"><table class="cke_dialog',' '+b.cssClass,' cke_',o.lang.dir,'" style="position:absolute" role="presentation"><tr><td role="presentation"><div class="%body" role="presentation"><div id="%title#" class="%title" role="presentation"></div><a id="%close_button#" class="%close_button" href="javascript:void(0)" title="'+o.lang.common.close+'" role="button"><span class="cke_label">X</span></a>'+'<div id="%tabs#" class="%tabs" role="tablist"></div>'+'<table class="%contents" role="presentation">'+'<tr>'+'<td id="%contents#" class="%contents" role="presentation"></td>'+'</tr>'+'<tr>'+'<td id="%footer#" class="%footer" role="presentation"></td>'+'</tr>'+'</table>'+'</div>'+'<div id="%tl#" class="%tl"></div>'+'<div id="%tc#" class="%tc"></div>'+'<div id="%tr#" class="%tr"></div>'+'<div id="%ml#" class="%ml"></div>'+'<div id="%mr#" class="%mr"></div>'+'<div id="%bl#" class="%bl"></div>'+'<div id="%bc#" class="%bc"></div>'+'<div id="%br#" class="%br"></div>'+'</td></tr>'+'</table>',c?'':'<style>.cke_dialog{visibility:hidden;}</style>','</div>'].join('').replace(/#/g,'_'+p).replace(/%/g,'cke_dialog_')),r=q.getChild([0,0,0,0,0]),s=r.getChild(0),t=r.getChild(1);
+if(c&&!b.ie6Compat){var u=b.isCustomDomain(),v='javascript:void(function(){'+encodeURIComponent('document.open();'+(u?'document.domain="'+document.domain+'";':'')+'document.close();')+'}())',w=h.createFromHtml('<iframe frameBorder="0" class="cke_iframe_shim" src="'+v+'"'+' tabIndex="-1"'+'></iframe>');w.appendTo(r.getParent());}s.unselectable();t.unselectable();return{element:q,parts:{dialog:q.getChild(0),title:s,close:t,tabs:r.getChild(2),contents:r.getChild([3,0,0,0]),footer:r.getChild([3,0,1,0])}};},destroy:function(o){var p=o.container,q=o.element;if(p){p.clearCustomData();p.remove();}if(q){q.clearCustomData();o.elementMode==1&&q.show();delete o.element;}}};})());a.editor.prototype.getThemeSpace=function(m){var n='cke_'+m,o=this._[n]||(this._[n]=a.document.getById(n+'_'+this.name));return o;};a.editor.prototype.resize=function(m,n,o,p){var v=this;var q=v.container,r=a.document.getById('cke_contents_'+v.name),s=b.webkit&&v.document&&v.document.getWindow().$.frameElement,t=p?q.getChild(1):q;t.setSize('width',m,true);s&&(s.style.width='1%');var u=o?0:(t.$.offsetHeight||0)-(r.$.clientHeight||0);r.setStyle('height',Math.max(n-u,0)+'px');s&&(s.style.width='100%');v.fire('resize');};a.editor.prototype.getResizable=function(m){return m?a.document.getById('cke_contents_'+this.name):this.container;};})();
diff --git a/appsrc/ODS-Framework/ckeditor/contents.css b/appsrc/ODS-Framework/ckeditor/contents.css
new file mode 100644
index 0000000..0bdd9fd
--- /dev/null
+++ b/appsrc/ODS-Framework/ckeditor/contents.css
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+body
+{
+	/* Font */
+	font-family: Arial, Verdana, sans-serif;
+	font-size: 12px;
+
+	/* Text color */
+	color: #222;
+
+	/* Remove the background color to make it transparent */
+	background-color: #fff;
+}
+
+ol,ul,dl
+{
+	/* IE7: reset rtl list margin. (#7334) */
+	*margin-right:0px;
+	/* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/
+    padding:0 40px;
+}
diff --git a/appsrc/ODS-Framework/ckeditor/lang/en.js b/appsrc/ODS-Framework/ckeditor/lang/en.js
index 9964394..0836102 100644
--- a/appsrc/ODS-Framework/ckeditor/lang/en.js
+++ b/appsrc/ODS-Framework/ckeditor/lang/en.js
@@ -1,6 +1,6 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
-CKEDITOR.lang.en={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbars:'Editor toolbars',editor:'Rich Text Editor',source:'Source',newPage:'New Page',save:'Save',preview:'Preview',cut:'Cut',copy:'Copy',paste:'Paste',print:'Print',underline:'Underline',bold:'Bold',italic:'Italic',selectAll:'Select All',removeFormat:'Remove Format',strike:'Strike Through',subscript:'Subscript',superscript:'Superscript',horizontalrule:'Insert Horizontal Line',pagebreak:'Insert Page Break for Printing',pagebreakAlt:'Page Break',unlink:'Unlink',undo:'Undo',redo:'Redo',common:{browseServer:'Browse Server',url:'URL',protocol:'Protocol',upload:'Upload',uploadSubmit:'Send it to the Server',image:'Image',flash:'Flash',form:'Form',checkbox:'Checkbox',radio:'Radio Button',textField:'Text Field',textarea:'Textarea',hiddenField:'Hidden Field',button:'Button',select:'Selection Field',imageButton:'Image Button',notSet:'<not set>',id:'Id',name:'Name',langDir:'Language Direction',langDirLtr:'Left to Right (LTR)',langDirRtl:'Right to Left (RTL)',langCode:'Language Code',longDescr:'Long Description URL',cssClass:'Stylesheet Classes',advisoryTitle:'Advisory Title',cssStyle:'Style',ok:'OK',cancel:'Cancel',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'Advanced',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',width:'Width',height:'Height',align:'Alignment',alignLeft:'Left',alignRight:'Right',alignCenter:'Center',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',invalidHeight:'Height must be a number.',invalidWidth:'Width must be a number.',invalidCssLength:'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).',invalidHtmlLength:'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Insert Special Character',title:'Select Special Character',options:'Special Character Options'},link:{toolbar:'Link',other:'<other>',menu:'Edit Link',title:'Link',info:'Link Info',target:'Target',upload:'Upload',advanced:'Advanced',type:'Link Type',toUrl:'URL',toAnchor:'Link to anchor in the text',toEmail:'E-mail',targetFrame:'<frame>',targetPopup:'<popup window>',targetFrameName:'Target Frame Name',targetPopupName:'Popup Window Name',popupFeatures:'Popup Window Features',popupResizable:'Resizable',popupStatusBar:'Status Bar',popupLocationBar:'Location Bar',popupToolbar:'Toolbar',popupMenuBar:'Menu Bar',popupFullScreen:'Full Screen (IE)',popupScrollBars:'Scroll Bars',popupDependent:'Dependent (Netscape)',popupLeft:'Left Position',popupTop:'Top Position',id:'Id',langDir:'Language Direction',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',acccessKey:'Access Key',name:'Name',langCode:'Language Code',tabIndex:'Tab Index',advisoryTitle:'Advisory Title',advisoryContentType:'Advisory Content Type',cssClasses:'Stylesheet Classes',charset:'Linked Resource Charset',styles:'Style',rel:'Relationship',selectAnchor:'Select an Anchor',anchorName:'By Anchor Name',anchorId:'By Element Id',emailAddress:'E-Mail Address',emailSubject:'Message Subject',emailBody:'Message Body',noAnchors:'(No anchors available in the document)',noUrl:'Please type the link URL',noEmail:'Please type the e-mail address'},anchor:{toolbar:'Anchor',menu:'Edit Anchor',title:'Anchor Properties',name:'Anchor Name',errorName:'Please type the anchor name',remove:'Remove Anchor'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'Find',replace:'Replace',findWhat:'Find what:',replaceWith:'Replace with:',notFoundMsg:'The specified text was not found.',matchCase:'Match case',matchWord:'Match whole word',matchCyclic:'Match cyclic',replaceAll:'Replace All',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Table',title:'Table Properties',menu:'Table Properties',deleteTable:'Delete Table',rows:'Rows',columns:'Columns',border:'Border size',widthPx:'pixels',widthPc:'percent',widthUnit:'width unit',cellSpace:'Cell spacing',cellPad:'Cell padding',caption:'Caption',summary:'Summary',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a positive number.',invalidCellPadding:'Cell padding must be a positive number.',cell:{menu:'Cell',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'Delete Cells',merge:'Merge Cells',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Row',insertBefore:'Insert Row Before',insertAfter:'Insert Row After',deleteRow:'Delete Rows'},column:{menu:'Column',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'Delete Columns'}},button:{title:'Button Properties',text:'Text (Value)',type:'Type',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'Checkbox Properties',radioTitle:'Radio Button Properties',value:'Value',selected:'Selected'},form:{title:'Form Properties',menu:'Form Properties',action:'Action',method:'Method',encoding:'Encoding'},select:{title:'Selection Field Properties',selectInfo:'Select Info',opAvail:'Available Options',value:'Value',size:'Size',lines:'lines',chkMulti:'Allow multiple selections',opText:'Text',opValue:'Value',btnAdd:'Add',btnModify:'Modify',btnUp:'Up',btnDown:'Down',btnSetValue:'Set as selected value',btnDelete:'Delete'},textarea:{title:'Textarea Properties',cols:'Columns',rows:'Rows'},textfield:{title:'Text Field Properties',name:'Name',value:'Value',charWidth:'Character Width',maxChars:'Maximum Characters',type:'Type',typeText:'Text',typePass:'Password'},hidden:{title:'Hidden Field Properties',name:'Name',value:'Value'},image:{title:'Image Properties',titleButton:'Image Button Properties',menu:'Image Properties',infoTab:'Image Info',btnUpload:'Send it to the Server',upload:'Upload',alt:'Alternative Text',lockRatio:'Lock Ratio',resetSize:'Reset Size',border:'Border',hSpace:'HSpace',vSpace:'VSpace',alertUrl:'Please type the image URL',linkTab:'Link',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flash Properties',propertiesTab:'Properties',title:'Flash Properties',chkPlay:'Auto Play',chkLoop:'Loop',chkMenu:'Enable Flash Menu',chkFull:'Allow Fullscreen',scale:'Scale',scaleAll:'Show all',scaleNoBorder:'No Border',scaleFit:'Exact Fit',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',alignAbsBottom:'Abs Bottom',alignAbsMiddle:'Abs Middle',alignBaseline:'Baseline',alignTextTop:'Text Top',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Background color',hSpace:'HSpace',vSpace:'VSpace',validateSrc:'URL must not be empty.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Check Spelling',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Not in dictionary',changeTo:'Change to',btnIgnore:'Ignore',btnIgnoreAll:'Ignore All',btnReplace:'Replace',btnReplaceAll:'Replace All',btnUndo:'Undo',noSuggestions:'- No suggestions -',progress:'Spell check in progress...',noMispell:'Spell check complete: No misspellings found',noChanges:'Spell check complete: No words changed',oneChange:'Spell check complete: One word changed',manyChanges:'Spell check complete: %1 words changed',ieSpellDownload:'Spell checker not installed. Do you want to download it now?'},smiley:{toolbar:'Smiley',title:'Insert a Smiley',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Insert/Remove Numbered List',bulletedlist:'Insert/Remove Bulleted List',indent:'Increase Indent',outdent:'Decrease Indent',justify:{left:'Align Left',center:'Center',right:'Align Right',block:'Justify'},blockquote:'Block Quote',clipboard:{title:'Paste',cutError:"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).",copyError:"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).",pasteMsg:'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Paste from Word',title:'Paste from Word',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Paste as plain text',title:'Paste as Plain Text'},templates:{button:'Templates',title:'Content Templates',options:'Template Options',insertOption:'Replace actual contents',selectPromptMsg:'Please select the template to open in the editor',emptyListMsg:'(No templates defined)'},showBlocks:'Show Blocks',stylesCombo:{label:'Styles',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'Format',panelTitle:'Paragraph Format',tag_p:'Normal',tag_pre:'Formatted',tag_address:'Address',tag_h1:'Heading 1',tag_h2:'Heading 2',tag_h3:'Heading 3',tag_h4:'Heading 4',tag_h5:'Heading 5',tag_h6:'Heading 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},iframe:{title:'IFrame Properties',toolbar:'IFrame',noUrl:'Please type the iframe URL',scrolling:'Enable scrollbars',border:'Show frame border'},font:{label:'Font',voiceLabel:'Font',panelTitle:'Font Name'},fontSize:{label:'Size',voiceLabel:'Font Size',panelTitle:'Font Size'},colorButton:{textColorTitle:'Text Color',bgColorTitle:'Background Color',panelTitle:'Colors',auto:'Automatic',more:'More Colors...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',help:'Check $1 for help.',userGuide:"CKEditor User's Guide",moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',iframe:'IFrame',hiddenfield:'Hidden Field',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',toolbarGroups:{document:'Document',clipboard:'Clipboard/Undo',editing:'Editing',forms:'Forms',basicstyles:'Basic Styles',paragraph:'Paragraph',links:'Links',insert:'Insert',styles:'Styles',colors:'Colors',tools:'Tools'},bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'},docprops:{label:'Document Properties',title:'Document Properties',design:'Design',meta:'Meta Tags',chooseColor:'Choose',other:'Other...',docTitle:'Page Title',charset:'Character Set Encoding',charsetOther:'Other Character Set Encoding',charsetASCII:'ASCII',charsetCE:'Central European',charsetCT:'Chinese Traditional (Big5)',charsetCR:'Cyrillic',charsetGR:'Greek',charsetJP:'Japanese',charsetKR:'Korean',charsetTR:'Turkish',charsetUN:'Unicode (UTF-8)',charsetWE:'Western European',docType:'Document Type Heading',docTypeOther:'Other Document Type Heading',xhtmlDec:'Include XHTML Declarations',bgColor:'Background Color',bgImage:'Background Image URL',bgFixed:'Non-scrolling (Fixed) Background',txtColor:'Text Color',margin:'Page Margins',marginTop:'Top',marginLeft:'Left',marginRight:'Right',marginBottom:'Bottom',metaKeywords:'Document Indexing Keywords (comma separated)',metaDescription:'Document Description',metaAuthor:'Author',metaCopyright:'Copyright',previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>'}};
+CKEDITOR.lang.en={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbars:'Editor toolbars',editor:'Rich Text Editor',source:'Source',newPage:'New Page',save:'Save',preview:'Preview',cut:'Cut',copy:'Copy',paste:'Paste',print:'Print',underline:'Underline',bold:'Bold',italic:'Italic',selectAll:'Select All',removeFormat:'Remove Format',strike:'Strike Through',subscript:'Subscript',superscript:'Superscript',horizontalrule:'Insert Horizontal Line',pagebreak:'Insert Page Break for Printing',pagebreakAlt:'Page Break',unlink:'Unlink',undo:'Undo',redo:'Redo',common:{browseServer:'Browse Server',url:'URL',protocol:'Protocol',upload:'Upload',uploadSubmit:'Send it to the Server',image:'Image',flash:'Flash',form:'Form',checkbox:'Checkbox',radio:'Radio Button',textField:'Text Field',textarea:'Textarea',hiddenField:'Hidden Field',button:'Button',select:'Selection Field',imageButton:'Image Button',notSet:'<not set>',id:'Id',name:'Name',langDir:'Language Direction',langDirLtr:'Left to Right (LTR)',langDirRtl:'Right to Left (RTL)',langCode:'Language Code',longDescr:'Long Description URL',cssClass:'Stylesheet Classes',advisoryTitle:'Advisory Title',cssStyle:'Style',ok:'OK',cancel:'Cancel',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'Advanced',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',width:'Width',height:'Height',align:'Alignment',alignLeft:'Left',alignRight:'Right',alignCenter:'Center',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',invalidHeight:'Height must be a number.',invalidWidth:'Width must be a number.',invalidCssLength:'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).',invalidHtmlLength:'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).',invalidInlineStyle:'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.',cssLengthTooltip:'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Insert Special Character',title:'Select Special Character',options:'Special Character Options'},link:{toolbar:'Link',other:'<other>',menu:'Edit Link',title:'Link',info:'Link Info',target:'Target',upload:'Upload',advanced:'Advanced',type:'Link Type',toUrl:'URL',toAnchor:'Link to anchor in the text',toEmail:'E-mail',targetFrame:'<frame>',targetPopup:'<popup window>',targetFrameName:'Target Frame Name',targetPopupName:'Popup Window Name',popupFeatures:'Popup Window Features',popupResizable:'Resizable',popupStatusBar:'Status Bar',popupLocationBar:'Location Bar',popupToolbar:'Toolbar',popupMenuBar:'Menu Bar',popupFullScreen:'Full Screen (IE)',popupScrollBars:'Scroll Bars',popupDependent:'Dependent (Netscape)',popupLeft:'Left Position',popupTop:'Top Position',id:'Id',langDir:'Language Direction',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',acccessKey:'Access Key',name:'Name',langCode:'Language Code',tabIndex:'Tab Index',advisoryTitle:'Advisory Title',advisoryContentType:'Advisory Content Type',cssClasses:'Stylesheet Classes',charset:'Linked Resource Charset',styles:'Style',rel:'Relationship',selectAnchor:'Select an Anchor',anchorName:'By Anchor Name',anchorId:'By Element Id',emailAddress:'E-Mail Address',emailSubject:'Message Subject',emailBody:'Message Body',noAnchors:'(No anchors available in the document)',noUrl:'Please type the link URL',noEmail:'Please type the e-mail address'},anchor:{toolbar:'Anchor',menu:'Edit Anchor',title:'Anchor Properties',name:'Anchor Name',errorName:'Please type the anchor name',remove:'Remove Anchor'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'Find',replace:'Replace',findWhat:'Find what:',replaceWith:'Replace with:',notFoundMsg:'The specified text was not found.',findOptions:'Find Options',matchCase:'Match case',matchWord:'Match whole word',matchCyclic:'Match cyclic',replaceAll:'Replace All',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Table',title:'Table Properties',menu:'Table Properties',deleteTable:'Delete Table',rows:'Rows',columns:'Columns',border:'Border size',widthPx:'pixels',widthPc:'percent',widthUnit:'width unit',cellSpace:'Cell spacing',cellPad:'Cell padding',caption:'Caption',summary:'Summary',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a positive number.',invalidCellPadding:'Cell padding must be a positive number.',cell:{menu:'Cell',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'Delete Cells',merge:'Merge Cells',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Row',insertBefore:'Insert Row Before',insertAfter:'Insert Row After',deleteRow:'Delete Rows'},column:{menu:'Column',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'Delete Columns'}},button:{title:'Button Properties',text:'Text (Value)',type:'Type',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'Checkbox Properties',radioTitle:'Radio Button Properties',value:'Value',selected:'Selected'},form:{title:'Form Properties',menu:'Form Properties',action:'Action',method:'Method',encoding:'Encoding'},select:{title:'Selection Field Properties',selectInfo:'Select Info',opAvail:'Available Options',value:'Value',size:'Size',lines:'lines',chkMulti:'Allow multiple selections',opText:'Text',opValue:'Value',btnAdd:'Add',btnModify:'Modify',btnUp:'Up',btnDown:'Down',btnSetValue:'Set as selected value',btnDelete:'Delete'},textarea:{title:'Textarea Properties',cols:'Columns',rows:'Rows'},textfield:{title:'Text Field Properties',name:'Name',value:'Value',charWidth:'Character Width',maxChars:'Maximum Characters',type:'Type',typeText:'Text',typePass:'Password'},hidden:{title:'Hidden Field Properties',name:'Name',value:'Value'},image:{title:'Image Properties',titleButton:'Image Button Properties',menu:'Image Properties',infoTab:'Image Info',btnUpload:'Send it to the Server',upload:'Upload',alt:'Alternative Text',lockRatio:'Lock Ratio',resetSize:'Reset Size',border:'Border',hSpace:'HSpace',vSpace:'VSpace',alertUrl:'Please type the image URL',linkTab:'Link',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flash Properties',propertiesTab:'Properties',title:'Flash Properties',chkPlay:'Auto Play',chkLoop:'Loop',chkMenu:'Enable Flash Menu',chkFull:'Allow Fullscreen',scale:'Scale',scaleAll:'Show all',scaleNoBorder:'No Border',scaleFit:'Exact Fit',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',alignAbsBottom:'Abs Bottom',alignAbsMiddle:'Abs Middle',alignBaseline:'Baseline',alignTextTop:'Text Top',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Background color',hSpace:'HSpace',vSpace:'VSpace',validateSrc:'URL must not be empty.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Check Spelling',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Not in dictionary',changeTo:'Change to',btnIgnore:'Ignore',btnIgnoreAll:'Ignore All',btnReplace:'Replace',btnReplaceAll:'Replace All',btnUndo:'Undo',noSuggestions:'- No suggestions -',progress:'Spell check in progress...',noMispell:'Spell check complete: No misspellings found',noChanges:'Spell check complete: No words changed',oneChange:'Spell check complete: One word changed',manyChanges:'Spell check complete: %1 words changed',ieSpellDownload:'Spell checker not installed. Do you want to download it now?'},smiley:{toolbar:'Smiley',title:'Insert a Smiley',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Insert/Remove Numbered List',bulletedlist:'Insert/Remove Bulleted List',indent:'Increase Indent',outdent:'Decrease Indent',justify:{left:'Align Left',center:'Center',right:'Align Right',block:'Justify'},blockquote:'Block Quote',clipboard:{title:'Paste',cutError:"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).",copyError:"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).",pasteMsg:'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Paste from Word',title:'Paste from Word',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Paste as plain text',title:'Paste as Plain Text'},templates:{button:'Templates',title:'Content Templates',options:'Template Options',insertOption:'Replace actual contents',selectPromptMsg:'Please select the template to open in the editor',emptyListMsg:'(No templates defined)'},showBlocks:'Show Blocks',stylesCombo:{label:'Styles',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'Format',panelTitle:'Paragraph Format',tag_p:'Normal',tag_pre:'Formatted',tag_address:'Address',tag_h1:'Heading 1',tag_h2:'Heading 2',tag_h3:'Heading 3',tag_h4:'Heading 4',tag_h5:'Heading 5',tag_h6:'Heading 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},iframe:{title:'IFrame Properties',toolbar:'IFrame',noUrl:'Please type the iframe URL',scrolling:'Enable scrollbars',border:'Show frame border'},font:{label:'Font',voiceLabel:'Font',panelTitle:'Font Name'},fontSize:{label:'Size',voiceLabel:'Font Size',panelTitle:'Font Size'},colorButton:{textColorTitle:'Text Color',bgColorTitle:'Background Color',panelTitle:'Colors',auto:'Automatic',more:'More Colors...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',help:'Check $1 for help.',userGuide:"CKEditor User's Guide",moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',iframe:'IFrame',hiddenfield:'Hidden Field',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',toolbarGroups:{document:'Document',clipboard:'Clipboard/Undo',editing:'Editing',forms:'Forms',basicstyles:'Basic Styles',paragraph:'Paragraph',links:'Links',insert:'Insert',styles:'Styles',colors:'Colors',tools:'Tools'},bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'},docprops:{label:'Document Properties',title:'Document Properties',design:'Design',meta:'Meta Tags',chooseColor:'Choose',other:'Other...',docTitle:'Page Title',charset:'Character Set Encoding',charsetOther:'Other Character Set Encoding',charsetASCII:'ASCII',charsetCE:'Central European',charsetCT:'Chinese Traditional (Big5)',charsetCR:'Cyrillic',charsetGR:'Greek',charsetJP:'Japanese',charsetKR:'Korean',charsetTR:'Turkish',charsetUN:'Unicode (UTF-8)',charsetWE:'Western European',docType:'Document Type Heading',docTypeOther:'Other Document Type Heading',xhtmlDec:'Include XHTML Declarations',bgColor:'Background Color',bgImage:'Background Image URL',bgFixed:'Non-scrolling (Fixed) Background',txtColor:'Text Color',margin:'Page Margins',marginTop:'Top',marginLeft:'Left',marginRight:'Right',marginBottom:'Bottom',metaKeywords:'Document Indexing Keywords (comma separated)',metaDescription:'Document Description',metaAuthor:'Author',metaCopyright:'Copyright',previewHtml:'<p>This is some <strong>sample text</strong>. You are using <a href="javascript:void(0)">CKEditor</a>.</p>'}};
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/clipboard/dialogs/paste.js b/appsrc/ODS-Framework/ckeditor/plugins/clipboard/dialogs/paste.js
index 35c274d..4a850e0 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/clipboard/dialogs/paste.js
+++ b/appsrc/ODS-Framework/ckeditor/plugins/clipboard/dialogs/paste.js
@@ -1,7 +1,7 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
-CKEDITOR.dialog.add('paste',function(a){var b=a.lang.clipboard,c=CKEDITOR.env.isCustomDomain();function d(e){var f=new CKEDITOR.dom.document(e.document),g=f.$,h=f.getById('cke_actscrpt');h&&h.remove();CKEDITOR.env.ie?g.body.contentEditable='true':g.designMode='on';if(CKEDITOR.env.ie&&CKEDITOR.env.version<8)f.getWindow().on('blur',function(){g.selection.empty();});f.on('keydown',function(i){var j=i.data,k=j.getKeystroke(),l;switch(k){case 27:this.hide();l=1;break;case 9:case CKEDITOR.SHIFT+9:this.changeFocus(true);l=1;}l&&j.preventDefault();},this);a.fire('ariaWidget',new CKEDITOR.dom.element(e.frameElement));};return{title:b.title,minWidth:CKEDITOR.env.ie&&CKEDITOR.env.quirks?370:350,minHeight:CKEDITOR.env.quirks?250:245,onShow:function(){this.parts.dialog.$.offsetHeight;this.setupContent();},onHide:function(){if(CKEDITOR.env.ie)this.getParentEditor().document.getBody().$.contentEditable='true';},onLoad:function(){if((CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&a.lang.dir=='rtl')this.parts.contents.setStyle('overflow','hidden');},onOk:function(){this.commitContent();},contents:[{id:'general',label:a.lang.common.generalTab,elements:[{type:'html',id:'securityMsg',html:'<div style="white-space:normal;width:340px;">'+b.securityMsg+'</div>'},{type:'html',id:'pasteMsg',html:'<div style="white-space:normal;width:340px;">'+b.pasteMsg+'</div>'},{type:'html',id:'editing_area',style:'width: 100%; height: 100%;',html:'',focus:function(){var e=this.getInputElement().$.contentWindow;setTimeout(function(){e.focus();},500);},setup:function(){var e=this.getDialog(),f='<html dir="'+a.config.contentsLangDirection+'"'+' lang="'+(a.config.contentsLanguage||a.langCode)+'">'+'<head><style>body { margin: 3px; height: 95%; } </style></head><body>'+'<script id="cke_actscrpt" type="text/javascript">'+'window.parent.CKEDITOR.tools.callFunction( '+CKEDITOR.tools.addFunction(d,e)+', this );'+'</script></body>'+'</html>',g=CKEDITOR.env.air?'javascript:void(0)':c?"javascript:void((function(){document.open();document.domain='"+document.domain+"';"+'document.close();'+'})())"':'',h=CKEDITOR.dom.element.createFromHtml('<iframe class="cke_pasteframe" frameborder="0"  allowTransparency="true" src="'+g+'"'+' role="region"'+' aria-label="'+b.pasteArea+'"'+' aria-describedby="'+e.getContentElement('general','pasteMsg').domId+'"'+' aria-multiple="true"'+'></iframe>');h.on('load',function(k){k.removeListener();var l=h.getFrameDocument();l.write(f);if(CKEDITOR.env.air)d.call(this,l.getWindow().$);
+CKEDITOR.dialog.add('paste',function(a){var b=a.lang.clipboard,c=CKEDITOR.env.isCustomDomain();function d(e){var f=new CKEDITOR.dom.document(e.document),g=f.$,h=f.getById('cke_actscrpt');h&&h.remove();CKEDITOR.env.ie?g.body.contentEditable='true':g.designMode='on';if(CKEDITOR.env.ie&&CKEDITOR.env.version<8)f.getWindow().on('blur',function(){g.selection.empty();});f.on('keydown',function(i){var j=i.data,k=j.getKeystroke(),l;switch(k){case 27:this.hide();l=1;break;case 9:case CKEDITOR.SHIFT+9:this.changeFocus(1);l=1;}l&&j.preventDefault();},this);a.fire('ariaWidget',new CKEDITOR.dom.element(e.frameElement));};return{title:b.title,minWidth:CKEDITOR.env.ie&&CKEDITOR.env.quirks?370:350,minHeight:CKEDITOR.env.quirks?250:245,onShow:function(){this.parts.dialog.$.offsetHeight;this.setupContent();},onHide:function(){if(CKEDITOR.env.ie)this.getParentEditor().document.getBody().$.contentEditable='true';},onLoad:function(){if((CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&a.lang.dir=='rtl')this.parts.contents.setStyle('overflow','hidden');},onOk:function(){this.commitContent();},contents:[{id:'general',label:a.lang.common.generalTab,elements:[{type:'html',id:'securityMsg',html:'<div style="white-space:normal;width:340px;">'+b.securityMsg+'</div>'},{type:'html',id:'pasteMsg',html:'<div style="white-space:normal;width:340px;">'+b.pasteMsg+'</div>'},{type:'html',id:'editing_area',style:'width: 100%; height: 100%;',html:'',focus:function(){var e=this.getInputElement().$.contentWindow;setTimeout(function(){e.focus();},500);},setup:function(){var e=this.getDialog(),f='<html dir="'+a.config.contentsLangDirection+'"'+' lang="'+(a.config.contentsLanguage||a.langCode)+'">'+'<head><style>body { margin: 3px; height: 95%; } </style></head><body>'+'<script id="cke_actscrpt" type="text/javascript">'+'window.parent.CKEDITOR.tools.callFunction( '+CKEDITOR.tools.addFunction(d,e)+', this );'+'</script></body>'+'</html>',g=CKEDITOR.env.air?'javascript:void(0)':c?"javascript:void((function(){document.open();document.domain='"+document.domain+"';"+'document.close();'+'})())"':'',h=CKEDITOR.dom.element.createFromHtml('<iframe class="cke_pasteframe" frameborder="0"  allowTransparency="true" src="'+g+'"'+' role="region"'+' aria-label="'+b.pasteArea+'"'+' aria-describedby="'+e.getContentElement('general','pasteMsg').domId+'"'+' aria-multiple="true"'+'></iframe>');h.on('load',function(k){k.removeListener();var l=h.getFrameDocument();l.write(f);if(CKEDITOR.env.air)d.call(this,l.getWindow().$);
 },e);h.setCustomData('dialog',e);var i=this.getElement();i.setHtml('');i.append(h);if(CKEDITOR.env.ie){var j=CKEDITOR.dom.element.createFromHtml('<span tabindex="-1" style="position:absolute;" role="presentation"></span>');j.on('focus',function(){h.$.contentWindow.focus();});i.append(j);this.focus=function(){j.focus();this.fire('focus');};}this.getInputElement=function(){return h;};if(CKEDITOR.env.ie){i.setStyle('display','block');i.setStyle('height',h.$.offsetHeight+2+'px');}},commit:function(e){var f=this.getElement(),g=this.getDialog().getParentEditor(),h=this.getInputElement().getFrameDocument().getBody(),i=h.getBogus(),j;i&&i.remove();j=h.getHtml();setTimeout(function(){g.fire('paste',{html:j});},0);}}]}]};});
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/colordialog/dialogs/colordialog.js b/appsrc/ODS-Framework/ckeditor/plugins/colordialog/dialogs/colordialog.js
index 1f4138f..5663387 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/colordialog/dialogs/colordialog.js
+++ b/appsrc/ODS-Framework/ckeditor/plugins/colordialog/dialogs/colordialog.js
@@ -1,7 +1,7 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
-CKEDITOR.dialog.add('colordialog',function(a){var b=CKEDITOR.dom.element,c=CKEDITOR.document,d=CKEDITOR.tools,e=a.lang.colordialog,f,g={type:'html',html:' '};function h(){c.getById(x).removeStyle('background-color');f.getContentElement('picker','selectedColor').setValue('');};function i(z){if(!(z instanceof CKEDITOR.dom.event))z=new CKEDITOR.dom.event(z);var A=z.getTarget(),B;if(A.getName()=='a'&&(B=A.getChild(0).getHtml()))f.getContentElement('picker','selectedColor').setValue(B);};function j(z){if(!(z instanceof CKEDITOR.dom.event))z=z.data;var A=z.getTarget(),B;if(A.getName()=='a'&&(B=A.getChild(0).getHtml())){c.getById(v).setStyle('background-color',B);c.getById(w).setHtml(B);}};function k(){c.getById(v).removeStyle('background-color');c.getById(w).setHtml(' ');};var l=d.addFunction(k),m=i,n=CKEDITOR.tools.addFunction(m),o=j,p=k,q=CKEDITOR.tools.addFunction(function(z){z=new CKEDITOR.dom.event(z);var A=z.getTarget(),B,C,D=z.getKeystroke(),E=a.lang.dir=='rtl';switch(D){case 38:if(B=A.getParent().getParent().getPrevious()){C=B.getChild([A.getParent().getIndex(),0]);C.focus();p(z,A);o(z,C);}z.preventDefault();break;case 40:if(B=A.getParent().getParent().getNext()){C=B.getChild([A.getParent().getIndex(),0]);if(C&&C.type==1){C.focus();p(z,A);o(z,C);}}z.preventDefault();break;case 32:m(z);z.preventDefault();break;case E?37:39:if(B=A.getParent().getNext()){C=B.getChild(0);if(C.type==1){C.focus();p(z,A);o(z,C);z.preventDefault(true);}else p(null,A);}else if(B=A.getParent().getParent().getNext()){C=B.getChild([0,0]);if(C&&C.type==1){C.focus();p(z,A);o(z,C);z.preventDefault(true);}else p(null,A);}break;case E?39:37:if(B=A.getParent().getPrevious()){C=B.getChild(0);C.focus();p(z,A);o(z,C);z.preventDefault(true);}else if(B=A.getParent().getParent().getPrevious()){C=B.getLast().getChild(0);C.focus();p(z,A);o(z,C);z.preventDefault(true);}else p(null,A);break;default:return;}});function r(){var z=['00','33','66','99','cc','ff'];function A(F,G){for(var H=F;H<F+3;H++){var I=s.$.insertRow(-1);for(var J=G;J<G+3;J++)for(var K=0;K<6;K++)B(I,'#'+z[J]+z[K]+z[H]);}};function B(F,G){var H=new b(F.insertCell(-1));H.setAttribute('class','ColorCell');H.setStyle('background-color',G);H.setStyle('width','15px');H.setStyle('height','15px');var I=H.$.cellIndex+1+18*F.rowIndex;H.append(CKEDITOR.dom.element.createFromHtml('<a href="javascript: void(0);" role="option" aria-posinset="'+I+'"'+' aria-setsize="'+234+'"'+' style="cursor: pointer;display:block;width:100%;height:100% " title="'+CKEDITOR.tools.htmlEncode(G)+'"'+' onkeydown="CKEDITOR.tools.callFunction( '+q+', event, this )"'+' onclick="CKEDITOR.tools.callFunction('+n+', event, this ); return false;"'+' tabindex="-1"><span class="cke_voice_label">'+G+'</span> </a>',CKEDITOR.document));
-};A(0,0);A(3,0);A(0,3);A(3,3);var C=s.$.insertRow(-1);for(var D=0;D<6;D++)B(C,'#'+z[D]+z[D]+z[D]);for(var E=0;E<12;E++)B(C,'#000000');};var s=new b('table');r();var t=s.getHtml(),u=function(z){return CKEDITOR.tools.getNextId()+'_'+z;},v=u('hicolor'),w=u('hicolortext'),x=u('selhicolor'),y=u('color_table_label');return{title:e.title,minWidth:360,minHeight:220,onLoad:function(){f=this;},contents:[{id:'picker',label:e.title,accessKey:'I',elements:[{type:'hbox',padding:0,widths:['70%','10%','30%'],children:[{type:'html',html:'<table role="listbox" aria-labelledby="'+y+'" onmouseout="CKEDITOR.tools.callFunction( '+l+' );">'+(!CKEDITOR.env.webkit?t:'')+'</table><span id="'+y+'" class="cke_voice_label">'+e.options+'</span>',onLoad:function(){var z=CKEDITOR.document.getById(this.domId);z.on('mouseover',j);CKEDITOR.env.webkit&&z.setHtml(t);},focus:function(){var z=this.getElement().getElementsByTag('a').getItem(0);z.focus();}},g,{type:'vbox',padding:0,widths:['70%','5%','25%'],children:[{type:'html',html:'<span>'+e.highlight+'</span>\t\t\t\t\t\t\t\t\t\t\t\t<div id="'+v+'" style="border: 1px solid; height: 74px; width: 74px;"></div>\t\t\t\t\t\t\t\t\t\t\t\t<div id="'+w+'"> </div><span>'+e.selected+'</span>\t\t\t\t\t\t\t\t\t\t\t\t<div id="'+x+'" style="border: 1px solid; height: 20px; width: 74px;"></div>'},{type:'text',label:e.selected,labelStyle:'display:none',id:'selectedColor',style:'width: 74px',onChange:function(){try{c.getById(x).setStyle('background-color',this.getValue());}catch(z){h();}}},g,{type:'button',id:'clear',style:'margin-top: 5px',label:e.clear,onClick:h}]}]}]}]};});
+CKEDITOR.dialog.add('colordialog',function(a){var b=CKEDITOR.dom.element,c=CKEDITOR.document,d=a.lang.colordialog,e,f={type:'html',html:' '},g;function h(){c.getById(u).removeStyle('background-color');e.getContentElement('picker','selectedColor').setValue('');g&&g.removeAttribute('aria-selected');g=null;};function i(w){var x=w.data.getTarget(),y;if(x.getName()=='td'&&(y=x.getChild(0).getHtml())){g=x;g.setAttribute('aria-selected',true);e.getContentElement('picker','selectedColor').setValue(y);}};function j(w){w=w.replace(/^#/,'');for(var x=0,y=[];x<=2;x++)y[x]=parseInt(w.substr(x*2,2),16);var z=0.2126*y[0]+0.7152*y[1]+0.0722*y[2];return '#'+(z>=165?'000':'fff');};var k,l;function m(w){!w.name&&(w=new CKEDITOR.event(w));var x=!/mouse/.test(w.name),y=w.data.getTarget(),z;if(y.getName()=='td'&&(z=y.getChild(0).getHtml())){o(w);x?k=y:l=y;if(x){y.setStyle('border-color',j(z));y.setStyle('border-style','dotted');}c.getById(s).setStyle('background-color',z);c.getById(t).setHtml(z);}};function n(){var w=k.getChild(0).getHtml();k.setStyle('border-color',w);k.setStyle('border-style','solid');c.getById(s).removeStyle('background-color');c.getById(t).setHtml(' ');k=null;};function o(w){var x=!/mouse/.test(w.name),y=x&&k;if(y){var z=y.getChild(0).getHtml();y.setStyle('border-color',z);y.setStyle('border-style','solid');}if(!(k||l)){c.getById(s).removeStyle('background-color');c.getById(t).setHtml(' ');}};function p(w){var x=w.data,y=x.getTarget(),z,A,B=x.getKeystroke(),C=a.lang.dir=='rtl';switch(B){case 38:if(z=y.getParent().getPrevious()){A=z.getChild([y.getIndex()]);A.focus();}x.preventDefault();break;case 40:if(z=y.getParent().getNext()){A=z.getChild([y.getIndex()]);if(A&&A.type==1)A.focus();}x.preventDefault();break;case 32:case 13:i(w);x.preventDefault();break;case C?37:39:if(A=y.getNext()){if(A.type==1){A.focus();x.preventDefault(true);}}else if(z=y.getParent().getNext()){A=z.getChild([0]);if(A&&A.type==1){A.focus();x.preventDefault(true);}}break;case C?39:37:if(A=y.getPrevious()){A.focus();x.preventDefault(true);}else if(z=y.getParent().getPrevious()){A=z.getLast();A.focus();x.preventDefault(true);}break;default:return;}};function q(){v=CKEDITOR.dom.element.createFromHtml('<table tabIndex="-1" aria-label="'+d.options+'"'+' role="grid" style="border-collapse:separate;" cellspacing="0">'+'<caption class="cke_voice_label">'+d.options+'</caption>'+'<tbody role="presentation"></tbody></table>');v.on('mouseover',m);v.on('mouseout',o);var w=['00','33','66','99','cc','ff'];
+function x(C,D){for(var E=C;E<C+3;E++){var F=new b(v.$.insertRow(-1));F.setAttribute('role','row');for(var G=D;G<D+3;G++)for(var H=0;H<6;H++)y(F.$,'#'+w[G]+w[H]+w[E]);}};function y(C,D){var E=new b(C.insertCell(-1));E.setAttribute('class','ColorCell');E.setAttribute('tabIndex',-1);E.setAttribute('role','gridcell');E.on('keydown',p);E.on('click',i);E.on('focus',m);E.on('blur',o);E.setStyle('background-color',D);E.setStyle('border','1px solid '+D);E.setStyle('width','14px');E.setStyle('height','14px');var F=r('color_table_cell');E.setAttribute('aria-labelledby',F);E.append(CKEDITOR.dom.element.createFromHtml('<span id="'+F+'" class="cke_voice_label">'+D+'</span>',CKEDITOR.document));};x(0,0);x(3,0);x(0,3);x(3,3);var z=new b(v.$.insertRow(-1));z.setAttribute('role','row');for(var A=0;A<6;A++)y(z.$,'#'+w[A]+w[A]+w[A]);for(var B=0;B<12;B++)y(z.$,'#000000');};var r=function(w){return CKEDITOR.tools.getNextId()+'_'+w;},s=r('hicolor'),t=r('hicolortext'),u=r('selhicolor'),v;q();return{title:d.title,minWidth:360,minHeight:220,onLoad:function(){e=this;},onHide:function(){h();n();},contents:[{id:'picker',label:d.title,accessKey:'I',elements:[{type:'hbox',padding:0,widths:['70%','10%','30%'],children:[{type:'html',html:'<div></div>',onLoad:function(){CKEDITOR.document.getById(this.domId).append(v);},focus:function(){(k||this.getElement().getElementsByTag('td').getItem(0)).focus();}},f,{type:'vbox',padding:0,widths:['70%','5%','25%'],children:[{type:'html',html:'<span>'+d.highlight+'</span>\t\t\t\t\t\t\t\t\t\t\t\t<div id="'+s+'" style="border: 1px solid; height: 74px; width: 74px;"></div>\t\t\t\t\t\t\t\t\t\t\t\t<div id="'+t+'"> </div><span>'+d.selected+'</span>\t\t\t\t\t\t\t\t\t\t\t\t<div id="'+u+'" style="border: 1px solid; height: 20px; width: 74px;"></div>'},{type:'text',label:d.selected,labelStyle:'display:none',id:'selectedColor',style:'width: 74px',onChange:function(){try{c.getById(u).setStyle('background-color',this.getValue());}catch(w){h();}}},f,{type:'button',id:'clear',style:'margin-top: 5px',label:d.clear,onClick:h}]}]}]}]};});
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/find/dialogs/find.js b/appsrc/ODS-Framework/ckeditor/plugins/find/dialogs/find.js
index 99277bb..66ed2e7 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/find/dialogs/find.js
+++ b/appsrc/ODS-Framework/ckeditor/plugins/find/dialogs/find.js
@@ -1,10 +1,10 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
-(function(){var a;function b(i){return i.type==CKEDITOR.NODE_TEXT&&i.getLength()>0&&(!a||!i.isReadOnly());};function c(i){return!(i.type==CKEDITOR.NODE_ELEMENT&&i.isBlockBoundary(CKEDITOR.tools.extend({},CKEDITOR.dtd.$empty,CKEDITOR.dtd.$nonEditable)));};var d=function(){var i=this;return{textNode:i.textNode,offset:i.offset,character:i.textNode?i.textNode.getText().charAt(i.offset):null,hitMatchBoundary:i._.matchBoundary};},e=['find','replace'],f=[['txtFindFind','txtFindReplace'],['txtFindCaseChk','txtReplaceCaseChk'],['txtFindWordChk','txtReplaceWordChk'],['txtFindCyclic','txtReplaceCyclic']];function g(i){var j,k,l,m;j=i==='find'?1:0;k=1-j;var n,o=f.length;for(n=0;n<o;n++){l=this.getContentElement(e[j],f[n][j]);m=this.getContentElement(e[k],f[n][k]);m.setValue(l.getValue());}};var h=function(i,j){var k=new CKEDITOR.style(CKEDITOR.tools.extend({fullMatch:true,childRule:function(){return 0;}},i.config.find_highlight)),l=function(y,z){var A=this,B=new CKEDITOR.dom.walker(y);B.guard=z?c:function(C){!c(C)&&(A._.matchBoundary=true);};B.evaluator=b;B.breakOnFalse=1;if(y.startContainer.type==CKEDITOR.NODE_TEXT){this.textNode=y.startContainer;this.offset=y.startOffset-1;}this._={matchWord:z,walker:B,matchBoundary:false};};l.prototype={next:function(){return this.move();},back:function(){return this.move(true);},move:function(y){var A=this;var z=A.textNode;if(z===null)return d.call(A);A._.matchBoundary=false;if(z&&y&&A.offset>0){A.offset--;return d.call(A);}else if(z&&A.offset<z.getLength()-1){A.offset++;return d.call(A);}else{z=null;while(!z){z=A._.walker[y?'previous':'next'].call(A._.walker);if(A._.matchWord&&!z||A._.walker._.end)break;}A.textNode=z;if(z)A.offset=y?z.getLength()-1:0;else A.offset=0;}return d.call(A);}};var m=function(y,z){this._={walker:y,cursors:[],rangeLength:z,highlightRange:null,isMatched:0};};m.prototype={toDomRange:function(){var y=new CKEDITOR.dom.range(i.document),z=this._.cursors;if(z.length<1){var A=this._.walker.textNode;if(A)y.setStartAfter(A);else return null;}else{var B=z[0],C=z[z.length-1];y.setStart(B.textNode,B.offset);y.setEnd(C.textNode,C.offset+1);}return y;},updateFromDomRange:function(y){var B=this;var z,A=new l(y);B._.cursors=[];do{z=A.next();if(z.character)B._.cursors.push(z);}while(z.character);B._.rangeLength=B._.cursors.length;},setMatched:function(){this._.isMatched=true;},clearMatched:function(){this._.isMatched=false;},isMatched:function(){return this._.isMatched;},highlight:function(){var B=this;if(B._.cursors.length<1)return;
-if(B._.highlightRange)B.removeHighlight();var y=B.toDomRange(),z=y.createBookmark();k.applyToRange(y);y.moveToBookmark(z);B._.highlightRange=y;var A=y.startContainer;if(A.type!=CKEDITOR.NODE_ELEMENT)A=A.getParent();A.scrollIntoView();B.updateFromDomRange(y);},removeHighlight:function(){var z=this;if(!z._.highlightRange)return;var y=z._.highlightRange.createBookmark();k.removeFromRange(z._.highlightRange);z._.highlightRange.moveToBookmark(y);z.updateFromDomRange(z._.highlightRange);z._.highlightRange=null;},isReadOnly:function(){if(!this._.highlightRange)return 0;return this._.highlightRange.startContainer.isReadOnly();},moveBack:function(){var A=this;var y=A._.walker.back(),z=A._.cursors;if(y.hitMatchBoundary)A._.cursors=z=[];z.unshift(y);if(z.length>A._.rangeLength)z.pop();return y;},moveNext:function(){var A=this;var y=A._.walker.next(),z=A._.cursors;if(y.hitMatchBoundary)A._.cursors=z=[];z.push(y);if(z.length>A._.rangeLength)z.shift();return y;},getEndCharacter:function(){var y=this._.cursors;if(y.length<1)return null;return y[y.length-1].character;},getNextCharacterRange:function(y){var z,A,B=this._.cursors;if((z=B[B.length-1])&&z.textNode)A=new l(n(z));else A=this._.walker;return new m(A,y);},getCursors:function(){return this._.cursors;}};function n(y,z){var A=new CKEDITOR.dom.range();A.setStart(y.textNode,z?y.offset:y.offset+1);A.setEndAt(i.document.getBody(),CKEDITOR.POSITION_BEFORE_END);return A;};function o(y){var z=new CKEDITOR.dom.range();z.setStartAt(i.document.getBody(),CKEDITOR.POSITION_AFTER_START);z.setEnd(y.textNode,y.offset);return z;};var p=0,q=1,r=2,s=function(y,z){var A=[-1];if(z)y=y.toLowerCase();for(var B=0;B<y.length;B++){A.push(A[B]+1);while(A[B+1]>0&&y.charAt(B)!=y.charAt(A[B+1]-1))A[B+1]=A[A[B+1]-1]+1;}this._={overlap:A,state:0,ignoreCase:!!z,pattern:y};};s.prototype={feedCharacter:function(y){var z=this;if(z._.ignoreCase)y=y.toLowerCase();for(;;){if(y==z._.pattern.charAt(z._.state)){z._.state++;if(z._.state==z._.pattern.length){z._.state=0;return r;}return q;}else if(!z._.state)return p;else z._.state=z._.overlap[z._.state];}return null;},reset:function(){this._.state=0;}};var t=/[.,"'?!;: \u0085\u00a0\u1680\u280e\u2028\u2029\u202f\u205f\u3000]/,u=function(y){if(!y)return true;var z=y.charCodeAt(0);return z>=9&&z<=13||z>=8192&&z<=8202||t.test(y);},v={searchRange:null,matchRange:null,find:function(y,z,A,B,C,D){var M=this;if(!M.matchRange)M.matchRange=new m(new l(M.searchRange),y.length);else{M.matchRange.removeHighlight();M.matchRange=M.matchRange.getNextCharacterRange(y.length);
-}var E=new s(y,!z),F=p,G='%';while(G!==null){M.matchRange.moveNext();while(G=M.matchRange.getEndCharacter()){F=E.feedCharacter(G);if(F==r)break;if(M.matchRange.moveNext().hitMatchBoundary)E.reset();}if(F==r){if(A){var H=M.matchRange.getCursors(),I=H[H.length-1],J=H[0],K=new l(o(J),true),L=new l(n(I),true);if(!(u(K.back().character)&&u(L.next().character)))continue;}M.matchRange.setMatched();if(C!==false)M.matchRange.highlight();return true;}}M.matchRange.clearMatched();M.matchRange.removeHighlight();if(B&&!D){M.searchRange=w(1);M.matchRange=null;return arguments.callee.apply(M,Array.prototype.slice.call(arguments).concat([true]));}return false;},replaceCounter:0,replace:function(y,z,A,B,C,D,E){var J=this;a=1;var F=0;if(J.matchRange&&J.matchRange.isMatched()&&!J.matchRange._.isReplaced&&!J.matchRange.isReadOnly()){J.matchRange.removeHighlight();var G=J.matchRange.toDomRange(),H=i.document.createText(A);if(!E){var I=i.getSelection();I.selectRanges([G]);i.fire('saveSnapshot');}G.deleteContents();G.insertNode(H);if(!E){I.selectRanges([G]);i.fire('saveSnapshot');}J.matchRange.updateFromDomRange(G);if(!E)J.matchRange.highlight();J.matchRange._.isReplaced=true;J.replaceCounter++;F=1;}else F=J.find(z,B,C,D,!E);a=0;return F;}};function w(y){var z,A=i.getSelection(),B=i.document.getBody();if(A&&!y){z=A.getRanges()[0].clone();z.collapse(true);}else{z=new CKEDITOR.dom.range();z.setStartAt(B,CKEDITOR.POSITION_AFTER_START);}z.setEndAt(B,CKEDITOR.POSITION_BEFORE_END);return z;};var x=i.lang.findAndReplace;return{title:x.title,resizable:CKEDITOR.DIALOG_RESIZE_NONE,minWidth:350,minHeight:170,buttons:[CKEDITOR.dialog.cancelButton],contents:[{id:'find',label:x.find,title:x.find,accessKey:'',elements:[{type:'hbox',widths:['230px','90px'],children:[{type:'text',id:'txtFindFind',label:x.findWhat,isChanged:false,labelLayout:'horizontal',accessKey:'F'},{type:'button',id:'btnFind',align:'left',style:'width:100%',label:x.find,onClick:function(){var y=this.getDialog();if(!v.find(y.getValueOf('find','txtFindFind'),y.getValueOf('find','txtFindCaseChk'),y.getValueOf('find','txtFindWordChk'),y.getValueOf('find','txtFindCyclic')))alert(x.notFoundMsg);}}]},{type:'vbox',padding:0,children:[{type:'checkbox',id:'txtFindCaseChk',isChanged:false,style:'margin-top:28px',label:x.matchCase},{type:'checkbox',id:'txtFindWordChk',isChanged:false,label:x.matchWord},{type:'checkbox',id:'txtFindCyclic',isChanged:false,'default':true,label:x.matchCyclic}]}]},{id:'replace',label:x.replace,accessKey:'M',elements:[{type:'hbox',widths:['230px','90px'],children:[{type:'text',id:'txtFindReplace',label:x.findWhat,isChanged:false,labelLayout:'horizontal',accessKey:'F'},{type:'button',id:'btnFindReplace',align:'left',style:'width:100%',label:x.replace,onClick:function(){var y=this.getDialog();
-if(!v.replace(y,y.getValueOf('replace','txtFindReplace'),y.getValueOf('replace','txtReplace'),y.getValueOf('replace','txtReplaceCaseChk'),y.getValueOf('replace','txtReplaceWordChk'),y.getValueOf('replace','txtReplaceCyclic')))alert(x.notFoundMsg);}}]},{type:'hbox',widths:['230px','90px'],children:[{type:'text',id:'txtReplace',label:x.replaceWith,isChanged:false,labelLayout:'horizontal',accessKey:'R'},{type:'button',id:'btnReplaceAll',align:'left',style:'width:100%',label:x.replaceAll,isChanged:false,onClick:function(){var y=this.getDialog(),z;v.replaceCounter=0;v.searchRange=w(1);if(v.matchRange){v.matchRange.removeHighlight();v.matchRange=null;}i.fire('saveSnapshot');while(v.replace(y,y.getValueOf('replace','txtFindReplace'),y.getValueOf('replace','txtReplace'),y.getValueOf('replace','txtReplaceCaseChk'),y.getValueOf('replace','txtReplaceWordChk'),false,true)){}if(v.replaceCounter){alert(x.replaceSuccessMsg.replace(/%1/,v.replaceCounter));i.fire('saveSnapshot');}else alert(x.notFoundMsg);}}]},{type:'vbox',padding:0,children:[{type:'checkbox',id:'txtReplaceCaseChk',isChanged:false,label:x.matchCase},{type:'checkbox',id:'txtReplaceWordChk',isChanged:false,label:x.matchWord},{type:'checkbox',id:'txtReplaceCyclic',isChanged:false,'default':true,label:x.matchCyclic}]}]}],onLoad:function(){var y=this,z,A,B=0;this.on('hide',function(){B=0;});this.on('show',function(){B=1;});this.selectPage=CKEDITOR.tools.override(this.selectPage,function(C){return function(D){C.call(y,D);var E=y._.tabs[D],F,G,H;G=D==='find'?'txtFindFind':'txtFindReplace';H=D==='find'?'txtFindWordChk':'txtReplaceWordChk';z=y.getContentElement(D,G);A=y.getContentElement(D,H);if(!E.initialized){F=CKEDITOR.document.getById(z._.inputId);E.initialized=true;}if(B)g.call(this,D);};});},onShow:function(){var B=this;v.searchRange=w();var y=B.getParentEditor().getSelection().getSelectedText(),z=j=='find'?'txtFindFind':'txtFindReplace',A=B.getContentElement(j,z);A.setValue(y);A.select();B.selectPage(j);B[(j=='find'&&B._.editor.readOnly?'hide':'show')+'Page']('replace');},onHide:function(){var y;if(v.matchRange&&v.matchRange.isMatched()){v.matchRange.removeHighlight();i.focus();y=v.matchRange.toDomRange();if(y)i.getSelection().selectRanges([y]);}delete v.matchRange;},onFocus:function(){if(j=='replace')return this.getContentElement('replace','txtFindReplace');else return this.getContentElement('find','txtFindFind');}};};CKEDITOR.dialog.add('find',function(i){return h(i,'find');});CKEDITOR.dialog.add('replace',function(i){return h(i,'replace');
-});})();
+(function(){var a;function b(i){return i.type==CKEDITOR.NODE_TEXT&&i.getLength()>0&&(!a||!i.isReadOnly());};function c(i){return!(i.type==CKEDITOR.NODE_ELEMENT&&i.isBlockBoundary(CKEDITOR.tools.extend({},CKEDITOR.dtd.$empty,CKEDITOR.dtd.$nonEditable)));};var d=function(){var i=this;return{textNode:i.textNode,offset:i.offset,character:i.textNode?i.textNode.getText().charAt(i.offset):null,hitMatchBoundary:i._.matchBoundary};},e=['find','replace'],f=[['txtFindFind','txtFindReplace'],['txtFindCaseChk','txtReplaceCaseChk'],['txtFindWordChk','txtReplaceWordChk'],['txtFindCyclic','txtReplaceCyclic']];function g(i){var j,k,l,m;j=i==='find'?1:0;k=1-j;var n,o=f.length;for(n=0;n<o;n++){l=this.getContentElement(e[j],f[n][j]);m=this.getContentElement(e[k],f[n][k]);m.setValue(l.getValue());}};var h=function(i,j){var k=new CKEDITOR.style(CKEDITOR.tools.extend({attributes:{'data-cke-highlight':1},fullMatch:1,ignoreReadonly:1,childRule:function(){return 0;}},i.config.find_highlight,true)),l=function(y,z){var A=this,B=new CKEDITOR.dom.walker(y);B.guard=z?c:function(C){!c(C)&&(A._.matchBoundary=true);};B.evaluator=b;B.breakOnFalse=1;if(y.startContainer.type==CKEDITOR.NODE_TEXT){this.textNode=y.startContainer;this.offset=y.startOffset-1;}this._={matchWord:z,walker:B,matchBoundary:false};};l.prototype={next:function(){return this.move();},back:function(){return this.move(true);},move:function(y){var A=this;var z=A.textNode;if(z===null)return d.call(A);A._.matchBoundary=false;if(z&&y&&A.offset>0){A.offset--;return d.call(A);}else if(z&&A.offset<z.getLength()-1){A.offset++;return d.call(A);}else{z=null;while(!z){z=A._.walker[y?'previous':'next'].call(A._.walker);if(A._.matchWord&&!z||A._.walker._.end)break;}A.textNode=z;if(z)A.offset=y?z.getLength()-1:0;else A.offset=0;}return d.call(A);}};var m=function(y,z){this._={walker:y,cursors:[],rangeLength:z,highlightRange:null,isMatched:0};};m.prototype={toDomRange:function(){var y=new CKEDITOR.dom.range(i.document),z=this._.cursors;if(z.length<1){var A=this._.walker.textNode;if(A)y.setStartAfter(A);else return null;}else{var B=z[0],C=z[z.length-1];y.setStart(B.textNode,B.offset);y.setEnd(C.textNode,C.offset+1);}return y;},updateFromDomRange:function(y){var B=this;var z,A=new l(y);B._.cursors=[];do{z=A.next();if(z.character)B._.cursors.push(z);}while(z.character);B._.rangeLength=B._.cursors.length;},setMatched:function(){this._.isMatched=true;},clearMatched:function(){this._.isMatched=false;},isMatched:function(){return this._.isMatched;
+},highlight:function(){var B=this;if(B._.cursors.length<1)return;if(B._.highlightRange)B.removeHighlight();var y=B.toDomRange(),z=y.createBookmark();k.applyToRange(y);y.moveToBookmark(z);B._.highlightRange=y;var A=y.startContainer;if(A.type!=CKEDITOR.NODE_ELEMENT)A=A.getParent();A.scrollIntoView();B.updateFromDomRange(y);},removeHighlight:function(){var z=this;if(!z._.highlightRange)return;var y=z._.highlightRange.createBookmark();k.removeFromRange(z._.highlightRange);z._.highlightRange.moveToBookmark(y);z.updateFromDomRange(z._.highlightRange);z._.highlightRange=null;},isReadOnly:function(){if(!this._.highlightRange)return 0;return this._.highlightRange.startContainer.isReadOnly();},moveBack:function(){var A=this;var y=A._.walker.back(),z=A._.cursors;if(y.hitMatchBoundary)A._.cursors=z=[];z.unshift(y);if(z.length>A._.rangeLength)z.pop();return y;},moveNext:function(){var A=this;var y=A._.walker.next(),z=A._.cursors;if(y.hitMatchBoundary)A._.cursors=z=[];z.push(y);if(z.length>A._.rangeLength)z.shift();return y;},getEndCharacter:function(){var y=this._.cursors;if(y.length<1)return null;return y[y.length-1].character;},getNextCharacterRange:function(y){var z,A,B=this._.cursors;if((z=B[B.length-1])&&z.textNode)A=new l(n(z));else A=this._.walker;return new m(A,y);},getCursors:function(){return this._.cursors;}};function n(y,z){var A=new CKEDITOR.dom.range();A.setStart(y.textNode,z?y.offset:y.offset+1);A.setEndAt(i.document.getBody(),CKEDITOR.POSITION_BEFORE_END);return A;};function o(y){var z=new CKEDITOR.dom.range();z.setStartAt(i.document.getBody(),CKEDITOR.POSITION_AFTER_START);z.setEnd(y.textNode,y.offset);return z;};var p=0,q=1,r=2,s=function(y,z){var A=[-1];if(z)y=y.toLowerCase();for(var B=0;B<y.length;B++){A.push(A[B]+1);while(A[B+1]>0&&y.charAt(B)!=y.charAt(A[B+1]-1))A[B+1]=A[A[B+1]-1]+1;}this._={overlap:A,state:0,ignoreCase:!!z,pattern:y};};s.prototype={feedCharacter:function(y){var z=this;if(z._.ignoreCase)y=y.toLowerCase();for(;;){if(y==z._.pattern.charAt(z._.state)){z._.state++;if(z._.state==z._.pattern.length){z._.state=0;return r;}return q;}else if(!z._.state)return p;else z._.state=z._.overlap[z._.state];}return null;},reset:function(){this._.state=0;}};var t=/[.,"'?!;: \u0085\u00a0\u1680\u280e\u2028\u2029\u202f\u205f\u3000]/,u=function(y){if(!y)return true;var z=y.charCodeAt(0);return z>=9&&z<=13||z>=8192&&z<=8202||t.test(y);},v={searchRange:null,matchRange:null,find:function(y,z,A,B,C,D){var M=this;if(!M.matchRange)M.matchRange=new m(new l(M.searchRange),y.length);
+else{M.matchRange.removeHighlight();M.matchRange=M.matchRange.getNextCharacterRange(y.length);}var E=new s(y,!z),F=p,G='%';while(G!==null){M.matchRange.moveNext();while(G=M.matchRange.getEndCharacter()){F=E.feedCharacter(G);if(F==r)break;if(M.matchRange.moveNext().hitMatchBoundary)E.reset();}if(F==r){if(A){var H=M.matchRange.getCursors(),I=H[H.length-1],J=H[0],K=new l(o(J),true),L=new l(n(I),true);if(!(u(K.back().character)&&u(L.next().character)))continue;}M.matchRange.setMatched();if(C!==false)M.matchRange.highlight();return true;}}M.matchRange.clearMatched();M.matchRange.removeHighlight();if(B&&!D){M.searchRange=w(1);M.matchRange=null;return arguments.callee.apply(M,Array.prototype.slice.call(arguments).concat([true]));}return false;},replaceCounter:0,replace:function(y,z,A,B,C,D,E){var J=this;a=1;var F=0;if(J.matchRange&&J.matchRange.isMatched()&&!J.matchRange._.isReplaced&&!J.matchRange.isReadOnly()){J.matchRange.removeHighlight();var G=J.matchRange.toDomRange(),H=i.document.createText(A);if(!E){var I=i.getSelection();I.selectRanges([G]);i.fire('saveSnapshot');}G.deleteContents();G.insertNode(H);if(!E){I.selectRanges([G]);i.fire('saveSnapshot');}J.matchRange.updateFromDomRange(G);if(!E)J.matchRange.highlight();J.matchRange._.isReplaced=true;J.replaceCounter++;F=1;}else F=J.find(z,B,C,D,!E);a=0;return F;}};function w(y){var z,A=i.getSelection(),B=i.document.getBody();if(A&&!y){z=A.getRanges()[0].clone();z.collapse(true);}else{z=new CKEDITOR.dom.range();z.setStartAt(B,CKEDITOR.POSITION_AFTER_START);}z.setEndAt(B,CKEDITOR.POSITION_BEFORE_END);return z;};var x=i.lang.findAndReplace;return{title:x.title,resizable:CKEDITOR.DIALOG_RESIZE_NONE,minWidth:350,minHeight:170,buttons:[CKEDITOR.dialog.cancelButton],contents:[{id:'find',label:x.find,title:x.find,accessKey:'',elements:[{type:'hbox',widths:['230px','90px'],children:[{type:'text',id:'txtFindFind',label:x.findWhat,isChanged:false,labelLayout:'horizontal',accessKey:'F'},{type:'button',id:'btnFind',align:'left',style:'width:100%',label:x.find,onClick:function(){var y=this.getDialog();if(!v.find(y.getValueOf('find','txtFindFind'),y.getValueOf('find','txtFindCaseChk'),y.getValueOf('find','txtFindWordChk'),y.getValueOf('find','txtFindCyclic')))alert(x.notFoundMsg);}}]},{type:'fieldset',label:CKEDITOR.tools.htmlEncode(x.findOptions),style:'margin-top:29px',children:[{type:'vbox',padding:0,children:[{type:'checkbox',id:'txtFindCaseChk',isChanged:false,label:x.matchCase},{type:'checkbox',id:'txtFindWordChk',isChanged:false,label:x.matchWord},{type:'checkbox',id:'txtFindCyclic',isChanged:false,'default':true,label:x.matchCyclic}]}]}]},{id:'replace',label:x.replace,accessKey:'M',elements:[{type:'hbox',widths:['230px','90px'],children:[{type:'text',id:'txtFindReplace',label:x.findWhat,isChanged:false,labelLayout:'horizontal',accessKey:'F'},{type:'button',id:'btnFindReplace',align:'left',style:'width:100%',label:x.replace,onClick:function(){var y=this.getDialog();
+if(!v.replace(y,y.getValueOf('replace','txtFindReplace'),y.getValueOf('replace','txtReplace'),y.getValueOf('replace','txtReplaceCaseChk'),y.getValueOf('replace','txtReplaceWordChk'),y.getValueOf('replace','txtReplaceCyclic')))alert(x.notFoundMsg);}}]},{type:'hbox',widths:['230px','90px'],children:[{type:'text',id:'txtReplace',label:x.replaceWith,isChanged:false,labelLayout:'horizontal',accessKey:'R'},{type:'button',id:'btnReplaceAll',align:'left',style:'width:100%',label:x.replaceAll,isChanged:false,onClick:function(){var y=this.getDialog(),z;v.replaceCounter=0;v.searchRange=w(1);if(v.matchRange){v.matchRange.removeHighlight();v.matchRange=null;}i.fire('saveSnapshot');while(v.replace(y,y.getValueOf('replace','txtFindReplace'),y.getValueOf('replace','txtReplace'),y.getValueOf('replace','txtReplaceCaseChk'),y.getValueOf('replace','txtReplaceWordChk'),false,true)){}if(v.replaceCounter){alert(x.replaceSuccessMsg.replace(/%1/,v.replaceCounter));i.fire('saveSnapshot');}else alert(x.notFoundMsg);}}]},{type:'fieldset',label:CKEDITOR.tools.htmlEncode(x.findOptions),children:[{type:'vbox',padding:0,children:[{type:'checkbox',id:'txtReplaceCaseChk',isChanged:false,label:x.matchCase},{type:'checkbox',id:'txtReplaceWordChk',isChanged:false,label:x.matchWord},{type:'checkbox',id:'txtReplaceCyclic',isChanged:false,'default':true,label:x.matchCyclic}]}]}]}],onLoad:function(){var y=this,z,A,B=0;this.on('hide',function(){B=0;});this.on('show',function(){B=1;});this.selectPage=CKEDITOR.tools.override(this.selectPage,function(C){return function(D){C.call(y,D);var E=y._.tabs[D],F,G,H;G=D==='find'?'txtFindFind':'txtFindReplace';H=D==='find'?'txtFindWordChk':'txtReplaceWordChk';z=y.getContentElement(D,G);A=y.getContentElement(D,H);if(!E.initialized){F=CKEDITOR.document.getById(z._.inputId);E.initialized=true;}if(B)g.call(this,D);};});},onShow:function(){var B=this;v.searchRange=w();var y=B.getParentEditor().getSelection().getSelectedText(),z=j=='find'?'txtFindFind':'txtFindReplace',A=B.getContentElement(j,z);A.setValue(y);A.select();B.selectPage(j);B[(j=='find'&&B._.editor.readOnly?'hide':'show')+'Page']('replace');},onHide:function(){var y;if(v.matchRange&&v.matchRange.isMatched()){v.matchRange.removeHighlight();i.focus();y=v.matchRange.toDomRange();if(y)i.getSelection().selectRanges([y]);}delete v.matchRange;},onFocus:function(){if(j=='replace')return this.getContentElement('replace','txtFindReplace');else return this.getContentElement('find','txtFindFind');}};};CKEDITOR.dialog.add('find',function(i){return h(i,'find');
+});CKEDITOR.dialog.add('replace',function(i){return h(i,'replace');});})();
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/flash/dialogs/flash.js b/appsrc/ODS-Framework/ckeditor/plugins/flash/dialogs/flash.js
index a0f522b..40f9452 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/flash/dialogs/flash.js
+++ b/appsrc/ODS-Framework/ckeditor/plugins/flash/dialogs/flash.js
@@ -1,9 +1,9 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
 (function(){var a=1,b=2,c=4,d={id:[{type:a,name:'id'}],classid:[{type:a,name:'classid'}],codebase:[{type:a,name:'codebase'}],pluginspage:[{type:c,name:'pluginspage'}],src:[{type:b,name:'movie'},{type:c,name:'src'},{type:a,name:'data'}],name:[{type:c,name:'name'}],align:[{type:a,name:'align'}],title:[{type:a,name:'title'},{type:c,name:'title'}],'class':[{type:a,name:'class'},{type:c,name:'class'}],width:[{type:a,name:'width'},{type:c,name:'width'}],height:[{type:a,name:'height'},{type:c,name:'height'}],hSpace:[{type:a,name:'hSpace'},{type:c,name:'hSpace'}],vSpace:[{type:a,name:'vSpace'},{type:c,name:'vSpace'}],style:[{type:a,name:'style'},{type:c,name:'style'}],type:[{type:c,name:'type'}]},e=['play','loop','menu','quality','scale','salign','wmode','bgcolor','base','flashvars','allowScriptAccess','allowFullScreen'];for(var f=0;f<e.length;f++)d[e[f]]=[{type:c,name:e[f]},{type:b,name:e[f]}];e=['allowFullScreen','play','loop','menu'];for(f=0;f<e.length;f++)d[e[f]][0]['default']=d[e[f]][1]['default']=true;var g=CKEDITOR.tools.cssLength;function h(j,k,l){var r=this;var m=d[r.id];if(!m)return;var n=r instanceof CKEDITOR.ui.dialog.checkbox;for(var o=0;o<m.length;o++){var p=m[o];switch(p.type){case a:if(!j)continue;if(j.getAttribute(p.name)!==null){var q=j.getAttribute(p.name);if(n)r.setValue(q.toLowerCase()=='true');else r.setValue(q);return;}else if(n)r.setValue(!!p['default']);break;case b:if(!j)continue;if(p.name in l){q=l[p.name];if(n)r.setValue(q.toLowerCase()=='true');else r.setValue(q);return;}else if(n)r.setValue(!!p['default']);break;case c:if(!k)continue;if(k.getAttribute(p.name)){q=k.getAttribute(p.name);if(n)r.setValue(q.toLowerCase()=='true');else r.setValue(q);return;}else if(n)r.setValue(!!p['default']);}}};function i(j,k,l){var t=this;var m=d[t.id];if(!m)return;var n=t.getValue()==='',o=t instanceof CKEDITOR.ui.dialog.checkbox;for(var p=0;p<m.length;p++){var q=m[p];switch(q.type){case a:if(!j||q.name=='data'&&k&&!j.hasAttribute('data'))continue;var r=t.getValue();if(n||o&&r===q['default'])j.removeAttribute(q.name);else j.setAttribute(q.name,r);break;case b:if(!j)continue;r=t.getValue();if(n||o&&r===q['default']){if(q.name in l)l[q.name].remove();}else if(q.name in l)l[q.name].setAttribute('value',r);else{var s=CKEDITOR.dom.element.createFromHtml('<cke:param></cke:param>',j.getDocument());s.setAttributes({name:q.name,value:r});if(j.getChildCount()<1)s.appendTo(j);else s.insertBefore(j.getFirst());}break;case c:if(!k)continue;r=t.getValue();if(n||o&&r===q['default'])k.removeAttribute(q.name);
 else k.setAttribute(q.name,r);}}};CKEDITOR.dialog.add('flash',function(j){var k=!j.config.flashEmbedTagOnly,l=j.config.flashAddEmbedTag||j.config.flashEmbedTagOnly,m,n='<div>'+CKEDITOR.tools.htmlEncode(j.lang.common.preview)+'<br>'+'<div id="cke_FlashPreviewLoader'+CKEDITOR.tools.getNextNumber()+'" style="display:none"><div class="loading"> </div></div>'+'<div id="cke_FlashPreviewBox'+CKEDITOR.tools.getNextNumber()+'" class="FlashPreviewBox"></div></div>';return{title:j.lang.flash.title,minWidth:420,minHeight:310,onShow:function(){var A=this;A.fakeImage=A.objectNode=A.embedNode=null;m=new CKEDITOR.dom.element('embed',j.document);var o=A.getSelectedElement();if(o&&o.data('cke-real-element-type')&&o.data('cke-real-element-type')=='flash'){A.fakeImage=o;var p=j.restoreRealElement(o),q=null,r=null,s={};if(p.getName()=='cke:object'){q=p;var t=q.getElementsByTag('embed','cke');if(t.count()>0)r=t.getItem(0);var u=q.getElementsByTag('param','cke');for(var v=0,w=u.count();v<w;v++){var x=u.getItem(v),y=x.getAttribute('name'),z=x.getAttribute('value');s[y]=z;}}else if(p.getName()=='cke:embed')r=p;A.objectNode=q;A.embedNode=r;A.setupContent(q,r,s,o);}},onOk:function(){var y=this;var o=null,p=null,q=null;if(!y.fakeImage){if(k){o=CKEDITOR.dom.element.createFromHtml('<cke:object></cke:object>',j.document);var r={classid:'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000',codebase:'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0'};o.setAttributes(r);}if(l){p=CKEDITOR.dom.element.createFromHtml('<cke:embed></cke:embed>',j.document);p.setAttributes({type:'application/x-shockwave-flash',pluginspage:'http://www.macromedia.com/go/getflashplayer'});if(o)p.appendTo(o);}}else{o=y.objectNode;p=y.embedNode;}if(o){q={};var s=o.getElementsByTag('param','cke');for(var t=0,u=s.count();t<u;t++)q[s.getItem(t).getAttribute('name')]=s.getItem(t);}var v={},w={};y.commitContent(o,p,q,v,w);var x=j.createFakeElement(o||p,'cke_flash','flash',true);x.setAttributes(w);x.setStyles(v);if(y.fakeImage){x.replace(y.fakeImage);j.getSelection().selectElement(x);}else j.insertElement(x);},onHide:function(){if(this.preview)this.preview.setHtml('');},contents:[{id:'info',label:j.lang.common.generalTab,accessKey:'I',elements:[{type:'vbox',padding:0,children:[{type:'hbox',widths:['280px','110px'],align:'right',children:[{id:'src',type:'text',label:j.lang.common.url,required:true,validate:CKEDITOR.dialog.validate.notEmpty(j.lang.flash.validateSrc),setup:h,commit:i,onLoad:function(){var o=this.getDialog(),p=function(q){m.setAttribute('src',q);
 o.preview.setHtml('<embed height="100%" width="100%" src="'+CKEDITOR.tools.htmlEncode(m.getAttribute('src'))+'" type="application/x-shockwave-flash"></embed>');};o.preview=o.getContentElement('info','preview').getElement().getChild(3);this.on('change',function(q){if(q.data&&q.data.value)p(q.data.value);});this.getInputElement().on('change',function(q){p(this.getValue());},this);}},{type:'button',id:'browse',filebrowser:'info:src',hidden:true,style:'display:inline-block;margin-top:10px;',label:j.lang.common.browseServer}]}]},{type:'hbox',widths:['25%','25%','25%','25%','25%'],children:[{type:'text',id:'width',style:'width:95px',label:j.lang.common.width,validate:CKEDITOR.dialog.validate.htmlLength(j.lang.common.invalidHtmlLength.replace('%1',j.lang.common.width)),setup:h,commit:i},{type:'text',id:'height',style:'width:95px',label:j.lang.common.height,validate:CKEDITOR.dialog.validate.htmlLength(j.lang.common.invalidHtmlLength.replace('%1',j.lang.common.height)),setup:h,commit:i},{type:'text',id:'hSpace',style:'width:95px',label:j.lang.flash.hSpace,validate:CKEDITOR.dialog.validate.integer(j.lang.flash.validateHSpace),setup:h,commit:i},{type:'text',id:'vSpace',style:'width:95px',label:j.lang.flash.vSpace,validate:CKEDITOR.dialog.validate.integer(j.lang.flash.validateVSpace),setup:h,commit:i}]},{type:'vbox',children:[{type:'html',id:'preview',style:'width:95%;',html:n}]}]},{id:'Upload',hidden:true,filebrowser:'uploadButton',label:j.lang.common.upload,elements:[{type:'file',id:'upload',label:j.lang.common.upload,size:38},{type:'fileButton',id:'uploadButton',label:j.lang.common.uploadSubmit,filebrowser:'info:src','for':['Upload','upload']}]},{id:'properties',label:j.lang.flash.propertiesTab,elements:[{type:'hbox',widths:['50%','50%'],children:[{id:'scale',type:'select',label:j.lang.flash.scale,'default':'',style:'width : 100%;',items:[[j.lang.common.notSet,''],[j.lang.flash.scaleAll,'showall'],[j.lang.flash.scaleNoBorder,'noborder'],[j.lang.flash.scaleFit,'exactfit']],setup:h,commit:i},{id:'allowScriptAccess',type:'select',label:j.lang.flash.access,'default':'',style:'width : 100%;',items:[[j.lang.common.notSet,''],[j.lang.flash.accessAlways,'always'],[j.lang.flash.accessSameDomain,'samedomain'],[j.lang.flash.accessNever,'never']],setup:h,commit:i}]},{type:'hbox',widths:['50%','50%'],children:[{id:'wmode',type:'select',label:j.lang.flash.windowMode,'default':'',style:'width : 100%;',items:[[j.lang.common.notSet,''],[j.lang.flash.windowModeWindow,'window'],[j.lang.flash.windowModeOpaque,'opaque'],[j.lang.flash.windowModeTransparent,'transparent']],setup:h,commit:i},{id:'quality',type:'select',label:j.lang.flash.quality,'default':'high',style:'width : 100%;',items:[[j.lang.common.notSet,''],[j.lang.flash.qualityBest,'best'],[j.lang.flash.qualityHigh,'high'],[j.lang.flash.qualityAutoHigh,'autohigh'],[j.lang.flash.qualityMedium,'medium'],[j.lang.flash.qualityAutoLow,'autolow'],[j.lang.flash.qualityLow,'low']],setup:h,commit:i}]},{type:'hbox',widths:['50%','50%'],children:[{id:'align',type:'select',label:j.lang.common.align,'default':'',style:'width : 100%;',items:[[j.lang.common.notSet,''],[j.lang.common.alignLeft,'left'],[j.lang.flash.alignAbsBottom,'absBottom'],[j.lang.flash.alignAbsMiddle,'absMiddle'],[j.lang.flash.alignBaseline,'baseline'],[j.lang.common.alignBottom,'bottom'],[j.lang.common.alignMiddle,'middle'],[j.lang.common.alignRight,'right'],[j.lang.flash.alignTextTop,'textTop'],[j.lang.common.alignTop,'top']],setup:h,commit:function(o,p,q,r,s){var t=this.getValue();
-i.apply(this,arguments);t&&(s.align=t);}},{type:'html',html:'<div></div>'}]},{type:'fieldset',label:CKEDITOR.tools.htmlEncode(j.lang.flash.flashvars),children:[{type:'vbox',padding:0,children:[{type:'checkbox',id:'menu',label:j.lang.flash.chkMenu,'default':true,setup:h,commit:i},{type:'checkbox',id:'play',label:j.lang.flash.chkPlay,'default':true,setup:h,commit:i},{type:'checkbox',id:'loop',label:j.lang.flash.chkLoop,'default':true,setup:h,commit:i},{type:'checkbox',id:'allowFullScreen',label:j.lang.flash.chkFull,'default':true,setup:h,commit:i}]}]}]},{id:'advanced',label:j.lang.common.advancedTab,elements:[{type:'hbox',widths:['45%','55%'],children:[{type:'text',id:'id',label:j.lang.common.id,setup:h,commit:i},{type:'text',id:'title',label:j.lang.common.advisoryTitle,setup:h,commit:i}]},{type:'hbox',widths:['45%','55%'],children:[{type:'text',id:'bgcolor',label:j.lang.flash.bgcolor,setup:h,commit:i},{type:'text',id:'class',label:j.lang.common.cssClass,setup:h,commit:i}]},{type:'text',id:'style',label:j.lang.common.cssStyle,setup:h,commit:i}]}]};});})();
+i.apply(this,arguments);t&&(s.align=t);}},{type:'html',html:'<div></div>'}]},{type:'fieldset',label:CKEDITOR.tools.htmlEncode(j.lang.flash.flashvars),children:[{type:'vbox',padding:0,children:[{type:'checkbox',id:'menu',label:j.lang.flash.chkMenu,'default':true,setup:h,commit:i},{type:'checkbox',id:'play',label:j.lang.flash.chkPlay,'default':true,setup:h,commit:i},{type:'checkbox',id:'loop',label:j.lang.flash.chkLoop,'default':true,setup:h,commit:i},{type:'checkbox',id:'allowFullScreen',label:j.lang.flash.chkFull,'default':true,setup:h,commit:i}]}]}]},{id:'advanced',label:j.lang.common.advancedTab,elements:[{type:'hbox',widths:['45%','55%'],children:[{type:'text',id:'id',label:j.lang.common.id,setup:h,commit:i},{type:'text',id:'title',label:j.lang.common.advisoryTitle,setup:h,commit:i}]},{type:'hbox',widths:['45%','55%'],children:[{type:'text',id:'bgcolor',label:j.lang.flash.bgcolor,setup:h,commit:i},{type:'text',id:'class',label:j.lang.common.cssClass,setup:h,commit:i}]},{type:'text',id:'style',validate:CKEDITOR.dialog.validate.inlineStyle(j.lang.common.invalidInlineStyle),label:j.lang.common.cssStyle,setup:h,commit:i}]}]};});})();
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/image/dialogs/image.js b/appsrc/ODS-Framework/ckeditor/plugins/image/dialogs/image.js
index 18b361b..54393c0 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/image/dialogs/image.js
+++ b/appsrc/ODS-Framework/ckeditor/plugins/image/dialogs/image.js
@@ -1,13 +1,13 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
-(function(){var a=function(b,c){var d=1,e=2,f=4,g=8,h=/^\s*(\d+)((px)|\%)?\s*$/i,i=/(^\s*(\d+)((px)|\%)?\s*$)|^$/i,j=/^\d+px$/,k=function(){var C=this.getValue(),D=this.getDialog(),E=C.match(h);if(E){if(E[2]=='%')p(D,false);C=E[1];}if(D.lockRatio){var F=D.originalElement;if(F.getCustomData('isReady')=='true')if(this.id=='txtHeight'){if(C&&C!='0')C=Math.round(F.$.width*(C/F.$.height));if(!isNaN(C))D.setValueOf('info','txtWidth',C);}else{if(C&&C!='0')C=Math.round(F.$.height*(C/F.$.width));if(!isNaN(C))D.setValueOf('info','txtHeight',C);}}l(D);},l=function(C){if(!C.originalElement||!C.preview)return 1;C.commitContent(f,C.preview);return 0;};function m(){var C=arguments,D=this.getContentElement('advanced','txtdlgGenStyle');D&&D.commit.apply(D,C);this.foreach(function(E){if(E.commit&&E.id!='txtdlgGenStyle')E.commit.apply(E,C);});};var n;function o(C){if(n)return;n=1;var D=this.getDialog(),E=D.imageElement;if(E){this.commit(d,E);C=[].concat(C);var F=C.length,G;for(var H=0;H<F;H++){G=D.getContentElement.apply(D,C[H].split(':'));G&&G.setup(d,E);}}n=0;};var p=function(C,D){if(!C.getContentElement('info','ratioLock'))return null;var E=C.originalElement;if(!E)return null;if(D=='check'){if(!C.userlockRatio&&E.getCustomData('isReady')=='true'){var F=C.getValueOf('info','txtWidth'),G=C.getValueOf('info','txtHeight'),H=E.$.width*1000/E.$.height,I=F*1000/G;C.lockRatio=false;if(!F&&!G)C.lockRatio=true;else if(!isNaN(H)&&!isNaN(I))if(Math.round(H)==Math.round(I))C.lockRatio=true;}}else if(D!=undefined)C.lockRatio=D;else{C.userlockRatio=1;C.lockRatio=!C.lockRatio;}var J=CKEDITOR.document.getById(w);if(C.lockRatio)J.removeClass('cke_btn_unlocked');else J.addClass('cke_btn_unlocked');J.setAttribute('aria-checked',C.lockRatio);if(CKEDITOR.env.hc){var K=J.getChild(0);K.setHtml(C.lockRatio?CKEDITOR.env.ie?'â– ':'â–£':CKEDITOR.env.ie?'â–¡':'â–¢');}return C.lockRatio;},q=function(C){var D=C.originalElement;if(D.getCustomData('isReady')=='true'){var E=C.getContentElement('info','txtWidth'),F=C.getContentElement('info','txtHeight');E&&E.setValue(D.$.width);F&&F.setValue(D.$.height);}l(C);},r=function(C,D){if(C!=d)return;function E(J,K){var L=J.match(h);if(L){if(L[2]=='%'){L[1]+='%';p(F,false);}return L[1];}return K;};var F=this.getDialog(),G='',H=this.id=='txtWidth'?'width':'height',I=D.getAttribute(H);if(I)G=E(I,G);G=E(D.getStyle(H),G);this.setValue(G);},s,t=function(){var C=this.originalElement;C.setCustomData('isReady','true');C.removeListener('load',t);C.removeListener('error',u);C.removeListener('abort',u);
-CKEDITOR.document.getById(y).setStyle('display','none');if(!this.dontResetSize)q(this);if(this.firstLoad)CKEDITOR.tools.setTimeout(function(){p(this,'check');},0,this);this.firstLoad=false;this.dontResetSize=false;},u=function(){var E=this;var C=E.originalElement;C.removeListener('load',t);C.removeListener('error',u);C.removeListener('abort',u);var D=CKEDITOR.getUrl(b.skinPath+'images/noimage.png');if(E.preview)E.preview.setAttribute('src',D);CKEDITOR.document.getById(y).setStyle('display','none');p(E,false);},v=function(C){return CKEDITOR.tools.getNextId()+'_'+C;},w=v('btnLockSizes'),x=v('btnResetSize'),y=v('ImagePreviewLoader'),z=v('ImagePreviewBox'),A=v('previewLink'),B=v('previewImage');return{title:b.lang.image[c=='image'?'title':'titleButton'],minWidth:420,minHeight:360,onShow:function(){var I=this;I.imageElement=false;I.linkElement=false;I.imageEditMode=false;I.linkEditMode=false;I.lockRatio=true;I.userlockRatio=0;I.dontResetSize=false;I.firstLoad=true;I.addLink=false;var C=I.getParentEditor(),D=I.getParentEditor().getSelection(),E=D.getSelectedElement(),F=E&&E.getAscendant('a');CKEDITOR.document.getById(y).setStyle('display','none');s=new CKEDITOR.dom.element('img',C.document);I.preview=CKEDITOR.document.getById(B);I.originalElement=C.document.createElement('img');I.originalElement.setAttribute('alt','');I.originalElement.setCustomData('isReady','false');if(F){I.linkElement=F;I.linkEditMode=true;var G=F.getChildren();if(G.count()==1){var H=G.getItem(0).getName();if(H=='img'||H=='input'){I.imageElement=G.getItem(0);if(I.imageElement.getName()=='img')I.imageEditMode='img';else if(I.imageElement.getName()=='input')I.imageEditMode='input';}}if(c=='image')I.setupContent(e,F);}if(E&&E.getName()=='img'&&!E.data('cke-realelement')||E&&E.getName()=='input'&&E.getAttribute('type')=='image'){I.imageEditMode=E.getName();I.imageElement=E;}if(I.imageEditMode){I.cleanImageElement=I.imageElement;I.imageElement=I.cleanImageElement.clone(true,true);I.setupContent(d,I.imageElement);}else I.imageElement=C.document.createElement('img');p(I,true);if(!CKEDITOR.tools.trim(I.getValueOf('info','txtUrl'))){I.preview.removeAttribute('src');I.preview.setStyle('display','none');}},onOk:function(){var D=this;if(D.imageEditMode){var C=D.imageEditMode;if(c=='image'&&C=='input'&&confirm(b.lang.image.button2Img)){C='img';D.imageElement=b.document.createElement('img');D.imageElement.setAttribute('alt','');b.insertElement(D.imageElement);}else if(c!='image'&&C=='img'&&confirm(b.lang.image.img2Button)){C='input';
-D.imageElement=b.document.createElement('input');D.imageElement.setAttributes({type:'image',alt:''});b.insertElement(D.imageElement);}else{D.imageElement=D.cleanImageElement;delete D.cleanImageElement;}}else{if(c=='image')D.imageElement=b.document.createElement('img');else{D.imageElement=b.document.createElement('input');D.imageElement.setAttribute('type','image');}D.imageElement.setAttribute('alt','');}if(!D.linkEditMode)D.linkElement=b.document.createElement('a');D.commitContent(d,D.imageElement);D.commitContent(e,D.linkElement);if(!D.imageElement.getAttribute('style'))D.imageElement.removeAttribute('style');if(!D.imageEditMode){if(D.addLink){if(!D.linkEditMode){b.insertElement(D.linkElement);D.linkElement.append(D.imageElement,false);}else b.insertElement(D.imageElement);}else b.insertElement(D.imageElement);}else if(!D.linkEditMode&&D.addLink){b.insertElement(D.linkElement);D.imageElement.appendTo(D.linkElement);}else if(D.linkEditMode&&!D.addLink){b.getSelection().selectElement(D.linkElement);b.insertElement(D.imageElement);}},onLoad:function(){var D=this;if(c!='image')D.hidePage('Link');var C=D._.element.getDocument();if(D.getContentElement('info','ratioLock')){D.addFocusable(C.getById(x),5);D.addFocusable(C.getById(w),5);}D.commitContent=m;},onHide:function(){var C=this;if(C.preview)C.commitContent(g,C.preview);if(C.originalElement){C.originalElement.removeListener('load',t);C.originalElement.removeListener('error',u);C.originalElement.removeListener('abort',u);C.originalElement.remove();C.originalElement=false;}delete C.imageElement;},contents:[{id:'info',label:b.lang.image.infoTab,accessKey:'I',elements:[{type:'vbox',padding:0,children:[{type:'hbox',widths:['280px','110px'],align:'right',children:[{id:'txtUrl',type:'text',label:b.lang.common.url,required:true,onChange:function(){var C=this.getDialog(),D=this.getValue();if(D.length>0){C=this.getDialog();var E=C.originalElement;C.preview.removeStyle('display');E.setCustomData('isReady','false');var F=CKEDITOR.document.getById(y);if(F)F.setStyle('display','');E.on('load',t,C);E.on('error',u,C);E.on('abort',u,C);E.setAttribute('src',D);s.setAttribute('src',D);C.preview.setAttribute('src',s.$.src);l(C);}else if(C.preview){C.preview.removeAttribute('src');C.preview.setStyle('display','none');}},setup:function(C,D){if(C==d){var E=D.data('cke-saved-src')||D.getAttribute('src'),F=this;this.getDialog().dontResetSize=true;F.setValue(E);F.setInitValue();}},commit:function(C,D){var E=this;if(C==d&&(E.getValue()||E.isChanged())){D.data('cke-saved-src',E.getValue());
-D.setAttribute('src',E.getValue());}else if(C==g){D.setAttribute('src','');D.removeAttribute('src');}},validate:CKEDITOR.dialog.validate.notEmpty(b.lang.image.urlMissing)},{type:'button',id:'browse',style:'display:inline-block;margin-top:10px;',align:'center',label:b.lang.common.browseServer,hidden:true,filebrowser:'info:txtUrl'}]}]},{id:'txtAlt',type:'text',label:b.lang.image.alt,accessKey:'T','default':'',onChange:function(){l(this.getDialog());},setup:function(C,D){if(C==d)this.setValue(D.getAttribute('alt'));},commit:function(C,D){var E=this;if(C==d){if(E.getValue()||E.isChanged())D.setAttribute('alt',E.getValue());}else if(C==f)D.setAttribute('alt',E.getValue());else if(C==g)D.removeAttribute('alt');}},{type:'hbox',children:[{id:'basic',type:'vbox',children:[{type:'hbox',widths:['50%','50%'],children:[{type:'vbox',padding:1,children:[{type:'text',width:'40px',id:'txtWidth',label:b.lang.common.width,onKeyUp:k,onChange:function(){o.call(this,'advanced:txtdlgGenStyle');},validate:function(){var C=this.getValue().match(i),D=!!(C&&parseInt(C[1],10)!==0);if(!D)alert(b.lang.common.invalidWidth);return D;},setup:r,commit:function(C,D,E){var F=this.getValue();if(C==d){if(F)D.setStyle('width',CKEDITOR.tools.cssLength(F));else D.removeStyle('width');!E&&D.removeAttribute('width');}else if(C==f){var G=F.match(h);if(!G){var H=this.getDialog().originalElement;if(H.getCustomData('isReady')=='true')D.setStyle('width',H.$.width+'px');}else D.setStyle('width',CKEDITOR.tools.cssLength(F));}else if(C==g){D.removeAttribute('width');D.removeStyle('width');}}},{type:'text',id:'txtHeight',width:'40px',label:b.lang.common.height,onKeyUp:k,onChange:function(){o.call(this,'advanced:txtdlgGenStyle');},validate:function(){var C=this.getValue().match(i),D=!!(C&&parseInt(C[1],10)!==0);if(!D)alert(b.lang.common.invalidHeight);return D;},setup:r,commit:function(C,D,E){var F=this.getValue();if(C==d){if(F)D.setStyle('height',CKEDITOR.tools.cssLength(F));else D.removeStyle('height');!E&&D.removeAttribute('height');}else if(C==f){var G=F.match(h);if(!G){var H=this.getDialog().originalElement;if(H.getCustomData('isReady')=='true')D.setStyle('height',H.$.height+'px');}else D.setStyle('height',CKEDITOR.tools.cssLength(F));}else if(C==g){D.removeAttribute('height');D.removeStyle('height');}}}]},{id:'ratioLock',type:'html',style:'margin-top:30px;width:40px;height:40px;',onLoad:function(){var C=CKEDITOR.document.getById(x),D=CKEDITOR.document.getById(w);if(C){C.on('click',function(E){q(this);E.data&&E.data.preventDefault();
-},this.getDialog());C.on('mouseover',function(){this.addClass('cke_btn_over');},C);C.on('mouseout',function(){this.removeClass('cke_btn_over');},C);}if(D){D.on('click',function(E){var J=this;var F=p(J),G=J.originalElement,H=J.getValueOf('info','txtWidth');if(G.getCustomData('isReady')=='true'&&H){var I=G.$.height/G.$.width*H;if(!isNaN(I)){J.setValueOf('info','txtHeight',Math.round(I));l(J);}}E.data&&E.data.preventDefault();},this.getDialog());D.on('mouseover',function(){this.addClass('cke_btn_over');},D);D.on('mouseout',function(){this.removeClass('cke_btn_over');},D);}},html:'<div><a href="javascript:void(0)" tabindex="-1" title="'+b.lang.image.lockRatio+'" class="cke_btn_locked" id="'+w+'" role="checkbox"><span class="cke_icon"></span><span class="cke_label">'+b.lang.image.lockRatio+'</span></a>'+'<a href="javascript:void(0)" tabindex="-1" title="'+b.lang.image.resetSize+'" class="cke_btn_reset" id="'+x+'" role="button"><span class="cke_label">'+b.lang.image.resetSize+'</span></a>'+'</div>'}]},{type:'vbox',padding:1,children:[{type:'text',id:'txtBorder',width:'60px',label:b.lang.image.border,'default':'',onKeyUp:function(){l(this.getDialog());},onChange:function(){o.call(this,'advanced:txtdlgGenStyle');},validate:CKEDITOR.dialog.validate.integer(b.lang.image.validateBorder),setup:function(C,D){if(C==d){var E,F=D.getStyle('border-width');F=F&&F.match(/^(\d+px)(?: \1 \1 \1)?$/);E=F&&parseInt(F[1],10);isNaN(parseInt(E,10))&&(E=D.getAttribute('border'));this.setValue(E);}},commit:function(C,D,E){var F=parseInt(this.getValue(),10);if(C==d||C==f){if(!isNaN(F)){D.setStyle('border-width',CKEDITOR.tools.cssLength(F));D.setStyle('border-style','solid');}else if(!F&&this.isChanged()){D.removeStyle('border-width');D.removeStyle('border-style');D.removeStyle('border-color');}if(!E&&C==d)D.removeAttribute('border');}else if(C==g){D.removeAttribute('border');D.removeStyle('border-width');D.removeStyle('border-style');D.removeStyle('border-color');}}},{type:'text',id:'txtHSpace',width:'60px',label:b.lang.image.hSpace,'default':'',onKeyUp:function(){l(this.getDialog());},onChange:function(){o.call(this,'advanced:txtdlgGenStyle');},validate:CKEDITOR.dialog.validate.integer(b.lang.image.validateHSpace),setup:function(C,D){if(C==d){var E,F,G,H=D.getStyle('margin-left'),I=D.getStyle('margin-right');H=H&&H.match(j);I=I&&I.match(j);F=parseInt(H,10);G=parseInt(I,10);E=F==G&&F;isNaN(parseInt(E,10))&&(E=D.getAttribute('hspace'));this.setValue(E);}},commit:function(C,D,E){var F=parseInt(this.getValue(),10);
-if(C==d||C==f){if(!isNaN(F)){D.setStyle('margin-left',CKEDITOR.tools.cssLength(F));D.setStyle('margin-right',CKEDITOR.tools.cssLength(F));}else if(!F&&this.isChanged()){D.removeStyle('margin-left');D.removeStyle('margin-right');}if(!E&&C==d)D.removeAttribute('hspace');}else if(C==g){D.removeAttribute('hspace');D.removeStyle('margin-left');D.removeStyle('margin-right');}}},{type:'text',id:'txtVSpace',width:'60px',label:b.lang.image.vSpace,'default':'',onKeyUp:function(){l(this.getDialog());},onChange:function(){o.call(this,'advanced:txtdlgGenStyle');},validate:CKEDITOR.dialog.validate.integer(b.lang.image.validateVSpace),setup:function(C,D){if(C==d){var E,F,G,H=D.getStyle('margin-top'),I=D.getStyle('margin-bottom');H=H&&H.match(j);I=I&&I.match(j);F=parseInt(H,10);G=parseInt(I,10);E=F==G&&F;isNaN(parseInt(E,10))&&(E=D.getAttribute('vspace'));this.setValue(E);}},commit:function(C,D,E){var F=parseInt(this.getValue(),10);if(C==d||C==f){if(!isNaN(F)){D.setStyle('margin-top',CKEDITOR.tools.cssLength(F));D.setStyle('margin-bottom',CKEDITOR.tools.cssLength(F));}else if(!F&&this.isChanged()){D.removeStyle('margin-top');D.removeStyle('margin-bottom');}if(!E&&C==d)D.removeAttribute('vspace');}else if(C==g){D.removeAttribute('vspace');D.removeStyle('margin-top');D.removeStyle('margin-bottom');}}},{id:'cmbAlign',type:'select',widths:['35%','65%'],style:'width:90px',label:b.lang.common.align,'default':'',items:[[b.lang.common.notSet,''],[b.lang.common.alignLeft,'left'],[b.lang.common.alignRight,'right']],onChange:function(){l(this.getDialog());o.call(this,'advanced:txtdlgGenStyle');},setup:function(C,D){if(C==d){var E=D.getStyle('float');switch(E){case 'inherit':case 'none':E='';}!E&&(E=(D.getAttribute('align')||'').toLowerCase());this.setValue(E);}},commit:function(C,D,E){var F=this.getValue();if(C==d||C==f){if(F)D.setStyle('float',F);else D.removeStyle('float');if(!E&&C==d){F=(D.getAttribute('align')||'').toLowerCase();switch(F){case 'left':case 'right':D.removeAttribute('align');}}}else if(C==g)D.removeStyle('float');}}]}]},{type:'vbox',height:'250px',children:[{type:'html',id:'htmlPreview',style:'width:95%;',html:'<div>'+CKEDITOR.tools.htmlEncode(b.lang.common.preview)+'<br>'+'<div id="'+y+'" class="ImagePreviewLoader" style="display:none"><div class="loading"> </div></div>'+'<div id="'+z+'" class="ImagePreviewBox"><table><tr><td>'+'<a href="javascript:void(0)" target="_blank" onclick="return false;" id="'+A+'">'+'<img id="'+B+'" alt="" /></a>'+(b.config.image_previewText||'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.')+'</td></tr></table></div></div>'}]}]}]},{id:'Link',label:b.lang.link.title,padding:0,elements:[{id:'txtUrl',type:'text',label:b.lang.common.url,style:'width: 100%','default':'',setup:function(C,D){if(C==e){var E=D.data('cke-saved-href');
-if(!E)E=D.getAttribute('href');this.setValue(E);}},commit:function(C,D){var F=this;if(C==e)if(F.getValue()||F.isChanged()){var E=decodeURI(F.getValue());D.data('cke-saved-href',E);D.setAttribute('href',E);if(F.getValue()||!b.config.image_removeLinkByEmptyURL)F.getDialog().addLink=true;}}},{type:'button',id:'browse',filebrowser:{action:'Browse',target:'Link:txtUrl',url:b.config.filebrowserImageBrowseLinkUrl},style:'float:right',hidden:true,label:b.lang.common.browseServer},{id:'cmbTarget',type:'select',label:b.lang.common.target,'default':'',items:[[b.lang.common.notSet,''],[b.lang.common.targetNew,'_blank'],[b.lang.common.targetTop,'_top'],[b.lang.common.targetSelf,'_self'],[b.lang.common.targetParent,'_parent']],setup:function(C,D){if(C==e)this.setValue(D.getAttribute('target')||'');},commit:function(C,D){if(C==e)if(this.getValue()||this.isChanged())D.setAttribute('target',this.getValue());}}]},{id:'Upload',hidden:true,filebrowser:'uploadButton',label:b.lang.image.upload,elements:[{type:'file',id:'upload',label:b.lang.image.btnUpload,style:'height:40px',size:38},{type:'fileButton',id:'uploadButton',filebrowser:'info:txtUrl',label:b.lang.image.btnUpload,'for':['Upload','upload']}]},{id:'advanced',label:b.lang.common.advancedTab,elements:[{type:'hbox',widths:['50%','25%','25%'],children:[{type:'text',id:'linkId',label:b.lang.common.id,setup:function(C,D){if(C==d)this.setValue(D.getAttribute('id'));},commit:function(C,D){if(C==d)if(this.getValue()||this.isChanged())D.setAttribute('id',this.getValue());}},{id:'cmbLangDir',type:'select',style:'width : 100px;',label:b.lang.common.langDir,'default':'',items:[[b.lang.common.notSet,''],[b.lang.common.langDirLtr,'ltr'],[b.lang.common.langDirRtl,'rtl']],setup:function(C,D){if(C==d)this.setValue(D.getAttribute('dir'));},commit:function(C,D){if(C==d)if(this.getValue()||this.isChanged())D.setAttribute('dir',this.getValue());}},{type:'text',id:'txtLangCode',label:b.lang.common.langCode,'default':'',setup:function(C,D){if(C==d)this.setValue(D.getAttribute('lang'));},commit:function(C,D){if(C==d)if(this.getValue()||this.isChanged())D.setAttribute('lang',this.getValue());}}]},{type:'text',id:'txtGenLongDescr',label:b.lang.common.longDescr,setup:function(C,D){if(C==d)this.setValue(D.getAttribute('longDesc'));},commit:function(C,D){if(C==d)if(this.getValue()||this.isChanged())D.setAttribute('longDesc',this.getValue());}},{type:'hbox',widths:['50%','50%'],children:[{type:'text',id:'txtGenClass',label:b.lang.common.cssClass,'default':'',setup:function(C,D){if(C==d)this.setValue(D.getAttribute('class'));
-},commit:function(C,D){if(C==d)if(this.getValue()||this.isChanged())D.setAttribute('class',this.getValue());}},{type:'text',id:'txtGenTitle',label:b.lang.common.advisoryTitle,'default':'',onChange:function(){l(this.getDialog());},setup:function(C,D){if(C==d)this.setValue(D.getAttribute('title'));},commit:function(C,D){var E=this;if(C==d){if(E.getValue()||E.isChanged())D.setAttribute('title',E.getValue());}else if(C==f)D.setAttribute('title',E.getValue());else if(C==g)D.removeAttribute('title');}}]},{type:'text',id:'txtdlgGenStyle',label:b.lang.common.cssStyle,'default':'',setup:function(C,D){if(C==d){var E=D.getAttribute('style');if(!E&&D.$.style.cssText)E=D.$.style.cssText;this.setValue(E);var F=D.$.style.height,G=D.$.style.width,H=(F?F:'').match(h),I=(G?G:'').match(h);this.attributesInStyle={height:!!H,width:!!I};}},onChange:function(){o.call(this,['info:cmbFloat','info:cmbAlign','info:txtVSpace','info:txtHSpace','info:txtBorder','info:txtWidth','info:txtHeight']);l(this);},commit:function(C,D){if(C==d&&(this.getValue()||this.isChanged()))D.setAttribute('style',this.getValue());}}]}]};};CKEDITOR.dialog.add('image',function(b){return a(b,'image');});CKEDITOR.dialog.add('imagebutton',function(b){return a(b,'imagebutton');});})();
+(function(){var a=function(b,c){var d=1,e=2,f=4,g=8,h=/^\s*(\d+)((px)|\%)?\s*$/i,i=/(^\s*(\d+)((px)|\%)?\s*$)|^$/i,j=/^\d+px$/,k=function(){var B=this.getValue(),C=this.getDialog(),D=B.match(h);if(D){if(D[2]=='%')p(C,false);B=D[1];}if(C.lockRatio){var E=C.originalElement;if(E.getCustomData('isReady')=='true')if(this.id=='txtHeight'){if(B&&B!='0')B=Math.round(E.$.width*(B/E.$.height));if(!isNaN(B))C.setValueOf('info','txtWidth',B);}else{if(B&&B!='0')B=Math.round(E.$.height*(B/E.$.width));if(!isNaN(B))C.setValueOf('info','txtHeight',B);}}l(C);},l=function(B){if(!B.originalElement||!B.preview)return 1;B.commitContent(f,B.preview);return 0;};function m(){var B=arguments,C=this.getContentElement('advanced','txtdlgGenStyle');C&&C.commit.apply(C,B);this.foreach(function(D){if(D.commit&&D.id!='txtdlgGenStyle')D.commit.apply(D,B);});};var n;function o(B){if(n)return;n=1;var C=this.getDialog(),D=C.imageElement;if(D){this.commit(d,D);B=[].concat(B);var E=B.length,F;for(var G=0;G<E;G++){F=C.getContentElement.apply(C,B[G].split(':'));F&&F.setup(d,D);}}n=0;};var p=function(B,C){if(!B.getContentElement('info','ratioLock'))return null;var D=B.originalElement;if(!D)return null;if(C=='check'){if(!B.userlockRatio&&D.getCustomData('isReady')=='true'){var E=B.getValueOf('info','txtWidth'),F=B.getValueOf('info','txtHeight'),G=D.$.width*1000/D.$.height,H=E*1000/F;B.lockRatio=false;if(!E&&!F)B.lockRatio=true;else if(!isNaN(G)&&!isNaN(H))if(Math.round(G)==Math.round(H))B.lockRatio=true;}}else if(C!=undefined)B.lockRatio=C;else{B.userlockRatio=1;B.lockRatio=!B.lockRatio;}var I=CKEDITOR.document.getById(w);if(B.lockRatio)I.removeClass('cke_btn_unlocked');else I.addClass('cke_btn_unlocked');I.setAttribute('aria-checked',B.lockRatio);if(CKEDITOR.env.hc){var J=I.getChild(0);J.setHtml(B.lockRatio?CKEDITOR.env.ie?'â– ':'â–£':CKEDITOR.env.ie?'â–¡':'â–¢');}return B.lockRatio;},q=function(B){var C=B.originalElement;if(C.getCustomData('isReady')=='true'){var D=B.getContentElement('info','txtWidth'),E=B.getContentElement('info','txtHeight');D&&D.setValue(C.$.width);E&&E.setValue(C.$.height);}l(B);},r=function(B,C){if(B!=d)return;function D(I,J){var K=I.match(h);if(K){if(K[2]=='%'){K[1]+='%';p(E,false);}return K[1];}return J;};var E=this.getDialog(),F='',G=this.id=='txtWidth'?'width':'height',H=C.getAttribute(G);if(H)F=D(H,F);F=D(C.getStyle(G),F);this.setValue(F);},s,t=function(){var B=this.originalElement;B.setCustomData('isReady','true');B.removeListener('load',t);B.removeListener('error',u);B.removeListener('abort',u);
+CKEDITOR.document.getById(y).setStyle('display','none');if(!this.dontResetSize)q(this);if(this.firstLoad)CKEDITOR.tools.setTimeout(function(){p(this,'check');},0,this);this.firstLoad=false;this.dontResetSize=false;},u=function(){var D=this;var B=D.originalElement;B.removeListener('load',t);B.removeListener('error',u);B.removeListener('abort',u);var C=CKEDITOR.getUrl(b.skinPath+'images/noimage.png');if(D.preview)D.preview.setAttribute('src',C);CKEDITOR.document.getById(y).setStyle('display','none');p(D,false);},v=function(B){return CKEDITOR.tools.getNextId()+'_'+B;},w=v('btnLockSizes'),x=v('btnResetSize'),y=v('ImagePreviewLoader'),z=v('previewLink'),A=v('previewImage');return{title:b.lang.image[c=='image'?'title':'titleButton'],minWidth:420,minHeight:360,onShow:function(){var H=this;H.imageElement=false;H.linkElement=false;H.imageEditMode=false;H.linkEditMode=false;H.lockRatio=true;H.userlockRatio=0;H.dontResetSize=false;H.firstLoad=true;H.addLink=false;var B=H.getParentEditor(),C=B.getSelection(),D=C&&C.getSelectedElement(),E=D&&D.getAscendant('a');CKEDITOR.document.getById(y).setStyle('display','none');s=new CKEDITOR.dom.element('img',B.document);H.preview=CKEDITOR.document.getById(A);H.originalElement=B.document.createElement('img');H.originalElement.setAttribute('alt','');H.originalElement.setCustomData('isReady','false');if(E){H.linkElement=E;H.linkEditMode=true;var F=E.getChildren();if(F.count()==1){var G=F.getItem(0).getName();if(G=='img'||G=='input'){H.imageElement=F.getItem(0);if(H.imageElement.getName()=='img')H.imageEditMode='img';else if(H.imageElement.getName()=='input')H.imageEditMode='input';}}if(c=='image')H.setupContent(e,E);}if(D&&D.getName()=='img'&&!D.data('cke-realelement')||D&&D.getName()=='input'&&D.getAttribute('type')=='image'){H.imageEditMode=D.getName();H.imageElement=D;}if(H.imageEditMode){H.cleanImageElement=H.imageElement;H.imageElement=H.cleanImageElement.clone(true,true);H.setupContent(d,H.imageElement);}else H.imageElement=B.document.createElement('img');p(H,true);if(!CKEDITOR.tools.trim(H.getValueOf('info','txtUrl'))){H.preview.removeAttribute('src');H.preview.setStyle('display','none');}},onOk:function(){var C=this;if(C.imageEditMode){var B=C.imageEditMode;if(c=='image'&&B=='input'&&confirm(b.lang.image.button2Img)){B='img';C.imageElement=b.document.createElement('img');C.imageElement.setAttribute('alt','');b.insertElement(C.imageElement);}else if(c!='image'&&B=='img'&&confirm(b.lang.image.img2Button)){B='input';C.imageElement=b.document.createElement('input');
+C.imageElement.setAttributes({type:'image',alt:''});b.insertElement(C.imageElement);}else{C.imageElement=C.cleanImageElement;delete C.cleanImageElement;}}else{if(c=='image')C.imageElement=b.document.createElement('img');else{C.imageElement=b.document.createElement('input');C.imageElement.setAttribute('type','image');}C.imageElement.setAttribute('alt','');}if(!C.linkEditMode)C.linkElement=b.document.createElement('a');C.commitContent(d,C.imageElement);C.commitContent(e,C.linkElement);if(!C.imageElement.getAttribute('style'))C.imageElement.removeAttribute('style');if(!C.imageEditMode){if(C.addLink){if(!C.linkEditMode){b.insertElement(C.linkElement);C.linkElement.append(C.imageElement,false);}else b.insertElement(C.imageElement);}else b.insertElement(C.imageElement);}else if(!C.linkEditMode&&C.addLink){b.insertElement(C.linkElement);C.imageElement.appendTo(C.linkElement);}else if(C.linkEditMode&&!C.addLink){b.getSelection().selectElement(C.linkElement);b.insertElement(C.imageElement);}},onLoad:function(){var C=this;if(c!='image')C.hidePage('Link');var B=C._.element.getDocument();if(C.getContentElement('info','ratioLock')){C.addFocusable(B.getById(x),5);C.addFocusable(B.getById(w),5);}C.commitContent=m;},onHide:function(){var B=this;if(B.preview)B.commitContent(g,B.preview);if(B.originalElement){B.originalElement.removeListener('load',t);B.originalElement.removeListener('error',u);B.originalElement.removeListener('abort',u);B.originalElement.remove();B.originalElement=false;}delete B.imageElement;},contents:[{id:'info',label:b.lang.image.infoTab,accessKey:'I',elements:[{type:'vbox',padding:0,children:[{type:'hbox',widths:['280px','110px'],align:'right',children:[{id:'txtUrl',type:'text',label:b.lang.common.url,required:true,onChange:function(){var B=this.getDialog(),C=this.getValue();if(C.length>0){B=this.getDialog();var D=B.originalElement;B.preview.removeStyle('display');D.setCustomData('isReady','false');var E=CKEDITOR.document.getById(y);if(E)E.setStyle('display','');D.on('load',t,B);D.on('error',u,B);D.on('abort',u,B);D.setAttribute('src',C);s.setAttribute('src',C);B.preview.setAttribute('src',s.$.src);l(B);}else if(B.preview){B.preview.removeAttribute('src');B.preview.setStyle('display','none');}},setup:function(B,C){if(B==d){var D=C.data('cke-saved-src')||C.getAttribute('src'),E=this;this.getDialog().dontResetSize=true;E.setValue(D);E.setInitValue();}},commit:function(B,C){var D=this;if(B==d&&(D.getValue()||D.isChanged())){C.data('cke-saved-src',D.getValue());
+C.setAttribute('src',D.getValue());}else if(B==g){C.setAttribute('src','');C.removeAttribute('src');}},validate:CKEDITOR.dialog.validate.notEmpty(b.lang.image.urlMissing)},{type:'button',id:'browse',style:'display:inline-block;margin-top:10px;',align:'center',label:b.lang.common.browseServer,hidden:true,filebrowser:'info:txtUrl'}]}]},{id:'txtAlt',type:'text',label:b.lang.image.alt,accessKey:'T','default':'',onChange:function(){l(this.getDialog());},setup:function(B,C){if(B==d)this.setValue(C.getAttribute('alt'));},commit:function(B,C){var D=this;if(B==d){if(D.getValue()||D.isChanged())C.setAttribute('alt',D.getValue());}else if(B==f)C.setAttribute('alt',D.getValue());else if(B==g)C.removeAttribute('alt');}},{type:'hbox',children:[{id:'basic',type:'vbox',children:[{type:'hbox',widths:['50%','50%'],children:[{type:'vbox',padding:1,children:[{type:'text',width:'40px',id:'txtWidth',label:b.lang.common.width,onKeyUp:k,onChange:function(){o.call(this,'advanced:txtdlgGenStyle');},validate:function(){var B=this.getValue().match(i),C=!!(B&&parseInt(B[1],10)!==0);if(!C)alert(b.lang.common.invalidWidth);return C;},setup:r,commit:function(B,C,D){var E=this.getValue();if(B==d){if(E)C.setStyle('width',CKEDITOR.tools.cssLength(E));else C.removeStyle('width');!D&&C.removeAttribute('width');}else if(B==f){var F=E.match(h);if(!F){var G=this.getDialog().originalElement;if(G.getCustomData('isReady')=='true')C.setStyle('width',G.$.width+'px');}else C.setStyle('width',CKEDITOR.tools.cssLength(E));}else if(B==g){C.removeAttribute('width');C.removeStyle('width');}}},{type:'text',id:'txtHeight',width:'40px',label:b.lang.common.height,onKeyUp:k,onChange:function(){o.call(this,'advanced:txtdlgGenStyle');},validate:function(){var B=this.getValue().match(i),C=!!(B&&parseInt(B[1],10)!==0);if(!C)alert(b.lang.common.invalidHeight);return C;},setup:r,commit:function(B,C,D){var E=this.getValue();if(B==d){if(E)C.setStyle('height',CKEDITOR.tools.cssLength(E));else C.removeStyle('height');!D&&C.removeAttribute('height');}else if(B==f){var F=E.match(h);if(!F){var G=this.getDialog().originalElement;if(G.getCustomData('isReady')=='true')C.setStyle('height',G.$.height+'px');}else C.setStyle('height',CKEDITOR.tools.cssLength(E));}else if(B==g){C.removeAttribute('height');C.removeStyle('height');}}}]},{id:'ratioLock',type:'html',style:'margin-top:30px;width:40px;height:40px;',onLoad:function(){var B=CKEDITOR.document.getById(x),C=CKEDITOR.document.getById(w);if(B){B.on('click',function(D){q(this);D.data&&D.data.preventDefault();
+},this.getDialog());B.on('mouseover',function(){this.addClass('cke_btn_over');},B);B.on('mouseout',function(){this.removeClass('cke_btn_over');},B);}if(C){C.on('click',function(D){var I=this;var E=p(I),F=I.originalElement,G=I.getValueOf('info','txtWidth');if(F.getCustomData('isReady')=='true'&&G){var H=F.$.height/F.$.width*G;if(!isNaN(H)){I.setValueOf('info','txtHeight',Math.round(H));l(I);}}D.data&&D.data.preventDefault();},this.getDialog());C.on('mouseover',function(){this.addClass('cke_btn_over');},C);C.on('mouseout',function(){this.removeClass('cke_btn_over');},C);}},html:'<div><a href="javascript:void(0)" tabindex="-1" title="'+b.lang.image.lockRatio+'" class="cke_btn_locked" id="'+w+'" role="checkbox"><span class="cke_icon"></span><span class="cke_label">'+b.lang.image.lockRatio+'</span></a>'+'<a href="javascript:void(0)" tabindex="-1" title="'+b.lang.image.resetSize+'" class="cke_btn_reset" id="'+x+'" role="button"><span class="cke_label">'+b.lang.image.resetSize+'</span></a>'+'</div>'}]},{type:'vbox',padding:1,children:[{type:'text',id:'txtBorder',width:'60px',label:b.lang.image.border,'default':'',onKeyUp:function(){l(this.getDialog());},onChange:function(){o.call(this,'advanced:txtdlgGenStyle');},validate:CKEDITOR.dialog.validate.integer(b.lang.image.validateBorder),setup:function(B,C){if(B==d){var D,E=C.getStyle('border-width');E=E&&E.match(/^(\d+px)(?: \1 \1 \1)?$/);D=E&&parseInt(E[1],10);isNaN(parseInt(D,10))&&(D=C.getAttribute('border'));this.setValue(D);}},commit:function(B,C,D){var E=parseInt(this.getValue(),10);if(B==d||B==f){if(!isNaN(E)){C.setStyle('border-width',CKEDITOR.tools.cssLength(E));C.setStyle('border-style','solid');}else if(!E&&this.isChanged()){C.removeStyle('border-width');C.removeStyle('border-style');C.removeStyle('border-color');}if(!D&&B==d)C.removeAttribute('border');}else if(B==g){C.removeAttribute('border');C.removeStyle('border-width');C.removeStyle('border-style');C.removeStyle('border-color');}}},{type:'text',id:'txtHSpace',width:'60px',label:b.lang.image.hSpace,'default':'',onKeyUp:function(){l(this.getDialog());},onChange:function(){o.call(this,'advanced:txtdlgGenStyle');},validate:CKEDITOR.dialog.validate.integer(b.lang.image.validateHSpace),setup:function(B,C){if(B==d){var D,E,F,G=C.getStyle('margin-left'),H=C.getStyle('margin-right');G=G&&G.match(j);H=H&&H.match(j);E=parseInt(G,10);F=parseInt(H,10);D=E==F&&E;isNaN(parseInt(D,10))&&(D=C.getAttribute('hspace'));this.setValue(D);}},commit:function(B,C,D){var E=parseInt(this.getValue(),10);
+if(B==d||B==f){if(!isNaN(E)){C.setStyle('margin-left',CKEDITOR.tools.cssLength(E));C.setStyle('margin-right',CKEDITOR.tools.cssLength(E));}else if(!E&&this.isChanged()){C.removeStyle('margin-left');C.removeStyle('margin-right');}if(!D&&B==d)C.removeAttribute('hspace');}else if(B==g){C.removeAttribute('hspace');C.removeStyle('margin-left');C.removeStyle('margin-right');}}},{type:'text',id:'txtVSpace',width:'60px',label:b.lang.image.vSpace,'default':'',onKeyUp:function(){l(this.getDialog());},onChange:function(){o.call(this,'advanced:txtdlgGenStyle');},validate:CKEDITOR.dialog.validate.integer(b.lang.image.validateVSpace),setup:function(B,C){if(B==d){var D,E,F,G=C.getStyle('margin-top'),H=C.getStyle('margin-bottom');G=G&&G.match(j);H=H&&H.match(j);E=parseInt(G,10);F=parseInt(H,10);D=E==F&&E;isNaN(parseInt(D,10))&&(D=C.getAttribute('vspace'));this.setValue(D);}},commit:function(B,C,D){var E=parseInt(this.getValue(),10);if(B==d||B==f){if(!isNaN(E)){C.setStyle('margin-top',CKEDITOR.tools.cssLength(E));C.setStyle('margin-bottom',CKEDITOR.tools.cssLength(E));}else if(!E&&this.isChanged()){C.removeStyle('margin-top');C.removeStyle('margin-bottom');}if(!D&&B==d)C.removeAttribute('vspace');}else if(B==g){C.removeAttribute('vspace');C.removeStyle('margin-top');C.removeStyle('margin-bottom');}}},{id:'cmbAlign',type:'select',widths:['35%','65%'],style:'width:90px',label:b.lang.common.align,'default':'',items:[[b.lang.common.notSet,''],[b.lang.common.alignLeft,'left'],[b.lang.common.alignRight,'right']],onChange:function(){l(this.getDialog());o.call(this,'advanced:txtdlgGenStyle');},setup:function(B,C){if(B==d){var D=C.getStyle('float');switch(D){case 'inherit':case 'none':D='';}!D&&(D=(C.getAttribute('align')||'').toLowerCase());this.setValue(D);}},commit:function(B,C,D){var E=this.getValue();if(B==d||B==f){if(E)C.setStyle('float',E);else C.removeStyle('float');if(!D&&B==d){E=(C.getAttribute('align')||'').toLowerCase();switch(E){case 'left':case 'right':C.removeAttribute('align');}}}else if(B==g)C.removeStyle('float');}}]}]},{type:'vbox',height:'250px',children:[{type:'html',id:'htmlPreview',style:'width:95%;',html:'<div>'+CKEDITOR.tools.htmlEncode(b.lang.common.preview)+'<br>'+'<div id="'+y+'" class="ImagePreviewLoader" style="display:none"><div class="loading"> </div></div>'+'<div class="ImagePreviewBox"><table><tr><td>'+'<a href="javascript:void(0)" target="_blank" onclick="return false;" id="'+z+'">'+'<img id="'+A+'" alt="" /></a>'+(b.config.image_previewText||'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.')+'</td></tr></table></div></div>'}]}]}]},{id:'Link',label:b.lang.link.title,padding:0,elements:[{id:'txtUrl',type:'text',label:b.lang.common.url,style:'width: 100%','default':'',setup:function(B,C){if(B==e){var D=C.data('cke-saved-href');
+if(!D)D=C.getAttribute('href');this.setValue(D);}},commit:function(B,C){var E=this;if(B==e)if(E.getValue()||E.isChanged()){var D=decodeURI(E.getValue());C.data('cke-saved-href',D);C.setAttribute('href',D);if(E.getValue()||!b.config.image_removeLinkByEmptyURL)E.getDialog().addLink=true;}}},{type:'button',id:'browse',filebrowser:{action:'Browse',target:'Link:txtUrl',url:b.config.filebrowserImageBrowseLinkUrl},style:'float:right',hidden:true,label:b.lang.common.browseServer},{id:'cmbTarget',type:'select',label:b.lang.common.target,'default':'',items:[[b.lang.common.notSet,''],[b.lang.common.targetNew,'_blank'],[b.lang.common.targetTop,'_top'],[b.lang.common.targetSelf,'_self'],[b.lang.common.targetParent,'_parent']],setup:function(B,C){if(B==e)this.setValue(C.getAttribute('target')||'');},commit:function(B,C){if(B==e)if(this.getValue()||this.isChanged())C.setAttribute('target',this.getValue());}}]},{id:'Upload',hidden:true,filebrowser:'uploadButton',label:b.lang.image.upload,elements:[{type:'file',id:'upload',label:b.lang.image.btnUpload,style:'height:40px',size:38},{type:'fileButton',id:'uploadButton',filebrowser:'info:txtUrl',label:b.lang.image.btnUpload,'for':['Upload','upload']}]},{id:'advanced',label:b.lang.common.advancedTab,elements:[{type:'hbox',widths:['50%','25%','25%'],children:[{type:'text',id:'linkId',label:b.lang.common.id,setup:function(B,C){if(B==d)this.setValue(C.getAttribute('id'));},commit:function(B,C){if(B==d)if(this.getValue()||this.isChanged())C.setAttribute('id',this.getValue());}},{id:'cmbLangDir',type:'select',style:'width : 100px;',label:b.lang.common.langDir,'default':'',items:[[b.lang.common.notSet,''],[b.lang.common.langDirLtr,'ltr'],[b.lang.common.langDirRtl,'rtl']],setup:function(B,C){if(B==d)this.setValue(C.getAttribute('dir'));},commit:function(B,C){if(B==d)if(this.getValue()||this.isChanged())C.setAttribute('dir',this.getValue());}},{type:'text',id:'txtLangCode',label:b.lang.common.langCode,'default':'',setup:function(B,C){if(B==d)this.setValue(C.getAttribute('lang'));},commit:function(B,C){if(B==d)if(this.getValue()||this.isChanged())C.setAttribute('lang',this.getValue());}}]},{type:'text',id:'txtGenLongDescr',label:b.lang.common.longDescr,setup:function(B,C){if(B==d)this.setValue(C.getAttribute('longDesc'));},commit:function(B,C){if(B==d)if(this.getValue()||this.isChanged())C.setAttribute('longDesc',this.getValue());}},{type:'hbox',widths:['50%','50%'],children:[{type:'text',id:'txtGenClass',label:b.lang.common.cssClass,'default':'',setup:function(B,C){if(B==d)this.setValue(C.getAttribute('class'));
+},commit:function(B,C){if(B==d)if(this.getValue()||this.isChanged())C.setAttribute('class',this.getValue());}},{type:'text',id:'txtGenTitle',label:b.lang.common.advisoryTitle,'default':'',onChange:function(){l(this.getDialog());},setup:function(B,C){if(B==d)this.setValue(C.getAttribute('title'));},commit:function(B,C){var D=this;if(B==d){if(D.getValue()||D.isChanged())C.setAttribute('title',D.getValue());}else if(B==f)C.setAttribute('title',D.getValue());else if(B==g)C.removeAttribute('title');}}]},{type:'text',id:'txtdlgGenStyle',label:b.lang.common.cssStyle,validate:CKEDITOR.dialog.validate.inlineStyle(b.lang.common.invalidInlineStyle),'default':'',setup:function(B,C){if(B==d){var D=C.getAttribute('style');if(!D&&C.$.style.cssText)D=C.$.style.cssText;this.setValue(D);var E=C.$.style.height,F=C.$.style.width,G=(E?E:'').match(h),H=(F?F:'').match(h);this.attributesInStyle={height:!!G,width:!!H};}},onChange:function(){o.call(this,['info:cmbFloat','info:cmbAlign','info:txtVSpace','info:txtHSpace','info:txtBorder','info:txtWidth','info:txtHeight']);l(this);},commit:function(B,C){if(B==d&&(this.getValue()||this.isChanged()))C.setAttribute('style',this.getValue());}}]}]};};CKEDITOR.dialog.add('image',function(b){return a(b,'image');});CKEDITOR.dialog.add('imagebutton',function(b){return a(b,'imagebutton');});})();
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/link/dialogs/anchor.js b/appsrc/ODS-Framework/ckeditor/plugins/link/dialogs/anchor.js
index 7380c48..b1c1c52 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/link/dialogs/anchor.js
+++ b/appsrc/ODS-Framework/ckeditor/plugins/link/dialogs/anchor.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/link/dialogs/link.js b/appsrc/ODS-Framework/ckeditor/plugins/link/dialogs/link.js
index cac5e89..e8c8953 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/link/dialogs/link.js
+++ b/appsrc/ODS-Framework/ckeditor/plugins/link/dialogs/link.js
@@ -1,12 +1,12 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
 CKEDITOR.dialog.add('link',function(a){var b=CKEDITOR.plugins.link,c=function(){var F=this.getDialog(),G=F.getContentElement('target','popupFeatures'),H=F.getContentElement('target','linkTargetName'),I=this.getValue();if(!G||!H)return;G=G.getElement();G.hide();H.setValue('');switch(I){case 'frame':H.setLabel(a.lang.link.targetFrameName);H.getElement().show();break;case 'popup':G.show();H.setLabel(a.lang.link.targetPopupName);H.getElement().show();break;default:H.setValue(I);H.getElement().hide();break;}},d=function(){var F=this.getDialog(),G=['urlOptions','anchorOptions','emailOptions'],H=this.getValue(),I=F.definition.getContents('upload'),J=I&&I.hidden;if(H=='url'){if(a.config.linkShowTargetTab)F.showPage('target');if(!J)F.showPage('upload');}else{F.hidePage('target');if(!J)F.hidePage('upload');}for(var K=0;K<G.length;K++){var L=F.getContentElement('info',G[K]);if(!L)continue;L=L.getElement().getParent().getParent();if(G[K]==H+'Options')L.show();else L.hide();}F.layout();},e=/^javascript:/,f=/^mailto:([^?]+)(?:\?(.+))?$/,g=/subject=([^;?:@&=$,\/]*)/,h=/body=([^;?:@&=$,\/]*)/,i=/^#(.*)$/,j=/^((?:http|https|ftp|news):\/\/)?(.*)$/,k=/^(_(?:self|top|parent|blank))$/,l=/^javascript:void\(location\.href='mailto:'\+String\.fromCharCode\(([^)]+)\)(?:\+'(.*)')?\)$/,m=/^javascript:([^(]+)\(([^)]+)\)$/,n=/\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*/,o=/(?:^|,)([^=]+)=(\d+|yes|no)/gi,p=function(F,G){var H=G&&(G.data('cke-saved-href')||G.getAttribute('href'))||'',I,J,K,L,M={};if(I=H.match(e))if(y=='encode')H=H.replace(l,function(ae,af,ag){return 'mailto:'+String.fromCharCode.apply(String,af.split(','))+(ag&&w(ag));});else if(y)H.replace(m,function(ae,af,ag){if(af==z.name){M.type='email';var ah=M.email={},ai=/[^,\s]+/g,aj=/(^')|('$)/g,ak=ag.match(ai),al=ak.length,am,an;for(var ao=0;ao<al;ao++){an=decodeURIComponent(w(ak[ao].replace(aj,'')));am=z.params[ao].toLowerCase();ah[am]=an;}ah.address=[ah.name,ah.domain].join('@');}});if(!M.type)if(K=H.match(i)){M.type='anchor';M.anchor={};M.anchor.name=M.anchor.id=K[1];}else if(J=H.match(f)){var N=H.match(g),O=H.match(h);M.type='email';var P=M.email={};P.address=J[1];N&&(P.subject=decodeURIComponent(N[1]));O&&(P.body=decodeURIComponent(O[1]));}else if(H&&(L=H.match(j))){M.type='url';M.url={};M.url.protocol=L[1];M.url.url=L[2];}else M.type='url';if(G){var Q=G.getAttribute('target');M.target={};M.adv={};if(!Q){var R=G.data('cke-pa-onclick')||G.getAttribute('onclick'),S=R&&R.match(n);
-if(S){M.target.type='popup';M.target.name=S[1];var T;while(T=o.exec(S[2])){if((T[2]=='yes'||T[2]=='1')&&!(T[1] in {height:1,width:1,top:1,left:1}))M.target[T[1]]=true;else if(isFinite(T[2]))M.target[T[1]]=T[2];}}}else{var U=Q.match(k);if(U)M.target.type=M.target.name=Q;else{M.target.type='frame';M.target.name=Q;}}var V=this,W=function(ae,af){var ag=G.getAttribute(af);if(ag!==null)M.adv[ae]=ag||'';};W('advId','id');W('advLangDir','dir');W('advAccessKey','accessKey');M.adv.advName=G.data('cke-saved-name')||G.getAttribute('name')||'';W('advLangCode','lang');W('advTabIndex','tabindex');W('advTitle','title');W('advContentType','type');CKEDITOR.plugins.link.synAnchorSelector?M.adv.advCSSClasses=C(G):W('advCSSClasses','class');W('advCharset','charset');W('advStyles','style');W('advRel','rel');}var X=M.anchors=[],Y;if(CKEDITOR.plugins.link.emptyAnchorFix){var Z=F.document.getElementsByTag('a');for(i=0,count=Z.count();i<count;i++){Y=Z.getItem(i);if(Y.data('cke-saved-name')||Y.hasAttribute('name'))X.push({name:Y.data('cke-saved-name')||Y.getAttribute('name'),id:Y.getAttribute('id')});}}else{var aa=new CKEDITOR.dom.nodeList(F.document.$.anchors);for(var ab=0,ac=aa.count();ab<ac;ab++){Y=aa.getItem(ab);X[ab]={name:Y.getAttribute('name'),id:Y.getAttribute('id')};}}if(CKEDITOR.plugins.link.fakeAnchor){var ad=F.document.getElementsByTag('img');for(ab=0,ac=ad.count();ab<ac;ab++){if(Y=CKEDITOR.plugins.link.tryRestoreFakeAnchor(F,ad.getItem(ab)))X.push({name:Y.getAttribute('name'),id:Y.getAttribute('id')});}}this._.selectedElement=G;return M;},q=function(F,G){if(G[F])this.setValue(G[F][this.id]||'');},r=function(F){return q.call(this,'target',F);},s=function(F){return q.call(this,'adv',F);},t=function(F,G){if(!G[F])G[F]={};G[F][this.id]=this.getValue()||'';},u=function(F){return t.call(this,'target',F);},v=function(F){return t.call(this,'adv',F);};function w(F){return F.replace(/\\'/g,"'");};function x(F){return F.replace(/'/g,'\\$&');};var y=a.config.emailProtection||'';if(y&&y!='encode'){var z={};y.replace(/^([^(]+)\(([^)]+)\)$/,function(F,G,H){z.name=G;z.params=[];H.replace(/[^,\s]+/g,function(I){z.params.push(I);});});}function A(F){var G,H=z.name,I=z.params,J,K;G=[H,'('];for(var L=0;L<I.length;L++){J=I[L].toLowerCase();K=F[J];L>0&&G.push(',');G.push("'",K?x(encodeURIComponent(F[J])):'',"'");}G.push(')');return G.join('');};function B(F){var G,H=F.length,I=[];for(var J=0;J<H;J++){G=F.charCodeAt(J);I.push(G);}return 'String.fromCharCode('+I.join(',')+')';};function C(F){var G=F.getAttribute('class');
+if(S){M.target.type='popup';M.target.name=S[1];var T;while(T=o.exec(S[2])){if((T[2]=='yes'||T[2]=='1')&&!(T[1] in {height:1,width:1,top:1,left:1}))M.target[T[1]]=true;else if(isFinite(T[2]))M.target[T[1]]=T[2];}}}else{var U=Q.match(k);if(U)M.target.type=M.target.name=Q;else{M.target.type='frame';M.target.name=Q;}}var V=this,W=function(ae,af){var ag=G.getAttribute(af);if(ag!==null)M.adv[ae]=ag||'';};W('advId','id');W('advLangDir','dir');W('advAccessKey','accessKey');M.adv.advName=G.data('cke-saved-name')||G.getAttribute('name')||'';W('advLangCode','lang');W('advTabIndex','tabindex');W('advTitle','title');W('advContentType','type');CKEDITOR.plugins.link.synAnchorSelector?M.adv.advCSSClasses=C(G):W('advCSSClasses','class');W('advCharset','charset');W('advStyles','style');W('advRel','rel');}var X=M.anchors=[],Y,Z,aa;if(CKEDITOR.plugins.link.emptyAnchorFix){var ab=F.document.getElementsByTag('a');for(Y=0,Z=ab.count();Y<Z;Y++){aa=ab.getItem(Y);if(aa.data('cke-saved-name')||aa.hasAttribute('name'))X.push({name:aa.data('cke-saved-name')||aa.getAttribute('name'),id:aa.getAttribute('id')});}}else{var ac=new CKEDITOR.dom.nodeList(F.document.$.anchors);for(Y=0,Z=ac.count();Y<Z;Y++){aa=ac.getItem(Y);X[Y]={name:aa.getAttribute('name'),id:aa.getAttribute('id')};}}if(CKEDITOR.plugins.link.fakeAnchor){var ad=F.document.getElementsByTag('img');for(Y=0,Z=ad.count();Y<Z;Y++){if(aa=CKEDITOR.plugins.link.tryRestoreFakeAnchor(F,ad.getItem(Y)))X.push({name:aa.getAttribute('name'),id:aa.getAttribute('id')});}}this._.selectedElement=G;return M;},q=function(F,G){if(G[F])this.setValue(G[F][this.id]||'');},r=function(F){return q.call(this,'target',F);},s=function(F){return q.call(this,'adv',F);},t=function(F,G){if(!G[F])G[F]={};G[F][this.id]=this.getValue()||'';},u=function(F){return t.call(this,'target',F);},v=function(F){return t.call(this,'adv',F);};function w(F){return F.replace(/\\'/g,"'");};function x(F){return F.replace(/'/g,'\\$&');};var y=a.config.emailProtection||'';if(y&&y!='encode'){var z={};y.replace(/^([^(]+)\(([^)]+)\)$/,function(F,G,H){z.name=G;z.params=[];H.replace(/[^,\s]+/g,function(I){z.params.push(I);});});}function A(F){var G,H=z.name,I=z.params,J,K;G=[H,'('];for(var L=0;L<I.length;L++){J=I[L].toLowerCase();K=F[J];L>0&&G.push(',');G.push("'",K?x(encodeURIComponent(F[J])):'',"'");}G.push(')');return G.join('');};function B(F){var G,H=F.length,I=[];for(var J=0;J<H;J++){G=F.charCodeAt(J);I.push(G);}return 'String.fromCharCode('+I.join(',')+')';};function C(F){var G=F.getAttribute('class');
 return G?G.replace(/\s*(?:cke_anchor_empty|cke_anchor)(?:\s*$)?/g,''):'';};var D=a.lang.common,E=a.lang.link;return{title:E.title,minWidth:350,minHeight:230,contents:[{id:'info',label:E.info,title:E.info,elements:[{id:'linkType',type:'select',label:E.type,'default':'url',items:[[E.toUrl,'url'],[E.toAnchor,'anchor'],[E.toEmail,'email']],onChange:d,setup:function(F){if(F.type)this.setValue(F.type);},commit:function(F){F.type=this.getValue();}},{type:'vbox',id:'urlOptions',children:[{type:'hbox',widths:['25%','75%'],children:[{id:'protocol',type:'select',label:D.protocol,'default':'http://',items:[['http://‎','http://'],['https://‎','https://'],['ftp://‎','ftp://'],['news://‎','news://'],[E.other,'']],setup:function(F){if(F.url)this.setValue(F.url.protocol||'');},commit:function(F){if(!F.url)F.url={};F.url.protocol=this.getValue();}},{type:'text',id:'url',label:D.url,required:true,onLoad:function(){this.allowOnChange=true;},onKeyUp:function(){var K=this;K.allowOnChange=false;var F=K.getDialog().getContentElement('info','protocol'),G=K.getValue(),H=/^(http|https|ftp|news):\/\/(?=.)/i,I=/^((javascript:)|[#\/\.\?])/i,J=H.exec(G);if(J){K.setValue(G.substr(J[0].length));F.setValue(J[0].toLowerCase());}else if(I.test(G))F.setValue('');K.allowOnChange=true;},onChange:function(){if(this.allowOnChange)this.onKeyUp();},validate:function(){var F=this.getDialog();if(F.getContentElement('info','linkType')&&F.getValueOf('info','linkType')!='url')return true;if(this.getDialog().fakeObj)return true;var G=CKEDITOR.dialog.validate.notEmpty(E.noUrl);return G.apply(this);},setup:function(F){this.allowOnChange=false;if(F.url)this.setValue(F.url.url);this.allowOnChange=true;},commit:function(F){this.onChange();if(!F.url)F.url={};F.url.url=this.getValue();this.allowOnChange=false;}}],setup:function(F){if(!this.getDialog().getContentElement('info','linkType'))this.getElement().show();}},{type:'button',id:'browse',hidden:'true',filebrowser:'info:url',label:D.browseServer}]},{type:'vbox',id:'anchorOptions',width:260,align:'center',padding:0,children:[{type:'fieldset',id:'selectAnchorText',label:E.selectAnchor,setup:function(F){if(F.anchors.length>0)this.getElement().show();else this.getElement().hide();},children:[{type:'hbox',id:'selectAnchor',children:[{type:'select',id:'anchorName','default':'',label:E.anchorName,style:'width: 100%;',items:[['']],setup:function(F){var I=this;I.clear();I.add('');for(var G=0;G<F.anchors.length;G++){if(F.anchors[G].name)I.add(F.anchors[G].name);}if(F.anchor)I.setValue(F.anchor.name);
-var H=I.getDialog().getContentElement('info','linkType');if(H&&H.getValue()=='email')I.focus();},commit:function(F){if(!F.anchor)F.anchor={};F.anchor.name=this.getValue();}},{type:'select',id:'anchorId','default':'',label:E.anchorId,style:'width: 100%;',items:[['']],setup:function(F){var H=this;H.clear();H.add('');for(var G=0;G<F.anchors.length;G++){if(F.anchors[G].id)H.add(F.anchors[G].id);}if(F.anchor)H.setValue(F.anchor.id);},commit:function(F){if(!F.anchor)F.anchor={};F.anchor.id=this.getValue();}}],setup:function(F){if(F.anchors.length>0)this.getElement().show();else this.getElement().hide();}}]},{type:'html',id:'noAnchors',style:'text-align: center;',html:'<div role="label" tabIndex="-1">'+CKEDITOR.tools.htmlEncode(E.noAnchors)+'</div>',focus:true,setup:function(F){if(F.anchors.length<1)this.getElement().show();else this.getElement().hide();}}],setup:function(F){if(!this.getDialog().getContentElement('info','linkType'))this.getElement().hide();}},{type:'vbox',id:'emailOptions',padding:1,children:[{type:'text',id:'emailAddress',label:E.emailAddress,required:true,validate:function(){var F=this.getDialog();if(!F.getContentElement('info','linkType')||F.getValueOf('info','linkType')!='email')return true;var G=CKEDITOR.dialog.validate.notEmpty(E.noEmail);return G.apply(this);},setup:function(F){if(F.email)this.setValue(F.email.address);var G=this.getDialog().getContentElement('info','linkType');if(G&&G.getValue()=='email')this.select();},commit:function(F){if(!F.email)F.email={};F.email.address=this.getValue();}},{type:'text',id:'emailSubject',label:E.emailSubject,setup:function(F){if(F.email)this.setValue(F.email.subject);},commit:function(F){if(!F.email)F.email={};F.email.subject=this.getValue();}},{type:'textarea',id:'emailBody',label:E.emailBody,rows:3,'default':'',setup:function(F){if(F.email)this.setValue(F.email.body);},commit:function(F){if(!F.email)F.email={};F.email.body=this.getValue();}}],setup:function(F){if(!this.getDialog().getContentElement('info','linkType'))this.getElement().hide();}}]},{id:'target',label:E.target,title:E.target,elements:[{type:'hbox',widths:['50%','50%'],children:[{type:'select',id:'linkTargetType',label:D.target,'default':'notSet',style:'width : 100%;',items:[[D.notSet,'notSet'],[E.targetFrame,'frame'],[E.targetPopup,'popup'],[D.targetNew,'_blank'],[D.targetTop,'_top'],[D.targetSelf,'_self'],[D.targetParent,'_parent']],onChange:c,setup:function(F){if(F.target)this.setValue(F.target.type||'notSet');c.call(this);},commit:function(F){if(!F.target)F.target={};
-F.target.type=this.getValue();}},{type:'text',id:'linkTargetName',label:E.targetFrameName,'default':'',setup:function(F){if(F.target)this.setValue(F.target.name);},commit:function(F){if(!F.target)F.target={};F.target.name=this.getValue().replace(/\W/gi,'');}}]},{type:'vbox',width:'100%',align:'center',padding:2,id:'popupFeatures',children:[{type:'fieldset',label:E.popupFeatures,children:[{type:'hbox',children:[{type:'checkbox',id:'resizable',label:E.popupResizable,setup:r,commit:u},{type:'checkbox',id:'status',label:E.popupStatusBar,setup:r,commit:u}]},{type:'hbox',children:[{type:'checkbox',id:'location',label:E.popupLocationBar,setup:r,commit:u},{type:'checkbox',id:'toolbar',label:E.popupToolbar,setup:r,commit:u}]},{type:'hbox',children:[{type:'checkbox',id:'menubar',label:E.popupMenuBar,setup:r,commit:u},{type:'checkbox',id:'fullscreen',label:E.popupFullScreen,setup:r,commit:u}]},{type:'hbox',children:[{type:'checkbox',id:'scrollbars',label:E.popupScrollBars,setup:r,commit:u},{type:'checkbox',id:'dependent',label:E.popupDependent,setup:r,commit:u}]},{type:'hbox',children:[{type:'text',widths:['50%','50%'],labelLayout:'horizontal',label:D.width,id:'width',setup:r,commit:u},{type:'text',labelLayout:'horizontal',widths:['50%','50%'],label:E.popupLeft,id:'left',setup:r,commit:u}]},{type:'hbox',children:[{type:'text',labelLayout:'horizontal',widths:['50%','50%'],label:D.height,id:'height',setup:r,commit:u},{type:'text',labelLayout:'horizontal',label:E.popupTop,widths:['50%','50%'],id:'top',setup:r,commit:u}]}]}]}]},{id:'upload',label:E.upload,title:E.upload,hidden:true,filebrowser:'uploadButton',elements:[{type:'file',id:'upload',label:D.upload,style:'height:40px',size:29},{type:'fileButton',id:'uploadButton',label:D.uploadSubmit,filebrowser:'info:url','for':['upload','upload']}]},{id:'advanced',label:E.advanced,title:E.advanced,elements:[{type:'vbox',padding:1,children:[{type:'hbox',widths:['45%','35%','20%'],children:[{type:'text',id:'advId',label:E.id,setup:s,commit:v},{type:'select',id:'advLangDir',label:E.langDir,'default':'',style:'width:110px',items:[[D.notSet,''],[E.langDirLTR,'ltr'],[E.langDirRTL,'rtl']],setup:s,commit:v},{type:'text',id:'advAccessKey',width:'80px',label:E.acccessKey,maxLength:1,setup:s,commit:v}]},{type:'hbox',widths:['45%','35%','20%'],children:[{type:'text',label:E.name,id:'advName',setup:s,commit:v},{type:'text',label:E.langCode,id:'advLangCode',width:'110px','default':'',setup:s,commit:v},{type:'text',label:E.tabIndex,id:'advTabIndex',width:'80px',maxLength:5,setup:s,commit:v}]}]},{type:'vbox',padding:1,children:[{type:'hbox',widths:['45%','55%'],children:[{type:'text',label:E.advisoryTitle,'default':'',id:'advTitle',setup:s,commit:v},{type:'text',label:E.advisoryContentType,'default':'',id:'advContentType',setup:s,commit:v}]},{type:'hbox',widths:['45%','55%'],children:[{type:'text',label:E.cssClasses,'default':'',id:'advCSSClasses',setup:s,commit:v},{type:'text',label:E.charset,'default':'',id:'advCharset',setup:s,commit:v}]},{type:'hbox',widths:['45%','55%'],children:[{type:'text',label:E.rel,'default':'',id:'advRel',setup:s,commit:v},{type:'text',label:E.styles,'default':'',id:'advStyles',setup:s,commit:v}]}]}]}],onShow:function(){var F=this.getParentEditor(),G=F.getSelection(),H=null;
-if((H=b.getSelectedLink(F))&&H.hasAttribute('href'))G.selectElement(H);else H=null;this.setupContent(p.apply(this,[F,H]));},onOk:function(){var F={},G=[],H={},I=this,J=this.getParentEditor();this.commitContent(H);switch(H.type||'url'){case 'url':var K=H.url&&H.url.protocol!=undefined?H.url.protocol:'http://',L=H.url&&CKEDITOR.tools.trim(H.url.url)||'';F['data-cke-saved-href']=L.indexOf('/')===0?L:K+L;break;case 'anchor':var M=H.anchor&&H.anchor.name,N=H.anchor&&H.anchor.id;F['data-cke-saved-href']='#'+(M||N||'');break;case 'email':var O,P=H.email,Q=P.address;switch(y){case '':case 'encode':var R=encodeURIComponent(P.subject||''),S=encodeURIComponent(P.body||''),T=[];R&&T.push('subject='+R);S&&T.push('body='+S);T=T.length?'?'+T.join('&'):'';if(y=='encode'){O=["javascript:void(location.href='mailto:'+",B(Q)];T&&O.push("+'",x(T),"'");O.push(')');}else O=['mailto:',Q,T];break;default:var U=Q.split('@',2);P.name=U[0];P.domain=U[1];O=['javascript:',A(P)];}F['data-cke-saved-href']=O.join('');break;}if(H.target)if(H.target.type=='popup'){var V=["window.open(this.href, '",H.target.name||'',"', '"],W=['resizable','status','location','toolbar','menubar','fullscreen','scrollbars','dependent'],X=W.length,Y=function(ai){if(H.target[ai])W.push(ai+'='+H.target[ai]);};for(var Z=0;Z<X;Z++)W[Z]=W[Z]+(H.target[W[Z]]?'=yes':'=no');Y('width');Y('left');Y('height');Y('top');V.push(W.join(','),"'); return false;");F['data-cke-pa-onclick']=V.join('');G.push('target');}else{if(H.target.type!='notSet'&&H.target.name)F.target=H.target.name;else G.push('target');G.push('data-cke-pa-onclick','onclick');}if(H.adv){var aa=function(ai,aj){var ak=H.adv[ai];if(ak)F[aj]=ak;else G.push(aj);};aa('advId','id');aa('advLangDir','dir');aa('advAccessKey','accessKey');if(H.adv.advName)F.name=F['data-cke-saved-name']=H.adv.advName;else G=G.concat(['data-cke-saved-name','name']);aa('advLangCode','lang');aa('advTabIndex','tabindex');aa('advTitle','title');aa('advContentType','type');aa('advCSSClasses','class');aa('advCharset','charset');aa('advStyles','style');aa('advRel','rel');}F.href=F['data-cke-saved-href'];if(!this._.selectedElement){var ab=J.getSelection(),ac=ab.getRanges(true);if(ac.length==1&&ac[0].collapsed){var ad=new CKEDITOR.dom.text(H.type=='email'?H.email.address:F['data-cke-saved-href'],J.document);ac[0].insertNode(ad);ac[0].selectNodeContents(ad);ab.selectRanges(ac);}var ae=new CKEDITOR.style({element:'a',attributes:F});ae.type=CKEDITOR.STYLE_INLINE;ae.apply(J.document);}else{var af=this._.selectedElement,ag=af.data('cke-saved-href'),ah=af.getHtml();
-af.setAttributes(F);af.removeAttributes(G);if(H.adv&&H.adv.advName&&CKEDITOR.plugins.link.synAnchorSelector)af.addClass(af.getChildCount()?'cke_anchor':'cke_anchor_empty');if(ag==ah||H.type=='email'&&ah.indexOf('@')!=-1)af.setHtml(H.type=='email'?H.email.address:F['data-cke-saved-href']);delete this._.selectedElement;}},onLoad:function(){if(!a.config.linkShowAdvancedTab)this.hidePage('advanced');if(!a.config.linkShowTargetTab)this.hidePage('target');},onFocus:function(){var F=this.getContentElement('info','linkType'),G;if(F&&F.getValue()=='url'){G=this.getContentElement('info','url');G.select();}}};});
+var H=I.getDialog().getContentElement('info','linkType');if(H&&H.getValue()=='email')I.focus();},commit:function(F){if(!F.anchor)F.anchor={};F.anchor.name=this.getValue();}},{type:'select',id:'anchorId','default':'',label:E.anchorId,style:'width: 100%;',items:[['']],setup:function(F){var H=this;H.clear();H.add('');for(var G=0;G<F.anchors.length;G++){if(F.anchors[G].id)H.add(F.anchors[G].id);}if(F.anchor)H.setValue(F.anchor.id);},commit:function(F){if(!F.anchor)F.anchor={};F.anchor.id=this.getValue();}}],setup:function(F){if(F.anchors.length>0)this.getElement().show();else this.getElement().hide();}}]},{type:'html',id:'noAnchors',style:'text-align: center;',html:'<div role="note" tabIndex="-1">'+CKEDITOR.tools.htmlEncode(E.noAnchors)+'</div>',focus:true,setup:function(F){if(F.anchors.length<1)this.getElement().show();else this.getElement().hide();}}],setup:function(F){if(!this.getDialog().getContentElement('info','linkType'))this.getElement().hide();}},{type:'vbox',id:'emailOptions',padding:1,children:[{type:'text',id:'emailAddress',label:E.emailAddress,required:true,validate:function(){var F=this.getDialog();if(!F.getContentElement('info','linkType')||F.getValueOf('info','linkType')!='email')return true;var G=CKEDITOR.dialog.validate.notEmpty(E.noEmail);return G.apply(this);},setup:function(F){if(F.email)this.setValue(F.email.address);var G=this.getDialog().getContentElement('info','linkType');if(G&&G.getValue()=='email')this.select();},commit:function(F){if(!F.email)F.email={};F.email.address=this.getValue();}},{type:'text',id:'emailSubject',label:E.emailSubject,setup:function(F){if(F.email)this.setValue(F.email.subject);},commit:function(F){if(!F.email)F.email={};F.email.subject=this.getValue();}},{type:'textarea',id:'emailBody',label:E.emailBody,rows:3,'default':'',setup:function(F){if(F.email)this.setValue(F.email.body);},commit:function(F){if(!F.email)F.email={};F.email.body=this.getValue();}}],setup:function(F){if(!this.getDialog().getContentElement('info','linkType'))this.getElement().hide();}}]},{id:'target',label:E.target,title:E.target,elements:[{type:'hbox',widths:['50%','50%'],children:[{type:'select',id:'linkTargetType',label:D.target,'default':'notSet',style:'width : 100%;',items:[[D.notSet,'notSet'],[E.targetFrame,'frame'],[E.targetPopup,'popup'],[D.targetNew,'_blank'],[D.targetTop,'_top'],[D.targetSelf,'_self'],[D.targetParent,'_parent']],onChange:c,setup:function(F){if(F.target)this.setValue(F.target.type||'notSet');c.call(this);},commit:function(F){if(!F.target)F.target={};
+F.target.type=this.getValue();}},{type:'text',id:'linkTargetName',label:E.targetFrameName,'default':'',setup:function(F){if(F.target)this.setValue(F.target.name);},commit:function(F){if(!F.target)F.target={};F.target.name=this.getValue().replace(/\W/gi,'');}}]},{type:'vbox',width:'100%',align:'center',padding:2,id:'popupFeatures',children:[{type:'fieldset',label:E.popupFeatures,children:[{type:'hbox',children:[{type:'checkbox',id:'resizable',label:E.popupResizable,setup:r,commit:u},{type:'checkbox',id:'status',label:E.popupStatusBar,setup:r,commit:u}]},{type:'hbox',children:[{type:'checkbox',id:'location',label:E.popupLocationBar,setup:r,commit:u},{type:'checkbox',id:'toolbar',label:E.popupToolbar,setup:r,commit:u}]},{type:'hbox',children:[{type:'checkbox',id:'menubar',label:E.popupMenuBar,setup:r,commit:u},{type:'checkbox',id:'fullscreen',label:E.popupFullScreen,setup:r,commit:u}]},{type:'hbox',children:[{type:'checkbox',id:'scrollbars',label:E.popupScrollBars,setup:r,commit:u},{type:'checkbox',id:'dependent',label:E.popupDependent,setup:r,commit:u}]},{type:'hbox',children:[{type:'text',widths:['50%','50%'],labelLayout:'horizontal',label:D.width,id:'width',setup:r,commit:u},{type:'text',labelLayout:'horizontal',widths:['50%','50%'],label:E.popupLeft,id:'left',setup:r,commit:u}]},{type:'hbox',children:[{type:'text',labelLayout:'horizontal',widths:['50%','50%'],label:D.height,id:'height',setup:r,commit:u},{type:'text',labelLayout:'horizontal',label:E.popupTop,widths:['50%','50%'],id:'top',setup:r,commit:u}]}]}]}]},{id:'upload',label:E.upload,title:E.upload,hidden:true,filebrowser:'uploadButton',elements:[{type:'file',id:'upload',label:D.upload,style:'height:40px',size:29},{type:'fileButton',id:'uploadButton',label:D.uploadSubmit,filebrowser:'info:url','for':['upload','upload']}]},{id:'advanced',label:E.advanced,title:E.advanced,elements:[{type:'vbox',padding:1,children:[{type:'hbox',widths:['45%','35%','20%'],children:[{type:'text',id:'advId',label:E.id,setup:s,commit:v},{type:'select',id:'advLangDir',label:E.langDir,'default':'',style:'width:110px',items:[[D.notSet,''],[E.langDirLTR,'ltr'],[E.langDirRTL,'rtl']],setup:s,commit:v},{type:'text',id:'advAccessKey',width:'80px',label:E.acccessKey,maxLength:1,setup:s,commit:v}]},{type:'hbox',widths:['45%','35%','20%'],children:[{type:'text',label:E.name,id:'advName',setup:s,commit:v},{type:'text',label:E.langCode,id:'advLangCode',width:'110px','default':'',setup:s,commit:v},{type:'text',label:E.tabIndex,id:'advTabIndex',width:'80px',maxLength:5,setup:s,commit:v}]}]},{type:'vbox',padding:1,children:[{type:'hbox',widths:['45%','55%'],children:[{type:'text',label:E.advisoryTitle,'default':'',id:'advTitle',setup:s,commit:v},{type:'text',label:E.advisoryContentType,'default':'',id:'advContentType',setup:s,commit:v}]},{type:'hbox',widths:['45%','55%'],children:[{type:'text',label:E.cssClasses,'default':'',id:'advCSSClasses',setup:s,commit:v},{type:'text',label:E.charset,'default':'',id:'advCharset',setup:s,commit:v}]},{type:'hbox',widths:['45%','55%'],children:[{type:'text',label:E.rel,'default':'',id:'advRel',setup:s,commit:v},{type:'text',label:E.styles,'default':'',id:'advStyles',validate:CKEDITOR.dialog.validate.inlineStyle(a.lang.common.invalidInlineStyle),setup:s,commit:v}]}]}]}],onShow:function(){var F=this.getParentEditor(),G=F.getSelection(),H=null;
+if((H=b.getSelectedLink(F))&&H.hasAttribute('href'))G.selectElement(H);else H=null;this.setupContent(p.apply(this,[F,H]));},onOk:function(){var F={},G=[],H={},I=this,J=this.getParentEditor();this.commitContent(H);switch(H.type||'url'){case 'url':var K=H.url&&H.url.protocol!=undefined?H.url.protocol:'http://',L=H.url&&CKEDITOR.tools.trim(H.url.url)||'';F['data-cke-saved-href']=L.indexOf('/')===0?L:K+L;break;case 'anchor':var M=H.anchor&&H.anchor.name,N=H.anchor&&H.anchor.id;F['data-cke-saved-href']='#'+(M||N||'');break;case 'email':var O,P=H.email,Q=P.address;switch(y){case '':case 'encode':var R=encodeURIComponent(P.subject||''),S=encodeURIComponent(P.body||''),T=[];R&&T.push('subject='+R);S&&T.push('body='+S);T=T.length?'?'+T.join('&'):'';if(y=='encode'){O=["javascript:void(location.href='mailto:'+",B(Q)];T&&O.push("+'",x(T),"'");O.push(')');}else O=['mailto:',Q,T];break;default:var U=Q.split('@',2);P.name=U[0];P.domain=U[1];O=['javascript:',A(P)];}F['data-cke-saved-href']=O.join('');break;}if(H.target)if(H.target.type=='popup'){var V=["window.open(this.href, '",H.target.name||'',"', '"],W=['resizable','status','location','toolbar','menubar','fullscreen','scrollbars','dependent'],X=W.length,Y=function(ai){if(H.target[ai])W.push(ai+'='+H.target[ai]);};for(var Z=0;Z<X;Z++)W[Z]=W[Z]+(H.target[W[Z]]?'=yes':'=no');Y('width');Y('left');Y('height');Y('top');V.push(W.join(','),"'); return false;");F['data-cke-pa-onclick']=V.join('');G.push('target');}else{if(H.target.type!='notSet'&&H.target.name)F.target=H.target.name;else G.push('target');G.push('data-cke-pa-onclick','onclick');}if(H.adv){var aa=function(ai,aj){var ak=H.adv[ai];if(ak)F[aj]=ak;else G.push(aj);};aa('advId','id');aa('advLangDir','dir');aa('advAccessKey','accessKey');if(H.adv.advName)F.name=F['data-cke-saved-name']=H.adv.advName;else G=G.concat(['data-cke-saved-name','name']);aa('advLangCode','lang');aa('advTabIndex','tabindex');aa('advTitle','title');aa('advContentType','type');aa('advCSSClasses','class');aa('advCharset','charset');aa('advStyles','style');aa('advRel','rel');}var ab=J.getSelection();F.href=F['data-cke-saved-href'];if(!this._.selectedElement){var ac=ab.getRanges(true);if(ac.length==1&&ac[0].collapsed){var ad=new CKEDITOR.dom.text(H.type=='email'?H.email.address:F['data-cke-saved-href'],J.document);ac[0].insertNode(ad);ac[0].selectNodeContents(ad);ab.selectRanges(ac);}var ae=new CKEDITOR.style({element:'a',attributes:F});ae.type=CKEDITOR.STYLE_INLINE;ae.apply(J.document);}else{var af=this._.selectedElement,ag=af.data('cke-saved-href'),ah=af.getHtml();
+af.setAttributes(F);af.removeAttributes(G);if(H.adv&&H.adv.advName&&CKEDITOR.plugins.link.synAnchorSelector)af.addClass(af.getChildCount()?'cke_anchor':'cke_anchor_empty');if(ag==ah||H.type=='email'&&ah.indexOf('@')!=-1)af.setHtml(H.type=='email'?H.email.address:F['data-cke-saved-href']);ab.selectElement(af);delete this._.selectedElement;}},onLoad:function(){if(!a.config.linkShowAdvancedTab)this.hidePage('advanced');if(!a.config.linkShowTargetTab)this.hidePage('target');},onFocus:function(){var F=this.getContentElement('info','linkType'),G;if(F&&F.getValue()=='url'){G=this.getContentElement('info','url');G.select();}}};});
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/pastetext/dialogs/pastetext.js b/appsrc/ODS-Framework/ckeditor/plugins/pastetext/dialogs/pastetext.js
index c13fb56..419d24a 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/pastetext/dialogs/pastetext.js
+++ b/appsrc/ODS-Framework/ckeditor/plugins/pastetext/dialogs/pastetext.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/scayt/dialogs/options.js b/appsrc/ODS-Framework/ckeditor/plugins/scayt/dialogs/options.js
index 6d7c797..9eb1475 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/scayt/dialogs/options.js
+++ b/appsrc/ODS-Framework/ckeditor/plugins/scayt/dialogs/options.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/scayt/dialogs/toolbar.css b/appsrc/ODS-Framework/ckeditor/plugins/scayt/dialogs/toolbar.css
index ae37086..e2c305b 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/scayt/dialogs/toolbar.css
+++ b/appsrc/ODS-Framework/ckeditor/plugins/scayt/dialogs/toolbar.css
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/smiley/dialogs/smiley.js b/appsrc/ODS-Framework/ckeditor/plugins/smiley/dialogs/smiley.js
index 6572498..aa7d28b 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/smiley/dialogs/smiley.js
+++ b/appsrc/ODS-Framework/ckeditor/plugins/smiley/dialogs/smiley.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/specialchar/dialogs/specialchar.js b/appsrc/ODS-Framework/ckeditor/plugins/specialchar/dialogs/specialchar.js
index 80df472..94c4505 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/specialchar/dialogs/specialchar.js
+++ b/appsrc/ODS-Framework/ckeditor/plugins/specialchar/dialogs/specialchar.js
@@ -1,7 +1,7 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
 CKEDITOR.dialog.add('specialchar',function(a){var b,c=a.lang.specialChar,d=function(j){var k,l;if(j.data)k=j.data.getTarget();else k=new CKEDITOR.dom.element(j);if(k.getName()=='a'&&(l=k.getChild(0).getHtml())){k.removeClass('cke_light_background');b.hide();var m=a.document.createElement('span');m.setHtml(l);a.insertText(m.getText());}},e=CKEDITOR.tools.addFunction(d),f,g=function(j,k){var l;k=k||j.data.getTarget();if(k.getName()=='span')k=k.getParent();if(k.getName()=='a'&&(l=k.getChild(0).getHtml())){if(f)h(null,f);var m=b.getContentElement('info','htmlPreview').getElement();b.getContentElement('info','charPreview').getElement().setHtml(l);m.setHtml(CKEDITOR.tools.htmlEncode(l));k.getParent().addClass('cke_light_background');f=k;}},h=function(j,k){k=k||j.data.getTarget();if(k.getName()=='span')k=k.getParent();if(k.getName()=='a'){b.getContentElement('info','charPreview').getElement().setHtml(' ');b.getContentElement('info','htmlPreview').getElement().setHtml(' ');k.getParent().removeClass('cke_light_background');f=undefined;}},i=CKEDITOR.tools.addFunction(function(j){j=new CKEDITOR.dom.event(j);var k=j.getTarget(),l,m,n=j.getKeystroke(),o=a.lang.dir=='rtl';switch(n){case 38:if(l=k.getParent().getParent().getPrevious()){m=l.getChild([k.getParent().getIndex(),0]);m.focus();h(null,k);g(null,m);}j.preventDefault();break;case 40:if(l=k.getParent().getParent().getNext()){m=l.getChild([k.getParent().getIndex(),0]);if(m&&m.type==1){m.focus();h(null,k);g(null,m);}}j.preventDefault();break;case 32:d({data:j});j.preventDefault();break;case o?37:39:case 9:if(l=k.getParent().getNext()){m=l.getChild(0);if(m.type==1){m.focus();h(null,k);g(null,m);j.preventDefault(true);}else h(null,k);}else if(l=k.getParent().getParent().getNext()){m=l.getChild([0,0]);if(m&&m.type==1){m.focus();h(null,k);g(null,m);j.preventDefault(true);}else h(null,k);}break;case o?39:37:case CKEDITOR.SHIFT+9:if(l=k.getParent().getPrevious()){m=l.getChild(0);m.focus();h(null,k);g(null,m);j.preventDefault(true);}else if(l=k.getParent().getParent().getPrevious()){m=l.getLast().getChild(0);m.focus();h(null,k);g(null,m);j.preventDefault(true);}else h(null,k);break;default:return;}});return{title:c.title,minWidth:430,minHeight:280,buttons:[CKEDITOR.dialog.cancelButton],charColumns:17,onLoad:function(){var j=this.definition.charColumns,k=a.config.extraSpecialChars,l=a.config.specialChars,m=CKEDITOR.tools.getNextId()+'_specialchar_table_label',n=['<table role="listbox" aria-labelledby="'+m+'"'+' style="width: 320px; height: 100%; border-collapse: separate;"'+' align="center" cellspacing="2" cellpadding="2" border="0">'],o=0,p=l.length,q,r;
-while(o<p){n.push('<tr>');for(var s=0;s<j;s++,o++){if(q=l[o]){r='';if(q instanceof Array){r=q[1];q=q[0];}else{var t=q.toLowerCase().replace('&','').replace(';','').replace('#','');r=c[t]||q;}var u='cke_specialchar_label_'+o+'_'+CKEDITOR.tools.getNextNumber();n.push('<td class="cke_dark_background" style="cursor: default" role="presentation"><a href="javascript: void(0);" role="option" aria-posinset="'+(o+1)+'"',' aria-setsize="'+p+'"',' aria-labelledby="'+u+'"',' style="cursor: inherit; display: block; height: 1.25em; margin-top: 0.25em; text-align: center;" title="',CKEDITOR.tools.htmlEncode(r),'" onkeydown="CKEDITOR.tools.callFunction( '+i+', event, this )"'+' onclick="CKEDITOR.tools.callFunction('+e+', this); return false;"'+' tabindex="-1">'+'<span style="margin: 0 auto;cursor: inherit">'+q+'</span>'+'<span class="cke_voice_label" id="'+u+'">'+r+'</span></a>');}else n.push('<td class="cke_dark_background"> ');n.push('</td>');}n.push('</tr>');}n.push('</tbody></table>','<span id="'+m+'" class="cke_voice_label">'+c.options+'</span>');this.getContentElement('info','charContainer').getElement().setHtml(n.join(''));},contents:[{id:'info',label:a.lang.common.generalTab,title:a.lang.common.generalTab,padding:0,align:'top',elements:[{type:'hbox',align:'top',widths:['320px','90px'],children:[{type:'html',id:'charContainer',html:'',onMouseover:g,onMouseout:h,focus:function(){var j=this.getElement().getElementsByTag('a').getItem(0);setTimeout(function(){j.focus();g(null,j);},0);},onShow:function(){var j=this.getElement().getChild([0,0,0,0,0]);setTimeout(function(){j.focus();g(null,j);},0);},onLoad:function(j){b=j.sender;}},{type:'hbox',align:'top',widths:['100%'],children:[{type:'vbox',align:'top',children:[{type:'html',html:'<div></div>'},{type:'html',id:'charPreview',className:'cke_dark_background',style:"border:1px solid #eeeeee;font-size:28px;height:40px;width:70px;padding-top:9px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:'<div> </div>'},{type:'html',id:'htmlPreview',className:'cke_dark_background',style:"border:1px solid #eeeeee;font-size:14px;height:20px;width:70px;padding-top:2px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:'<div> </div>'}]}]}]}]}]};});
+while(o<p){n.push('<tr>');for(var s=0;s<j;s++,o++){if(q=l[o]){r='';if(q instanceof Array){r=q[1];q=q[0];}else{var t=q.replace('&','').replace(';','').replace('#','');r=c[t]||q;}var u='cke_specialchar_label_'+o+'_'+CKEDITOR.tools.getNextNumber();n.push('<td class="cke_dark_background" style="cursor: default" role="presentation"><a href="javascript: void(0);" role="option" aria-posinset="'+(o+1)+'"',' aria-setsize="'+p+'"',' aria-labelledby="'+u+'"',' style="cursor: inherit; display: block; height: 1.25em; margin-top: 0.25em; text-align: center;" title="',CKEDITOR.tools.htmlEncode(r),'" onkeydown="CKEDITOR.tools.callFunction( '+i+', event, this )"'+' onclick="CKEDITOR.tools.callFunction('+e+', this); return false;"'+' tabindex="-1">'+'<span style="margin: 0 auto;cursor: inherit">'+q+'</span>'+'<span class="cke_voice_label" id="'+u+'">'+r+'</span></a>');}else n.push('<td class="cke_dark_background"> ');n.push('</td>');}n.push('</tr>');}n.push('</tbody></table>','<span id="'+m+'" class="cke_voice_label">'+c.options+'</span>');this.getContentElement('info','charContainer').getElement().setHtml(n.join(''));},contents:[{id:'info',label:a.lang.common.generalTab,title:a.lang.common.generalTab,padding:0,align:'top',elements:[{type:'hbox',align:'top',widths:['320px','90px'],children:[{type:'html',id:'charContainer',html:'',onMouseover:g,onMouseout:h,focus:function(){var j=this.getElement().getElementsByTag('a').getItem(0);setTimeout(function(){j.focus();g(null,j);},0);},onShow:function(){var j=this.getElement().getChild([0,0,0,0,0]);setTimeout(function(){j.focus();g(null,j);},0);},onLoad:function(j){b=j.sender;}},{type:'hbox',align:'top',widths:['100%'],children:[{type:'vbox',align:'top',children:[{type:'html',html:'<div></div>'},{type:'html',id:'charPreview',className:'cke_dark_background',style:"border:1px solid #eeeeee;font-size:28px;height:40px;width:70px;padding-top:9px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:'<div> </div>'},{type:'html',id:'htmlPreview',className:'cke_dark_background',style:"border:1px solid #eeeeee;font-size:14px;height:20px;width:70px;padding-top:2px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:'<div> </div>'}]}]}]}]}]};});
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/specialchar/lang/en.js b/appsrc/ODS-Framework/ckeditor/plugins/specialchar/lang/en.js
index 9893b84..1161d26 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/specialchar/lang/en.js
+++ b/appsrc/ODS-Framework/ckeditor/plugins/specialchar/lang/en.js
@@ -1,6 +1,6 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
-CKEDITOR.plugins.setLang('specialchar','en',{euro:'Euro sign',lsquo:'Left single quotation mark',rsquo:'Right single quotation mark',ldquo:'Left double quotation mark',rdquo:'Right double quotation mark',ndash:'En dash',mdash:'Em dash',iexcl:'Inverted exclamation mark',cent:'Cent sign',pound:'Pound sign',curren:'Currency sign',yen:'Yen sign',brvbar:'Broken bar',sect:'Section sign',uml:'Diaeresis',copy:'Copyright sign',ordf:'Feminine ordinal indicator',laquo:'Left-pointing double angle quotation mark',not:'Not sign',reg:'Registered sign',macr:'Macron',deg:'Degree sign',sup2:'Superscript two',sup3:'Superscript three',acute:'Acute accent',micro:'Micro sign',para:'Pilcrow sign',middot:'Middle dot',cedil:'Cedilla',sup1:'Superscript one',ordm:'Masculine ordinal indicator',frac14:'Vulgar fraction one quarter',frac12:'Vulgar fraction one half',frac34:'Vulgar fraction three quarters',iquest:'Inverted question mark',agrave:'Latin small letter a with grave',aacute:'Latin small letter a with acute',acirc:'Latin small letter a with circumflex',atilde:'Latin small letter a with tilde',auml:'Latin small letter a with diaeresis',aring:'Latin small letter a with ring above',aelig:'Latin small letter ae',ccedil:'Latin small letter c with cedilla',egrave:'Latin small letter e with grave',eacute:'Latin small letter e with acute',ecirc:'Latin small letter e with circumflex',euml:'Latin small letter e with diaeresis',igrave:'Latin small letter i with grave',iacute:'Latin small letter i with acute',icirc:'Latin small letter i with circumflex',iuml:'Latin small letter i with diaeresis',eth:'Latin small letter eth',ntilde:'Latin small letter n with tilde',ograve:'Latin small letter o with grave',oacute:'Latin small letter o with acute',ocirc:'Latin small letter o with circumflex',otilde:'Latin small letter o with tilde',ouml:'Latin small letter o with diaeresis',times:'Multiplication sign',oslash:'Latin small letter o with stroke',ugrave:'Latin small letter u with grave',uacute:'Latin small letter u with acute',ucirc:'Latin small letter u with circumflex',uuml:'Latin small letter u with diaeresis',yacute:'Latin small letter y with acute',thorn:'Latin small letter thorn',szlig:'Latin small letter sharp s',divide:'Division sign',yuml:'Latin small letter y with diaeresis',oelig:'Latin small ligature oe',372:'Latin capital letter w with circumflex',374:'Latin capital letter y with circumflex',373:'Latin small letter w with circumflex',375:'Latin small letter y with circumflex',8219:'Single high-reversed-9 quotation mark',bdquo:'Double low-9 quotation mark',hellip:'Horizontal ellipsis',trade:'Trade mark sign',9658:'Black right-pointing pointer',bull:'Bullet',rarr:'Rightwards double arrow',harr:'Left right double arrow',diams:'Black diamond suit',asymp:'Almost equal to',sbquo:'Single low-9 quotation mark'});
+CKEDITOR.plugins.setLang('specialchar','en',{euro:'Euro sign',lsquo:'Left single quotation mark',rsquo:'Right single quotation mark',ldquo:'Left double quotation mark',rdquo:'Right double quotation mark',ndash:'En dash',mdash:'Em dash',iexcl:'Inverted exclamation mark',cent:'Cent sign',pound:'Pound sign',curren:'Currency sign',yen:'Yen sign',brvbar:'Broken bar',sect:'Section sign',uml:'Diaeresis',copy:'Copyright sign',ordf:'Feminine ordinal indicator',laquo:'Left-pointing double angle quotation mark',not:'Not sign',reg:'Registered sign',macr:'Macron',deg:'Degree sign',sup2:'Superscript two',sup3:'Superscript three',acute:'Acute accent',micro:'Micro sign',para:'Pilcrow sign',middot:'Middle dot',cedil:'Cedilla',sup1:'Superscript one',ordm:'Masculine ordinal indicator',raquo:'Right-pointing double angle quotation mark',frac14:'Vulgar fraction one quarter',frac12:'Vulgar fraction one half',frac34:'Vulgar fraction three quarters',iquest:'Inverted question mark',Agrave:'Latin capital letter A with grave accent',Aacute:'Latin capital letter A with acute accent',Acirc:'Latin capital letter A with circumflex',Atilde:'Latin capital letter A with tilde',Auml:'Latin capital letter A with diaeresis',Aring:'Latin capital letter A with ring above',AElig:'Latin Capital letter Æ',Ccedil:'Latin capital letter C with cedilla',Egrave:'Latin capital letter E with grave accent',Eacute:'Latin capital letter E with acute accent',Ecirc:'Latin capital letter E with circumflex',Euml:'Latin capital letter E with diaeresis',Igrave:'Latin capital letter I with grave accent',Iacute:'Latin capital letter I with acute accent',Icirc:'Latin capital letter I with circumflex',Iuml:'Latin capital letter I with diaeresis',ETH:'Latin capital letter Eth',Ntilde:'Latin capital letter N with tilde',Ograve:'Latin capital letter O with grave accent',Oacute:'Latin capital letter O with acute accent',Ocirc:'Latin capital letter O with circumflex',Otilde:'Latin capital letter O with tilde',Ouml:'Latin capital letter O with diaeresis',times:'Multiplication sign',Oslash:'Latin capital letter O with stroke',Ugrave:'Latin capital letter U with grave accent',Uacute:'Latin capital letter U with acute accent',Ucirc:'Latin capital letter U with circumflex',Uuml:'Latin capital letter U with diaeresis',Yacute:'Latin capital letter Y with acute accent',THORN:'Latin capital letter Thorn',szlig:'Latin small letter sharp s',agrave:'Latin small letter a with grave accent',aacute:'Latin small letter a with acute accent',acirc:'Latin small letter a with circumflex',atilde:'Latin small letter a with tilde',auml:'Latin small letter a with diaeresis',aring:'Latin small letter a with ring above',aelig:'Latin small letter æ',ccedil:'Latin small letter c with cedilla',egrave:'Latin small letter e with grave accent',eacute:'Latin small letter e with acute accent',ecirc:'Latin small letter e with circumflex',euml:'Latin small letter e with diaeresis',igrave:'Latin small letter i with grave accent',iacute:'Latin small letter i with acute accent',icirc:'Latin small letter i with circumflex',iuml:'Latin small letter i with diaeresis',eth:'Latin small letter eth',ntilde:'Latin small letter n with tilde',ograve:'Latin small letter o with grave accent',oacute:'Latin small letter o with acute accent',ocirc:'Latin small letter o with circumflex',otilde:'Latin small letter o with tilde',ouml:'Latin small letter o with diaeresis',divide:'Division sign',oslash:'Latin small letter o with stroke',ugrave:'Latin small letter u with grave accent',uacute:'Latin small letter u with acute accent',ucirc:'Latin small letter u with circumflex',uuml:'Latin small letter u with diaeresis',yacute:'Latin small letter y with acute accent',thorn:'Latin small letter thorn',yuml:'Latin small letter y with diaeresis',OElig:'Latin capital ligature OE',oelig:'Latin small ligature oe',372:'Latin capital letter W with circumflex',374:'Latin capital letter Y with circumflex',373:'Latin small letter w with circumflex',375:'Latin small letter y with circumflex',sbquo:'Single low-9 quotation mark',8219:'Single high-reversed-9 quotation mark',bdquo:'Double low-9 quotation mark',hellip:'Horizontal ellipsis',trade:'Trade mark sign',9658:'Black right-pointing pointer',bull:'Bullet',rarr:'Rightwards arrow',rArr:'Rightwards double arrow',hArr:'Left right double arrow',diams:'Black diamond suit',asymp:'Almost equal to'});
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/styles/styles/default.js b/appsrc/ODS-Framework/ckeditor/plugins/styles/styles/default.js
index dc34cca..bcbb3a6 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/styles/styles/default.js
+++ b/appsrc/ODS-Framework/ckeditor/plugins/styles/styles/default.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/table/dialogs/table.js b/appsrc/ODS-Framework/ckeditor/plugins/table/dialogs/table.js
index 640aeb5..cf72afa 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/table/dialogs/table.js
+++ b/appsrc/ODS-Framework/ckeditor/plugins/table/dialogs/table.js
@@ -1,9 +1,9 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
-(function(){var a=CKEDITOR.tools.cssLength,b=function(d){var e=this.id;if(!d.info)d.info={};d.info[e]=this.getValue();};function c(d,e){var f=function(h){return new CKEDITOR.dom.element(h,d.document);},g=d.plugins.dialogadvtab;return{title:d.lang.table.title,minWidth:310,minHeight:CKEDITOR.env.ie?310:280,onLoad:function(){var h=this,i=h.getContentElement('advanced','advStyles');if(i)i.on('change',function(j){var k=this.getStyle('width',''),l=h.getContentElement('info','txtWidth');l&&l.setValue(k,true);var m=this.getStyle('height',''),n=h.getContentElement('info','txtHeight');n&&n.setValue(m,true);});},onShow:function(){var p=this;var h=d.getSelection(),i=h.getRanges(),j=null,k=p.getContentElement('info','txtRows'),l=p.getContentElement('info','txtCols'),m=p.getContentElement('info','txtWidth'),n=p.getContentElement('info','txtHeight');if(e=='tableProperties'){if(j=h.getSelectedElement())j=j.getAscendant('table',true);else if(i.length>0){if(CKEDITOR.env.webkit)i[0].shrink(CKEDITOR.NODE_ELEMENT);var o=i[0].getCommonAncestor(true);j=o.getAscendant('table',true);}p._.selectedElement=j;}if(j){p.setupContent(j);k&&k.disable();l&&l.disable();}else{k&&k.enable();l&&l.enable();}m&&m.onChange();n&&n.onChange();},onOk:function(){var h=d.getSelection(),i=this._.selectedElement&&h.createBookmarks(),j=this._.selectedElement||f('table'),k=this,l={};this.commitContent(l,j);if(l.info){var m=l.info;if(!this._.selectedElement){var n=j.append(f('tbody')),o=parseInt(m.txtRows,10)||0,p=parseInt(m.txtCols,10)||0;for(var q=0;q<o;q++){var r=n.append(f('tr'));for(var s=0;s<p;s++){var t=r.append(f('td'));if(!CKEDITOR.env.ie)t.append(f('br'));}}}var u=m.selHeaders;if(!j.$.tHead&&(u=='row'||u=='both')){var v=new CKEDITOR.dom.element(j.$.createTHead());n=j.getElementsByTag('tbody').getItem(0);var w=n.getElementsByTag('tr').getItem(0);for(q=0;q<w.getChildCount();q++){var x=w.getChild(q);if(x.type==CKEDITOR.NODE_ELEMENT&&!x.data('cke-bookmark')){x.renameNode('th');x.setAttribute('scope','col');}}v.append(w.remove());}if(j.$.tHead!==null&&!(u=='row'||u=='both')){v=new CKEDITOR.dom.element(j.$.tHead);n=j.getElementsByTag('tbody').getItem(0);var y=n.getFirst();while(v.getChildCount()>0){w=v.getFirst();for(q=0;q<w.getChildCount();q++){var z=w.getChild(q);if(z.type==CKEDITOR.NODE_ELEMENT){z.renameNode('td');z.removeAttribute('scope');}}w.insertBefore(y);}v.remove();}if(!this.hasColumnHeaders&&(u=='col'||u=='both'))for(r=0;r<j.$.rows.length;r++){z=new CKEDITOR.dom.element(j.$.rows[r].cells[0]);
-z.renameNode('th');z.setAttribute('scope','row');}if(this.hasColumnHeaders&&!(u=='col'||u=='both'))for(q=0;q<j.$.rows.length;q++){r=new CKEDITOR.dom.element(j.$.rows[q]);if(r.getParent().getName()=='tbody'){z=new CKEDITOR.dom.element(r.$.cells[0]);z.renameNode('td');z.removeAttribute('scope');}}m.txtHeight?j.setStyle('height',m.txtHeight):j.removeStyle('height');m.txtWidth?j.setStyle('width',m.txtWidth):j.removeStyle('width');if(!j.getAttribute('style'))j.removeAttribute('style');}if(!this._.selectedElement){d.insertElement(j);setTimeout(function(){var A=new CKEDITOR.dom.element(j.$.rows[0].cells[0]),B=new CKEDITOR.dom.range(d.document);B.moveToPosition(A,CKEDITOR.POSITION_AFTER_START);B.select(1);},0);}else try{h.selectBookmarks(i);}catch(A){}},contents:[{id:'info',label:d.lang.table.title,elements:[{type:'hbox',widths:[null,null],styles:['vertical-align:top'],children:[{type:'vbox',padding:0,children:[{type:'text',id:'txtRows','default':3,label:d.lang.table.rows,required:true,controlStyle:'width:5em',validate:function(){var h=true,i=this.getValue();h=h&&CKEDITOR.dialog.validate.integer()(i)&&i>0;if(!h){alert(d.lang.table.invalidRows);this.select();}return h;},setup:function(h){this.setValue(h.$.rows.length);},commit:b},{type:'text',id:'txtCols','default':2,label:d.lang.table.columns,required:true,controlStyle:'width:5em',validate:function(){var h=true,i=this.getValue();h=h&&CKEDITOR.dialog.validate.integer()(i)&&i>0;if(!h){alert(d.lang.table.invalidCols);this.select();}return h;},setup:function(h){this.setValue(h.$.rows[0].cells.length);},commit:b},{type:'html',html:' '},{type:'select',id:'selHeaders','default':'',label:d.lang.table.headers,items:[[d.lang.table.headersNone,''],[d.lang.table.headersRow,'row'],[d.lang.table.headersColumn,'col'],[d.lang.table.headersBoth,'both']],setup:function(h){var i=this.getDialog();i.hasColumnHeaders=true;for(var j=0;j<h.$.rows.length;j++){if(h.$.rows[j].cells[0].nodeName.toLowerCase()!='th'){i.hasColumnHeaders=false;break;}}if(h.$.tHead!==null)this.setValue(i.hasColumnHeaders?'both':'row');else this.setValue(i.hasColumnHeaders?'col':'');},commit:b},{type:'text',id:'txtBorder','default':1,label:d.lang.table.border,controlStyle:'width:3em',validate:CKEDITOR.dialog.validate.number(d.lang.table.invalidBorder),setup:function(h){this.setValue(h.getAttribute('border')||'');},commit:function(h,i){if(this.getValue())i.setAttribute('border',this.getValue());else i.removeAttribute('border');}},{id:'cmbAlign',type:'select','default':'',label:d.lang.common.align,items:[[d.lang.common.notSet,''],[d.lang.common.alignLeft,'left'],[d.lang.common.alignCenter,'center'],[d.lang.common.alignRight,'right']],setup:function(h){this.setValue(h.getAttribute('align')||'');
-},commit:function(h,i){if(this.getValue())i.setAttribute('align',this.getValue());else i.removeAttribute('align');}}]},{type:'vbox',padding:0,children:[{type:'hbox',widths:['5em'],children:[{type:'text',id:'txtWidth',controlStyle:'width:5em',label:d.lang.common.width,'default':500,getValue:a,validate:CKEDITOR.dialog.validate.cssLength(d.lang.common.invalidCssLength.replace('%1',d.lang.common.width)),onChange:function(){var h=this.getDialog().getContentElement('advanced','advStyles');h&&h.updateStyle('width',this.getValue());},setup:function(h){var i=h.getStyle('width');i&&this.setValue(i);},commit:b}]},{type:'hbox',widths:['5em'],children:[{type:'text',id:'txtHeight',controlStyle:'width:5em',label:d.lang.common.height,'default':'',getValue:a,validate:CKEDITOR.dialog.validate.cssLength(d.lang.common.invalidCssLength.replace('%1',d.lang.common.height)),onChange:function(){var h=this.getDialog().getContentElement('advanced','advStyles');h&&h.updateStyle('height',this.getValue());},setup:function(h){var i=h.getStyle('width');i&&this.setValue(i);},commit:b}]},{type:'html',html:' '},{type:'text',id:'txtCellSpace',controlStyle:'width:3em',label:d.lang.table.cellSpace,'default':1,validate:CKEDITOR.dialog.validate.number(d.lang.table.invalidCellSpacing),setup:function(h){this.setValue(h.getAttribute('cellSpacing')||'');},commit:function(h,i){if(this.getValue())i.setAttribute('cellSpacing',this.getValue());else i.removeAttribute('cellSpacing');}},{type:'text',id:'txtCellPad',controlStyle:'width:3em',label:d.lang.table.cellPad,'default':1,validate:CKEDITOR.dialog.validate.number(d.lang.table.invalidCellPadding),setup:function(h){this.setValue(h.getAttribute('cellPadding')||'');},commit:function(h,i){if(this.getValue())i.setAttribute('cellPadding',this.getValue());else i.removeAttribute('cellPadding');}}]}]},{type:'html',align:'right',html:''},{type:'vbox',padding:0,children:[{type:'text',id:'txtCaption',label:d.lang.table.caption,setup:function(h){var l=this;l.enable();var i=h.getElementsByTag('caption');if(i.count()>0){var j=i.getItem(0),k=j.getFirst(CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT));if(k&&!k.equals(j.getBogus())){l.disable();l.setValue(j.getText());return;}j=CKEDITOR.tools.trim(j.getText());l.setValue(j);}},commit:function(h,i){if(!this.isEnabled())return;var j=this.getValue(),k=i.getElementsByTag('caption');if(j){if(k.count()>0){k=k.getItem(0);k.setHtml('');}else{k=new CKEDITOR.dom.element('caption',d.document);if(i.getChildCount())k.insertBefore(i.getFirst());
-else k.appendTo(i);}k.append(new CKEDITOR.dom.text(j,d.document));}else if(k.count()>0)for(var l=k.count()-1;l>=0;l--)k.getItem(l).remove();}},{type:'text',id:'txtSummary',label:d.lang.table.summary,setup:function(h){this.setValue(h.getAttribute('summary')||'');},commit:function(h,i){if(this.getValue())i.setAttribute('summary',this.getValue());else i.removeAttribute('summary');}}]}]},g&&g.createAdvancedTab(d)]};};CKEDITOR.dialog.add('table',function(d){return c(d,'table');});CKEDITOR.dialog.add('tableProperties',function(d){return c(d,'tableProperties');});})();
+(function(){var a=CKEDITOR.tools.cssLength,b=function(f){var g=this.id;if(!f.info)f.info={};f.info[g]=this.getValue();};function c(f){var g=0,h=0;for(var i=0,j,k=f.$.rows.length;i<k;i++){j=f.$.rows[i],g=0;for(var l=0,m,n=j.cells.length;l<n;l++){m=j.cells[l];g+=m.colSpan;}g>h&&(h=g);}return h;};function d(f){return function(){var g=this.getValue(),h=!!(CKEDITOR.dialog.validate.integer()(g)&&g>0);if(!h){alert(f);this.select();}return h;};};function e(f,g){var h=function(j){return new CKEDITOR.dom.element(j,f.document);},i=f.plugins.dialogadvtab;return{title:f.lang.table.title,minWidth:310,minHeight:CKEDITOR.env.ie?310:280,onLoad:function(){var j=this,k=j.getContentElement('advanced','advStyles');if(k)k.on('change',function(l){var m=this.getStyle('width',''),n=j.getContentElement('info','txtWidth');n&&n.setValue(m,true);var o=this.getStyle('height',''),p=j.getContentElement('info','txtHeight');p&&p.setValue(o,true);});},onShow:function(){var r=this;var j=f.getSelection(),k=j.getRanges(),l=null,m=r.getContentElement('info','txtRows'),n=r.getContentElement('info','txtCols'),o=r.getContentElement('info','txtWidth'),p=r.getContentElement('info','txtHeight');if(g=='tableProperties'){if(l=j.getSelectedElement())l=l.getAscendant('table',true);else if(k.length>0){if(CKEDITOR.env.webkit)k[0].shrink(CKEDITOR.NODE_ELEMENT);var q=k[0].getCommonAncestor(true);l=q.getAscendant('table',true);}r._.selectedElement=l;}if(l){r.setupContent(l);m&&m.disable();n&&n.disable();}else{m&&m.enable();n&&n.enable();}o&&o.onChange();p&&p.onChange();},onOk:function(){var j=f.getSelection(),k=this._.selectedElement&&j.createBookmarks(),l=this._.selectedElement||h('table'),m=this,n={};this.commitContent(n,l);if(n.info){var o=n.info;if(!this._.selectedElement){var p=l.append(h('tbody')),q=parseInt(o.txtRows,10)||0,r=parseInt(o.txtCols,10)||0;for(var s=0;s<q;s++){var t=p.append(h('tr'));for(var u=0;u<r;u++){var v=t.append(h('td'));if(!CKEDITOR.env.ie)v.append(h('br'));}}}var w=o.selHeaders;if(!l.$.tHead&&(w=='row'||w=='both')){var x=new CKEDITOR.dom.element(l.$.createTHead());p=l.getElementsByTag('tbody').getItem(0);var y=p.getElementsByTag('tr').getItem(0);for(s=0;s<y.getChildCount();s++){var z=y.getChild(s);if(z.type==CKEDITOR.NODE_ELEMENT&&!z.data('cke-bookmark')){z.renameNode('th');z.setAttribute('scope','col');}}x.append(y.remove());}if(l.$.tHead!==null&&!(w=='row'||w=='both')){x=new CKEDITOR.dom.element(l.$.tHead);p=l.getElementsByTag('tbody').getItem(0);var A=p.getFirst();while(x.getChildCount()>0){y=x.getFirst();
+for(s=0;s<y.getChildCount();s++){var B=y.getChild(s);if(B.type==CKEDITOR.NODE_ELEMENT){B.renameNode('td');B.removeAttribute('scope');}}y.insertBefore(A);}x.remove();}if(!this.hasColumnHeaders&&(w=='col'||w=='both'))for(t=0;t<l.$.rows.length;t++){B=new CKEDITOR.dom.element(l.$.rows[t].cells[0]);B.renameNode('th');B.setAttribute('scope','row');}if(this.hasColumnHeaders&&!(w=='col'||w=='both'))for(s=0;s<l.$.rows.length;s++){t=new CKEDITOR.dom.element(l.$.rows[s]);if(t.getParent().getName()=='tbody'){B=new CKEDITOR.dom.element(t.$.cells[0]);B.renameNode('td');B.removeAttribute('scope');}}o.txtHeight?l.setStyle('height',o.txtHeight):l.removeStyle('height');o.txtWidth?l.setStyle('width',o.txtWidth):l.removeStyle('width');if(!l.getAttribute('style'))l.removeAttribute('style');}if(!this._.selectedElement){f.insertElement(l);setTimeout(function(){var C=new CKEDITOR.dom.element(l.$.rows[0].cells[0]),D=new CKEDITOR.dom.range(f.document);D.moveToPosition(C,CKEDITOR.POSITION_AFTER_START);D.select(1);},0);}else try{j.selectBookmarks(k);}catch(C){}},contents:[{id:'info',label:f.lang.table.title,elements:[{type:'hbox',widths:[null,null],styles:['vertical-align:top'],children:[{type:'vbox',padding:0,children:[{type:'text',id:'txtRows','default':3,label:f.lang.table.rows,required:true,controlStyle:'width:5em',validate:d(f.lang.table.invalidRows),setup:function(j){this.setValue(j.$.rows.length);},commit:b},{type:'text',id:'txtCols','default':2,label:f.lang.table.columns,required:true,controlStyle:'width:5em',validate:d(f.lang.table.invalidCols),setup:function(j){this.setValue(c(j));},commit:b},{type:'html',html:' '},{type:'select',id:'selHeaders','default':'',label:f.lang.table.headers,items:[[f.lang.table.headersNone,''],[f.lang.table.headersRow,'row'],[f.lang.table.headersColumn,'col'],[f.lang.table.headersBoth,'both']],setup:function(j){var k=this.getDialog();k.hasColumnHeaders=true;for(var l=0;l<j.$.rows.length;l++){var m=j.$.rows[l].cells[0];if(m&&m.nodeName.toLowerCase()!='th'){k.hasColumnHeaders=false;break;}}if(j.$.tHead!==null)this.setValue(k.hasColumnHeaders?'both':'row');else this.setValue(k.hasColumnHeaders?'col':'');},commit:b},{type:'text',id:'txtBorder','default':1,label:f.lang.table.border,controlStyle:'width:3em',validate:CKEDITOR.dialog.validate.number(f.lang.table.invalidBorder),setup:function(j){this.setValue(j.getAttribute('border')||'');},commit:function(j,k){if(this.getValue())k.setAttribute('border',this.getValue());else k.removeAttribute('border');
+}},{id:'cmbAlign',type:'select','default':'',label:f.lang.common.align,items:[[f.lang.common.notSet,''],[f.lang.common.alignLeft,'left'],[f.lang.common.alignCenter,'center'],[f.lang.common.alignRight,'right']],setup:function(j){this.setValue(j.getAttribute('align')||'');},commit:function(j,k){if(this.getValue())k.setAttribute('align',this.getValue());else k.removeAttribute('align');}}]},{type:'vbox',padding:0,children:[{type:'hbox',widths:['5em'],children:[{type:'text',id:'txtWidth',controlStyle:'width:5em',label:f.lang.common.width,title:f.lang.common.cssLengthTooltip,'default':500,getValue:a,validate:CKEDITOR.dialog.validate.cssLength(f.lang.common.invalidCssLength.replace('%1',f.lang.common.width)),onChange:function(){var j=this.getDialog().getContentElement('advanced','advStyles');j&&j.updateStyle('width',this.getValue());},setup:function(j){var k=j.getStyle('width');k&&this.setValue(k);},commit:b}]},{type:'hbox',widths:['5em'],children:[{type:'text',id:'txtHeight',controlStyle:'width:5em',label:f.lang.common.height,title:f.lang.common.cssLengthTooltip,'default':'',getValue:a,validate:CKEDITOR.dialog.validate.cssLength(f.lang.common.invalidCssLength.replace('%1',f.lang.common.height)),onChange:function(){var j=this.getDialog().getContentElement('advanced','advStyles');j&&j.updateStyle('height',this.getValue());},setup:function(j){var k=j.getStyle('height');k&&this.setValue(k);},commit:b}]},{type:'html',html:' '},{type:'text',id:'txtCellSpace',controlStyle:'width:3em',label:f.lang.table.cellSpace,'default':1,validate:CKEDITOR.dialog.validate.number(f.lang.table.invalidCellSpacing),setup:function(j){this.setValue(j.getAttribute('cellSpacing')||'');},commit:function(j,k){if(this.getValue())k.setAttribute('cellSpacing',this.getValue());else k.removeAttribute('cellSpacing');}},{type:'text',id:'txtCellPad',controlStyle:'width:3em',label:f.lang.table.cellPad,'default':1,validate:CKEDITOR.dialog.validate.number(f.lang.table.invalidCellPadding),setup:function(j){this.setValue(j.getAttribute('cellPadding')||'');},commit:function(j,k){if(this.getValue())k.setAttribute('cellPadding',this.getValue());else k.removeAttribute('cellPadding');}}]}]},{type:'html',align:'right',html:''},{type:'vbox',padding:0,children:[{type:'text',id:'txtCaption',label:f.lang.table.caption,setup:function(j){var n=this;n.enable();var k=j.getElementsByTag('caption');if(k.count()>0){var l=k.getItem(0),m=l.getFirst(CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT));if(m&&!m.equals(l.getBogus())){n.disable();
+n.setValue(l.getText());return;}l=CKEDITOR.tools.trim(l.getText());n.setValue(l);}},commit:function(j,k){if(!this.isEnabled())return;var l=this.getValue(),m=k.getElementsByTag('caption');if(l){if(m.count()>0){m=m.getItem(0);m.setHtml('');}else{m=new CKEDITOR.dom.element('caption',f.document);if(k.getChildCount())m.insertBefore(k.getFirst());else m.appendTo(k);}m.append(new CKEDITOR.dom.text(l,f.document));}else if(m.count()>0)for(var n=m.count()-1;n>=0;n--)m.getItem(n).remove();}},{type:'text',id:'txtSummary',label:f.lang.table.summary,setup:function(j){this.setValue(j.getAttribute('summary')||'');},commit:function(j,k){if(this.getValue())k.setAttribute('summary',this.getValue());else k.removeAttribute('summary');}}]}]},i&&i.createAdvancedTab(f)]};};CKEDITOR.dialog.add('table',function(f){return e(f,'table');});CKEDITOR.dialog.add('tableProperties',function(f){return e(f,'tableProperties');});})();
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/tabletools/dialogs/tableCell.js b/appsrc/ODS-Framework/ckeditor/plugins/tabletools/dialogs/tableCell.js
index 96bfa5f..b1a8eb1 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/tabletools/dialogs/tableCell.js
+++ b/appsrc/ODS-Framework/ckeditor/plugins/tabletools/dialogs/tableCell.js
@@ -1,8 +1,8 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
-CKEDITOR.dialog.add('cellProperties',function(a){var b=a.lang.table,c=b.cell,d=a.lang.common,e=CKEDITOR.dialog.validate,f=/^(\d+(?:\.\d+)?)(px|%)$/,g=/^(\d+(?:\.\d+)?)px$/,h=CKEDITOR.tools.bind,i={type:'html',html:' '},j=a.lang.dir=='rtl';function k(l,m){var n=function(){var r=this;p(r);m(r,r._.parentDialog);r._.parentDialog.changeFocus(true);},o=function(){p(this);this._.parentDialog.changeFocus();},p=function(r){r.removeListener('ok',n);r.removeListener('cancel',o);},q=function(r){r.on('ok',n);r.on('cancel',o);};a.execCommand(l);if(a._.storedDialogs.colordialog)q(a._.storedDialogs.colordialog);else CKEDITOR.on('dialogDefinition',function(r){if(r.data.name!=l)return;var s=r.data.definition;r.removeListener();s.onLoad=CKEDITOR.tools.override(s.onLoad,function(t){return function(){q(this);s.onLoad=t;if(typeof t=='function')t.call(this);};});});};return{title:c.title,minWidth:CKEDITOR.env.ie&&CKEDITOR.env.quirks?450:410,minHeight:CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?230:200,contents:[{id:'info',label:c.title,accessKey:'I',elements:[{type:'hbox',widths:['40%','5%','40%'],children:[{type:'vbox',padding:0,children:[{type:'hbox',widths:['70%','30%'],children:[{type:'text',id:'width',width:'100px',label:d.width,validate:e.number(c.invalidWidth),onLoad:function(){var l=this.getDialog().getContentElement('info','widthType'),m=l.getElement(),n=this.getInputElement(),o=n.getAttribute('aria-labelledby');n.setAttribute('aria-labelledby',[o,m.$.id].join(' '));},setup:function(l){var m=parseInt(l.getAttribute('width'),10),n=parseInt(l.getStyle('width'),10);!isNaN(m)&&this.setValue(m);!isNaN(n)&&this.setValue(n);},commit:function(l){var m=parseInt(this.getValue(),10),n=this.getDialog().getValueOf('info','widthType');if(!isNaN(m))l.setStyle('width',m+n);else l.removeStyle('width');l.removeAttribute('width');},'default':''},{type:'select',id:'widthType',label:a.lang.table.widthUnit,labelStyle:'visibility:hidden','default':'px',items:[[b.widthPx,'px'],[b.widthPc,'%']],setup:function(l){var m=f.exec(l.getStyle('width')||l.getAttribute('width'));if(m)this.setValue(m[2]);}}]},{type:'hbox',widths:['70%','30%'],children:[{type:'text',id:'height',label:d.height,width:'100px','default':'',validate:e.number(c.invalidHeight),onLoad:function(){var l=this.getDialog().getContentElement('info','htmlHeightType'),m=l.getElement(),n=this.getInputElement(),o=n.getAttribute('aria-labelledby');n.setAttribute('aria-labelledby',[o,m.$.id].join(' '));},setup:function(l){var m=parseInt(l.getAttribute('height'),10),n=parseInt(l.getStyle('height'),10);
+CKEDITOR.dialog.add('cellProperties',function(a){var b=a.lang.table,c=b.cell,d=a.lang.common,e=CKEDITOR.dialog.validate,f=/^(\d+(?:\.\d+)?)(px|%)$/,g=/^(\d+(?:\.\d+)?)px$/,h=CKEDITOR.tools.bind,i={type:'html',html:' '},j=a.lang.dir=='rtl';function k(l,m){var n=function(){var r=this;p(r);m(r,r._.parentDialog);r._.parentDialog.changeFocus();},o=function(){p(this);this._.parentDialog.changeFocus();},p=function(r){r.removeListener('ok',n);r.removeListener('cancel',o);},q=function(r){r.on('ok',n);r.on('cancel',o);};a.execCommand(l);if(a._.storedDialogs.colordialog)q(a._.storedDialogs.colordialog);else CKEDITOR.on('dialogDefinition',function(r){if(r.data.name!=l)return;var s=r.data.definition;r.removeListener();s.onLoad=CKEDITOR.tools.override(s.onLoad,function(t){return function(){q(this);s.onLoad=t;if(typeof t=='function')t.call(this);};});});};return{title:c.title,minWidth:CKEDITOR.env.ie&&CKEDITOR.env.quirks?450:410,minHeight:CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?230:200,contents:[{id:'info',label:c.title,accessKey:'I',elements:[{type:'hbox',widths:['40%','5%','40%'],children:[{type:'vbox',padding:0,children:[{type:'hbox',widths:['70%','30%'],children:[{type:'text',id:'width',width:'100px',label:d.width,validate:e.number(c.invalidWidth),onLoad:function(){var l=this.getDialog().getContentElement('info','widthType'),m=l.getElement(),n=this.getInputElement(),o=n.getAttribute('aria-labelledby');n.setAttribute('aria-labelledby',[o,m.$.id].join(' '));},setup:function(l){var m=parseInt(l.getAttribute('width'),10),n=parseInt(l.getStyle('width'),10);!isNaN(m)&&this.setValue(m);!isNaN(n)&&this.setValue(n);},commit:function(l){var m=parseInt(this.getValue(),10),n=this.getDialog().getValueOf('info','widthType');if(!isNaN(m))l.setStyle('width',m+n);else l.removeStyle('width');l.removeAttribute('width');},'default':''},{type:'select',id:'widthType',label:a.lang.table.widthUnit,labelStyle:'visibility:hidden','default':'px',items:[[b.widthPx,'px'],[b.widthPc,'%']],setup:function(l){var m=f.exec(l.getStyle('width')||l.getAttribute('width'));if(m)this.setValue(m[2]);}}]},{type:'hbox',widths:['70%','30%'],children:[{type:'text',id:'height',label:d.height,width:'100px','default':'',validate:e.number(c.invalidHeight),onLoad:function(){var l=this.getDialog().getContentElement('info','htmlHeightType'),m=l.getElement(),n=this.getInputElement(),o=n.getAttribute('aria-labelledby');n.setAttribute('aria-labelledby',[o,m.$.id].join(' '));},setup:function(l){var m=parseInt(l.getAttribute('height'),10),n=parseInt(l.getStyle('height'),10);
 !isNaN(m)&&this.setValue(m);!isNaN(n)&&this.setValue(n);},commit:function(l){var m=parseInt(this.getValue(),10);if(!isNaN(m))l.setStyle('height',CKEDITOR.tools.cssLength(m));else l.removeStyle('height');l.removeAttribute('height');}},{id:'htmlHeightType',type:'html',html:'<br />'+b.widthPx}]},i,{type:'select',id:'wordWrap',label:c.wordWrap,'default':'yes',items:[[c.yes,'yes'],[c.no,'no']],setup:function(l){var m=l.getAttribute('noWrap'),n=l.getStyle('white-space');if(n=='nowrap'||m)this.setValue('no');},commit:function(l){if(this.getValue()=='no')l.setStyle('white-space','nowrap');else l.removeStyle('white-space');l.removeAttribute('noWrap');}},i,{type:'select',id:'hAlign',label:c.hAlign,'default':'',items:[[d.notSet,''],[d.alignLeft,'left'],[d.alignCenter,'center'],[d.alignRight,'right']],setup:function(l){var m=l.getAttribute('align'),n=l.getStyle('text-align');this.setValue(n||m||'');},commit:function(l){var m=this.getValue();if(m)l.setStyle('text-align',m);else l.removeStyle('text-align');l.removeAttribute('align');}},{type:'select',id:'vAlign',label:c.vAlign,'default':'',items:[[d.notSet,''],[d.alignTop,'top'],[d.alignMiddle,'middle'],[d.alignBottom,'bottom'],[c.alignBaseline,'baseline']],setup:function(l){var m=l.getAttribute('vAlign'),n=l.getStyle('vertical-align');switch(n){case 'top':case 'middle':case 'bottom':case 'baseline':break;default:n='';}this.setValue(n||m||'');},commit:function(l){var m=this.getValue();if(m)l.setStyle('vertical-align',m);else l.removeStyle('vertical-align');l.removeAttribute('vAlign');}}]},i,{type:'vbox',padding:0,children:[{type:'select',id:'cellType',label:c.cellType,'default':'td',items:[[c.data,'td'],[c.header,'th']],setup:function(l){this.setValue(l.getName());},commit:function(l){l.renameNode(this.getValue());}},i,{type:'text',id:'rowSpan',label:c.rowSpan,'default':'',validate:e.integer(c.invalidRowSpan),setup:function(l){var m=parseInt(l.getAttribute('rowSpan'),10);if(m&&m!=1)this.setValue(m);},commit:function(l){var m=parseInt(this.getValue(),10);if(m&&m!=1)l.setAttribute('rowSpan',this.getValue());else l.removeAttribute('rowSpan');}},{type:'text',id:'colSpan',label:c.colSpan,'default':'',validate:e.integer(c.invalidColSpan),setup:function(l){var m=parseInt(l.getAttribute('colSpan'),10);if(m&&m!=1)this.setValue(m);},commit:function(l){var m=parseInt(this.getValue(),10);if(m&&m!=1)l.setAttribute('colSpan',this.getValue());else l.removeAttribute('colSpan');}},i,{type:'hbox',padding:0,widths:['60%','40%'],children:[{type:'text',id:'bgColor',label:c.bgColor,'default':'',setup:function(l){var m=l.getAttribute('bgColor'),n=l.getStyle('background-color');
-this.setValue(n||m);},commit:function(l){var m=this.getValue();if(m)l.setStyle('background-color',this.getValue());else l.removeStyle('background-color');l.removeAttribute('bgColor');}},{type:'button',id:'bgColorChoose','class':'colorChooser',label:c.chooseColor,onLoad:function(){this.getElement().getParent().setStyle('vertical-align','bottom');},onClick:function(){var l=this;k('colordialog',function(m){l.getDialog().getContentElement('info','bgColor').setValue(m.getContentElement('picker','selectedColor').getValue());});}}]},i,{type:'hbox',padding:0,widths:['60%','40%'],children:[{type:'text',id:'borderColor',label:c.borderColor,'default':'',setup:function(l){var m=l.getAttribute('borderColor'),n=l.getStyle('border-color');this.setValue(n||m);},commit:function(l){var m=this.getValue();if(m)l.setStyle('border-color',this.getValue());else l.removeStyle('border-color');l.removeAttribute('borderColor');}},{type:'button',id:'borderColorChoose','class':'colorChooser',label:c.chooseColor,style:(j?'margin-right':'margin-left')+': 10px',onLoad:function(){this.getElement().getParent().setStyle('vertical-align','bottom');},onClick:function(){var l=this;k('colordialog',function(m){l.getDialog().getContentElement('info','borderColor').setValue(m.getContentElement('picker','selectedColor').getValue());});}}]}]}]}]}],onShow:function(){var l=this;l.cells=CKEDITOR.plugins.tabletools.getSelectedCells(l._.editor.getSelection());l.setupContent(l.cells[0]);},onOk:function(){var r=this;var l=r._.editor.getSelection(),m=l.createBookmarks(),n=r.cells;for(var o=0;o<n.length;o++)r.commitContent(n[o]);l.selectBookmarks(m);var p=l.getStartElement(),q=new CKEDITOR.dom.elementPath(p);r._.editor._.selectionPreviousPath=q;r._.editor.fire('selectionChange',{selection:l,path:q,element:p});}};});
+this.setValue(n||m);},commit:function(l){var m=this.getValue();if(m)l.setStyle('background-color',this.getValue());else l.removeStyle('background-color');l.removeAttribute('bgColor');}},{type:'button',id:'bgColorChoose','class':'colorChooser',label:c.chooseColor,onLoad:function(){this.getElement().getParent().setStyle('vertical-align','bottom');},onClick:function(){var l=this;k('colordialog',function(m){l.getDialog().getContentElement('info','bgColor').setValue(m.getContentElement('picker','selectedColor').getValue());});}}]},i,{type:'hbox',padding:0,widths:['60%','40%'],children:[{type:'text',id:'borderColor',label:c.borderColor,'default':'',setup:function(l){var m=l.getAttribute('borderColor'),n=l.getStyle('border-color');this.setValue(n||m);},commit:function(l){var m=this.getValue();if(m)l.setStyle('border-color',this.getValue());else l.removeStyle('border-color');l.removeAttribute('borderColor');}},{type:'button',id:'borderColorChoose','class':'colorChooser',label:c.chooseColor,style:(j?'margin-right':'margin-left')+': 10px',onLoad:function(){this.getElement().getParent().setStyle('vertical-align','bottom');},onClick:function(){var l=this;k('colordialog',function(m){l.getDialog().getContentElement('info','borderColor').setValue(m.getContentElement('picker','selectedColor').getValue());});}}]}]}]}]}],onShow:function(){var l=this;l.cells=CKEDITOR.plugins.tabletools.getSelectedCells(l._.editor.getSelection());l.setupContent(l.cells[0]);},onOk:function(){var p=this;var l=p._.editor.getSelection(),m=l.createBookmarks(),n=p.cells;for(var o=0;o<n.length;o++)p.commitContent(n[o]);p._.editor.forceNextSelectionCheck();l.selectBookmarks(m);p._.editor.selectionChange();}};});
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/templates/dialogs/templates.js b/appsrc/ODS-Framework/ckeditor/plugins/templates/dialogs/templates.js
index cd3e184..c0d6f38 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/templates/dialogs/templates.js
+++ b/appsrc/ODS-Framework/ckeditor/plugins/templates/dialogs/templates.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/templates/templates/default.js b/appsrc/ODS-Framework/ckeditor/plugins/templates/templates/default.js
index a45be8a..f9c939b 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/templates/templates/default.js
+++ b/appsrc/ODS-Framework/ckeditor/plugins/templates/templates/default.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/wsc/dialogs/ciframe.html b/appsrc/ODS-Framework/ckeditor/plugins/wsc/dialogs/ciframe.html
index f880177..5cc9254 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/wsc/dialogs/ciframe.html
+++ b/appsrc/ODS-Framework/ckeditor/plugins/wsc/dialogs/ciframe.html
@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <!--
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
 <html>
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/wsc/dialogs/tmpFrameset.html b/appsrc/ODS-Framework/ckeditor/plugins/wsc/dialogs/tmpFrameset.html
index bec11ae..0d675f4 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/wsc/dialogs/tmpFrameset.html
+++ b/appsrc/ODS-Framework/ckeditor/plugins/wsc/dialogs/tmpFrameset.html
@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
 <!--
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 -->
 <html>
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/wsc/dialogs/wsc.css b/appsrc/ODS-Framework/ckeditor/plugins/wsc/dialogs/wsc.css
index 83a2785..dfc326e 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/wsc/dialogs/wsc.css
+++ b/appsrc/ODS-Framework/ckeditor/plugins/wsc/dialogs/wsc.css
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
diff --git a/appsrc/ODS-Framework/ckeditor/plugins/wsc/dialogs/wsc.js b/appsrc/ODS-Framework/ckeditor/plugins/wsc/dialogs/wsc.js
index 2752d0a..e9d7850 100644
--- a/appsrc/ODS-Framework/ckeditor/plugins/wsc/dialogs/wsc.js
+++ b/appsrc/ODS-Framework/ckeditor/plugins/wsc/dialogs/wsc.js
@@ -1,7 +1,7 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
-CKEDITOR.dialog.add('checkspell',function(a){var b=CKEDITOR.tools.getNextNumber(),c='cke_frame_'+b,d='cke_data_'+b,e='cke_error_'+b,f,g=document.location.protocol||'http:',h=a.lang.spellCheck.notAvailable,i='<textarea style="display: none" id="'+d+'"'+' rows="10"'+' cols="40">'+' </textarea><div'+' id="'+e+'"'+' style="display:none;color:red;font-size:16px;font-weight:bold;padding-top:160px;text-align:center;z-index:11;">'+'</div><iframe'+' src=""'+' style="width:100%;background-color:#f1f1e3;"'+' frameborder="0"'+' name="'+c+'"'+' id="'+c+'"'+' allowtransparency="1">'+'</iframe>',j=a.config.wsc_customLoaderScript||g+'//loader.spellchecker.net/sproxy_fck/sproxy.php'+'?plugin=fck2'+'&customerid='+a.config.wsc_customerId+'&cmd=script&doc=wsc&schema=22';if(a.config.wsc_customLoaderScript)h+='<p style="color:#000;font-size:11px;font-weight: normal;text-align:center;padding-top:10px">'+a.lang.spellCheck.errorLoading.replace(/%s/g,a.config.wsc_customLoaderScript)+'</p>';function k(m,n){var o=0;return function(){if(typeof window.doSpell=='function'){if(typeof f!='undefined')window.clearInterval(f);l(m);}else if(o++==180)window._cancelOnError(n);};};window._cancelOnError=function(m){if(typeof window.WSC_Error=='undefined'){CKEDITOR.document.getById(c).setStyle('display','none');var n=CKEDITOR.document.getById(e);n.setStyle('display','block');n.setHtml(m||a.lang.spellCheck.notAvailable);}};function l(m){var n=new window._SP_FCK_LangCompare(),o=CKEDITOR.getUrl(a.plugins.wsc.path+'dialogs/'),p=o+'tmpFrameset.html';window.gFCKPluginName='wsc';n.setDefaulLangCode(a.config.defaultLanguage);window.doSpell({ctrl:d,lang:a.config.wsc_lang||n.getSPLangCode(a.langCode),intLang:a.config.wsc_uiLang||n.getSPLangCode(a.langCode),winType:c,onCancel:function(){m.hide();},onFinish:function(q){a.focus();m.getParentEditor().setData(q.value);m.hide();},staticFrame:p,framesetPath:p,iframePath:o+'ciframe.html',schemaURI:o+'wsc.css',userDictionaryName:a.config.wsc_userDictionaryName,customDictionaryName:a.config.wsc_customDictionaryIds&&a.config.wsc_customDictionaryIds.split(','),domainName:a.config.wsc_domainName});CKEDITOR.document.getById(e).setStyle('display','none');CKEDITOR.document.getById(c).setStyle('display','block');};return{title:a.config.wsc_dialogTitle||a.lang.spellCheck.title,minWidth:485,minHeight:380,buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var m=this.getContentElement('general','content').getElement();m.setHtml(i);m.getChild(2).setStyle('height',this._.contentSize.height+'px');
+CKEDITOR.dialog.add('checkspell',function(a){var b=CKEDITOR.tools.getNextNumber(),c='cke_frame_'+b,d='cke_data_'+b,e='cke_error_'+b,f,g=document.location.protocol||'http:',h=a.lang.spellCheck.notAvailable,i='<textarea style="display: none" id="'+d+'"'+' rows="10"'+' cols="40">'+' </textarea><div'+' id="'+e+'"'+' style="display:none;color:red;font-size:16px;font-weight:bold;padding-top:160px;text-align:center;z-index:11;">'+'</div><iframe'+' src=""'+' style="width:100%;background-color:#f1f1e3;"'+' frameborder="0"'+' name="'+c+'"'+' id="'+c+'"'+' allowtransparency="1">'+'</iframe>',j=a.config.wsc_customLoaderScript||g+'//loader.webspellchecker.net/sproxy_fck/sproxy.php'+'?plugin=fck2'+'&customerid='+a.config.wsc_customerId+'&cmd=script&doc=wsc&schema=22';if(a.config.wsc_customLoaderScript)h+='<p style="color:#000;font-size:11px;font-weight: normal;text-align:center;padding-top:10px">'+a.lang.spellCheck.errorLoading.replace(/%s/g,a.config.wsc_customLoaderScript)+'</p>';function k(m,n){var o=0;return function(){if(typeof window.doSpell=='function'){if(typeof f!='undefined')window.clearInterval(f);l(m);}else if(o++==180)window._cancelOnError(n);};};window._cancelOnError=function(m){if(typeof window.WSC_Error=='undefined'){CKEDITOR.document.getById(c).setStyle('display','none');var n=CKEDITOR.document.getById(e);n.setStyle('display','block');n.setHtml(m||a.lang.spellCheck.notAvailable);}};function l(m){var n=new window._SP_FCK_LangCompare(),o=CKEDITOR.getUrl(a.plugins.wsc.path+'dialogs/'),p=o+'tmpFrameset.html';window.gFCKPluginName='wsc';n.setDefaulLangCode(a.config.defaultLanguage);window.doSpell({ctrl:d,lang:a.config.wsc_lang||n.getSPLangCode(a.langCode),intLang:a.config.wsc_uiLang||n.getSPLangCode(a.langCode),winType:c,onCancel:function(){m.hide();},onFinish:function(q){a.focus();m.getParentEditor().setData(q.value);m.hide();},staticFrame:p,framesetPath:p,iframePath:o+'ciframe.html',schemaURI:o+'wsc.css',userDictionaryName:a.config.wsc_userDictionaryName,customDictionaryName:a.config.wsc_customDictionaryIds&&a.config.wsc_customDictionaryIds.split(','),domainName:a.config.wsc_domainName});CKEDITOR.document.getById(e).setStyle('display','none');CKEDITOR.document.getById(c).setStyle('display','block');};return{title:a.config.wsc_dialogTitle||a.lang.spellCheck.title,minWidth:485,minHeight:380,buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var m=this.getContentElement('general','content').getElement();m.setHtml(i);m.getChild(2).setStyle('height',this._.contentSize.height+'px');
 if(typeof window.doSpell!='function')CKEDITOR.document.getHead().append(CKEDITOR.document.createElement('script',{attributes:{type:'text/javascript',src:j}}));var n=a.getData();CKEDITOR.document.getById(d).setValue(n);f=window.setInterval(k(this,h),250);},onHide:function(){window.ooo=undefined;window.int_framsetLoaded=undefined;window.framesetLoaded=undefined;window.is_window_opened=false;},contents:[{id:'general',label:a.config.wsc_dialogTitle||a.lang.spellCheck.title,padding:0,elements:[{type:'html',id:'content',html:''}]}]};});CKEDITOR.dialog.on('resize',function(a){var b=a.data,c=b.dialog;if(c._.name=='checkspell'){var d=c.getContentElement('general','content').getElement(),e=d&&d.getChild(2);e&&e.setSize('height',b.height);e&&e.setSize('width',b.width);}});
diff --git a/appsrc/ODS-Framework/ckeditor/skins/kama/dialog.css b/appsrc/ODS-Framework/ckeditor/skins/kama/dialog.css
index 29ecfde..a0f8e21 100644
--- a/appsrc/ODS-Framework/ckeditor/skins/kama/dialog.css
+++ b/appsrc/ODS-Framework/ckeditor/skins/kama/dialog.css
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
@@ -7,4 +7,4 @@ body .cke_dialog{visibility:visible;}.cke_skin_kama table.cke_dialog.cke_browser
 .cke_skin_kama .cke_dialog_ui_vbox table,.cke_skin_kama .cke_dialog_ui_hbox table{margin:auto;}.cke_skin_kama .cke_dialog_ui_vbox_child{padding:5px 0;}.cke_skin_kama input.cke_dialog_ui_input_text,.cke_skin_kama input.cke_dialog_ui_input_password{background-color:white;border:none;padding:0;width:100%;height:14px;}.cke_skin_kama div.cke_dialog_ui_input_text,.cke_skin_kama div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0;_width:99.9%;}.cke_skin_kama .cke_browser_ie.cke_rtl input.cke_dialog_ui_input_text,.cke_skin_kama .cke_browser_opera.cke_rtl input.cke_dialog_ui_input_text,.cke_skin_kama .cke_browser_ie.cke_rtl input.cke_dialog_ui_input_password,.cke_skin_kama .cke_browser_opera.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px;}.cke_skin_kama .cke_browser_ie.cke_rtl div.cke_dialog_ui_input_text,.cke_skin_kama .cke_browser_opera.cke_rtl div.cke_dialog_ui_input_text,.cke_skin_kama .cke_browser_ie.cke_rtl div.cke_dialog_ui_input_password,.cke_skin_kama .cke_browser_opera.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px;}.cke_skin_kama .cke_browser_ie.cke_rtl .cke_dialog_ui_vbox_child,.cke_skin_kama .cke_browser_ie.cke_rtl .cke_dialog_ui_hbox_child,.cke_skin_kama .cke_browser_ie.cke_rtl .cke_dialog_ui_hbox_first,.cke_skin_kama .cke_browser_ie.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important;}.cke_skin_kama .cke_browser_ie.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px;}.cke_skin_kama .cke_browser_gecko.cke_hc div.cke_dialog_ui_input_text,.cke_skin_kama .cke_browser_gecko.cke_hc div.cke_dialog_ui_input_password{border-width:0;}.cke_skin_kama .cke_browser_gecko18.cke_hc div.cke_dialog_ui_input_text,.cke_skin_kama .cke_browser_gecko18.cke_hc div.cke_dialog_ui_input_password{border-width:1px;}.cke_skin_kama textarea.cke_dialog_ui_input_textarea{background-color:white;border:none;padding:0;width:100%;_width:99%;overflow:auto;resize:none;}.cke_skin_kama div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0;}.cke_skin_kama div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default;}.cke_skin_kama .cke_rtl .cke_dialog_ui_labeled_content{_width:95%;}.cke_skin_kama .cke_dialog_ui_hbox{width:100%;}.cke_skin_kama .cke_dialog_ui_hbox_first,.cke_skin_kama .cke_dialog_ui_hbox_child,.cke_skin_kama .cke_dialog_ui_hbox_last{vertical-align:top;}.cke_skin_kama .cke_ltr .cke_dialog_ui_hbox_first,.cke_skin_kama .cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px;}.cke_skin_kama .cke_rtl .cke_dialog_ui_hbox_first,.cke_skin_kama .cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px;}.cke_skin_kama a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;_background:none;padding:5px 0;text-align:center;}.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button{padding:0;}.cke_skin_kama .cke_browser_ie6 a.cke_dialog_ui_button span{width:70px;}.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button span,.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button span{width:100px;}.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button span,.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button span,.cke_skin_kama .cke_browser_ie6 a.cke_dialog_ui_button span{padding:5px 15px;text-align:center;color:#3b3b1f;background:#53D9F0 none;display:inline-block;cursor:default;}.cke_skin_kama .cke_browser_webkit a.cke_dialog_ui_button span.cke_dialog_ui_button{margin:0;}.cke_skin_kama .cke_browser_webkit a.cke_dialog_ui_button{display:inline-block;padding-top:3px;padding-bottom:2px;margin:2px 0;}.cke_skin_kama a.cke_dialog_ui_button_ok span,.cke_skin_kama a.cke_dialog_ui_button_cancel span{width:60px;padding-right:20px;padding-left:20px;}.cke_skin_kama a.cke_dialog_ui_button_ok{background-position:0 -1143px;}.cke_skin_kama a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1219px;}.cke_skin_kama .cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1219px;}
 .cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button_ok span,.cke_skin_kama .cke_browser_ie6 a.cke_dialog_ui_button_ok span{background-color:#B8E834;margin-right:0;}.cke_skin_kama a.cke_dialog_ui_button_cancel{background-position:0 -1104px;}.cke_skin_kama a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1245px;}.cke_skin_kama .cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1245px;}.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button_cancel span,.cke_skin_kama .cke_browser_ie6 a.cke_dialog_ui_button_cancel span{background-color:#F65D20;}.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button_cancel span,.cke_skin_kama .cke_browser_ie6 a.cke_dialog_ui_button_cancel span,.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button_ok span,.cke_skin_kama .cke_browser_ie6 a.cke_dialog_ui_button_ok span{background-image:none;}.cke_skin_kama span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px;+margin:2px 0;}.cke_skin_kama .cke_browser_gecko18 .cke_dialog_footer_buttons span.cke_dialog_ui_button{display:block;}.cke_skin_kama a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3;}.cke_skin_kama a:hover.cke_dialog_ui_button,.cke_skin_kama a:focus.cke_dialog_ui_button,.cke_skin_kama a:active.cke_dialog_ui_button{background-position:0 -1179px;}.cke_skin_kama .cke_hc a:hover.cke_dialog_ui_button,.cke_skin_kama .cke_hc a:focus.cke_dialog_ui_button,.cke_skin_kama .cke_hc a:active.cke_dialog_ui_button{border-width:2px;}.cke_skin_kama .cke_browser_iequirks a:hover.cke_dialog_ui_button span,.cke_skin_kama .cke_browser_iequirks a:focus.cke_dialog_ui_button span,.cke_skin_kama .cke_browser_iequirks a:active.cke_dialog_ui_button span,.cke_skin_kama .cke_browser_ie6 a:hover.cke_dialog_ui_button span,.cke_skin_kama .cke_browser_ie6 a:focus.cke_dialog_ui_button span,.cke_skin_kama .cke_browser_ie6 a:active.cke_dialog_ui_button span{background-image:none;background:#F7A922;}.cke_skin_kama .cke_dialog_footer_buttons{display:inline-table;margin-right:12px;margin-left:12px;width:auto;position:relative;}.cke_skin_kama .cke_browser_ie7 .cke_dialog_footer_buttons{position:static;}.cke_skin_kama .cke_browser_gecko18 .cke_dialog_footer_buttons{display:inline;}.cke_skin_kama .cke_dialog_footer_buttons span.cke_dialog_ui_button{margin:7px 0;text-align:center;}.cke_skin_kama .cke_browser_gecko18 .cke_dialog_footer_buttons a.cke_dialog_ui_button{display:block;padding:0;}.cke_skin_kama .cke_browser_gecko18 .cke_dialog_footer_buttons span.cke_dialog_ui_button{padding-bottom:5px;padding-top:6px;margin-bottom:0;}.cke_skin_kama .cke_browser_gecko18 .cke_dialog_footer_buttons .cke_dialog_ui_button_ok .cke_dialog_ui_button{background-position:right -1214px;}.cke_skin_kama .cke_browser_gecko18 .cke_dialog_footer_buttons .cke_dialog_ui_button_cancel .cke_dialog_ui_button{background-position:right -1242px;}.cke_skin_kama .cke_browser_ie9.cke_rtl .cke_dialog_footer_buttons td{padding-left:2px;}.cke_skin_kama strong{font-weight:bold;}.cke_skin_kama .cke_dialog .cke_dialog_body .cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;_background-image:url(images/sprites_ie6.png);}.cke_skin_kama .cke_dialog_close_button span{display:none;}.cke_skin_kama .cke_dialog_close_button:hover{background-position:0 -1045px;}.cke_skin_kama .cke_ltr .cke_dialog_close_button{right:10px;}.cke_skin_kama .cke_browser_ie8.cke_rtl .cke_dialog_close_button{left:8px;}.cke_skin_kama .cke_rtl .cke_dialog_close_button{left:10px;}.cke_skin_kama .cke_browser_ie7.cke_rtl .cke_dialog_close_button{left:16px;top:0;}.cke_skin_kama .cke_browser_ie7.cke_rtl .cke_dialog_close_button{position:absolute;left:10px;top:5px;}.cke_skin_kama .cke_browser_ie7.cke_single_page .cke_dialog_footer{margin-top:22px;}.cke_skin_kama .cke_browser_ie6 .cke_dialog_close_button,.cke_skin_kama .cke_browser_iequirks .cke_dialog_close_button{top:7px;}
 .cke_skin_kama .cke_browser_ie7.cke_ltr .cke_dialog_close_button{margin-top:0;}.cke_skin_kama .cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white;}.cke_skin_kama .cke_dialog_ui_input_file{width:100%;height:25px;}.cke_skin_kama .cke_dialog .cke_dark_background{background-color:#eaead1;}.cke_skin_kama .cke_dialog .cke_hand{cursor:pointer;}.cke_skin_kama .cke_dialog .cke_centered{text-align:center;}.cke_skin_kama .cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px;}.cke_skin_kama .cke_rtl .cke_dialog a.cke_btn_reset{float:left;}.cke_skin_kama .cke_dialog a.cke_btn_locked,.cke_skin_kama .cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px;}.cke_skin_kama .cke_dialog a.cke_btn_locked .cke_icon{display:none;}.cke_skin_kama .cke_rtl .cke_dialog a.cke_btn_locked,.cke_skin_kama .cke_rtl .cke_dialog a.cke_btn_unlocked{float:right;}.cke_skin_kama .cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif);}.cke_skin_kama .cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer;}.cke_skin_kama .cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white;}.cke_skin_kama .cke_dialog .ImagePreviewBox table td{white-space:normal;}.cke_skin_kama .cke_browser_iequirks .cke_dialog_page_contents{_position:absolute;}.cke_skin_kama .cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4;}.cke_skin_kama .cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white;}.cke_skin_kama .cke_dialog .cke_pastetext{width:346px;height:170px;}.cke_skin_kama .cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none;}.cke_skin_kama .cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black;}.cke_skin_kama .cke_dialog .cke_dark_background{text-align:center;background-color:#eaead1;font-size:14px;}.cke_skin_kama .cke_dialog .cke_light_background{text-align:center;background-color:#ffffbe;}.cke_skin_kama .cke_dialog .cke_hand{cursor:pointer;}.cke_skin_kama .cke_disabled{color:#a0a0a0;}.cke_skin_kama .cke_hc .cke_dialog_title,.cke_skin_kama .cke_hc .cke_dialog_tabs,.cke_skin_kama .cke_hc .cke_dialog_contents,.cke_skin_kama .cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid;}.cke_skin_kama .cke_hc .cke_dialog_title{border-top:1px solid;}.cke_skin_kama .cke_hc .cke_dialog_footer{border-bottom:1px solid;}.cke_skin_kama .cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px;}.cke_skin_kama .cke_dialog_body .cke_label{display:none;}.cke_skin_kama .cke_dialog_body label.cke_required{font-weight:bold;}.cke_skin_kama .cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit;}.cke_skin_kama .cke_hc a.cke_btn_locked,.cke_skin_kama .cke_hc a.cke_btn_unlocked,.cke_skin_kama .cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px;}.cke_skin_kama .cke_rtl.cke_hc a.cke_btn_locked,.cke_skin_kama .cke_rtl.cke_hc a.cke_btn_unlocked,.cke_skin_kama .cke_rtl.cke_hc a.cke_btn_reset{float:right;}.cke_skin_kama .cke_hc a.cke_btn_locked .cke_icon{display:inline;}.cke_skin_kama a.cke_smile img{border:2px solid #eaead1;}.cke_skin_kama a.cke_smile:focus img,.cke_skin_kama a.cke_smile:active img,.cke_skin_kama a.cke_smile:hover img{border-color:#C7C78F;}.cke_skin_kama .cke_hc .cke_dialog_tabs a,.cke_skin_kama .cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white;}.cke_skin_kama .cke_hc .ImagePreviewBox{width:260px;}.cke_skin_kama .cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px;}
-.cke_skin_kama .cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px;}
+.cke_skin_kama .cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px;}.cke_skin_kama .cke_browser_gecko .cke_dialog_ui_checkbox_input:focus,.cke_skin_kama .cke_browser_gecko .cke_dialog_ui_radio_input:focus,.cke_skin_kama .cke_browser_opera .cke_dialog_ui_checkbox_input:focus,.cke_skin_kama .cke_browser_opera .cke_dialog_ui_radio_input:focus,.cke_skin_kama .cke_browser_gecko .cke_dialog_ui_input_select:focus,.cke_skin_kama .cke_browser_gecko .cke_btn_over,.cke_skin_kama .cke_browser_opera .cke_btn_over,.cke_skin_kama .cke_browser_ie .cke_btn_over{outline:1px dotted #696969;}.cke_skin_kama .cke_browser_ie .cke_dialog_ui_checkbox_input,.cke_skin_kama .cke_browser_ie .cke_dialog_ui_ratio_input,.cke_skin_kama .cke_browser_ie .cke_btn_reset,.cke_skin_kama .cke_browser_ie .cke_btn_locked,.cke_skin_kama .cke_browser_ie .cke_btn_unlocked{*border:1px solid transparent!important;-border:1px solid red!important;-filter:chroma(color=red);}.cke_skin_kama .cke_browser_ie .cke_dialog_ui_focused,.cke_skin_kama .cke_browser_ie .cke_btn_over{*border:1px dotted #696969!important;}.cke_skin_kama .cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%;}
diff --git a/appsrc/ODS-Framework/ckeditor/skins/kama/editor.css b/appsrc/ODS-Framework/ckeditor/skins/kama/editor.css
index 8cc4903..9580e92 100644
--- a/appsrc/ODS-Framework/ckeditor/skins/kama/editor.css
+++ b/appsrc/ODS-Framework/ckeditor/skins/kama/editor.css
@@ -1,11 +1,11 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
-.cke_skin_kama *,.cke_skin_kama a:hover,.cke_skin_kama a:link,.cke_skin_kama a:visited,.cke_skin_kama a:active{margin:0;padding:0;border:0;background:transparent;text-decoration:none;font:normal normal normal 100% Sans-Serif;width:auto;height:auto;border-collapse:collapse;text-align:left;vertical-align:baseline;white-space:nowrap;cursor:auto;color:#000;font-size:12px;font-family:Arial,Helvetica,Tahoma,Verdana,Sans-Serif;}.cke_skin_kama .cke_rtl *,.cke_skin_kama .cke_rtl a:hover,.cke_skin_kama .cke_rtl a:link,.cke_skin_kama .cke_rtl a:visited,.cke_skin_kama .cke_rtl a:active,.cke_rtl .cke_skin_kama *,.cke_rtl .cke_skin_kama a:hover,.cke_rtl .cke_skin_kama a:link,.cke_rtl .cke_skin_kama a:visited,.cke_rtl .cke_skin_kama a:active{text-align:right;}.cke_skin_kama iframe{vertical-align:inherit;}.cke_skin_kama textarea{white-space:pre;}.cke_skin_kama .cke_browser_gecko textarea{cursor:text;}.cke_skin_kama .cke_browser_gecko textarea[disabled]{cursor:default;}.cke_skin_kama input[type="text"],.cke_skin_kama input[type="password"]{cursor:text;}.cke_skin_kama input[type="text"][disabled],.cke_skin_kama input[type="password"][disabled]{cursor:default;}.cke_skin_kama fieldset{padding:10px;border:2px groove #E0DFE3;}.cke_skin_kama{display:block;}span.cke_skin_kama{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #D3D3D3;padding:5px;}.cke_skin_kama span.cke_browser_webkit,.cke_skin_kama span.cke_browser_gecko18{display:block;}.cke_skin_kama .cke_wrapper{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background-color:#d3d3d3;background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1950px;display:block;_display:inline-block;padding:5px;}.cke_shared .cke_skin_kama .cke_wrapper{padding-bottom:0;}.cke_skin_kama .cke_browser_ie6 .cke_wrapper,.cke_skin_kama .cke_browser_iequirks .cke_wrapper{background-image:none;}.cke_skin_kama .cke_editor{display:inline-table;width:100%;}.cke_skin_kama .cke_browser_webkit .cke_editor{display:table;}.cke_skin_kama .ltr .cke_browser_ie iframe{margin-right:-10px;}.cke_skin_kama .rtl .cke_browser_ie iframe{margin-left:-10px;}.cke_skin_kama .cke_browser_opera .cke_editor.cke_skin_kama .cke_resizer{display:table;}.cke_skin_kama .cke_contents{margin:5px;}.cke_skin_kama .cke_hc .cke_contents{border:1px solid black;}.cke_skin_kama .cke_contents iframe{background-color:#fff;}.cke_skin_kama .cke_focus{outline:auto 5px -webkit-focus-ring-color;}.cke_skin_kama textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre;}.cke_skin_kama .cke_browser_iequirks textarea.cke_source{_white-space:normal;}.cke_skin_kama .cke_resizer{width:12px;height:12px;margin-top:9px;display:block;float:right;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:0 -1428px;background-repeat:no-repeat;cursor:se-resize;}.cke_skin_kama .cke_browser_air .cke_resizer,.cke_skin_kama .cke_browser_air .cke_rtl .cke_resizer{cursor:move;}.cke_skin_kama .cke_resizer_rtl{cursor:sw-resize;background-position:0 -1455px;float:left;}.cke_skin_kama .cke_resizer_horizontal,.cke_skin_kama .cke_rtl .cke_resizer_horizontal{cursor:e-resize;}.cke_skin_kama .cke_resizer_vertical,.cke_skin_kama .cke_rtl .cke_resizer_vertical{cursor:n-resize;}.cke_skin_kama .cke_maximized .cke_resizer{display:none;}.cke_skin_kama .cke_browser_ie6 .cke_contents textarea,.cke_skin_kama .cke_browser_ie7 .cke_contents textarea{position:absolute;}.cke_skin_kama .cke_browser_ie.cke_browser_quirks .cke_contents iframe{position:absolute;top:0;}.cke_skin_kama .cke_browser_ie6 .cke_editor,.cke_skin_kama .cke_browser_ie7 .cke_editor{display:inline-block;}.cke_skin_kama .cke_browser_ie6 .cke_editor,.cke_shared .cke_skin_kama .cke_browser_ie7 .cke_wrapper{padding-bottom:5px;}.cke_skin_kama .cke_voice_label{display:none;}.cke_skin_kama legend.cke_voice_label{display:none;}.cke_skin_kama .cke_browser_ie legend.cke_voice_label{position:absolute;display:block;width:0;height:0;overflow:hidden;}.cke_skin_kama .cke_panel{border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;}
-.cke_skin_kama .cke_contextmenu{margin:0;}.cke_skin_kama .cke_panel iframe{width:100%;height:100%;}html.cke_skin_kama_container{overflow:auto;overflow-x:hidden;}body.cke_panel_frame{overflow:auto;}.cke_panel_frame .cke_label{display:none;}ul.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap;}li.cke_panel_listItem{margin:0;}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;}* html .cke_panel_listItem a{width:100%;color:#000;}*:first-child+html .cke_panel_listItem a{color:#000;}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff;}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff;}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0;}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px;}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px;}.cke_skin_kama .cke_button_textcolor_panel,.cke_skin_kama .cke_button_bgcolor_panel{width:150px;height:135px;}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000;}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left;}.cke_rtl span.cke_colorbox{float:right;}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;}.cke_rtl a.cke_colorbox{float:right;}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff;}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer;}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff;}@media print{.cke_skin_kama .cke_toolbox{display:none;}}.cke_skin_kama .cke_browser_webkit .cke_toolbox,.cke_skin_kama .cke_browser_webkit .cke_toolbox>span{white-space:normal;}.cke_skin_kama .cke_toolbox{clear:both;padding-bottom:1px;}.cke_skin_kama a.cke_toolbox_collapser,.cke_skin_kama a:hover.cke_toolbox_collapser{background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:3px -1366px;background-repeat:no-repeat;width:11px;height:11px;float:right;border:1px outset #D3D3D3;margin:11px 0 2px;cursor:pointer;}.cke_skin_kama .cke_rtl a.cke_toolbox_collapser,.cke_skin_kama .cke_rtl a:hover.cke_toolbox_collapser{float:left;}.cke_skin_kama a.cke_toolbox_collapser span{display:none;}.cke_skin_kama .cke_hc a.cke_toolbox_collapser span{font-size:10px;font-weight:bold;font-family:Arial;display:inline;}.cke_skin_kama a.cke_toolbox_collapser_min,.cke_skin_kama a:hover.cke_toolbox_collapser_min{background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:4px -1387px;background-repeat:no-repeat;margin:2px 4px;}.cke_skin_kama .cke_rtl a.cke_toolbox_collapser_min,.cke_skin_kama .cke_rtl a:hover.cke_toolbox_collapser_min{background-position:4px -1408px;}.cke_skin_kama .cke_separator{display:inline-block;border-left:solid 1px #D3D3D3;margin:3px 2px 0;height:16px;vertical-align:top;}.cke_skin_kama .cke_break{font-size:0;clear:left;}.cke_skin_kama .cke_rtl .cke_break{clear:right;}.cke_skin_kama .cke_toolbar_start{display:none;}.cke_skin_kama .cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-repeat:repeat-x;background-position:0 -500px;float:left;margin-right:6px;margin-bottom:5px;padding:2px;display:inline;}
-.cke_skin_kama .cke_rtl .cke_toolgroup{float:right;margin-right:0;margin-left:6px;}.cke_skin_kama .cke_button a,.cke_skin_kama .cke_button a:hover,.cke_skin_kama .cke_button a:focus,.cke_skin_kama .cke_button a:active,.cke_skin_kama .cke_button a.cke_off{border-radius:3px;outline:none;padding:2px 4px;height:18px;display:inline-block;cursor:default;}.cke_skin_kama .cke_button a,.cke_skin_kama .cke_button a.cke_off{filter:alpha(opacity=70);opacity:.70;-moz-border-radius:3px;-webkit-border-radius:3px;}.cke_skin_kama .cke_hc .cke_button a,.cke_skin_kama .cke_hc .cke_button a.cke_off{opacity:1.0;filter:alpha(opacity=100);border:1px solid white;}.cke_skin_kama .cke_button a.cke_on{background-color:#a3d7ff;filter:alpha(opacity=100);opacity:1;padding:2px 4px;}.cke_skin_kama .cke_hc .cke_button a.cke_on{padding:0 2px!important;border-width:3px;}.cke_skin_kama .cke_button a.cke_disabled *{filter:alpha(opacity=30);opacity:.3;}.cke_skin_kama .cke_browser_ie .cke_button a.cke_disabled *,.cke_skin_kama .cke_browser_ie a:hover.cke_button .cke_disabled *{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale'), alpha(opacity=30);}.cke_skin_kama .cke_browser_ie .cke_rtl .cke_button a.cke_disabled *,.cke_skin_kama .cke_browser_ie .cke_rtl a:hover.cke_button .cke_disabled *{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale'), alpha(opacity=30);}.cke_skin_kama .cke_browser_ie6 .cke_button a.cke_disabled *,.cke_skin_kama .cke_browser_ie6 a:hover.cke_button .cke_disabled *,.cke_skin_kama .cke_browser_ie .cke_button.cke_noalphafix a.cke_disabled *{filter:alpha(opacity=30);}.cke_skin_kama .cke_hc .cke_button a.cke_disabled *,.cke_skin_kama .cke_browser_ie.cke_hc a:hover.cke_button .cke_disabled *{filter:alpha(opacity=60);opacity:.6;}.cke_skin_kama .cke_button a:hover.cke_on,.cke_skin_kama .cke_button a:focus.cke_on,.cke_skin_kama .cke_button a:active.cke_on,.cke_skin_kama .cke_button a:hover.cke_off,.cke_skin_kama .cke_button a:focus.cke_off,.cke_skin_kama .cke_button a:active.cke_off{filter:alpha(opacity=100);opacity:1;padding:2px 4px;}.cke_skin_kama .cke_button a:hover,.cke_skin_kama .cke_button a:focus,.cke_skin_kama .cke_button a:active{background-color:#dff1ff;}.cke_skin_kama .cke_button a:hover.cke_on,.cke_skin_kama .cke_button a:focus.cke_on,.cke_skin_kama .cke_button a:active.cke_on{background-color:#86caff;}.cke_skin_kama .cke_hc .cke_button a:hover,.cke_skin_kama .cke_hc .cke_button a:focus,.cke_skin_kama .cke_hc .cke_button a:active{padding:0 2px!important;border-width:3px;}.cke_skin_kama .cke_button .cke_icon{background-image:url(icons.png);background-position:100px;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;display:inline-block;cursor:default;}.cke_skin_kama .cke_rtl .cke_button .cke_icon{background-image:url(icons_rtl.png);}.cke_skin_kama .cke_browser_ie .cke_button .cke_icon{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');}.cke_skin_kama .cke_browser_ie .cke_rtl .cke_button .cke_icon{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');}.cke_skin_kama .cke_browser_ie6 .cke_button .cke_icon,.cke_skin_kama .cke_browser_ie6 .cke_rtl .cke_button .cke_icon,.cke_skin_kama .cke_browser_ie .cke_button.cke_noalphafix .cke_icon,.cke_skin_kama .cke_browser_ie .cke_rtl .cke_button.cke_noalphafix .cke_icon{filter:;}.cke_skin_kama .cke_button .cke_label{cursor:default;display:none;padding-left:3px;line-height:18px;}.cke_skin_kama .cke_hc .cke_button .cke_label{padding:0;display:inline-block;}.cke_skin_kama .cke_hc .cke_button .cke_icon{display:none;}.cke_skin_kama .cke_accessibility{position:absolute;display:block;width:0;height:0;overflow:hidden;}.cke_skin_kama .cke_button .cke_buttonarrow{display:inline-block;height:17px;width:8px;background-position:2px -1469px;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-repeat:no-repeat;cursor:default;}.cke_skin_kama .cke_browser_ie .cke_button .cke_buttonarrow{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');}
+.cke_skin_kama *,.cke_skin_kama a:hover,.cke_skin_kama a:link,.cke_skin_kama a:visited,.cke_skin_kama a:active{margin:0;padding:0;border:0;background:transparent;text-decoration:none;font:normal normal normal 100% Sans-Serif;width:auto;height:auto;border-collapse:collapse;text-align:left;vertical-align:baseline;white-space:nowrap;cursor:auto;color:#000;float:none;font-size:12px;font-family:Arial,Helvetica,Tahoma,Verdana,Sans-Serif;}.cke_skin_kama .cke_rtl *,.cke_skin_kama .cke_rtl a:hover,.cke_skin_kama .cke_rtl a:link,.cke_skin_kama .cke_rtl a:visited,.cke_skin_kama .cke_rtl a:active,.cke_rtl .cke_skin_kama *,.cke_rtl .cke_skin_kama a:hover,.cke_rtl .cke_skin_kama a:link,.cke_rtl .cke_skin_kama a:visited,.cke_rtl .cke_skin_kama a:active{text-align:right;}.cke_skin_kama iframe{vertical-align:inherit;}.cke_skin_kama textarea{white-space:pre;}.cke_skin_kama .cke_browser_gecko textarea{cursor:text;}.cke_skin_kama .cke_browser_gecko textarea[disabled]{cursor:default;}.cke_skin_kama input[type="text"],.cke_skin_kama input[type="password"]{cursor:text;}.cke_skin_kama input[type="text"][disabled],.cke_skin_kama input[type="password"][disabled]{cursor:default;}.cke_skin_kama fieldset{padding:10px;border:2px groove #E0DFE3;}.cke_skin_kama{display:block;}span.cke_skin_kama{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #D3D3D3;padding:5px;}.cke_skin_kama span.cke_browser_webkit,.cke_skin_kama span.cke_browser_gecko18{display:block;}.cke_skin_kama .cke_wrapper{-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background-color:#d3d3d3;background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1950px;display:block;_display:inline-block;padding:5px;}.cke_shared .cke_skin_kama .cke_wrapper{padding-bottom:0;}.cke_skin_kama .cke_browser_ie6 .cke_wrapper,.cke_skin_kama .cke_browser_iequirks .cke_wrapper{background-image:none;}.cke_skin_kama .cke_editor{display:inline-table;width:100%;}.cke_skin_kama .cke_browser_ie .cke_editor,.cke_skin_kama .cke_browser_webkit .cke_editor{display:table;}.cke_skin_kama .ltr .cke_browser_ie iframe{margin-right:-10px;}.cke_skin_kama .rtl .cke_browser_ie iframe{margin-left:-10px;}.cke_skin_kama .cke_browser_opera .cke_editor.cke_skin_kama .cke_resizer{display:table;}.cke_skin_kama .cke_contents{margin:5px;}.cke_skin_kama .cke_hc .cke_contents{border:1px solid black;}.cke_skin_kama .cke_contents iframe{background-color:#fff;}.cke_skin_kama .cke_focus{outline:auto 5px -webkit-focus-ring-color;}.cke_skin_kama textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre;}.cke_skin_kama .cke_browser_iequirks textarea.cke_source{_white-space:normal;}.cke_skin_kama .cke_resizer{width:12px;height:12px;margin-top:9px;display:block;float:right;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:0 -1428px;background-repeat:no-repeat;cursor:se-resize;}.cke_skin_kama .cke_browser_air .cke_resizer,.cke_skin_kama .cke_browser_air .cke_rtl .cke_resizer{cursor:move;}.cke_skin_kama .cke_resizer_rtl{cursor:sw-resize;background-position:0 -1455px;float:left;}.cke_skin_kama .cke_resizer_horizontal,.cke_skin_kama .cke_rtl .cke_resizer_horizontal{cursor:e-resize;}.cke_skin_kama .cke_resizer_vertical,.cke_skin_kama .cke_rtl .cke_resizer_vertical{cursor:n-resize;}.cke_skin_kama .cke_maximized .cke_resizer{display:none;}.cke_skin_kama .cke_browser_ie6 .cke_contents textarea,.cke_skin_kama .cke_browser_ie7 .cke_contents textarea{position:absolute;}.cke_skin_kama .cke_browser_ie.cke_browser_quirks .cke_contents iframe{position:absolute;top:0;}.cke_skin_kama .cke_browser_ie6 .cke_editor,.cke_skin_kama .cke_browser_ie7 .cke_editor{display:inline-block;}.cke_skin_kama .cke_browser_ie6 .cke_editor,.cke_shared .cke_skin_kama .cke_browser_ie7 .cke_wrapper{padding-bottom:5px;}.cke_skin_kama .cke_voice_label{display:none;}.cke_skin_kama legend.cke_voice_label{display:none;}.cke_skin_kama .cke_browser_ie legend.cke_voice_label{position:absolute;display:block;width:0;height:0;overflow:hidden;}
+.cke_skin_kama .cke_panel{border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;}.cke_skin_kama .cke_contextmenu{margin:0;}.cke_skin_kama .cke_panel iframe{width:100%;height:100%;}html.cke_skin_kama_container{overflow:auto;overflow-x:hidden;}body.cke_panel_frame{overflow:auto;}.cke_panel_frame .cke_label{display:none;}ul.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap;}li.cke_panel_listItem{margin:0;}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;}* html .cke_panel_listItem a{width:100%;color:#000;}*:first-child+html .cke_panel_listItem a{color:#000;}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff;}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff;}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0;}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px;}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px;}.cke_skin_kama .cke_button_textcolor_panel,.cke_skin_kama .cke_button_bgcolor_panel{width:150px;height:135px;}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000;}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left;}.cke_rtl span.cke_colorbox{float:right;}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;}.cke_rtl a.cke_colorbox{float:right;}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff;}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer;}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff;}@media print{.cke_skin_kama .cke_toolbox{display:none;}}.cke_skin_kama .cke_browser_webkit .cke_toolbox,.cke_skin_kama .cke_browser_webkit .cke_toolbox>span{white-space:normal;}.cke_skin_kama .cke_toolbox{clear:both;padding-bottom:1px;}.cke_skin_kama a.cke_toolbox_collapser,.cke_skin_kama a:hover.cke_toolbox_collapser{background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:3px -1366px;background-repeat:no-repeat;width:11px;height:11px;float:right;border:1px outset #D3D3D3;margin:11px 0 2px;cursor:pointer;}.cke_skin_kama .cke_rtl a.cke_toolbox_collapser,.cke_skin_kama .cke_rtl a:hover.cke_toolbox_collapser{float:left;}.cke_skin_kama a.cke_toolbox_collapser span{display:none;}.cke_skin_kama .cke_hc a.cke_toolbox_collapser span{font-size:10px;font-weight:bold;font-family:Arial;display:inline;}.cke_skin_kama a.cke_toolbox_collapser_min,.cke_skin_kama a:hover.cke_toolbox_collapser_min{background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:4px -1387px;background-repeat:no-repeat;margin:2px 4px;}.cke_skin_kama .cke_rtl a.cke_toolbox_collapser_min,.cke_skin_kama .cke_rtl a:hover.cke_toolbox_collapser_min{background-position:4px -1408px;}.cke_skin_kama .cke_separator{display:inline-block;border-left:solid 1px #D3D3D3;margin:3px 2px 0;height:16px;vertical-align:top;}.cke_skin_kama .cke_break{font-size:0;clear:left;}.cke_skin_kama .cke_rtl .cke_break{clear:right;}.cke_skin_kama .cke_toolbar_start{display:none;}.cke_skin_kama .cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-repeat:repeat-x;background-position:0 -500px;float:left;margin-right:6px;margin-bottom:5px;padding:2px;display:inline;}
+.cke_skin_kama .cke_rtl .cke_toolgroup{float:right;margin-right:0;margin-left:6px;}.cke_skin_kama .cke_button a,.cke_skin_kama .cke_button a:hover,.cke_skin_kama .cke_button a:focus,.cke_skin_kama .cke_button a:active,.cke_skin_kama .cke_button a.cke_off{border-radius:3px;outline:none;padding:2px 4px;height:18px;display:inline-block;cursor:default;}.cke_skin_kama .cke_button a,.cke_skin_kama .cke_button a.cke_off{filter:alpha(opacity=70);opacity:.70;-moz-border-radius:3px;-webkit-border-radius:3px;}.cke_skin_kama .cke_hc .cke_button a,.cke_skin_kama .cke_hc .cke_button a.cke_off{opacity:1.0;filter:alpha(opacity=100);border:1px solid white;}.cke_skin_kama .cke_button a.cke_on{background-color:#a3d7ff;filter:alpha(opacity=100);opacity:1;padding:2px 4px;}.cke_skin_kama .cke_hc .cke_button a.cke_on{padding:0 2px!important;border-width:3px;}.cke_skin_kama .cke_button a.cke_disabled *{filter:alpha(opacity=30);opacity:.3;}.cke_skin_kama .cke_browser_ie .cke_button a.cke_disabled *,.cke_skin_kama .cke_browser_ie a:hover.cke_button .cke_disabled *{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale'), alpha(opacity=30);}.cke_skin_kama .cke_browser_ie .cke_rtl .cke_button a.cke_disabled *,.cke_skin_kama .cke_browser_ie .cke_rtl a:hover.cke_button .cke_disabled *{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale'), alpha(opacity=30);}.cke_skin_kama .cke_browser_ie6 .cke_button a.cke_disabled *,.cke_skin_kama .cke_browser_ie6 a:hover.cke_button .cke_disabled *,.cke_skin_kama .cke_browser_ie .cke_button.cke_noalphafix a.cke_disabled *{filter:alpha(opacity=30);}.cke_skin_kama .cke_hc .cke_button a.cke_disabled *,.cke_skin_kama .cke_browser_ie.cke_hc a:hover.cke_button .cke_disabled *{filter:alpha(opacity=60);opacity:.6;}.cke_skin_kama .cke_button a:hover.cke_on,.cke_skin_kama .cke_button a:focus.cke_on,.cke_skin_kama .cke_button a:active.cke_on,.cke_skin_kama .cke_button a:hover.cke_off,.cke_skin_kama .cke_button a:focus.cke_off,.cke_skin_kama .cke_button a:active.cke_off{filter:alpha(opacity=100);opacity:1;padding:2px 4px;}.cke_skin_kama .cke_button a:hover,.cke_skin_kama .cke_button a:focus,.cke_skin_kama .cke_button a:active{background-color:#dff1ff;}.cke_skin_kama .cke_button a:hover.cke_on,.cke_skin_kama .cke_button a:focus.cke_on,.cke_skin_kama .cke_button a:active.cke_on{background-color:#86caff;}.cke_skin_kama .cke_hc .cke_button a:hover,.cke_skin_kama .cke_hc .cke_button a:focus,.cke_skin_kama .cke_hc .cke_button a:active{padding:0 2px!important;border-width:3px;}.cke_skin_kama .cke_button .cke_icon{background-image:url(icons.png);background-position:100px;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;display:inline-block;cursor:default;}.cke_skin_kama .cke_rtl .cke_button .cke_icon{background-image:url(icons_rtl.png);}.cke_skin_kama .cke_browser_ie .cke_button .cke_icon{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');}.cke_skin_kama .cke_browser_ie .cke_rtl .cke_button .cke_icon{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');}.cke_skin_kama .cke_browser_ie6 .cke_button .cke_icon,.cke_skin_kama .cke_browser_ie6 .cke_rtl .cke_button .cke_icon,.cke_skin_kama .cke_browser_ie .cke_button.cke_noalphafix .cke_icon,.cke_skin_kama .cke_browser_ie .cke_rtl .cke_button.cke_noalphafix .cke_icon{filter:;}.cke_skin_kama .cke_button .cke_label{cursor:default;display:none;padding-left:3px;line-height:18px;vertical-align:middle;}.cke_skin_kama .cke_hc .cke_button .cke_label{padding:0;display:inline-block;}.cke_skin_kama .cke_hc .cke_button .cke_icon{display:none;}.cke_skin_kama .cke_accessibility{position:absolute;display:block;width:0;height:0;overflow:hidden;}.cke_skin_kama .cke_button .cke_buttonarrow{display:inline-block;height:17px;width:8px;background-position:2px -1469px;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-repeat:no-repeat;cursor:default;}.cke_skin_kama .cke_browser_ie .cke_button .cke_buttonarrow{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');}
 .cke_skin_kama .cke_browser_ie6 .cke_button .cke_buttonarrow{filter:;}.cke_skin_kama .cke_browser_gecko .cke_toolbar,.cke_skin_kama .cke_browser_gecko .cke_button a,.cke_skin_kama .cke_browser_gecko .cke_button a.cke_off,.cke_skin_kama .cke_browser_gecko .cke_button .cke_icon,.cke_skin_kama .cke_browser_gecko .cke_button .cke_buttonarrow,.cke_skin_kama .cke_browser_gecko .cke_separator,.cke_skin_kama .cke_browser_gecko .cke_toolbar_start{display:block;float:left;}.cke_skin_kama .cke_browser_gecko.cke_hc .cke_button .cke_icon{display:none;}.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_toolbar,.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_button a,.cke_skin_kama .cke_browser_gecko .cke_rtl.cke_button a.cke_off,.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_button .cke_icon,.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_button .cke_buttonarrow,.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_separator,.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_toolbar_start{float:right;}.cke_skin_kama .cke_browser_gecko .cke_button .cke_label,.cke_skin_kama .cke_browser_gecko .cke_break{float:left;}.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_button .cke_label,.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_break{float:right;}.cke_skin_kama .cke_browser_webkit .cke_toolbar{float:left;}.cke_skin_kama .cke_browser_webkit .cke_rtl .cke_toolbar{float:right;}.cke_skin_kama .cke_browser_ie .cke_button .cke_label{line-height:16px;}.cke_skin_kama .cke_browser_ie .cke_rcombo,.cke_skin_kama .cke_browser_ie .cke_rcombo *{cursor:default;}.cke_skin_kama .cke_browser_ie .cke_toolbox{padding-bottom:5px;_padding-bottom:6px;}.cke_shared .cke_skin_kama .cke_browser_ie .cke_toolbox{padding-bottom:0;}.cke_skin_kama .cke_contextmenu{padding:2px;}.cke_skin_kama .cke_menuitem a{display:block;}.cke_skin_kama .cke_menuitem span{cursor:default;}.cke_skin_kama .cke_menuitem a:hover,.cke_skin_kama .cke_menuitem a:focus,.cke_skin_kama .cke_menuitem a:active{background-color:#D3D3D3;display:block;}.cke_hc .cke_menuitem a:hover,.cke_hc .cke_menuitem a:focus,.cke_hc .cke_menuitem a:active{border:2px solid;}.cke_skin_kama .cke_menuitem .cke_icon{background-image:url(icons.png);background-position:100px;background-repeat:no-repeat;background-color:transparent;width:16px;height:16px;float:left;}.cke_rtl .cke_skin_kama .cke_menuitem .cke_icon{background-image:url(icons_rtl.png);}.cke_browser_ie .cke_skin_kama .cke_menuitem .cke_icon{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');}.cke_browser_ie.cke_rtl .cke_skin_kama .cke_menuitem .cke_icon{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');}.cke_browser_ie6 .cke_skin_kama .cke_menuitem .cke_icon,.cke_browser_ie .cke_skin_kama .cke_menuitem.cke_noalphafix .cke_icon{filter:;}.cke_skin_kama .cke_menuitem .cke_disabled .cke_icon{filter:alpha(opacity=70);opacity:.70;}.cke_browser_ie .cke_skin_kama .cke_menuitem .cke_disabled .cke_icon{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');}.cke_browser_ie.cke_rtl .cke_skin_kama .cke_menuitem .cke_disabled .cke_icon{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');}.cke_browser_ie6 .cke_skin_kama .cke_menuitem .cke_disabled .cke_icon,.cke_browser_ie .cke_skin_kama .cke_menuitem.cke_noalphafix .cke_disabled .cke_icon{filter:;}.cke_skin_kama .cke_menuitem .cke_icon_wrapper{background-color:#D3D3D3;border:solid 4px #D3D3D3;width:16px;height:16px;float:left;filter:alpha(opacity=70);opacity:.70;clear:both;}.cke_rtl .cke_skin_kama .cke_menuitem .cke_icon_wrapper{float:right;}.cke_skin_kama .cke_menuitem a:hover .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a:focus .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a:active .cke_icon_wrapper{background-color:#9d9d9d;border:solid 4px #9d9d9d;filter:alpha(opacity=70);opacity:.70;}.cke_skin_kama .cke_menuitem a:hover.cke_disabled .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a:focus.cke_disabled .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a:active.cke_disabled .cke_icon_wrapper{background-color:#D3D3D3;border:solid 4px #D3D3D3;}
 .cke_skin_kama .cke_menuitem .cke_label{display:block;padding-right:3px;padding-top:5px;padding-left:4px;height:19px;margin-left:24px;background-color:#fff;}.cke_skin_kama .cke_frameLoaded .cke_menuitem .cke_label{filter:alpha(opacity=70);opacity:.70;}.cke_rtl .cke_skin_kama .cke_menuitem .cke_label{padding-right:0;margin-left:0;padding-left:3px;margin-right:28px;}.cke_skin_kama .cke_menuitem a.cke_disabled .cke_label{filter:alpha(opacity=30);opacity:.30;}.cke_skin_kama .cke_menuitem a:hover .cke_label,.cke_skin_kama .cke_menuitem a:focus .cke_label,.cke_skin_kama .cke_menuitem a:active .cke_label{background-color:#D3D3D3;}.cke_skin_kama .cke_menuitem a.cke_disabled:hover .cke_label,.cke_skin_kama .cke_menuitem a.cke_disabled:focus .cke_label,.cke_skin_kama .cke_menuitem a.cke_disabled:active .cke_label{background-color:transparent;}.cke_skin_kama .cke_menuseparator{background-color:#D3D3D3;height:2px;filter:alpha(opacity=70);opacity:.70;_font-size:0;}.cke_skin_kama .cke_menuarrow{background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:0 -1411px;background-repeat:no-repeat;height:5px;width:3px;float:right;margin-right:2px;margin-top:3px;}.cke_rtl .cke_skin_kama .cke_menuarrow{float:left;margin-right:0;margin-left:2px;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:0 -1390px;background-repeat:no-repeat;}.cke_skin_kama .cke_menuarrow span{display:none;}.cke_hc .cke_skin_kama .cke_menuarrow{width:auto;margin-top:0;}.cke_hc .cke_skin_kama .cke_menuarrow span{display:inline;}.cke_browser_ie.cke_ltr .cke_skin_kama .cke_menuarrow{position:absolute;right:2px;}.cke_browser_ie.cke_rtl .cke_skin_kama .cke_menuarrow{position:absolute;left:2px;}.cke_skin_kama .cke_rcombo{display:inline;}.cke_skin_kama .cke_rcombopanel{border:1px solid #8F8F73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;height:auto;_height:100px;}.cke_skin_kama .cke_rcombo a,.cke_skin_kama .cke_rcombo a:active,.cke_skin_kama .cke_rcombo a:hover{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-repeat:repeat-x;background-position:0 -100px;border-bottom:1px solid #DAD9D9;border-right:1px solid #DAD9D9;float:left;padding:2px;height:21px;margin-right:6px;margin-bottom:5px;}.cke_skin_kama .cke_rtl .cke_rcombo a,.cke_skin_kama .cke_rtl .cke_rcombo a:active,.cke_skin_kama .cke_rtl .cke_rcombo a:hover{float:right;margin-right:0;margin-left:6px;}.cke_skin_kama .cke_hc .cke_rcombo a{filter:alpha(opacity=100);opacity:1.0;}.cke_skin_kama .cke_rcombo .cke_label{display:none;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity=70);opacity:.70;}.cke_skin_kama .cke_rtl .cke_rcombo .cke_label{margin-right:0;margin-left:5px;}.cke_skin_kama .cke_rcombo .cke_inline_label{line-height:21px;font-style:italic;color:#666;}.cke_skin_kama .cke_hc .cke_rcombo .cke_openbutton{vertical-align:top;}.cke_skin_kama .cke_hc .cke_rcombo .cke_label{filter:alpha(opacity=100);opacity:1.0;}.cke_skin_kama .cke_rcombo .cke_text{filter:alpha(opacity=70);opacity:.70;height:21px;line-height:21px;width:60px;text-overflow:ellipsis;overflow:hidden;display:inline-block;margin:0 2px 0 4px;cursor:default;}.cke_skin_kama .cke_rtl .cke_rcombo .cke_text{margin:0 4px 0 2px;}.cke_skin_kama .cke_rcombo .cke_openbutton{display:inline-block;}.cke_skin_kama .cke_rcombo .cke_openbutton .cke_icon{display:inline-block;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:0 -68px;background-repeat:no-repeat;width:17px;height:19px;margin:1px 2px;}.cke_skin_kama .cke_hc .cke_rcombo .cke_openbutton .cke_icon{background:none;}.cke_skin_kama .cke_browser_iequirks .cke_rcombo .cke_openbutton{margin-bottom:0;}.cke_skin_kama .cke_rcombo .cke_off a:hover .cke_text,.cke_skin_kama .cke_rcombo .cke_off a:focus .cke_text,.cke_skin_kama .cke_rcombo .cke_off a:active .cke_text,.cke_skin_kama .cke_rcombo .cke_on .cke_text{border-color:#316ac5;filter:alpha(opacity=100);opacity:1;}
 .cke_skin_kama .cke_rcombo .cke_off a:hover .cke_openbutton,.cke_skin_kama .cke_rcombo .cke_off a:focus .cke_openbutton,.cke_skin_kama .cke_rcombo .cke_off a:active .cke_openbutton,.cke_skin_kama .cke_rcombo .cke_on .cke_openbutton{border-color:#316ac5;background-color:#dff1ff;}.cke_skin_kama .cke_rcombo .cke_on .cke_text{-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;}.cke_skin_kama .cke_rcombo .cke_on .cke_openbutton{-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;}.cke_skin_kama .cke_rcombo .cke_disabled .cke_label{filter:alpha(opacity=30);opacity:.3;}.cke_skin_kama .cke_hc .cke_rcombo .cke_disabled .cke_label{filter:alpha(opacity=70);opacity:.7;}.cke_skin_kama .cke_rcombo .cke_disabled .cke_text,.cke_skin_kama .cke_rcombo .cke_disabled .cke_openbutton{filter:alpha(opacity=50);opacity:.5;}.cke_skin_kama .cke_browser_ie .cke_rcombo .cke_disabled .cke_openbutton{filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale'), alpha(opacity=50);}.cke_skin_kama .cke_browser_ie6 .cke_rcombo .cke_disabled .cke_openbutton{filter:alpha(opacity=50);}.cke_skin_kama .cke_hc .cke_rcombo .cke_disabled .cke_text,.cke_skin_kama .cke_hc .cke_rcombo .cke_disabled .cke_openbutton{filter:alpha(opacity=80);opacity:.8;}.cke_skin_kama .cke_rcombo .cke_disabled .cke_text{color:#fff;}.cke_skin_kama .cke_browser_gecko .cke_rcombo .cke_text,.cke_skin_kama .cke_browser_gecko .cke_rcombo .cke_openbutton,.cke_skin_kama .cke_browser_webkit .cke_rcombo .cke_text,.cke_skin_kama .cke_browser_webkit .cke_rcombo .cke_openbutton{display:block;float:left;}.cke_skin_kama .cke_browser_gecko .cke_rcombo .cke_label,.cke_skin_kama .cke_browser_webkit .cke_rcombo .cke_label{float:left;}.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_rcombo .cke_label,.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_rcombo .cke_text,.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_rcombo .cke_openbutton,.cke_skin_kama .cke_browser_webkit .cke_rtl .cke_rcombo .cke_label,.cke_skin_kama .cke_browser_webkit .cke_rtl .cke_rcombo .cke_text,.cke_skin_kama .cke_browser_webkit .cke_rtl .cke_rcombo .cke_openbutton{float:right;}.cke_skin_kama .cke_browser_ie7 .cke_rcombo .cke_text{line-height:18px;}.cke_skin_kama .cke_browser_ie6 .cke_rcombo .cke_text,.cke_skin_kama .cke_browser_iequirks .cke_rcombo .cke_text{height:auto;line-height:17px;}.cke_skin_kama .cke_rtl .cke_rcombo .cke_font .cke_text,.cke_skin_kama .cke_rtl .cke_rcombo .cke_fontSize .cke_text{direction:ltr;}@media print{.cke_path{display:none;}}.cke_skin_kama .cke_path{display:inline-block;float:left;margin-top:5px;}.cke_skin_kama .cke_rtl .cke_path{float:right;}.cke_shared .cke_skin_kama .cke_path{_width:100%;margin:0 0 5px;}.cke_skin_kama .cke_path a,.cke_skin_kama .cke_path .cke_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;}.cke_skin_kama .cke_path .cke_empty{visibility:hidden;}.cke_skin_kama .cke_rtl .cke_path a,.cke_skin_kama .cke_rtl .cke_path cke_empty{float:right;}.cke_skin_kama .cke_path a:hover,.cke_skin_kama .cke_path a:focus,.cke_skin_kama .cke_path a:active{background-color:#dff1ff;padding:1px 4px 0;outline:none;color:#000;}.cke_skin_kama .cke_browser_ie .cke_rtl .cke_path a,.cke_skin_kama .cke_browser_ie .cke_rtl .cke_path .cke_empty{float:none;}.cke_skin_kama .cke_path .cke_label{display:none;}.cke_skin_kama .cke_button_source .cke_icon{background-position:0 0;}.cke_skin_kama .cke_button_docProps .cke_icon{background-position:0 -16px;}.cke_skin_kama .cke_button_newpage .cke_icon{background-position:0 -48px;}.cke_skin_kama .cke_button_preview .cke_icon{background-position:0 -64px;}.cke_skin_kama .cke_button_cut .cke_icon{background-position:0 -96px;}.cke_skin_kama .cke_button_copy .cke_icon{background-position:0 -112px;}.cke_skin_kama .cke_button_paste .cke_icon{background-position:0 -128px;}.cke_skin_kama .cke_button_pastetext .cke_icon{background-position:0 -144px;}.cke_skin_kama .cke_button_find .cke_icon{background-position:0 -240px;}.cke_skin_kama .cke_button_replace .cke_icon{background-position:0 -256px;}
diff --git a/appsrc/ODS-Framework/ckeditor/skins/kama/skin.js b/appsrc/ODS-Framework/ckeditor/skins/kama/skin.js
index 2cf60f2..d4d43cc 100644
--- a/appsrc/ODS-Framework/ckeditor/skins/kama/skin.js
+++ b/appsrc/ODS-Framework/ckeditor/skins/kama/skin.js
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
diff --git a/appsrc/ODS-Framework/ckeditor/skins/kama/templates.css b/appsrc/ODS-Framework/ckeditor/skins/kama/templates.css
index 9441486..9e6820a 100644
--- a/appsrc/ODS-Framework/ckeditor/skins/kama/templates.css
+++ b/appsrc/ODS-Framework/ckeditor/skins/kama/templates.css
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
diff --git a/appsrc/ODS-Framework/ckeditor/themes/default/theme.js b/appsrc/ODS-Framework/ckeditor/themes/default/theme.js
index 9feddfe..7acc36b 100644
--- a/appsrc/ODS-Framework/ckeditor/themes/default/theme.js
+++ b/appsrc/ODS-Framework/ckeditor/themes/default/theme.js
@@ -1,8 +1,8 @@
 /*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.html or http://ckeditor.com/license
 */
 
 CKEDITOR.themes.add('default',(function(){var a={};function b(c,d){var e,f;f=c.config.sharedSpaces;f=f&&f[d];f=f&&CKEDITOR.document.getById(f);if(f){var g='<span class="cke_shared " dir="'+c.lang.dir+'"'+'>'+'<span class="'+c.skinClass+' '+c.id+' cke_editor_'+c.name+'">'+'<span class="'+CKEDITOR.env.cssClass+'">'+'<span class="cke_wrapper cke_'+c.lang.dir+'">'+'<span class="cke_editor">'+'<div class="cke_'+d+'">'+'</div></span></span></span></span></span>',h=f.append(CKEDITOR.dom.element.createFromHtml(g,f.getDocument()));if(f.getCustomData('cke_hasshared'))h.hide();else f.setCustomData('cke_hasshared',1);e=h.getChild([0,0,0,0]);!c.sharedSpaces&&(c.sharedSpaces={});c.sharedSpaces[d]=e;c.on('focus',function(){for(var i=0,j,k=f.getChildren();j=k.getItem(i);i++){if(j.type==CKEDITOR.NODE_ELEMENT&&!j.equals(h)&&j.hasClass('cke_shared'))j.hide();}h.show();});c.on('destroy',function(){h.remove();});}return e;};return{build:function(c,d){var e=c.name,f=c.element,g=c.elementMode;if(!f||g==CKEDITOR.ELEMENT_MODE_NONE)return;if(g==CKEDITOR.ELEMENT_MODE_REPLACE)f.hide();var h=c.fire('themeSpace',{space:'top',html:''}).html,i=c.fire('themeSpace',{space:'contents',html:''}).html,j=c.fireOnce('themeSpace',{space:'bottom',html:''}).html,k=i&&c.config.height,l=c.config.tabIndex||c.element.getAttribute('tabindex')||0;if(!i)k='auto';else if(!isNaN(k))k+='px';var m='',n=c.config.width;if(n){if(!isNaN(n))n+='px';m+='width: '+n+';';}var o=h&&b(c,'top'),p=b(c,'bottom');o&&(o.setHtml(h),h='');p&&(p.setHtml(j),j='');var q='<style>.'+c.skinClass+'{visibility:hidden;}</style>';if(a[c.skinClass])q='';else a[c.skinClass]=1;var r=CKEDITOR.dom.element.createFromHtml(['<span id="cke_',e,'" class="',c.skinClass,' ',c.id,' cke_editor_',e,'" dir="',c.lang.dir,'" title="',CKEDITOR.env.gecko?' ':'','" lang="',c.langCode,'"'+(CKEDITOR.env.webkit?' tabindex="'+l+'"':'')+' role="application"'+' aria-labelledby="cke_',e,'_arialbl"'+(m?' style="'+m+'"':'')+'>'+'<span id="cke_',e,'_arialbl" class="cke_voice_label">'+c.lang.editor+'</span>'+'<span class="',CKEDITOR.env.cssClass,'" role="presentation"><span class="cke_wrapper cke_',c.lang.dir,'" role="presentation"><table class="cke_editor" border="0" cellspacing="0" cellpadding="0" role="presentation"><tbody><tr',h?'':' style="display:none"',' role="presentation"><td id="cke_top_',e,'" class="cke_top" role="presentation">',h,'</td></tr><tr',i?'':' style="display:none"',' role="presentation"><td id="cke_contents_',e,'" class="cke_contents" style="height:',k,'" role="presentation">',i,'</td></tr><tr',j?'':' style="display:none"',' role="presentation"><td id="cke_bottom_',e,'" class="cke_bottom" role="presentation">',j,'</td></tr></tbody></table>'+q+'</span>'+'</span>'+'</span>'].join(''));
-r.getChild([1,0,0,0,0]).unselectable();r.getChild([1,0,0,0,2]).unselectable();if(g==CKEDITOR.ELEMENT_MODE_REPLACE)r.insertAfter(f);else f.append(r);c.container=r;r.disableContextMenu();c.on('contentDirChanged',function(s){var t=(c.lang.dir!=s.data?'add':'remove')+'Class';r.getChild(1)[t]('cke_mixed_dir_content');var u=this.sharedSpaces&&this.sharedSpaces[this.config.toolbarLocation];u&&u.getParent().getParent()[t]('cke_mixed_dir_content');});c.fireOnce('themeLoaded');c.fireOnce('uiReady');},buildDialog:function(c){var d=CKEDITOR.tools.getNextNumber(),e=CKEDITOR.dom.element.createFromHtml(['<div class="',c.id,'_dialog cke_editor_',c.name.replace('.','\\.'),'_dialog cke_skin_',c.skinName,'" dir="',c.lang.dir,'" lang="',c.langCode,'" role="dialog" aria-labelledby="%title#"><table class="cke_dialog',' '+CKEDITOR.env.cssClass,' cke_',c.lang.dir,'" style="position:absolute" role="presentation"><tr><td role="presentation"><div class="%body" role="presentation"><div id="%title#" class="%title" role="presentation"></div><a id="%close_button#" class="%close_button" href="javascript:void(0)" title="'+c.lang.common.close+'" role="button"><span class="cke_label">X</span></a>'+'<div id="%tabs#" class="%tabs" role="tablist"></div>'+'<table class="%contents" role="presentation">'+'<tr>'+'<td id="%contents#" class="%contents" role="presentation"></td>'+'</tr>'+'<tr>'+'<td id="%footer#" class="%footer" role="presentation"></td>'+'</tr>'+'</table>'+'</div>'+'<div id="%tl#" class="%tl"></div>'+'<div id="%tc#" class="%tc"></div>'+'<div id="%tr#" class="%tr"></div>'+'<div id="%ml#" class="%ml"></div>'+'<div id="%mr#" class="%mr"></div>'+'<div id="%bl#" class="%bl"></div>'+'<div id="%bc#" class="%bc"></div>'+'<div id="%br#" class="%br"></div>'+'</td></tr>'+'</table>',CKEDITOR.env.ie?'':'<style>.cke_dialog{visibility:hidden;}</style>','</div>'].join('').replace(/#/g,'_'+d).replace(/%/g,'cke_dialog_')),f=e.getChild([0,0,0,0,0]),g=f.getChild(0),h=f.getChild(1);g.unselectable();h.unselectable();return{element:e,parts:{dialog:e.getChild(0),title:g,close:h,tabs:f.getChild(2),contents:f.getChild([3,0,0,0]),footer:f.getChild([3,0,1,0])}};},destroy:function(c){var d=c.container,e=c.element;if(d){d.clearCustomData();d.remove();}if(e){e.clearCustomData();c.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&e.show();delete c.element;}}};})());CKEDITOR.editor.prototype.getThemeSpace=function(a){var b='cke_'+a,c=this._[b]||(this._[b]=CKEDITOR.document.getById(b+'_'+this.name));return c;};CKEDITOR.editor.prototype.resize=function(a,b,c,d){var e=this.container,f=CKEDITOR.document.getById('cke_contents_'+this.name),g=d?e.getChild(1):e;
-CKEDITOR.env.webkit&&g.setStyle('display','none');g.setSize('width',a,true);if(CKEDITOR.env.webkit){g.$.offsetWidth;g.setStyle('display','');}var h=c?0:(g.$.offsetHeight||0)-(f.$.clientHeight||0);f.setStyle('height',Math.max(b-h,0)+'px');this.fire('resize');};CKEDITOR.editor.prototype.getResizable=function(a){return a?CKEDITOR.document.getById('cke_contents_'+this.name):this.container;};
+r.getChild([1,0,0,0,0]).unselectable();r.getChild([1,0,0,0,2]).unselectable();if(g==CKEDITOR.ELEMENT_MODE_REPLACE)r.insertAfter(f);else f.append(r);c.container=r;r.disableContextMenu();c.on('contentDirChanged',function(s){var t=(c.lang.dir!=s.data?'add':'remove')+'Class';r.getChild(1)[t]('cke_mixed_dir_content');var u=this.sharedSpaces&&this.sharedSpaces[this.config.toolbarLocation];u&&u.getParent().getParent()[t]('cke_mixed_dir_content');});c.fireOnce('themeLoaded');c.fireOnce('uiReady');},buildDialog:function(c){var d=CKEDITOR.tools.getNextNumber(),e=CKEDITOR.dom.element.createFromHtml(['<div class="',c.id,'_dialog cke_editor_',c.name.replace('.','\\.'),'_dialog cke_skin_',c.skinName,'" dir="',c.lang.dir,'" lang="',c.langCode,'" role="dialog" aria-labelledby="%title#"><table class="cke_dialog',' '+CKEDITOR.env.cssClass,' cke_',c.lang.dir,'" style="position:absolute" role="presentation"><tr><td role="presentation"><div class="%body" role="presentation"><div id="%title#" class="%title" role="presentation"></div><a id="%close_button#" class="%close_button" href="javascript:void(0)" title="'+c.lang.common.close+'" role="button"><span class="cke_label">X</span></a>'+'<div id="%tabs#" class="%tabs" role="tablist"></div>'+'<table class="%contents" role="presentation">'+'<tr>'+'<td id="%contents#" class="%contents" role="presentation"></td>'+'</tr>'+'<tr>'+'<td id="%footer#" class="%footer" role="presentation"></td>'+'</tr>'+'</table>'+'</div>'+'<div id="%tl#" class="%tl"></div>'+'<div id="%tc#" class="%tc"></div>'+'<div id="%tr#" class="%tr"></div>'+'<div id="%ml#" class="%ml"></div>'+'<div id="%mr#" class="%mr"></div>'+'<div id="%bl#" class="%bl"></div>'+'<div id="%bc#" class="%bc"></div>'+'<div id="%br#" class="%br"></div>'+'</td></tr>'+'</table>',CKEDITOR.env.ie?'':'<style>.cke_dialog{visibility:hidden;}</style>','</div>'].join('').replace(/#/g,'_'+d).replace(/%/g,'cke_dialog_')),f=e.getChild([0,0,0,0,0]),g=f.getChild(0),h=f.getChild(1);if(CKEDITOR.env.ie&&!CKEDITOR.env.ie6Compat){var i=CKEDITOR.env.isCustomDomain(),j='javascript:void(function(){'+encodeURIComponent('document.open();'+(i?'document.domain="'+document.domain+'";':'')+'document.close();')+'}())',k=CKEDITOR.dom.element.createFromHtml('<iframe frameBorder="0" class="cke_iframe_shim" src="'+j+'"'+' tabIndex="-1"'+'></iframe>');k.appendTo(f.getParent());}g.unselectable();h.unselectable();return{element:e,parts:{dialog:e.getChild(0),title:g,close:h,tabs:f.getChild(2),contents:f.getChild([3,0,0,0]),footer:f.getChild([3,0,1,0])}};
+},destroy:function(c){var d=c.container,e=c.element;if(d){d.clearCustomData();d.remove();}if(e){e.clearCustomData();c.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&e.show();delete c.element;}}};})());CKEDITOR.editor.prototype.getThemeSpace=function(a){var b='cke_'+a,c=this._[b]||(this._[b]=CKEDITOR.document.getById(b+'_'+this.name));return c;};CKEDITOR.editor.prototype.resize=function(a,b,c,d){var j=this;var e=j.container,f=CKEDITOR.document.getById('cke_contents_'+j.name),g=CKEDITOR.env.webkit&&j.document&&j.document.getWindow().$.frameElement,h=d?e.getChild(1):e;h.setSize('width',a,true);g&&(g.style.width='1%');var i=c?0:(h.$.offsetHeight||0)-(f.$.clientHeight||0);f.setStyle('height',Math.max(b-i,0)+'px');g&&(g.style.width='100%');j.fire('resize');};CKEDITOR.editor.prototype.getResizable=function(a){return a?CKEDITOR.document.getById('cke_contents_'+this.name):this.container;};
diff --git a/appsrc/ODS-Framework/common.css b/appsrc/ODS-Framework/common.css
index 673fd2e..4bbc1f5 100644
--- a/appsrc/ODS-Framework/common.css
+++ b/appsrc/ODS-Framework/common.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: common.css,v 1.1.4.3 2011/05/16 08:53:55 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -21,6 +21,43 @@
  *
  */
 
+/* Footer */
+#FT {
+  width: 100%;
+  position: relative;
+  bottom: 0px;
+  font-size: 8pt;
+  float: left;
+  clear: both;
+  text-align: right;
+  border-top: 2px solid #fff;
+  margin-right: 10px;
+  background-color: #fff;
+  background-image: url(/ods/images/ods_main_footer.png);
+}
+
+#FT_L {
+  float: left;
+  clear: left;
+  margin-top: 10px;
+  margin-left: 8px;
+  border: 1px solid #788;
+}
+
+#FT_R {
+  float: right;
+  clear: right;
+  margin-top: 10px;
+  margin-bottom: 10px;
+  margin-right: 5px;
+  color: #788;
+}
+
+#FT_R a {
+  text-decoration: none;
+  color: inherit;
+}
+
 /* ODS grids */
 table.ODS_grid {
   width: 100%;
@@ -43,7 +80,7 @@ table.ODS_grid tbody tr:nth-child(even) {
 }
 
 table.ODS_grid thead tr th {
-  height: 18px;
+  height: 20px;
   text-align: left !important;
   white-space: nowrap;
   padding: 0px 2px 1px 2px !important;
@@ -61,6 +98,11 @@ table.ODS_grid thead tr th:last-child {
   border-width: 0px 0px 1px 0px;
 }
 
+
+table.ODS_grid tbody tr.selected {
+  background-color: #FFFFCC;
+}
+
 table.ODS_grid th.checkbox, table.ODS_grid td.checkbox {
   width: 1px;
   text-align: center;
@@ -112,6 +154,7 @@ table.ANN_grid tr td {
   border-color: #7f94a5;
   background: #99b3c5;
 	cursor: pointer;
+  border-radius: 3px;
   -moz-border-radius: 3px;
   -webkit-border-radius: 3px;
 }
@@ -173,6 +216,7 @@ td.calendar_selected {
 }
 
 .oat_winrect_container {
+  border-radius: 5px;
   -moz-border-radius: 5px;
   -webkit-border-radius: 5px;
 }
@@ -186,3 +230,138 @@ td.calendar_selected {
  	background-color: #eec;
 }
 
+/* Tabs */
+div.ODS_tabMain {
+  width: 100%;
+}
+
+div.ODS_tabs {
+  top: 0px;
+  font-size: 100%;
+  padding: 0px 0px 3px 0px;
+}
+
+div.ODS_tabContents {
+  padding: 0.5em;
+  border: 1px solid #7f94a5;
+  background-color: #EFEFEF;
+}
+
+div.ODS_tabContent {
+  border: 0px;
+  font-size: 1em;
+  padding: 6px;
+}
+
+div.ODS_tabLabel {
+  cursor: pointer;
+  display: inline;
+  font-weight: bold;
+  background-color: #b0cde4;
+  border: 1px solid #000;
+  border-bottom-width: 0px;
+  border-color: #7f94a5;
+  border-top-left-radius: 3px;
+  border-top-right-radius: 3px;
+  -moz-border-radius-topleft: 3px;
+  -moz-border-radius-topright: 3px;
+  -webkit-border-top-left-radius: 3px;
+  -webkit-border-top-right-radius: 3px;
+  padding: 2px 10px 2px 10px;
+  margin-right: 3px;
+  position: relative;
+  text-decoration: none;
+  top: 2px;
+  z-index: 100;
+}
+
+div.ODS_tabLabelActive {
+  background-color: #EFEFEF;
+  border-color: #7f94a5;
+}
+
+/* Forms */
+.ODS_formHeader {
+  font-size: 13px;
+  font-weight: bold;
+  margin: 0 0 8px 0;
+  padding: 0px 0px 3px 4px;
+  border: solid #7f94a5;
+  border-width: 1px 1px 1px 10px;
+  background-color: #B0CDE4;
+}
+
+.ODS_formFooter {
+  margin: 6px 0px;
+  text-align: center;
+  border: solid 1px #7f94a5;
+  background-color: #B0CDE4;
+  height: 20px;
+  padding-top: 0px;
+  padding-bottom: 2px;
+}
+
+.ODS_formBody {
+  font-size: 1em;
+  padding: 6px;
+  border: solid #7f94a5;
+  border-width: 1px 1px 1px 1px;
+  background-color: #EFEFEF;
+}
+
+.ODS_formBody table {
+  width: 100%;
+  background-color: #EFEFEF;
+}
+
+.ODS_formBody table td {
+  padding: 2px;
+}
+
+.ODS_formBody table th {
+  text-align: right;
+  white-space: nowrap;
+  padding: 2px 4px 2px 4px;
+}
+
+.ODS_formList {
+  width: 100%;
+  border: solid #7f94a5;
+  border-width: 1px 1px 1px 1px;
+  background-color: #fff;
+}
+
+.ODS_formList tr th {
+  text-align: center;
+  white-space: nowrap;
+  font-size: 1em;
+  font-weight: bold;
+  padding: 2px 4px 2px 4px;
+  border: solid #7f94a5;
+  background-color: #b0cde4;
+  border-width: 0px 1px 1px 0px;
+}
+
+.ODS_formList th:last-child {
+  border-width: 0px 0px 1px 0px;
+}
+
+.ODS_formList td {
+  border: solid #7f94a5;
+  border-width: 0px 0px 0px 0px;
+  padding: 2px 4px 2px 4px;
+  background-color: #FFF;
+}
+
+table.ODS_formList tbody tr:nth-child(odd) {
+  background-color:#fff;
+}
+
+table.ODS_formList tbody tr:nth-child(even) {
+  background-color:#f0f0f0;
+}
+
+/* OAT patches */
+div.oat_winms_close_b {
+  background-image: url("/ods/images/oat/MsWin_close.png");
+}
\ No newline at end of file
diff --git a/appsrc/ODS-Framework/common.js b/appsrc/ODS-Framework/common.js
index def7fb8..5dd11b2 100644
--- a/appsrc/ODS-Framework/common.js
+++ b/appsrc/ODS-Framework/common.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: common.js,v 1.13.2.43 2011/08/01 14:14:20 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -570,6 +570,25 @@ function pageFocus(tab) {
   }
 }
 
+function accountDisable(userName)
+{
+  var S = '/ods/api/user.disable?name='+encodeURIComponent($v(userName))
+        + '&sid=' + document.forms[0].elements['sid'].value
+        + '&realm=' + document.forms[0].elements['realm'].value;
+	var x = function(data) {
+    var xml = OAT.Xml.createXmlDoc(data);
+    if (!hasError(xml, false)) {
+      alert('User\'s account is disabled!');
+      if (parent) {
+			  parent.document.location = document.location.protocol + '//' + document.location.host + '/ods';
+			} else {
+			  document.location = document.location.protocol + '//' + document.location.host + '/ods';
+			}
+    }
+	}
+  OAT.AJAX.GET(S, '', x);
+}
+
 // RDF Relations
 // ---------------------------------------------------------------------------
 var rdfDialog
diff --git a/appsrc/ODS-Framework/community.vspx b/appsrc/ODS-Framework/community.vspx
index 61d7ce3..56df8a3 100644
--- a/appsrc/ODS-Framework/community.vspx
+++ b/appsrc/ODS-Framework/community.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: community.vspx,v 1.4.2.1 2010/09/20 10:15:18 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/app_inst_menu.xsl b/appsrc/ODS-Framework/comp/app_inst_menu.xsl
index cbc3ce0..13fbaca 100644
--- a/appsrc/ODS-Framework/comp/app_inst_menu.xsl
+++ b/appsrc/ODS-Framework/comp/app_inst_menu.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: app_inst_menu.xsl,v 1.6.2.1 2010/09/20 10:15:32 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/app_search.xsl b/appsrc/ODS-Framework/comp/app_search.xsl
index 4c1a3f1..b5207f8 100644
--- a/appsrc/ODS-Framework/comp/app_search.xsl
+++ b/appsrc/ODS-Framework/comp/app_search.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: app_search.xsl,v 1.4.2.1 2010/09/20 10:15:32 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/apps.xsl b/appsrc/ODS-Framework/comp/apps.xsl
index 76c1754..6a8aabb 100644
--- a/appsrc/ODS-Framework/comp/apps.xsl
+++ b/appsrc/ODS-Framework/comp/apps.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: apps.xsl,v 1.8.2.1 2010/09/20 10:15:32 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/check.xsl b/appsrc/ODS-Framework/comp/check.xsl
index 3004b50..9daed80 100644
--- a/appsrc/ODS-Framework/comp/check.xsl
+++ b/appsrc/ODS-Framework/comp/check.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: check.xsl,v 1.3.2.1 2010/09/20 10:15:32 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/check_register.xsl b/appsrc/ODS-Framework/comp/check_register.xsl
index b9dc2c7..c3ac154 100644
--- a/appsrc/ODS-Framework/comp/check_register.xsl
+++ b/appsrc/ODS-Framework/comp/check_register.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: check_register.xsl,v 1.3.2.1 2010/09/20 10:15:33 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/dashboard.xsl b/appsrc/ODS-Framework/comp/dashboard.xsl
index 94c9ca7..e353617 100644
--- a/appsrc/ODS-Framework/comp/dashboard.xsl
+++ b/appsrc/ODS-Framework/comp/dashboard.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: dashboard.xsl,v 1.39.2.9 2011/07/04 10:04:38 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -1399,7 +1399,7 @@
 
   			function generateDSLinks()
         {
-          OAT.Preferences.stylePath = '/ods/';
+          OAT.Preferences.stylePath = '/ods/oat/styles/';
           OAT.Anchor.imagePath = '/ods/images/oat/';
           OAT.Anchor.zIndex = 1001;
 
@@ -2405,16 +2405,10 @@
         </div>
         <div class="w_pane content_pane">
 <?vsp
-
   declare q_str, rc, dta, h any;
 
-  q_str := sprintf('select COUNT(*) as ALL_CNT,
-                           SUM(either(MSTATUS,0,1)) as NEW_CNT
-                      from OMAIL.WA.MESSAGES
-                      where USER_ID = %d',
-                   self.u_id);
-
-  rc := exec (q_str, null, null, vector (), 0, null, null, h);
+  q_str := 'select count (*) as ALL_CNT, sum (mod (MM_IS_READED+1,2)) as NEW_CNT from DB.DBA.MAIL_MESSAGE where MM_OWN = ?';
+  rc := exec (q_str, null, null, vector (self.u_name), 0, null, null, h);
   while (0 = exec_next (h, null, null, dta))
     {
       exec_result (dta);
diff --git a/appsrc/ODS-Framework/comp/dashboard_style.xsl b/appsrc/ODS-Framework/comp/dashboard_style.xsl
index 5d72982..cd2e8f9 100644
--- a/appsrc/ODS-Framework/comp/dashboard_style.xsl
+++ b/appsrc/ODS-Framework/comp/dashboard_style.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: dashboard_style.xsl,v 1.4.2.2 2010/09/20 10:15:33 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/dav_browser.xsl b/appsrc/ODS-Framework/comp/dav_browser.xsl
index 912f84f..e41685d 100644
--- a/appsrc/ODS-Framework/comp/dav_browser.xsl
+++ b/appsrc/ODS-Framework/comp/dav_browser.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: dav_browser.xsl,v 1.5.2.1 2010/09/20 10:15:33 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/help.xml b/appsrc/ODS-Framework/comp/help.xml
index 3189422..40295aa 100644
--- a/appsrc/ODS-Framework/comp/help.xml
+++ b/appsrc/ODS-Framework/comp/help.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" standalone="yes" ?>
 <!--
  -
- -  $Id: help.xml,v 1.4.2.1 2010/09/20 10:15:33 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/help.xsl b/appsrc/ODS-Framework/comp/help.xsl
index 668931b..1c58713 100644
--- a/appsrc/ODS-Framework/comp/help.xsl
+++ b/appsrc/ODS-Framework/comp/help.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: help.xsl,v 1.2.2.1 2010/09/20 10:15:33 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/home.xsl b/appsrc/ODS-Framework/comp/home.xsl
index 581e7fe..ec15aee 100644
--- a/appsrc/ODS-Framework/comp/home.xsl
+++ b/appsrc/ODS-Framework/comp/home.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: home.xsl,v 1.21.2.6 2010/12/20 12:27:08 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/inst.xsl b/appsrc/ODS-Framework/comp/inst.xsl
index 0b6718e..0c7813b 100644
--- a/appsrc/ODS-Framework/comp/inst.xsl
+++ b/appsrc/ODS-Framework/comp/inst.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: inst.xsl,v 1.13.2.3 2010/11/11 12:38:19 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/login.xsl b/appsrc/ODS-Framework/comp/login.xsl
index 43e4d34..05c2c98 100644
--- a/appsrc/ODS-Framework/comp/login.xsl
+++ b/appsrc/ODS-Framework/comp/login.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: login.xsl,v 1.21.2.10 2011/08/01 14:14:21 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -62,7 +62,7 @@
             <td valign="top">
               <div id="lf" class="form">
                 <div class="header">
-                  Identify Yourself <img id="lf_throbber" src="/ods/images/oat/Ajax_throbber.gif" style="float: right; margin-right: 10px; display: none" />
+                  Please identify yourself <img id="lf_throbber" src="/ods/images/oat/Ajax_throbber.gif" style="float: right; margin-right: 10px; display: none" />
                 </div>
                 <ul id="lf_tabs" class="tabs">
                   <li id="lf_tab_0" title="Digest">Digest</li>
diff --git a/appsrc/ODS-Framework/comp/make_sp.xsl b/appsrc/ODS-Framework/comp/make_sp.xsl
index 8578e12..870939f 100644
--- a/appsrc/ODS-Framework/comp/make_sp.xsl
+++ b/appsrc/ODS-Framework/comp/make_sp.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: make_sp.xsl,v 1.3.2.1 2010/09/20 10:15:33 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/map_control.js b/appsrc/ODS-Framework/comp/map_control.js
index e64ccbb..bf23a01 100644
--- a/appsrc/ODS-Framework/comp/map_control.js
+++ b/appsrc/ODS-Framework/comp/map_control.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: map_control.js,v 1.5.2.1 2010/09/20 10:15:33 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/map_control.xsl b/appsrc/ODS-Framework/comp/map_control.xsl
index 520a47e..4147bb7 100644
--- a/appsrc/ODS-Framework/comp/map_control.xsl
+++ b/appsrc/ODS-Framework/comp/map_control.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: map_control.xsl,v 1.12.2.3 2010/09/20 10:15:34 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/members.xsl b/appsrc/ODS-Framework/comp/members.xsl
index 61c0c19..781fc0b 100644
--- a/appsrc/ODS-Framework/comp/members.xsl
+++ b/appsrc/ODS-Framework/comp/members.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: members.xsl,v 1.3.2.1 2010/09/20 10:15:34 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/membership.xsl b/appsrc/ODS-Framework/comp/membership.xsl
index 0cc7a03..05c3103 100644
--- a/appsrc/ODS-Framework/comp/membership.xsl
+++ b/appsrc/ODS-Framework/comp/membership.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: membership.xsl,v 1.3.2.1 2010/09/20 10:15:34 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/ods_bar.xsl b/appsrc/ODS-Framework/comp/ods_bar.xsl
index 616f378..f794873 100644
--- a/appsrc/ODS-Framework/comp/ods_bar.xsl
+++ b/appsrc/ODS-Framework/comp/ods_bar.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: ods_bar.xsl,v 1.40.2.12 2011/03/08 13:28:18 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -236,11 +236,9 @@ if (typeof (OAT) == 'undefined')
       OAT.Loader.load(["ajax","xml"],function(){});
 
       OAT.Preferences.imagePath="<?V self.odsbar_ods_gpath ?>images/oat/";
-      OAT.Preferences.stylePath="<?V self.odsbar_ods_gpath ?>";
-
+  OAT.Preferences.stylePath="<?V self.odsbar_ods_gpath ?>oat/styles/";
       OAT.Style.include('winrect.css');
 
-
       if (typeof ODSInitArray != 'undefined')
         {
           for (var i = 0; i < ODSInitArray.length; i++)
@@ -442,7 +440,7 @@ function showSSLLink()
                    url="--self.odsbar_ods_gpath||'help.vspx'"
                    xhtml_target="_blank"
                    is-local="1"/>
-                <span id="span_ssl_link"> </span>
+                <span id="span_ssl_link">&nbsp;</span>
             <script type="text/javascript">
               <![CDATA[
                 ODSInitArray.push(function(){OAT.Loader.load(["ajax", "json"], function(){showSSLLink();});});
@@ -590,7 +588,7 @@ function showSSLLink()
  </div><!-- HD-ODS-BAR -->
  </div>
 
- <p style="font-size: 1pt;margin: 0;padding: 0;" id="ods_bar_sep"> </p>
+      <p style="font-size: 1pt;margin: 0;padding: 0;" id="ods_bar_sep">&nbsp;</p>
 
 <script  type="text/javascript">
 <![CDATA[
@@ -1020,7 +1018,7 @@ if(coalesce(self.odsbar_app_type,get_keyword ('app_type', self.odsbar_inout_arr)
 <xsl:template match="vm:odsbar_navigation_level2">
         <ul id="ods_bar_second_lvl">
           <vm:odsbar_instances_menu/>
-      <li> </li>
+      <li>&nbsp;</li>
         </ul>
 </xsl:template>
 
diff --git a/appsrc/ODS-Framework/comp/page.xsl b/appsrc/ODS-Framework/comp/page.xsl
index f2d89cd..62a9d3b 100644
--- a/appsrc/ODS-Framework/comp/page.xsl
+++ b/appsrc/ODS-Framework/comp/page.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: page.xsl,v 1.34.2.18 2011/05/02 14:16:04 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/register.xsl b/appsrc/ODS-Framework/comp/register.xsl
index 88ebd9a..effb9b8 100644
--- a/appsrc/ODS-Framework/comp/register.xsl
+++ b/appsrc/ODS-Framework/comp/register.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: register.xsl,v 1.31.2.19 2011/08/01 14:14:21 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/render.xsl b/appsrc/ODS-Framework/comp/render.xsl
index 5cb52b7..66b2fdd 100644
--- a/appsrc/ODS-Framework/comp/render.xsl
+++ b/appsrc/ODS-Framework/comp/render.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: render.xsl,v 1.3.2.1 2010/09/20 10:15:34 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/rss2atom.xsl b/appsrc/ODS-Framework/comp/rss2atom.xsl
index 3a1b0e5..335ab15 100644
--- a/appsrc/ODS-Framework/comp/rss2atom.xsl
+++ b/appsrc/ODS-Framework/comp/rss2atom.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom.xsl,v 1.6.2.1 2010/09/20 10:15:34 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/rss2rdf.xsl b/appsrc/ODS-Framework/comp/rss2rdf.xsl
index 83fedad..8b7da5f 100644
--- a/appsrc/ODS-Framework/comp/rss2rdf.xsl
+++ b/appsrc/ODS-Framework/comp/rss2rdf.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2rdf.xsl,v 1.2.2.1 2010/09/20 10:15:34 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/rss2xbel.xsl b/appsrc/ODS-Framework/comp/rss2xbel.xsl
index d36cf89..4fc1d71 100644
--- a/appsrc/ODS-Framework/comp/rss2xbel.xsl
+++ b/appsrc/ODS-Framework/comp/rss2xbel.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2xbel.xsl,v 1.2.2.1 2010/09/20 10:15:34 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/services.xsl b/appsrc/ODS-Framework/comp/services.xsl
index db9479e..770e2f5 100644
--- a/appsrc/ODS-Framework/comp/services.xsl
+++ b/appsrc/ODS-Framework/comp/services.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: services.xsl,v 1.7.2.2 2010/09/20 10:15:34 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/settings.xsl b/appsrc/ODS-Framework/comp/settings.xsl
index 7f56644..bce5315 100644
--- a/appsrc/ODS-Framework/comp/settings.xsl
+++ b/appsrc/ODS-Framework/comp/settings.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: settings.xsl,v 1.4.2.1 2010/09/20 10:15:34 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -599,7 +599,7 @@
                 self.reglastname.ufl_failed := 1;
               }
               if(length(self.reguid.ufl_value) < 1 or length(self.reguid.ufl_value) > 20) {
-                self.reguid.ufl_error := 'Login name cannot be empty or longer then 20 chars';
+                self.reguid.ufl_error := 'Login name cannot be empty or longer than 20 chars';
                 self.vc_is_valid := 0;
                 self.reguid.ufl_failed := 1;
               }
diff --git a/appsrc/ODS-Framework/comp/site_home.xsl b/appsrc/ODS-Framework/comp/site_home.xsl
index 03bfb0f..009a610 100644
--- a/appsrc/ODS-Framework/comp/site_home.xsl
+++ b/appsrc/ODS-Framework/comp/site_home.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: site_home.xsl,v 1.4.2.1 2010/09/20 10:15:35 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/store.xsl b/appsrc/ODS-Framework/comp/store.xsl
index 760d25d..7be192f 100644
--- a/appsrc/ODS-Framework/comp/store.xsl
+++ b/appsrc/ODS-Framework/comp/store.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: store.xsl,v 1.3.2.1 2010/09/20 10:15:35 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/comp/tagging.xsl b/appsrc/ODS-Framework/comp/tagging.xsl
index e60f8e7..9d4af03 100644
--- a/appsrc/ODS-Framework/comp/tagging.xsl
+++ b/appsrc/ODS-Framework/comp/tagging.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: tagging.xsl,v 1.9.2.2 2010/09/20 10:15:35 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/conf.vspx b/appsrc/ODS-Framework/conf.vspx
index 5d551db..d5f331c 100644
--- a/appsrc/ODS-Framework/conf.vspx
+++ b/appsrc/ODS-Framework/conf.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: conf.vspx,v 1.5.2.1 2010/09/20 10:15:18 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/conf_app.vspx b/appsrc/ODS-Framework/conf_app.vspx
index 29d9e27..f78439a 100644
--- a/appsrc/ODS-Framework/conf_app.vspx
+++ b/appsrc/ODS-Framework/conf_app.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: conf_app.vspx,v 1.5.2.1 2010/09/20 10:15:18 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/contact.html b/appsrc/ODS-Framework/contact.html
index 9e386b3..223fc89 100644
--- a/appsrc/ODS-Framework/contact.html
+++ b/appsrc/ODS-Framework/contact.html
@@ -1,12 +1,12 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
  -
- -  $Id: contact.html,v 1.2.2.1 2010/09/20 10:15:18 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/dashboard.sql b/appsrc/ODS-Framework/dashboard.sql
index cf59f92..206f3be 100644
--- a/appsrc/ODS-Framework/dashboard.sql
+++ b/appsrc/ODS-Framework/dashboard.sql
@@ -1,12 +1,12 @@
 --
---  $Id: dashboard.sql,v 1.13.2.3 2010/11/09 20:18:21 source Exp $
+--  $Id$
 --
 --  WA Dashboard support
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/dav.css b/appsrc/ODS-Framework/dav.css
index 6af0a52..5718a53 100644
--- a/appsrc/ODS-Framework/dav.css
+++ b/appsrc/ODS-Framework/dav.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: dav.css,v 1.3.2.1 2010/09/20 10:15:19 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/default.css b/appsrc/ODS-Framework/default.css
index b2907f3..5c4e29d 100644
--- a/appsrc/ODS-Framework/default.css
+++ b/appsrc/ODS-Framework/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.26.2.20 2011/08/03 11:42:29 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -863,7 +863,6 @@ div.contents {
   background-color: #EFEFEF;
   border: 1px solid #7F94A5;
   padding: 0.5em;
-  margin-top: -1px;
 }
 
 /* ComboList */
@@ -925,6 +924,7 @@ td.calendar_selected {
 a.img_button {
   background: none repeat scroll 0 0 #99B3C5;
   border: 1px solid #7F94A5;
+  border-radius: 5px;
   -moz-border-radius: 5px;
   -webkit-border-radius: 5px;
   color: #FFFFFF;
@@ -945,6 +945,7 @@ a.img_button img {
 span.button {
   background: none repeat scroll 0 0 #99B3C5;
   border: 1px solid #7F94A5;
+  border-radius: 5px;
   -moz-border-radius: 5px;
   -webkit-border-radius: 5px;
   color: #FFFFFF;
@@ -971,6 +972,7 @@ img.button {
   border-color: #7f94a5;
   background: #99b3c5;
 	cursor: pointer;
+  border-radius: 3px;
   -moz-border-radius: 3px;
   -webkit-border-radius: 3px;
 }
@@ -1023,7 +1025,7 @@ table.form td {
 .tabs {
 	margin-top: 1.5em;
 	list-style-type: none;
-	padding-bottom: 1px;
+	padding-bottom: 0px;
 	padding-left: 0.5em;
 }
 
@@ -1035,6 +1037,8 @@ table.form td {
   border-top: 1px solid #aaa;
   border-left: 1px solid #aaa;
   border-right: 1px solid #aaa;
+  border-top-left-radius: 3px;
+  border-top-right-radius: 3px;
   -moz-border-radius-topleft: 3px;
   -moz-border-radius-topright: 3px;
   -webkit-border-top-left-radius: 3px;
diff --git a/appsrc/ODS-Framework/delete_inst.vspx b/appsrc/ODS-Framework/delete_inst.vspx
index ca9416d..47ae5df 100644
--- a/appsrc/ODS-Framework/delete_inst.vspx
+++ b/appsrc/ODS-Framework/delete_inst.vspx
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: delete_inst.vspx,v 1.9.2.1 2010/09/20 10:15:19 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -34,32 +34,35 @@
     <v:on-init>
       <![CDATA[
         declare apps, v, i any;
+
         if (self.iid is not null)
+        {
+          select WAI_MEMBER_MODEL, WAI_IS_PUBLIC, WAI_MEMBERS_VISIBLE, WAI_INST, WAI_NAME, WAI_DESCRIPTION, WAI_TYPE_NAME
+            into self.imodel, self.is_public, self.is_visible, self.inst, self.iname, self.idesc, self.wa_type
+            from DB.DBA.WA_INSTANCE
+           where WAI_ID = self.iid;
+          self.instance_descr := self.idesc;
+          self.ihome := self.inst.wa_home_url();
+        }
+        v := null;
+        if (self.apps_ids is not null)
+        {
+          apps := split_and_decode (self.apps_ids, 0, '\0\0,');
+          v := make_array (length (apps), 'any');
+          i := 0;
+          foreach (any id in apps) do
           {
-	    select WAI_MEMBER_MODEL, WAI_IS_PUBLIC, WAI_MEMBERS_VISIBLE, WAI_INST, WAI_NAME, WAI_DESCRIPTION, WAI_TYPE_NAME into
-	    self.imodel, self.is_public, self.is_visible, self.inst, self.iname, self.idesc, self.wa_type from
-	    DB.DBA.WA_INSTANCE where WAI_ID = self.iid;
-	    self.instance_descr := self.idesc;
-	    self.ihome := self.inst.wa_home_url();
-	  }
-	v := null;
-	if (self.apps_ids is not null)
-	  {
-	    apps := split_and_decode (self.apps_ids, 0, '\0\0,');
-	    v := make_array (length (apps), 'any');
-	    i := 0;
-            foreach (any id in apps) do
-	      {
-                v[i] := atoi (id);
-	        i := i + 1;
-	      }
-	  }
-	self.apps := v;
+            v[i] := atoi (id);
+            i := i + 1;
+          }
+        }
+        self.apps := v;
       ]]>
     </v:on-init>
     <v:after-data-bind>
       <![CDATA[
         declare freeze varchar;
+
         freeze := (select WAI_IS_FROZEN from DB.DBA.WA_INSTANCE where WAI_ID = self.iid);
         if (freeze = 1 and not wa_user_is_dba (self.u_name, self.u_group))
         {
@@ -98,80 +101,107 @@
         <div class="box">
           <v:form type="simple" method="POST" name="eform1">
             <h3>You are about to delete following application(s). This operation cannot be undone. Please confirm.</h3>
-	       <?vsp if (self.iid is not null) { ?>
-	    <h2>Application Details</h2>
-	    <?vsp } else {
-	    declare wai_nam varchar;
-	    foreach (any v in self.apps) do
-	       {
-	         wai_nam := (select WAI_NAME from WA_INSTANCE where WAI_ID = v);
-	         http (wai_nam); http ('<br />');
-	       }
-	     } ?>
-	     <table  class="ctl_grp">
-	       <?vsp if (self.iid is not null) { ?>
-	       <vm:instance-settings readonly="yes"/>
-	       <?vsp } ?>
-	       <tr>
-		 <td colspan="2">
-	    <span class="fm_ctl_btn">
-                  <v:button action="simple" name="cancel1" value="Cancel">
-                    <v:on-post>
-                      <![CDATA[
-                        if (self.redir = 'security')
-                          self.vc_redirect ('security.vspx');
-                        else
-                          self.vc_redirect ('services.vspx');
-                      ]]>
-                    </v:on-post>
-                  </v:button>
-                  <v:button action="simple" name="accept1" value="Delete">
-                    <v:on-post>
-                      <![CDATA[
-                        declare inst web_app;
-                        declare h, id any;
-			declare freeze varchar;
+            <?vsp
+              if (self.iid is not null)
+              {
+            ?>
+            <h2>Application Details</h2>
+            <?vsp
+              }
+              else
+              {
+                declare wai_nam varchar;
+                foreach (any v in self.apps) do
+                {
+                  wai_nam := (select WAI_NAME from WA_INSTANCE where WAI_ID = v);
+                  http (wai_nam); http ('<br />');
+                }
+              }
+            ?>
+            <table  class="ctl_grp">
+              <?vsp
+                if (self.iid is not null)
+                {
+              ?>
+              <vm:instance-settings readonly="yes"/>
+              <?vsp
+                }
+              ?>
+              <?vsp
+                if (self.wa_type = 'oMail')
+                {
+              ?>
+              <tr>
+                <th>
+                  Do you like to delete a content of mailboxes?
+                </th>
+                <td>
+                  <v:check-box name="iDeleteAll" xhtml_id="iDeleteAll" value="1" />
+                </td>
+              </tr>
+              <?vsp
+                }
+              ?>
+              <tr>
+                <td colspan="2">
+                  <span class="fm_ctl_btn">
+                    <v:button action="simple" name="cancel1" value="Cancel">
+                      <v:on-post>
+                        <![CDATA[
+                          if (self.redir = 'security')
+                            self.vc_redirect ('security.vspx');
+                          else
+                            self.vc_redirect ('services.vspx');
+                        ]]>
+                      </v:on-post>
+                    </v:button>
+                    <v:button action="simple" name="accept1" value="Delete">
+                      <v:on-post>
+                        <![CDATA[
+                          declare inst web_app;
+                          declare h, id any;
+                          declare freeze varchar;
 
-			if (self.apps is null)
-			  self.apps := vector (self.iid);
+                          if (self.apps is null)
+                            self.apps := vector (self.iid);
 
-			foreach (any iid in self.apps) do
-			  {
-			    declare exit handler for not found {
+                          foreach (any iid in self.apps) do
+                          {
+                            declare exit handler for not found {
                               rollback work;
                               signal ('22023', 'No such application');
-			    };
+                            };
                             select WAI_IS_FROZEN, WAI_INST into freeze, inst from DB.DBA.WA_INSTANCE where WAI_ID = iid;
-
-			    if (freeze = 1 and not wa_user_is_dba (self.u_name, self.u_group))
-			    {
-			      self.vc_error_message := 'Application is frozen';
-			      self.vc_is_valid := 0;
-			      goto done;
-			    }
-			    h := udt_implements_method(inst, 'wa_drop_instance');
-			    declare exit handler for sqlstate '*'
-			    {
-			      self.vc_error_message := WA_RETRIEVE_MESSAGE(concat(__SQL_STATE,' ',__SQL_MESSAGE));
-			      self.vc_is_valid := 0;
-			      rollback work;
-			      return;
-			    };
-			    commit work;
-			    id := call (h) (inst);
-			  }
+                            if (freeze = 1 and not wa_user_is_dba (self.u_name, self.u_group))
+                            {
+                              self.vc_error_message := 'Application is frozen';
+                              self.vc_is_valid := 0;
+                              goto done;
+                            }
+                            h := udt_implements_method(inst, 'wa_drop_instance');
+                            declare exit handler for sqlstate '*'
+                            {
+                              self.vc_error_message := WA_RETRIEVE_MESSAGE (concat (__SQL_STATE, ' ', __SQL_MESSAGE));
+                              self.vc_is_valid := 0;
+                              rollback work;
+                              return;
+                            };
+                            commit work;
+                            connection_set ('deleteAll', self.iDeleteAll.ufl_selected);
+                            id := call (h) (inst);
+                          }
                         done:;
-                        if (self.redir = 'security')
-                          self.vc_redirect ('security.vspx');
-                        else
-                          self.vc_redirect ('services.vspx');
-                      ]]>
-                    </v:on-post>
-                  </v:button>
-		</span>
-	      </td>
-	    </tr>
-	      </table>
+                          if (self.redir = 'security')
+                            self.vc_redirect ('security.vspx');
+                          else
+                            self.vc_redirect ('services.vspx');
+                        ]]>
+                      </v:on-post>
+                    </v:button>
+                  </span>
+                </td>
+              </tr>
+            </table>
           </v:form>
         </div>
       </vm:body>
diff --git a/appsrc/ODS-Framework/drop.sql b/appsrc/ODS-Framework/drop.sql
index 60b5a04..6558385 100644
--- a/appsrc/ODS-Framework/drop.sql
+++ b/appsrc/ODS-Framework/drop.sql
@@ -1,10 +1,10 @@
 --
---  $Id: drop.sql,v 1.4.2.6 2010/09/20 10:15:19 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -28,6 +28,7 @@ vhost_remove (lpath=>'/php/users');
 vhost_remove (lpath=>'/jsp/users');
 vhost_remove (lpath=>'/ruby/users');
 vhost_remove (lpath=>'/vsp/users');
+vhost_remove (lpath=>'/ods/webid');
 
 drop procedure WA_GET_EMAIL_TEMPLATE;
 drop procedure WA_SET_EMAIL_TEMPLATE;
diff --git a/appsrc/ODS-Framework/drop_sioc_proc.sql b/appsrc/ODS-Framework/drop_sioc_proc.sql
index 9b34c1d..5dc2564 100644
--- a/appsrc/ODS-Framework/drop_sioc_proc.sql
+++ b/appsrc/ODS-Framework/drop_sioc_proc.sql
@@ -1,14 +1,14 @@
 --
 --  drop_sioc_proc
 --
---  $Id: drop_sioc_proc.sql,v 1.1.2.1 2010/09/20 10:15:19 source Exp $
+--  $Id$
 --
 --  script to clean the old variant of the ODS RDF data support : triggers over the apps
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/drop_sioc_trig.sql b/appsrc/ODS-Framework/drop_sioc_trig.sql
index bba8e00..6594191 100644
--- a/appsrc/ODS-Framework/drop_sioc_trig.sql
+++ b/appsrc/ODS-Framework/drop_sioc_trig.sql
@@ -1,14 +1,14 @@
 --
 --  sioc.sql
 --
---  $Id: drop_sioc_trig.sql,v 1.1.2.1 2010/09/20 10:15:19 source Exp $
+--  $Id$
 --
 --  script to clean the old variant of the ODS RDF data support : triggers over the apps
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/dropbox_access.vsp b/appsrc/ODS-Framework/dropbox_access.vsp
new file mode 100644
index 0000000..4a80595
--- /dev/null
+++ b/appsrc/ODS-Framework/dropbox_access.vsp
@@ -0,0 +1,59 @@
+<?vsp
+  declare url, sid, token, oauth_token, return_url, display_name, email varchar;
+  declare result, resultHeader, json any;
+
+  token := ODS.ODS_API.get_oauth_tok ('Dropbox API');
+  if ({?'oauth_token'} is not null)
+  {
+    declare header, auth any;
+
+    sid := {?'sid'};
+    url := OAUTH..sign_request ('GET', 'https://api.dropbox.com/1/oauth/access_token', '',	token, sid, 1);
+    -- result := http_get (url);
+    result := http_client_ext (url=>url, http_method=>'GET', headers=>resultHeader, n_redirects=>15);
+    sid := OAUTH..parse_response (sid, token, result);
+
+    url := OAUTH..sign_request ('GET', 'https://api.dropbox.com/1/account/info', '', token, sid, 1);
+    result := http_client_ext (url=>url, http_method=>'GET', headers=>resultHeader, n_redirects=>15);
+    result := subseq (ODS..json2obj(result), 2);
+    display_name := get_keyword ('display_name', result);
+    email := get_keyword ('email', result);
+    -- person := http_get (url);
+  }
+  else
+  {
+    sid := md5 (datestring (now ()));
+    return_url := sprintf ('http://%{WSHost}s%s?sid=%U', http_path(), sid);
+    url := OAUTH..sign_request ('GET', 'https://api.dropbox.com/1/oauth/request_token', '', token, null, 1);
+    result := http_client_ext (url=>url, http_method=>'GET', headers=>resultHeader, n_redirects=>15);
+    sid := OAUTH..parse_response (sid, token, result);
+
+    OAUTH..set_session_data (sid, params);
+    oauth_token := OAUTH..get_auth_token (sid);
+    url := sprintf ('https://www.dropbox.com/1/oauth/authorize?oauth_token=%U&oauth_callback=%U', oauth_token, return_url);
+    http_status_set (302);
+    http_header (sprintf ('Location: %s\r\n', url));
+    return;
+  }
+?>
+<html>
+  <head>
+  </head>
+  <body>
+    <?vsp
+    if ({?'sid'} is not null)
+    {
+    ?>
+    <script type="text/javascript">
+      if (window.opener && window.opener.open && !window.opener.closed) {
+        window.opener.ODRIVE.dropboxParams('<?V sid ?>', '<?V display_name ?>', '<?V email ?>');
+      } else {
+        alert ('Opener not found');
+      }
+      window.close();
+    </script>
+    <?vsp
+    }
+    ?>
+  </body>
+</html>
diff --git a/appsrc/ODS-Framework/edit_inst.vspx b/appsrc/ODS-Framework/edit_inst.vspx
index 3ed11d8..5d9933e 100644
--- a/appsrc/ODS-Framework/edit_inst.vspx
+++ b/appsrc/ODS-Framework/edit_inst.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: edit_inst.vspx,v 1.14.2.2 2010/09/20 10:15:19 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -231,7 +231,7 @@
                           };
 
                           update WA_INSTANCE
-                             set WAI_MEMBER_MODEL = self.imodel1.ufl_value,
+                             set WAI_MEMBER_MODEL = atoi (self.imodel1.ufl_value),
                                  WAI_IS_PUBLIC = self.is_public,
                                  WAI_MEMBERS_VISIBLE = self.is_visible,
                                  WAI_INST = inst,
diff --git a/appsrc/ODS-Framework/edit_interests_popup.vspx b/appsrc/ODS-Framework/edit_interests_popup.vspx
index e8b7c48..2c77e71 100644
--- a/appsrc/ODS-Framework/edit_interests_popup.vspx
+++ b/appsrc/ODS-Framework/edit_interests_popup.vspx
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: edit_interests_popup.vspx,v 1.2.2.1 2010/09/20 10:15:19 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/edit_rule.vspx b/appsrc/ODS-Framework/edit_rule.vspx
index 1da184a..240de40 100644
--- a/appsrc/ODS-Framework/edit_rule.vspx
+++ b/appsrc/ODS-Framework/edit_rule.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: edit_rule.vspx,v 1.4.2.1 2010/09/20 10:15:19 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/error.vspx b/appsrc/ODS-Framework/error.vspx
index 7e72df3..a7820f1 100644
--- a/appsrc/ODS-Framework/error.vspx
+++ b/appsrc/ODS-Framework/error.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: error.vspx,v 1.5.2.1 2010/09/20 10:15:19 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/facebook.sql b/appsrc/ODS-Framework/facebook.sql
index b5954b8..c90c934 100644
--- a/appsrc/ODS-Framework/facebook.sql
+++ b/appsrc/ODS-Framework/facebook.sql
@@ -1,10 +1,10 @@
 --
---  $Id: facebook.sql,v 1.14.2.8 2011/05/02 14:16:01 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -186,8 +186,9 @@ create method post_request(
     post_string:=string_output_string(aResult);
 
      declare ret_header, rq_header any;
-  rq_header := 'Content-type: application/x-www-form-urlencoded \r\nUser-Agent: Facebook API VSP Client 1.1';
 
+  commit work;
+  rq_header := 'Content-type: application/x-www-form-urlencoded \r\nUser-Agent: Facebook API VSP Client 1.1';
     _result:=http_get ('http://api.facebook.com/restserver.php', ret_header, 'POST', rq_header, post_string); --'127.0.0.1:8888'
      return _result;
 }
diff --git a/appsrc/ODS-Framework/facebook_helper.vsp b/appsrc/ODS-Framework/facebook_helper.vsp
index ec0487a..04d16f4 100644
--- a/appsrc/ODS-Framework/facebook_helper.vsp
+++ b/appsrc/ODS-Framework/facebook_helper.vsp
@@ -1,14 +1,14 @@
 <?vsp
 --   search_ajax.vsp
 --
---   $Id: facebook_helper.vsp,v 1.6.2.1 2010/09/20 10:15:20 source Exp $
+--   $Id$
 --
 --   AJAX Handler for the google map control
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/faq.html b/appsrc/ODS-Framework/faq.html
index 5dda372..f5b020d 100644
--- a/appsrc/ODS-Framework/faq.html
+++ b/appsrc/ODS-Framework/faq.html
@@ -1,12 +1,12 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
  -
- -  $Id: faq.html,v 1.6.2.1 2010/09/20 10:15:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/fb_front.vspx b/appsrc/ODS-Framework/fb_front.vspx
index c102b5b..6e0db24 100644
--- a/appsrc/ODS-Framework/fb_front.vspx
+++ b/appsrc/ODS-Framework/fb_front.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: fb_front.vspx,v 1.15.2.8 2010/09/20 10:15:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/fb_popup.vspx b/appsrc/ODS-Framework/fb_popup.vspx
index a6e82c1..a78de6e 100644
--- a/appsrc/ODS-Framework/fb_popup.vspx
+++ b/appsrc/ODS-Framework/fb_popup.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: fb_popup.vspx,v 1.2.2.1 2010/09/20 10:15:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/foaf.xml b/appsrc/ODS-Framework/foaf.xml
index a75c1ed..c38eb77 100644
--- a/appsrc/ODS-Framework/foaf.xml
+++ b/appsrc/ODS-Framework/foaf.xml
@@ -1,12 +1,12 @@
 <?xml version ='1.0' encoding='UTF-8'?>
 <!--
  -
- -  $Id: foaf.xml,v 1.3.2.1 2010/09/20 10:15:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/foaf.xsl b/appsrc/ODS-Framework/foaf.xsl
index cea3066..35876c9 100644
--- a/appsrc/ODS-Framework/foaf.xsl
+++ b/appsrc/ODS-Framework/foaf.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: foaf.xsl,v 1.7.2.1 2010/09/20 10:15:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/freeze.vspx b/appsrc/ODS-Framework/freeze.vspx
index cf08978..dafe21e 100644
--- a/appsrc/ODS-Framework/freeze.vspx
+++ b/appsrc/ODS-Framework/freeze.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: freeze.vspx,v 1.4.2.1 2010/09/20 10:15:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/gdata.sql b/appsrc/ODS-Framework/gdata.sql
index 57e2a76..0c3c8ee 100644
--- a/appsrc/ODS-Framework/gdata.sql
+++ b/appsrc/ODS-Framework/gdata.sql
@@ -1,13 +1,13 @@
 --
 --
---  $Id: gdata.sql,v 1.36.2.1 2010/09/20 10:15:20 source Exp $
+--  $Id$
 --
 --  Atom publishing protocol support.
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/generic.vspx b/appsrc/ODS-Framework/generic.vspx
index 5b2428b..c351016 100644
--- a/appsrc/ODS-Framework/generic.vspx
+++ b/appsrc/ODS-Framework/generic.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: generic.vspx,v 1.5.2.1 2010/09/20 10:15:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/get_tags_popup.vspx b/appsrc/ODS-Framework/get_tags_popup.vspx
index 133448c..f54af0b 100644
--- a/appsrc/ODS-Framework/get_tags_popup.vspx
+++ b/appsrc/ODS-Framework/get_tags_popup.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: get_tags_popup.vspx,v 1.5.2.1 2010/09/20 10:15:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/google_access.vsp b/appsrc/ODS-Framework/google_access.vsp
new file mode 100644
index 0000000..bd7daeb
--- /dev/null
+++ b/appsrc/ODS-Framework/google_access.vsp
@@ -0,0 +1,45 @@
+<?vsp
+  declare _params, _client_id, _client_secret, _return_url, _code, _url, _reqHeader, _retHeader, _body, _retValue, _json, _xml any;
+  declare _display_name, _email varchar;
+
+  _code := get_keyword ('code', params, '');
+  _json := '{\"error\" : \"invalid_request\"}';
+  if (_code <> '')
+  {
+    _client_id := (select a_key from OAUTH..APP_REG where a_name = 'Google API' and a_owner = 0);
+    _client_secret := (select a_secret from OAUTH..APP_REG where a_name = 'Google API' and a_owner = 0);
+    _return_url := sprintf ('http://%{WSHost}s/ods/google_access.vsp', http_path());
+    _url := 'https://accounts.google.com/o/oauth2/token';
+    _reqHeader := 'Content-Type: application/x-www-form-urlencoded\r\n';
+    _body := sprintf ('code=%U&client_id=%U&client_secret=%U&redirect_uri=%U&grant_type=%U', _code, _client_id, _client_secret, _return_url, 'authorization_code');
+    _retValue := http_client (url=>_url, http_method=>'POST', http_headers=>_reqHeader, body=>_body, n_redirects=>15);
+    _json := replace (_retValue, '\n', '\\n');
+
+    -- get owner info
+    _params := subseq (ODS..json2obj (_retValue), 2);
+    _url := sprintf ('https://docs.google.com/feeds/default/private/full/%U/contents/-/folder', 'folder:root');
+    _reqHeader := sprintf ('GData-Version: 3.0\r\nAuthorization: %s %s\r\n', get_keyword ('token_type', _params), get_keyword ('access_token', _params));
+    _retHeader := null;
+    _retValue := http_client_ext (url=>_url, http_method=>'GET', http_headers=>_reqHeader, headers =>_retHeader, n_redirects=>15);
+    if (not ((_retHeader[0] like 'HTTP/1._ 4__ %') or (_retHeader[0] like 'HTTP/1._ 5__ %')))
+    {
+      _xml := xtree_doc (_retValue);
+      _display_name := cast (xpath_eval ('[ xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005" ] /feed/author/name', _xml) as varchar);
+      _email := cast (xpath_eval ('[ xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005" ] /feed/author/email', _xml) as varchar);
+    }
+  }
+?>
+<html>
+  <head>
+  </head>
+  <body>
+    <script type="text/javascript">
+      if (window.opener && window.opener.open && !window.opener.closed) {
+        window.opener.ODRIVE.oauthParams('<?vsp http (_json); ?>', '<?V _display_name ?>', '<?V _email ?>');
+      } else {
+        alert ('Opener not found');
+      }
+      window.close();
+    </script>
+  </body>
+</html>
diff --git a/appsrc/ODS-Framework/gtags.vspx b/appsrc/ODS-Framework/gtags.vspx
index 27871e5..870c298 100644
--- a/appsrc/ODS-Framework/gtags.vspx
+++ b/appsrc/ODS-Framework/gtags.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: gtags.vspx,v 1.6.2.1 2010/09/20 10:15:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/help.vspx b/appsrc/ODS-Framework/help.vspx
index 5e97707..13131c5 100644
--- a/appsrc/ODS-Framework/help.vspx
+++ b/appsrc/ODS-Framework/help.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: help.vspx,v 1.5.2.1 2010/09/20 10:15:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/home.vspx b/appsrc/ODS-Framework/home.vspx
index d84c5d9..e1dd2ab 100644
--- a/appsrc/ODS-Framework/home.vspx
+++ b/appsrc/ODS-Framework/home.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: home.vspx,v 1.16.2.2 2010/09/20 10:15:21 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/home.xsl b/appsrc/ODS-Framework/home.xsl
index 67913da..2babea7 100644
--- a/appsrc/ODS-Framework/home.xsl
+++ b/appsrc/ODS-Framework/home.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: home.xsl,v 1.3.2.1 2010/09/20 10:15:21 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/hosted_services.sql b/appsrc/ODS-Framework/hosted_services.sql
index e0eac68..bea0edf 100644
--- a/appsrc/ODS-Framework/hosted_services.sql
+++ b/appsrc/ODS-Framework/hosted_services.sql
@@ -1,10 +1,10 @@
 --
---  $Id: hosted_services.sql,v 1.79.2.44 2011/08/01 14:14:20 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -485,6 +485,21 @@ wa_member_upgrade()
 drop procedure wa_member_upgrade
 ;
 
+create procedure wa_instance_upgrade() {
+
+  if (registry_get ('__wa_instance_upgrade') = 'done2')
+    return;
+
+  delete from DB.DBA.WA_INSTANCE where wai_name not in (select WAM_INST from  DB.DBA.WA_MEMBER);
+  registry_set ('__wa_instance_upgrade', 'done2');
+}
+;
+
+wa_instance_upgrade()
+;
+drop procedure wa_instance_upgrade
+;
+
 
 wa_exec_no_error(
   'CREATE TABLE WA_MEMBER_INSTCOUNT
@@ -577,11 +592,11 @@ create procedure wa_groups_acl_update () {
 wa_groups_acl_update()
 ;
 
-create procedure wa_acl_params (
+create procedure wa_aci_params (
   in params any)
 {
-  declare N, M integer;
-  declare aclNo, retValue, V any;
+  declare N, M, N2, M2 integer;
+  declare aclNo, aclNo2, retValue, V, V2, T any;
 
   M := 1;
   retValue := vector ();
@@ -590,22 +605,112 @@ create procedure wa_acl_params (
     if (params[N] like 's_fld_2_%')
     {
       aclNo := replace (params[N], 's_fld_2_', '');
+      if (aclNo = cast (atoi (replace (params[N], 's_fld_2_', '')) as varchar))
+      {
+        if (get_keyword ('s_fld_1_' || aclNo, params) = 'advanced')
+        {
+          M2 := 1;
+          T := vector ();
+          for (N2 := 0; N2 < length (params); N2 := N2 + 2)
+          {
+            if (params[N2] like (params[N] || '_fld_1_%'))
+            {
+              aclNo2 := replace (params[N2], params[N] || '_fld_1_', '');
+              V2 := vector (M2,
+                            trim (get_keyword (params[N] || '_fld_1_' || aclNo2, params)),
+                            trim (get_keyword (params[N] || '_fld_2_' || aclNo2, params)),
+                            trim (get_keyword (params[N] || '_fld_3_' || aclNo2, params)),
+                            trim (get_keyword (params[N] || '_fld_0_' || aclNo2, params, ''))
+                           );
+              T := vector_concat (T, vector (V2));
+              M2 := M2 + 1;
+            }
+          }
+          if (length (T) = 0)
+            goto _skip;
+        }
+        else
+        {
+          T := trim (params[N+1]);
+          if (is_empty_or_null (T))
+            goto _skip;
+        }
       V := vector (M,
-                   trim (params[N+1]),
-                   get_keyword ('s_fld_1_' || aclNo, params, 'person'),
+                     T,
+                     get_keyword ('s_fld_1_' || aclNo, params),
                    atoi (get_keyword ('s_fld_3_' || aclNo || '_r', params, '0')),
                    atoi (get_keyword ('s_fld_3_' || aclNo || '_w', params, '0')),
                    atoi (get_keyword ('s_fld_3_' || aclNo || '_x', params, '0'))
                   );
       retValue := vector_concat (retValue, vector (V));
       M := M + 1;
+      _skip:;
+      }
     }
   }
   return retValue;
 }
 ;
 
+create procedure wa_aci_lines (
+  in _acl any,
+  in _mode varchar := 'view',
+  in _execute varchar := 'false')
+{
+  declare N integer;
+
+  for (N := 0; N < length (_acl); N := N + 1)
+  {
+    if (_mode <> 'view')
+    {
+      http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createRow("s", null, {fld_1: {mode: 50, value: "%s", onchange: function(){TBL.changeCell50(this);}}, fld_2: {mode: 51, form: "F1", tdCssText: "white-space: nowrap;", className: "_validate_ _webid_", value: %s, readOnly: %s, imgCssText: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], execute: \'%s\', tdCssText: "width: 1%%; text-align: center;"}});});', _acl[N][2], ODS..obj2json (_acl[N][1]), case when _acl[N][2] = 'public' then 'true' else 'false' end, case when _acl[N][2] = 'public' then 'display: none;' else '' end, _acl[N][3], _acl[N][4], _acl[N][5], _execute));
+    } else {
+      http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("s", {fld_1: {mode: 50, value: "%s"}, fld_2: {mode: 51, value: %s}, fld_3: {mode: 52, value: [%d, %d, %d], execute: \'%s\', tdCssText: "width: 1%%; white-space: nowrap; text-align: center;"}, fld_4: {value: "Inherited"}});});', _acl[N][2], ODS..obj2json (_acl[N][1]), _acl[N][3], _acl[N][4], _acl[N][5], _execute));
+    }
+  }
+}
+;
+
 wa_exec_no_error_log(
+'create table WA_PRIVATE_GRAPHS
+ (
+   WAPG_GRAPH varchar,
+   WAPG_TYPE varchar,
+   WAPG_ID any,
+   WAPG_ID2 any,
+
+   primary key (WAPG_GRAPH, WAPG_TYPE, WAPG_ID, WAPG_ID2)
+ )'
+)
+;
+
+create procedure wa_private_graph_add (
+  in _graph varchar,
+  in _type varchar,
+  in _id any,
+  in _id2 any := 0)
+{
+  insert soft WA_PRIVATE_GRAPHS (WAPG_GRAPH, WAPG_TYPE, WAPG_ID, WAPG_ID2)
+    values (_graph, _type, _id, _id2);
+}
+;
+
+create procedure wa_private_graph_remove (
+  in _graph varchar,
+  in _type varchar,
+  in _id any,
+  in _id2 any := 0)
+{
+  delete
+    from WA_PRIVATE_GRAPHS
+   where WAPG_GRAPH = _graph
+     and WAPG_TYPE = _type
+     and WAPG_ID = _id
+     and WAPG_ID2 = _id2;
+}
+;
+
+wa_exec_no_error_log (
 'create table WA_INVITATIONS
  (
    WI_U_ID     int,		-- U_ID
@@ -1732,12 +1837,24 @@ create procedure wa_vad_check (in pname varchar)
 }
 ;
 
+create trigger SYS_USERS_WA_AU after update on "DB"."DBA"."SYS_USERS" order 66 referencing old as O, new as N
+{
+  declare name varchar;
+
+  name := connection_get ('WA_USER_DISABLED');
+  if (not isnull (name))
+    return;
 
-create trigger SYS_USERS_ON_DELETE_WA_FK before delete
- on "DB"."DBA"."SYS_USERS" order 66 referencing old as O
+  if (O.U_ACCOUNT_DISABLED <> N.U_ACCOUNT_DISABLED)
+    DB.DBA.WA_USER_SETTING_SET (N.U_NAME, 'DISABLED_BY', 'dav');
+}
+;
+
+create trigger SYS_USERS_ON_DELETE_WA_FK before delete on "DB"."DBA"."SYS_USERS" order 66 referencing old as O
 {
-   ODS_DELETE_USER_DATA(O.U_NAME);
-};
+  ODS_DELETE_USER_DATA(O.U_NAME);
+}
+;
 
 insert soft WA_MEMBER_MODEL (WMM_ID, WMM_NAME) values (0, 'Open')
 ;
@@ -2069,13 +2186,13 @@ create procedure INIT_SERVER_SETTINGS ()
 	     'Enter your User ID and Password',
 	     '',
 	     '',
-	     'Copyright © 1998-2011 OpenLink Software',
+	     'Copyright © 1998-2012 OpenLink Software',
 	     '',
 	     sys_stat ('st_host_name'),
 	     1
 	    );
   }
-  update WA_SETTINGS set WS_COPYRIGHT = 'Copyright © 1998-2011 OpenLink Software';
+  update WA_SETTINGS set WS_COPYRIGHT = 'Copyright © 1998-2012 OpenLink Software';
 
   update WA_SETTINGS
      set WS_WELCOME_MESSAGE =
@@ -3357,6 +3474,7 @@ wa_exec_no_error_log(
     WAUI_CERT long varbinary,		-- same as above
     WAUI_ACL LONG VARCHAR,
     WAUI_SALMON_KEY varchar, 
+    WAUI_SETTINGS LONG VARCHAR,
 
     primary key (WAUI_U_ID)
   )'
@@ -3410,6 +3528,8 @@ wa_add_col ('DB.DBA.WA_USER_INFO', 'WAUI_HPHONE_EXT', 'varchar(5)');
 wa_add_col ('DB.DBA.WA_USER_INFO', 'WAUI_ACL', 'LONG VARCHAR');
 wa_add_col ('DB.DBA.WA_USER_INFO', 'WAUI_SALMON_KEY', 'VARCHAR');
 
+wa_add_col ('DB.DBA.WA_USER_INFO', 'WAUI_SETTINGS', 'LONG VARCHAR');
+
 wa_exec_no_error ('create index WA_USER_INFO_CERT_FINGERPRINT on DB.DBA.WA_USER_INFO (WAUI_CERT_FINGERPRINT)');
 
 create procedure WA_USER_INFO_WAUI_FOAF_UPGRADE ()
@@ -3469,6 +3589,7 @@ create unique index WA_USER_CERTS_FINGERPRINT on WA_USER_CERTS (UC_FINGERPRINT)
 0);
 
 wa_add_col ('DB.DBA.WA_USER_CERTS', 'UC_TS', 'datetime');
+wa_exec_no_error_log ('ALTER TABLE DB.DBA.WA_USER_CERTS ADD FOREIGN KEY (UC_U_ID) REFERENCES DB.DBA.SYS_USERS (U_ID) ON DELETE CASCADE');
 
 create procedure WA_CERTS_UPGRADE ()
 {
@@ -3521,6 +3642,21 @@ create procedure WA_CERTS_UPGRADE ()
 
 WA_CERTS_UPGRADE ();
 
+create procedure WA_CERTS_UPGRADE ()
+{
+  if (registry_get ('WA_CERTS_UPGRADE3') = '1')
+    return;
+
+  delete
+    from WA_USER_CERTS
+   where UC_U_ID not in (select U_ID from SYS_USERS);
+
+  registry_set ('WA_CERTS_UPGRADE3', '1');
+}
+;
+
+WA_CERTS_UPGRADE ();
+
 create procedure WA_MAKE_NICK (in nick varchar)
 {
   declare i int;
@@ -3750,17 +3886,34 @@ create procedure WA_USER_OL_ACCOUNTS_SET_UP ()
   registry_set ('__WA_USER_OL_ACCOUNTS_SET_UP', 'done');
 
   update WA_USER_OL_ACCOUNTS set WUO_TYPE = 'P' where WUO_TYPE is null;
-};
+}
+;
 WA_USER_OL_ACCOUNTS_SET_UP ();
 
+create procedure WA_USER_OL_ACCOUNTS_URI (
+  in url varchar)
+{
+  declare rc varchar;
+
+  rc := null;
+  if (__proc_exists ('DB.DBA.RDF_PROXY_ENTITY_IRI'))
+    rc := DB.DBA.RDF_PROXY_ENTITY_IRI(url);
+  if (isnull (rc))
+    rc := url || '#this';
+
+  return rc;
+}
+;
+
 create procedure WA_USER_OL_ACCOUNTS_SET_UP ()
 {
   if (registry_get ('__WA_USER_OL_ACCOUNTS_SET_UP2') = 'done')
     return;
   registry_set ('__WA_USER_OL_ACCOUNTS_SET_UP2', 'done');
 
-  update WA_USER_OL_ACCOUNTS set WUO_URI = ODS.ODS_API."user.onlineAccounts.uri"(WUO_URL) where WUO_URI is null;
-};
+  update WA_USER_OL_ACCOUNTS set WUO_URI = WA_USER_OL_ACCOUNTS_URI (WUO_URL) where WUO_URI is null;
+}
+;
 WA_USER_OL_ACCOUNTS_SET_UP ();
 
 create procedure WA_USER_OL_ACCOUNTS_SET_UP ()
@@ -3810,6 +3963,7 @@ wa_exec_no_error_log(
 )
 ;
 wa_add_col ('DB.DBA.WA_USER_RELATED_RES', 'WUR_P_IRI', 'varchar default \'http://www.w3.org/2000/01/rdf-schema#seeAlso\'');
+wa_exec_no_error ('alter table DB.DBA.WA_USER_RELATED_RES modify primary key (WUR_U_ID, WUR_SEEALSO_IRI, WUR_P_IRI)');
 wa_exec_no_error_log('create unique index WA_USER_RELATED_RES_IX1 on DB.DBA.WA_USER_RELATED_RES (WUR_ID)');
 
 
@@ -4156,7 +4310,7 @@ create procedure WA_USER_SET_INFO (in _name varchar,in _fname varchar,in _lname
 }
 ;
 
-create procedure WA_USER_EDIT (in _name varchar,in _key varchar,in _data any)
+create procedure WA_USER_EDIT (in _name varchar, in _key varchar, in _data any)
 {
   declare _uid any;
   declare i int;
@@ -4328,6 +4482,9 @@ create procedure WA_USER_EDIT (in _name varchar,in _key varchar,in _data any)
   else if (_key = 'WAUI_ACL')
     UPDATE WA_USER_INFO SET WAUI_ACL = _data WHERE WAUI_U_ID = _uid;
 
+  else if (_key = 'WAUI_SETTINGS')
+    UPDATE WA_USER_INFO SET WAUI_SETTINGS = _data WHERE WAUI_U_ID = _uid;
+
   return row_count ();
 
  nf:
@@ -4393,6 +4550,35 @@ create procedure WA_USER_VISIBILITY (in _name varchar, in _arr any default null,
 }
 ;
 
+create procedure WA_USER_SETTING_SET (in _name varchar, in _key varchar, in _data any)
+{
+  declare _uid any;
+  declare _settings any;
+
+  _uid := (select U_ID from DB.DBA.SYS_USERS where U_NAME = _name);
+  _settings := (select deserialize (WAUI_SETTINGS) from DB.DBA.WA_USER_INFO where WAUI_U_ID = _uid);
+  if (isnull (_settings))
+    _settings := vector ();
+
+  ODS.ODS_API.set_keyword (_key, _settings, _data);
+  WA_USER_EDIT (_name, 'WAUI_SETTINGS', serialize (_data));
+}
+;
+
+create procedure WA_USER_SETTING_GET (in _name varchar, in _key varchar)
+{
+  declare _uid any;
+  declare _settings any;
+
+  _uid := (select U_ID from DB.DBA.SYS_USERS where U_NAME = _name);
+  _settings := (select deserialize (WAUI_SETTINGS) from DB.DBA.WA_USER_INFO where WAUI_U_ID = _uid);
+  if (isnull(_settings))
+    return null;
+
+  return get_keyword (_key, _settings);
+}
+;
+
 create procedure WA_REPLACE_ARR ( inout _vector any, in _pos integer,in _val varchar )
 {
   declare _ind integer;
@@ -5783,15 +5969,18 @@ create procedure WA_FOAF_UPGRADE ()
   for (select WAUI_U_ID, WAUI_FOAF from DB.DBA.WA_USER_INFO) do
   {
 
-  	 uname := (select U_NAME from DB.DBA.SYS_USERS where U_ID = WAUI_U_ID);
-     visibility := WA_USER_VISIBILITY (uname);
-     access := visibility[8];
-     tmp := '';
-     for (select interest from DB.DBA.WA_USER_INTERESTS (txt) (interest varchar) P where txt = WAUI_FOAF) do
-     {
-        tmp := tmp || interest || ';' || cast (access as varchar) || '\n';
-     }
-     WA_USER_EDIT (uname, 'WAUI_FOAF', tmp);
+  	uname := (select U_NAME from DB.DBA.SYS_USERS where U_ID = WAUI_U_ID);
+  	if (not isnull (uname))
+  	{
+      visibility := WA_USER_VISIBILITY (uname);
+      access := visibility[8];
+      tmp := '';
+      for (select interest from DB.DBA.WA_USER_INTERESTS (txt) (interest varchar) P where txt = WAUI_FOAF) do
+      {
+         tmp := tmp || interest || ';' || cast (access as varchar) || '\n';
+      }
+      WA_USER_EDIT (uname, 'WAUI_FOAF', tmp);
+    }
   }
 
   registry_set ('WA_FOAF_UPGRADE', 'done');
@@ -7468,6 +7657,18 @@ DB.DBA.URLREWRITE_CREATE_REGEX_RULE (
 
 DB.DBA.URLREWRITE_CREATE_RULELIST ('ods_user_home_rulelist', 1, vector ('ods_user_home_rule', 'ods_user_public_home_rule', 'ods_root_rule'));
 
+create procedure ods_mv_desc ()
+{
+  declare str any;
+  str := sprintf ('%U', 'describe ?o from <http://localhost/mv> 
+  where { ?s ?p ?o option (transitive, t_in (?o), t_out (?s)) . 
+    filter (?s = <http://HOST/mv/data/LOCAL> ) }');
+  str := replace (str, 'HOST', '^{URIQADefaultHost}^');
+  str := replace (str, '%', '%%');
+  str := replace (str, 'LOCAL', '%s');
+  return str;
+};
+    
 
 create procedure ods_define_common_vd (in _host varchar, in _lhost varchar, in isdav int := 1)
 {
@@ -7632,6 +7833,11 @@ create procedure ods_define_common_vd (in _host varchar, in _lhost varchar, in i
   DB.DBA.VHOST_DEFINE (vhost=>_host,lhost=>_lhost,lpath=>'/vsp/users',
       ppath=>'/vad/vsp/wa/users', def_page=>'users.vsp', vsp_user=>'dba', is_dav=>0, is_brws=>0, opts=>vector ('url_rewrite', 'ods_vsp_users_list'), sec=>_sec, auth_opts=>_opts);
 
+  -- WebID pages
+  DB.DBA.VHOST_REMOVE (vhost=>_host,lhost=>_lhost,lpath=>'/ods/webid');
+  DB.DBA.VHOST_DEFINE (vhost=>_host,lhost=>_lhost,lpath=>'/ods/webid',
+      ppath=>'/vad/vsp/wa/webid', is_dav=>0, vsp_user=>'dba', sec=>_sec, auth_opts=>_opts);
+
   -- RDF folder
   DB.DBA.VHOST_REMOVE (vhost=>_host,lhost=>_lhost,lpath=>'/ods/data/rdf');
   DB.DBA.VHOST_DEFINE (vhost=>_host,lhost=>_lhost,lpath=>'/ods/data/rdf',
@@ -7682,11 +7888,16 @@ create procedure ods_define_common_vd (in _host varchar, in _lhost varchar, in i
   DB.DBA.VHOST_DEFINE (lhost=>_lhost, vhost=>_host, lpath=>'/mv', ppath=>'/DAV/VAD/wa/', is_dav=>isdav, def_page=>'mv.vsp', vsp_user=>'dba', sec=>_sec, auth_opts=>_opts);
   DB.DBA.VHOST_REMOVE (vhost=>_host, lhost=>_lhost, lpath=>'/mv/data');
   DB.DBA.VHOST_DEFINE (lhost=>_lhost, vhost=>_host, lpath=>'/mv/data', ppath=>'/DAV/VAD/wa/', is_dav=>isdav, def_page=>'', vsp_user=>'SPARQL', opts=>vector ('url_rewrite', 'ods_mv_rule_list_1'), sec=>_sec, auth_opts=>_opts);
-  DB.DBA.URLREWRITE_CREATE_RULELIST ( 'ods_mv_rule_list_1', 1, vector ('ods_mv_rule_1'));
+
+DB.DBA.URLREWRITE_CREATE_RULELIST ( 'ods_mv_rule_list_1', 1, vector ('ods_mv_rule_1', 'ods_mv_rule_2'));
 
   DB.DBA.URLREWRITE_CREATE_REGEX_RULE ( 'ods_mv_rule_1', 1, '/mv/data/(.*)\x24', vector ('par_1'), 1,
-      '/sparql?query=construct%%20%%7B%%20%%3Fs%%20%%3Fp%%20%%3Fo%%20.%%20%%3Ft%%20%%3Ftp%%20%%3Fto%%20.%%20%%7D%%20%%20from%%20%%3Chttp%%3A%%2F%%2Flocalhost%%2Fmv%%3E%%20where%%20%%7B%%20%%3Fs%%20%%3Fp%%20%%3Fo%%20%%20.%%20%%3Fs%%20foaf%%3AprimaryTopic%%20%%3Ft%%20.%%20%%3Ft%%20%%3Ftp%%20%%3Fto%%20.%%20filter%%20%%28%%3Fs%%20%%3D%%20%%3Chttp%%3A%%2F%%2F^{URIQADefaultHost}^%%2Fmv%%2Fdata%%2F%s%%3E%%20%%29%%20%%7D%%20&format=%U',
-      vector ('par_1', '*accept*'), NULL, NULL, 2, 303, '');
+      '/sparql?query='||ods_mv_desc()||'&format=%U',
+vector ('par_1', '*accept*'), NULL, '(.*)', 2, 303);
+
+DB.DBA.URLREWRITE_CREATE_REGEX_RULE ( 'ods_mv_rule_2', 1, '/mv/data/(.*)\x24', vector ('par_1'), 1, 
+'/describe/?url=http://^{URIQADefaultHost}^/mv/data/%s', 
+vector ('par_1'), NULL, 'text/html', 2, 303);
 
 
   if (exists (select 1 from DB.DBA.HTTP_PATH where HP_HOST = _host and HP_LISTEN_HOST = _lhost and HP_LPATH = '/DAV'))
diff --git a/appsrc/ODS-Framework/href_export.xml b/appsrc/ODS-Framework/href_export.xml
index 5f34e26..446ecfe 100644
--- a/appsrc/ODS-Framework/href_export.xml
+++ b/appsrc/ODS-Framework/href_export.xml
@@ -1,12 +1,12 @@
 <?xml version ='1.0' encoding='UTF-8'?>
 <!--
  -  
- -  $Id: href_export.xml,v 1.1.2.1 2010/09/20 10:15:21 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/image.vsp b/appsrc/ODS-Framework/image.vsp
index ed3a022..0c2221d 100644
--- a/appsrc/ODS-Framework/image.vsp
+++ b/appsrc/ODS-Framework/image.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: image.vsp,v 1.3.2.1 2010/09/20 10:15:21 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/images/yacutia_style_alt.htm b/appsrc/ODS-Framework/images/yacutia_style_alt.htm
index 5d42c52..b8c44e6 100644
--- a/appsrc/ODS-Framework/images/yacutia_style_alt.htm
+++ b/appsrc/ODS-Framework/images/yacutia_style_alt.htm
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
 <!--
  -
- -  $Id: yacutia_style_alt.htm,v 1.2.2.1 2010/09/20 10:15:35 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/index.html b/appsrc/ODS-Framework/index.html
index 2e60c7b..d5bd3b7 100644
--- a/appsrc/ODS-Framework/index.html
+++ b/appsrc/ODS-Framework/index.html
@@ -26,6 +26,7 @@
 
     <title>Personal Data Space Explorer</title>
     <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+    <link rel="stylesheet" href="default.css" type="text/css"/>
     <link rel="stylesheet" href="nav_framework.css" type="text/css"/>
     <!-- #META# -->
     <script type="text/javascript">
@@ -423,12 +424,12 @@ if ((document.location.href.indexOf ('/dataspace/person/') >- 1 ||
             </div> <!-- widget -->
    	  <!-- Profile Page end-->
           <!-- Connections Page start-->
-          <div id="contacts_interface" style="display:none;">
+          <div id="contacts_interface" style="display: none;">
             <div class="widget w_contact">
               <div class="w_content">
                 <ul class="tab_bar">
-                  <li id="csiT1"><a href="javascript:void(0)">Connections List</a></li>
-                  <li id="csiT2"><a href="javascript:void(0)">Status Updates</a></li>
+                  <li id="csiT1"><a href="javascript: void(0)">Connections List</a></li>
+                  <li id="csiT2"><a href="javascript: void(0)">Status Updates</a></li>
                 </ul>
                 <div class="tab_deck">
                   <div id="cisPCtr" class="tab_page">
@@ -447,17 +448,17 @@ if ((document.location.href.indexOf ('/dataspace/person/') >- 1 ||
                     <div id="connectionsTemplate" style="display:none;">
                       <table border="0" cellspacing="0" width="98%">
                         <tr>
-			  <td class="image" style="width:150px;">
-                  			    <img src="{connImgSRC}" style="width:40px;cursor:pointer"/>
+                  			  <td class="image" style="width: 150px;">
+                  			    <img src="images/profile.png" style="width: 40px; cursor: pointer"/>
                   			    <br/>
-			    <span style="cursor:pointer;text-decoration: underline;">{connProfileFullName}</span>
+                  			    <span style="cursor: pointer; text-decoration: underline;">{connProfileFullName}</span>
 			  </td>
                           <td class="info">
                           </td>
-                          <td class="actions" style="width:120px;text-align:left;">
-                            <a id="{sendMsg}" style="cursor:pointer;text-decoration:underline;">Send Message</a><br/>
-                            <a id="{viewConnections}" style="cursor:pointer;text-decoration:underline;">View Connections</a><br/>
-			    <a id="{doConnection}" style="cursor:pointer;text-decoration:underline;">Connection/Disconnect</a>
+                          <td class="actions" style="width: 120px; text-align: left;">
+                            <a id="{sendMsg}" style="cursor: pointer; text-decoration:underline;">Send Message</a><br/>
+                            <a id="{viewConnections}" style="cursor: pointer; text-decoration: underline;">View Connections</a><br/>
+			                      <a id="{doConnection}" style="cursor: pointer; text-decoration: underline;">Connection/Disconnect</a>
 			  </td>
                         </tr>
 		      </table>
@@ -886,7 +887,7 @@ if ((document.location.href.indexOf ('/dataspace/person/') >- 1 ||
         <div id="FT">
           <img alt="Powered by OpenLink Virtuoso" src="images/skin/default/virt_power_no_border.png"/>
           <div id="FT_RC">
-            Copyright © 1998-2011 OpenLink Software<br/>
+            Copyright © 1998-2012 OpenLink Software<br/>
             <a href="#">About</a> <a href="#">Privacy</a> <a href="#">FAQ</a> <a href="#">Developers</a>
           </div><!-- #FT_RC -->
         </div> <!-- #FT -->
@@ -1025,7 +1026,7 @@ if ((document.location.href.indexOf ('/dataspace/person/') >- 1 ||
           <td valign="top">
             <div id="lf" class="form">
               <div class="header">
-                Identify Yourself <img id="lf_throbber" src="/ods/images/oat/Ajax_throbber.gif" style="float: right; margin-right: 10px; display: none" />
+                Please identify yourself <img id="lf_throbber" src="/ods/images/oat/Ajax_throbber.gif" style="float: right; margin-right: 10px; display: none" />
               </div>
               <ul id="lf_tabs" class="tabs">
                 <li id="lf_tab_0" title="Digest">Digest</li>
diff --git a/appsrc/ODS-Framework/index.vsp b/appsrc/ODS-Framework/index.vsp
index 5c99c4d..e94dbb2 100644
--- a/appsrc/ODS-Framework/index.vsp
+++ b/appsrc/ODS-Framework/index.vsp
@@ -1,14 +1,14 @@
 <?vsp
 --   search_ajax.vsp
 --
---   $Id: index.vsp,v 1.9.2.7 2010/09/20 10:15:21 source Exp $
+--   $Id$
 --
 --   AJAX Handler for the google map control
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -90,7 +90,7 @@
     else
       _country_code:=null;
 
-    https := ODS..getDefaultHttps ();
+    https := ODS.ODS_API.getDefaultHttps ();
     if (exists (select 1 from WA_SETTINGS where WS_HTTPS = 1) and https is not null)
       _openid_server := 'https://' || https;
     else
@@ -158,11 +158,11 @@ skip_meta:
   declare html_content, links varchar;
   declare exts any;
 
-  exts := 
+  exts :=
   vector (
-      	vector ('rdf',  'RDF/XML', 'application/rdf+xml'), 
-      	vector ('nt',   'N3/Turtle', 'text/n3'), 
-      	vector ('n3',   'N3/Turtle', 'text/rdf+n3'), 
+      	vector ('rdf',  'RDF/XML', 'application/rdf+xml'),
+      	vector ('nt',   'N3/Turtle', 'text/n3'),
+      	vector ('n3',   'N3/Turtle', 'text/rdf+n3'),
 	vector ('json', 'RDF/JSON', 'application/json')
 	);
 
@@ -185,7 +185,7 @@ skip_meta:
   links := links || sprintf (' <%s/sparql?default-graph-uri=%s/dataspace>; title="Public SPARQL Service"; rel="http://ontologi.es/sparql#fingerpoint", ', server_root, server_root);
   foreach (any ss in exts) do
     {
-       links := links || sprintf (' <%s%s%s/about.%s>; rel="alternate"; type="%s"; title="Structured Descriptor Document (%s format)",', 
+       links := links || sprintf (' <%s%s%s/about.%s>; rel="alternate"; type="%s"; title="Structured Descriptor Document (%s format)",',
        server_dataspace, utype, uname, ss[0], ss[2], ss[1]);
     }
   for select U_E_MAIL from DB.DBA.SYS_USERS where U_NAME = uname do
diff --git a/appsrc/ODS-Framework/index.vspx b/appsrc/ODS-Framework/index.vspx
index b2959a2..d5d1678 100644
--- a/appsrc/ODS-Framework/index.vspx
+++ b/appsrc/ODS-Framework/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: index.vspx,v 1.4.2.1 2010/09/20 10:15:21 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/index.xsl b/appsrc/ODS-Framework/index.xsl
index 825d177..8d0f277 100644
--- a/appsrc/ODS-Framework/index.xsl
+++ b/appsrc/ODS-Framework/index.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: index.xsl,v 1.4.2.2 2010/09/20 10:15:21 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/index_inst.vspx b/appsrc/ODS-Framework/index_inst.vspx
index 5440bde..3e885d1 100644
--- a/appsrc/ODS-Framework/index_inst.vspx
+++ b/appsrc/ODS-Framework/index_inst.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: index_inst.vspx,v 1.6.2.2 2010/09/20 10:15:21 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/init.sql b/appsrc/ODS-Framework/init.sql
index 0efe103..c5b2115 100644
--- a/appsrc/ODS-Framework/init.sql
+++ b/appsrc/ODS-Framework/init.sql
@@ -1,10 +1,10 @@
 --
---  $Id: init.sql,v 1.5.2.1 2010/09/20 10:15:22 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/inst.vspx b/appsrc/ODS-Framework/inst.vspx
index 86e4c8d..434256a 100644
--- a/appsrc/ODS-Framework/inst.vspx
+++ b/appsrc/ODS-Framework/inst.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: inst.vspx,v 1.5.2.1 2010/09/20 10:15:22 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/inst_ping.vspx b/appsrc/ODS-Framework/inst_ping.vspx
index 1763e79..e7da290 100644
--- a/appsrc/ODS-Framework/inst_ping.vspx
+++ b/appsrc/ODS-Framework/inst_ping.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: inst_ping.vspx,v 1.1.2.2 2011/03/08 13:28:13 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/join.vspx b/appsrc/ODS-Framework/join.vspx
index 9f886fc..9fae17b 100644
--- a/appsrc/ODS-Framework/join.vspx
+++ b/appsrc/ODS-Framework/join.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: join.vspx,v 1.8.2.1 2010/09/20 10:15:22 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/ldap.sql b/appsrc/ODS-Framework/ldap.sql
index 6efa54c..45a3816 100644
--- a/appsrc/ODS-Framework/ldap.sql
+++ b/appsrc/ODS-Framework/ldap.sql
@@ -1,12 +1,12 @@
 --
---  $Id: ldap.sql,v 1.5.2.2 2011/03/23 12:18:30 source Exp $
+--  $Id$
 --
 --  OpenID protocol support.
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/ldap_search.vspx b/appsrc/ODS-Framework/ldap_search.vspx
index ec533b8..6158728 100644
--- a/appsrc/ODS-Framework/ldap_search.vspx
+++ b/appsrc/ODS-Framework/ldap_search.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: ldap_search.vspx,v 1.5.2.1 2010/09/20 10:15:22 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/login.js b/appsrc/ODS-Framework/login.js
index 13a1951..4308aff 100644
--- a/appsrc/ODS-Framework/login.js
+++ b/appsrc/ODS-Framework/login.js
@@ -3,7 +3,7 @@
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2010 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -21,6 +21,8 @@
  */
 
 var lfTab;
+var lfHeigh = 280;
+var lsRegData;
 var lfSslData;
 var lfFacebookData;
 var lfOptions;
@@ -29,7 +31,15 @@ var lfNotReturn = true;
 var lfAttempts = 0;
 var lfSslLinks = {"in": [], "up": []};
 
-function lfRowText(tbl, txt, txtCSSText) {
+function lfPaneGrow (h) {
+  lfHeigh += h;
+  var loginPage = $('login_page');
+  if (loginPage)
+    loginPage.style.height = lfHeigh+'px';
+	OAT.Dom.center('loginDiv', 1, 1);
+}
+
+function lfRowText(tbl, txt, txtCSSText, h) {
   var tr = OAT.Dom.create('tr');
   var td = OAT.Dom.create('td');
   td.colSpan = 2;
@@ -37,6 +47,7 @@ function lfRowText(tbl, txt, txtCSSText) {
   td.innerHTML = txt;
   tr.appendChild(td);
   tbl.appendChild(tr);
+  if (h) {lfPaneGrow (h);}
 
   return td;
 }
@@ -97,7 +108,7 @@ function lfRowValue(tbl, label, value, leftTag) {
   tbl.appendChild(tr);
 }
 
-function lfRowImage(tbl, label, value, leftTag) {
+function lfRowImage(tbl, label, value, leftTag, h) {
   if (!leftTag)
     leftTag = 'th';
 
@@ -114,33 +125,35 @@ function lfRowImage(tbl, label, value, leftTag) {
     tr.appendChild(td);
   }
   tbl.appendChild(tr);
+  if (h) {lfPaneGrow (h);}
 }
 
 function lfInit() {
   if (!$("lf")) {return;}
 
   lfOptrions = {onstart: lfStart, onend: lfEnd};
-  var regData;
-  var x = function (data) {
-    try {
-      regData = OAT.JSON.parse(data);
-    } catch (e) { regData = {}; }
+  if (!lsRegData) {
+    var x = function (data) {
+      try {
+        lsRegData = OAT.JSON.parse(data);
+      } catch (e) { lsRegData = {}; }
+    }
+    OAT.AJAX.GET ('/ods/api/server.getInfo?info=regData', false, x, {async: false});
   }
-  OAT.AJAX.GET ('/ods/api/server.getInfo?info=regData', false, x, {async: false});
 
   lfTab = new OAT.Tab("lf_content", {goCallback: lfCallback});
   lfTab.add("lf_tab_0", "lf_page_0");
-  if (regData.openidEnable)
+  if (lsRegData.openidEnable)
     OAT.Dom.show('lf_tab_1');
   lfTab.add("lf_tab_1", "lf_page_1");
   lfTab.add("lf_tab_2", "lf_page_2");
-  if (regData.sslEnable)
+  if (lsRegData.sslEnable)
     OAT.Dom.show('lf_tab_3');
   lfTab.add("lf_tab_3", "lf_page_3");
-  if (regData.twitterEnable)
+  if (lsRegData.twitterEnable)
     OAT.Dom.show('lf_tab_4');
   lfTab.add("lf_tab_4", "lf_page_4");
-  if (regData.linkedinEnable)
+  if (lsRegData.linkedinEnable)
     OAT.Dom.show('lf_tab_5');
   lfTab.add("lf_tab_5", "lf_page_5");
   lfTab.go(0);
@@ -164,7 +177,7 @@ function lfInit() {
     }
   }
 
-  if (regData.facebookEnable) {
+  if (lsRegData.facebookEnable) {
     lfLoadFacebookData(function() {
       if (lfFacebookData)
         FB.init(lfFacebookData.api_key, "/ods/fb_dummy.vsp", {
@@ -178,22 +191,23 @@ function lfInit() {
     });
   }
 
-  if (regData.sslEnable) {
-    var x = function(data) {
-      try {
-        lfSslData = OAT.JSON.parse(data);
-      } catch (e) {
-        lfSslData = null;
-      }
-      if (lfSslData && lfSslData.iri && lfSslData.certLogin) {
-        var prefix = 'lf';
-        OAT.Dom.show(prefix+"_tab_3");
-        var tbl = $(prefix+'_table_3');
-        if (tbl) {
-          OAT.Dom.unlink(prefix+'_table_3_throbber');
+  if (lsRegData.sslEnable) {
+    var x1 = function(data) {
+      if (!lfSslData)
+        try {
+          lfSslData = OAT.JSON.parse(data);
+        } catch (e) {
+          lfSslData = null;
+        }
+      var prefix = 'lf';
+      var tbl = $(prefix+'_table_3');
+      if (tbl) {
+        OAT.Dom.unlink(prefix+'_table_3_throbber');
+        if (lfSslData && lfSslData.iri) {
+          OAT.Dom.show(prefix+"_tab_3");
           lfRowValue(tbl, 'WebID', lfSslData.iri);
           if (lfSslData.depiction)
-            lfRowImage(tbl, 'Photo', lfSslData.depiction);
+            lfRowImage(tbl, 'Photo', lfSslData.depiction, null, 150);
 
           if (lfSslData.loginName)
             lfRowValue(tbl, 'Login Name', lfSslData.loginName);
@@ -208,30 +222,36 @@ function lfInit() {
             lfRowValue(tbl, 'Family Name', lfSslData.family_name);
 
           if (!lfSslData.certLogin) {
-            var td = lfRowText(tbl, 'Sign up for an ODS account using your existing WebID - ', 'font-weight: bold;');
+            var td = lfRowText(tbl, 'Sign up for an ODS account using your existing WebID - ', 'font-weight: bold;', 17);
             lfRowButton2(td, 'sign_up_1');
           }
           lfTab.go(3);
+        } else {
+          lfRowText(tbl, 'You must have cerificate with WebID to use this option', 'font-weight: bold;', 17);
         }
       }
     }
     if (document.location.protocol == 'https:') {
-    OAT.AJAX.GET('/ods/api/user.getFOAFSSLData?sslFOAFCheck=1', '', x);
+      if (!lfSslData) {
+        OAT.AJAX.GET('/ods/api/user.getFOAFSSLData?sslFOAFCheck=1', '', x1);
+      } else {
+        x1();
+      }
     } else {
       OAT.Dom.show('lf_tab_3');
       var tbl = $('lf_table_3');
       if (tbl) {
         OAT.Dom.unlink('lf_table_3_throbber');
-        var td = lfRowText(tbl, 'Have you registered WebID? Sign in with it - ', 'font-weight: bold;');
+        var td = lfRowText(tbl, 'Have you registered WebID? Sign in with it - ', 'font-weight: bold;', 17);
         lfRowButton(td, 'sign_in_2');
-        var td2 = lfRowText(tbl, 'Sign up for an ODS account using your existing WebID - ', 'font-weight: bold;');
+        var td2 = lfRowText(tbl, 'Sign up for an ODS account using your existing WebID - ', 'font-weight: bold;', 17);
         lfRowButton2(td2, 'sign_up_2');
       }
     }
   }
   if (document.location.protocol != 'https:')
   {
-    var x = function (data) {
+    var x2 = function (data) {
       var o = null;
       try {
         o = OAT.JSON.parse(data);
@@ -249,7 +269,7 @@ function lfInit() {
           links[i].href = ref + '/ods/register.vspx';
       }
     }
-    OAT.AJAX.GET ('/ods/api/server.getInfo?info=sslPort', false, x);
+    OAT.AJAX.GET ('/ods/api/server.getInfo?info=sslPort', false, x2);
   }
 }
 
@@ -407,7 +427,7 @@ function lfOpenIdAuthenticate(prefix) {
     var xml = OAT.Xml.createXmlDoc(data);
     var error = OAT.Xml.xpath (xml, '//error_response', {});
     if (error.length)
-      showError('Invalied OpenID Server');
+      showError('Invalid OpenID Server');
 
     var oidServer = OAT.Xml.textValue (OAT.Xml.xpath (xml, '/openIdServer_response/server', {})[0]);
     if (!oidServer || !oidServer.length)
diff --git a/appsrc/ODS-Framework/login.vspx b/appsrc/ODS-Framework/login.vspx
index 82275a1..6deda90 100644
--- a/appsrc/ODS-Framework/login.vspx
+++ b/appsrc/ODS-Framework/login.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: login.vspx,v 1.7.2.3 2010/09/22 13:55:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/login_keys.vspx b/appsrc/ODS-Framework/login_keys.vspx
index b96f0d6..43f03a8 100644
--- a/appsrc/ODS-Framework/login_keys.vspx
+++ b/appsrc/ODS-Framework/login_keys.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: login_keys.vspx,v 1.1.4.4 2011/05/02 14:16:02 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -110,9 +110,14 @@
               </th>
               <td>
                 <v:select-list name="a_name" value="" xhtml_id="a_name" error-glyph="*">
+                  <v:item name="Box Net API" value="Box Net API"/>
+                  <v:item name="Dropbox API" value="Dropbox API"/>
                   <v:item name="Facebook API" value="Facebook API"/>
+                  <v:item name="Google API" value="Google API"/>
                   <v:item name="LinkedIn API" value="LinkedIn API"/>
+                  <v:item name="SkyDrive API" value="SkyDrive API"/>
                   <v:item name="Twitter API" value="Twitter API"/>
+                  <v:item name="Windows Live API" value="Windows Live API"/>
                 </v:select-list>
               </td>
             </tr>
diff --git a/appsrc/ODS-Framework/mail.vspx b/appsrc/ODS-Framework/mail.vspx
index c4426b2..ab3a322 100644
--- a/appsrc/ODS-Framework/mail.vspx
+++ b/appsrc/ODS-Framework/mail.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: mail.vspx,v 1.5.2.1 2010/09/20 10:15:22 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/mail_preview.vspx b/appsrc/ODS-Framework/mail_preview.vspx
index 0452207..3810b8c 100644
--- a/appsrc/ODS-Framework/mail_preview.vspx
+++ b/appsrc/ODS-Framework/mail_preview.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: mail_preview.vspx,v 1.5.2.1 2010/09/20 10:15:22 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/make_ods_vad.xml b/appsrc/ODS-Framework/make_ods_vad.xml
index c4424a5..2975471 100644
--- a/appsrc/ODS-Framework/make_ods_vad.xml
+++ b/appsrc/ODS-Framework/make_ods_vad.xml
@@ -5,12 +5,12 @@
   <name package="Framework">
     <prop name="Title" value="ODS Framework"/>
     <prop name="Developer" value="OpenLink Software"/>
-    <prop name="Copyright" value="(C) 1998-2011 OpenLink Software"/>
+    <prop name="Copyright" value="(C) 1998-2012 OpenLink Software"/>
     <prop name="Download" value="http://www.openlinksw.com/virtuoso"/>
     <prop name="Download" value="http://www.openlinksw.co.uk/virtuoso"/>
   </name>
-  <version package="1.83.49">
-    <prop name="Release Date" value="2011-10-28 19:37"/>
+  <version package="1.87.26">
+    <prop name="Release Date" value="2012-08-02 00:24"/>
     <prop name="Build" value="Release, optimized"/>
   </version>
 </caption>
@@ -49,8 +49,8 @@
     <![CDATA[
       declare rc any; 
       registry_set('_wa_path_', '/DAV/VAD/wa/');
-      registry_set('_wa_version_', '1.83.49');
-      registry_set('_wa_build_', '2011-10-28 19:37');
+      registry_set('_wa_version_', '1.87.26');
+      registry_set('_wa_build_', '2012-08-02 00:24');
       DB.DBA.VAD_LOAD_SQL_FILE('/DAV/VAD/wa/sn.sql', 1, 'report', 1);
       DB.DBA.VAD_LOAD_SQL_FILE('/DAV/VAD/wa/hosted_services.sql', 1, 'report', 1);
       DB.DBA.VAD_LOAD_SQL_FILE('/DAV/VAD/wa/registration_xml.sql', 1, 'report', 1);
@@ -86,7 +86,6 @@
       DB.DBA.VAD_LOAD_SQL_FILE('/DAV/VAD/wa/sql_rdf.sql', 1, 'report', 1);
       DB.DBA.VAD_LOAD_SQL_FILE('/DAV/VAD/wa/user_rdf.sql', 1, 'report', 1);
       DB.DBA.VAD_LOAD_SQL_FILE('/DAV/VAD/wa/sioc_priv.sql', 1, 'report', 1);
-      DB.DBA.VAD_LOAD_SQL_FILE('/DAV/VAD/wa/DET_RDFData.sql', 1, 'report', 1);
       DB.DBA."RDFData_MAKE_DET_COL" ('/DAV/VAD/wa/RDFData/', sioc..get_graph (), NULL);
       DB.DBA.wa_users_rdf_data_det_upgrade ();
       DB.DBA.VHOST_REMOVE (lpath=>'/ods/data/rdf');
@@ -99,7 +98,7 @@
       DB.DBA.VAD_LOAD_SQL_FILE('/DAV/VAD/wa/ods_upstream.sql', 1, 'report', 1);
       DB.DBA.VHOST_REMOVE (lpath=>'/oauth');
       DB.DBA.VHOST_DEFINE (lpath=>'/oauth', ppath=>'/DAV/VAD/wa/oauth/', vsp_user=>'dba', is_dav=>1, is_brws=>0, def_page=>'index.vsp');
-      if (server_https_port () is not null) 
+      if (ODS.ODS_API.getDefaultHttps () is not null) 
 	DB.DBA.wa_redefine_vhosts (); 
 	    DB.DBA.WA_USER_OL_ACCOUNTS_SET_UP (); 
     ]]>
@@ -111,9 +110,12 @@
   </sql>
 </ddls>
 <resources>
-  <file overwrite="yes" type="dav" source="data" target_uri="wa/DET_RDFData.sql" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/SWD.sql" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/aboutus.html" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
+  <file overwrite="yes" type="dav" source="data" target_uri="wa/access_box.vsp" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
+  <file overwrite="yes" type="dav" source="data" target_uri="wa/access_dropbox.vsp" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
+  <file overwrite="yes" type="dav" source="data" target_uri="wa/access_google.vsp" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
+  <file overwrite="yes" type="dav" source="data" target_uri="wa/access_skydrive.vsp" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/accounts.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/add_rule.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/admin.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
@@ -134,6 +136,7 @@
   <file overwrite="yes" type="dav" source="data" target_uri="wa/ckeditor/LICENSE.html" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/ckeditor/ckeditor.js" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/ckeditor/config.js" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
+  <file overwrite="yes" type="dav" source="data" target_uri="wa/ckeditor/contents.css" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/ckeditor/images/spacer.gif" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/ckeditor/lang/en.js" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/ckeditor/plugins/clipboard/dialogs/paste.js" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
@@ -255,6 +258,7 @@
   <file overwrite="yes" type="dav" source="data" target_uri="wa/drop.sql" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/drop_sioc_proc.sql" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/drop_sioc_trig.sql" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
+  <file overwrite="yes" type="dav" source="data" target_uri="wa/dropbox_access.vsp" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/edit_inst.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/edit_interests_popup.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/edit_rule.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
@@ -272,6 +276,7 @@
   <file overwrite="yes" type="dav" source="data" target_uri="wa/gdata.sql" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/generic.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/get_tags_popup.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
+  <file overwrite="yes" type="dav" source="data" target_uri="wa/google_access.vsp" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/gtags.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/help.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/home.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
@@ -949,6 +954,7 @@
   <file overwrite="yes" type="dav" source="data" target_uri="wa/oauth/sparql_acl.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/oauth/vad_version" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/oauth_apps.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
+  <file overwrite="yes" type="dav" source="data" target_uri="wa/oauth_authorize.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/oauth_sid.vsp" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/oauth_test.vsp" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/ods-bar.css" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
@@ -1084,15 +1090,15 @@
   <file overwrite="yes" type="dav" source="data" target_uri="wa/url_rule.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/user_rdf.sql" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/user_template.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
-  <file overwrite="yes" type="dav" source="data" target_uri="wa/users/Readme.txt" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
-  <file overwrite="yes" type="dav" source="data" target_uri="wa/users/css/users.css" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
-  <file overwrite="yes" type="dav" source="data" target_uri="wa/users/js/users.js" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
-  <file overwrite="yes" type="dav" source="data" target_uri="wa/users/users.html" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
-  <file overwrite="yes" type="dav" source="data" target_uri="wa/users/users.jsp" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
-  <file overwrite="yes" type="dav" source="data" target_uri="wa/users/users.php" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
-  <file overwrite="yes" type="dav" source="data" target_uri="wa/users/users.rb" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
-  <file overwrite="yes" type="dav" source="data" target_uri="wa/users/users.vsp" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
-  <file overwrite="yes" type="dav" source="data" target_uri="wa/users/users.xsl" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
+  <file overwrite="yes" type="http" source="data" target_uri="wa/users/Readme.txt" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
+  <file overwrite="yes" type="http" source="data" target_uri="wa/users/css/users.css" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
+  <file overwrite="yes" type="http" source="data" target_uri="wa/users/js/users.js" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
+  <file overwrite="yes" type="http" source="data" target_uri="wa/users/users.html" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
+  <file overwrite="yes" type="http" source="data" target_uri="wa/users/users.jsp" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
+  <file overwrite="yes" type="http" source="data" target_uri="wa/users/users.php" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
+  <file overwrite="yes" type="http" source="data" target_uri="wa/users/users.rb" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
+  <file overwrite="yes" type="http" source="data" target_uri="wa/users/users.vsp" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
+  <file overwrite="yes" type="http" source="data" target_uri="wa/users/users.xsl" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/users_select.js" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/users_select.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/validate.js" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
@@ -1108,7 +1114,14 @@
   <file overwrite="yes" type="dav" source="data" target_uri="wa/web_header.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/web_svc.sql" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/webfinger.sql" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
+  <file overwrite="yes" type="http" source="data" target_uri="wa/webid/webid_check.vsp" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
+  <file overwrite="yes" type="http" source="data" target_uri="wa/webid/webid_demo.html" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
+  <file overwrite="yes" type="http" source="data" target_uri="wa/webid/webid_demo.php" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
+  <file overwrite="yes" type="http" source="data" target_uri="wa/webid/webid_demo.vsp" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
+  <file overwrite="yes" type="http" source="data" target_uri="wa/webid/webid_verify.vsp" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/webid_check.vsp" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
+  <file overwrite="yes" type="dav" source="data" target_uri="wa/webid_demo.html" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
+  <file overwrite="yes" type="dav" source="data" target_uri="wa/webid_demo.vsp" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/webid_select.vspx" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/webid_verify.vsp" dav_owner="dav" dav_grp="administrators" dav_perm="111101101NN" makepath="yes"/>
   <file overwrite="yes" type="dav" source="data" target_uri="wa/winrect.css" dav_owner="dav" dav_grp="administrators" dav_perm="110100100NN" makepath="yes"/>
diff --git a/appsrc/ODS-Framework/make_vad.sh b/appsrc/ODS-Framework/make_vad.sh
index 2604ef1..6abbd54 100755
--- a/appsrc/ODS-Framework/make_vad.sh
+++ b/appsrc/ODS-Framework/make_vad.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: make_vad.sh,v 1.57.2.16 2011/06/02 12:34:01 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -60,11 +60,6 @@ else
     LN="ln -fs"
     RM="rm -f"
 fi
-VOS=0
-if [ -f ../../autogen.sh ]
-then
-    VOS=1
-fi
 
 if [ "z$SERVER" = "z" ]
 then
@@ -85,7 +80,14 @@ else
   myrm=$RM
 fi
 
-VERSION_INIT()
+
+VOS=0
+if [ -f ../../autogen.sh ]
+then
+    VOS=1
+fi
+
+version_init()
 {
   if [ $VOS -eq 1 ]
   then
@@ -256,6 +258,7 @@ directory_init() {
   mkdir vad/data/wa/users
   mkdir vad/data/wa/users/css
   mkdir vad/data/wa/users/js
+  mkdir vad/data/wa/webid
   for dir in `find ckeditor -type d -print | LC_ALL=C sort | grep -v CVS`
   do
     mkdir vad/data/wa/$dir
@@ -274,7 +277,7 @@ directory_init() {
   cp *.css vad/data/wa
   cp *.html vad/data/wa
   cp *.sql vad/data/wa
-  cp $HOME/binsrc/dav/DET_RDFData.sql vad/data/wa
+  #cp $HOME/binsrc/dav/DET_RDFData.sql vad/data/wa
   cp *.js vad/data/wa
   cp comp/*.xsl vad/data/wa/comp
   cp comp/*.js vad/data/wa/comp
@@ -318,6 +321,10 @@ directory_init() {
   do
     cp $file vad/data/wa/$file
   done
+  cp webid_demo.php vad/data/wa/webid
+  cp vad/data/wa/webid_demo.* vad/data/wa/webid
+  cp vad/data/wa/webid_check.* vad/data/wa/webid
+  cp vad/data/wa/webid_verify.* vad/data/wa/webid
   cp oauth/* vad/data/wa/oauth
   cp oauth/images/* vad/data/wa/oauth/images
 }
@@ -337,7 +344,7 @@ sticker_init() {
   echo "  <name package=\"Framework\">" >> $STICKER
   echo "    <prop name=\"Title\" value=\"ODS Framework\"/>" >> $STICKER
   echo "    <prop name=\"Developer\" value=\"OpenLink Software\"/>" >> $STICKER
-  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2011 OpenLink Software\"/>" >> $STICKER
+  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2012 OpenLink Software\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.com/virtuoso\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.co.uk/virtuoso\"/>" >> $STICKER
   echo "  </name>" >> $STICKER
@@ -421,7 +428,7 @@ sticker_init() {
   echo "      DB.DBA.VAD_LOAD_SQL_FILE('/DAV/VAD/wa/sql_rdf.sql', 1, 'report', 1);" >> $STICKER
   echo "      DB.DBA.VAD_LOAD_SQL_FILE('/DAV/VAD/wa/user_rdf.sql', 1, 'report', 1);" >> $STICKER
   echo "      DB.DBA.VAD_LOAD_SQL_FILE('/DAV/VAD/wa/sioc_priv.sql', 1, 'report', 1);" >> $STICKER
-  echo "      DB.DBA.VAD_LOAD_SQL_FILE('/DAV/VAD/wa/DET_RDFData.sql', 1, 'report', 1);" >> $STICKER
+  #echo "      DB.DBA.VAD_LOAD_SQL_FILE('/DAV/VAD/wa/DET_RDFData.sql', 1, 'report', 1);" >> $STICKER
   echo "      DB.DBA.\"RDFData_MAKE_DET_COL\" ('/DAV/VAD/wa/RDFData/', sioc..get_graph (), NULL);" >> $STICKER
   echo "      DB.DBA.wa_users_rdf_data_det_upgrade ();" >> $STICKER
   echo "      DB.DBA.VHOST_REMOVE (lpath=>'/ods/data/rdf');" >> $STICKER
@@ -434,7 +441,7 @@ sticker_init() {
   echo "      DB.DBA.VAD_LOAD_SQL_FILE('/DAV/VAD/wa/ods_upstream.sql', 1, 'report', 1);" >> $STICKER
   echo "      DB.DBA.VHOST_REMOVE (lpath=>'/oauth');" >> $STICKER
   echo "      DB.DBA.VHOST_DEFINE (lpath=>'/oauth', ppath=>'/DAV/VAD/wa/oauth/', vsp_user=>'dba', is_dav=>1, is_brws=>0, def_page=>'index.vsp');" >> $STICKER
-  echo "      if (server_https_port () is not null) " >> $STICKER
+  echo "      if (ODS.ODS_API.getDefaultHttps () is not null) " >> $STICKER
   echo "	DB.DBA.wa_redefine_vhosts (); " >> $STICKER
   echo "	    DB.DBA.WA_USER_OL_ACCOUNTS_SET_UP (); " >> $STICKER
   echo "    ]]>" >> $STICKER
@@ -462,8 +469,19 @@ sticker_init() {
      else
 	 perms="111101101NN"
      fi
+     if echo "$file" | grep -v "/users/" > /dev/null
+     then
+       if echo "$file" | grep -v "/webid/" > /dev/null
+       then
+   	     TYPE="dav"
+       else
+  	     TYPE="http"
+       fi
+     else
+	     TYPE="http"
+     fi
      name=`echo "$file" | cut -b10-`
-     echo "  <file overwrite=\"yes\" type=\"dav\" source=\"data\" target_uri=\"$name\" dav_owner=\"dav\" dav_grp=\"administrators\" dav_perm=\"$perms\" makepath=\"yes\"/>" >> $STICKER
+     echo "  <file overwrite=\"yes\" type=\"$TYPE\" source=\"data\" target_uri=\"$name\" dav_owner=\"dav\" dav_grp=\"administrators\" dav_perm=\"$perms\" makepath=\"yes\"/>" >> $STICKER
   done
 
   echo "</resources>" >> $STICKER
@@ -547,7 +565,7 @@ vad_create() {
 STOP_SERVER
 $myrm $LOGFILE 2>/dev/null
 directory_clean
-VERSION_INIT
+version_init
 directory_init
 virtuoso_init
 sticker_init
@@ -555,7 +573,6 @@ vad_create
 virtuoso_shutdown
 chmod 644 ods_framework_dav.vad
 #chmod 644 virtuoso.trx
-directory_clean
 
 CHECK_LOG
 RUN egrep  '"\*\*.*FAILED:|\*\*.*ABORTED:"' "$LOGFILE"
@@ -565,5 +582,7 @@ then
 	exit 1
 fi
 
+directory_clean
+
 BANNER "COMPLETED VAD PACKAGING"
 exit 0
diff --git a/appsrc/ODS-Framework/map_svc.vspx b/appsrc/ODS-Framework/map_svc.vspx
index 6e16078..e0a76af 100644
--- a/appsrc/ODS-Framework/map_svc.vspx
+++ b/appsrc/ODS-Framework/map_svc.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: map_svc.vspx,v 1.6.2.2 2011/03/08 13:28:14 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/mc.vsp b/appsrc/ODS-Framework/mc.vsp
index 3cb1ed2..158ca7a 100644
--- a/appsrc/ODS-Framework/mc.vsp
+++ b/appsrc/ODS-Framework/mc.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: mc.vsp,v 1.1.4.2 2011/08/03 11:42:19 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2011 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -21,7 +21,8 @@
 --  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 --
 
-   declare sid, mbox, digest, id, mu, rc, webid, accept, fmt any;
+   declare sid, mbox, digest, id, mu, rc, webid, accept, fmt, cb, ep any;
+
    rc := 0;
    accept := http_request_header_full (lines, 'Accept', '*/*');
    fmt := DB.DBA.HTTP_RDF_GET_ACCEPT_BY_Q (accept); 
@@ -33,12 +34,32 @@
    webid := FOAF_SSL_WEBID_GET ();
    rc := WEBID_AUTH_GEN (null, 0, '', 1, 0);
    mbox := (select VS_UID from VSPX_SESSION where VS_SID = sid and VS_REALM = 'mv');
+   cb := (select VS_STATE from VSPX_SESSION where VS_SID = sid and VS_REALM = 'mv');
+   if (cb is not null)
+     cb := get_keyword ('callback', deserialize (cb));
+   else
+     cb := null;
    if (rc and mbox is not null)
      {
        digest := sha1_digest (mbox);
        id := sprintf ('http://%{URIQADefaultHost}s/mv/data/') || bin2hex (cast (decode_base64 (digest) as varbinary));
        mu := 'mailto:' || mbox;
-       sparql insert into graph iri ('http://localhost/mv') { `iri (?:id)` foaf:primaryTopic `iri(?:webid)` . `iri(?:webid)` foaf:mbox_sha1sum ?:digest . };
+       ep := sprintf ('http://%{URIQADefaultHost}s/sparql-auth/');
+       sparql insert into graph iri ('http://localhost/mv') 
+	  { 
+             `iri (?:id)` <http://vocab.deri.ie/void#inDataset> <http://localhost/mv> .
+             <http://localhost/mv> <http://rdfs.org/ns/void#sparqlEndpoint> `iri(?:ep)` .
+	     `iri (?:id)` foaf:primaryTopic `iri(?:webid)` . 
+             `iri(?:webid)` foaf:mbox_sha1sum ?:digest . 
+          };
+       if (length (cb))
+	 {
+	   declare c any;
+	   c := case when strchr (cb, '?') is null then '?' else '&' end;
+	   http_status_set (302);
+           http_header (sprintf ('Location: %s%sid=%U\r\n', cb, c, id));
+	   return;
+	 }	
        if (fmt = 'application/json')
 	 {
 	   http (sprintf ('{"status":"verified", "document_url":"%s"}', id));
diff --git a/appsrc/ODS-Framework/member.vspx b/appsrc/ODS-Framework/member.vspx
index 2ca2972..4c85bbe 100644
--- a/appsrc/ODS-Framework/member.vspx
+++ b/appsrc/ODS-Framework/member.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: member.vspx,v 1.6.2.1 2010/09/20 10:15:22 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/member_edit.vspx b/appsrc/ODS-Framework/member_edit.vspx
index 9ba1494..9e125b9 100644
--- a/appsrc/ODS-Framework/member_edit.vspx
+++ b/appsrc/ODS-Framework/member_edit.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: member_edit.vspx,v 1.5.2.1 2010/09/20 10:15:22 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/members.vspx b/appsrc/ODS-Framework/members.vspx
index 8f9fecf..8c7fc17 100644
--- a/appsrc/ODS-Framework/members.vspx
+++ b/appsrc/ODS-Framework/members.vspx
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: members.vspx,v 1.12.2.6 2010/11/11 12:38:18 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -32,6 +32,9 @@
   <vm:page>
     <vm:header>
       <script type="text/javascript" src="tbl.js">;</script>
+      <script type="text/javascript" src="typeahead.js">;</script>
+      <link rel="stylesheet" type="text/css" href="typeahead.css" />
+      <link rel="stylesheet" type="text/css" href="common.css" />
       <vm:title>Application Members</vm:title>
     </vm:header>
     <v:on-init>
@@ -46,14 +49,6 @@
         {
           self.ihome := self.inst.wa_home_url();
         }
-        else if (self.wa_type in ('oMail'))
-        {
-          declare tmp varchar;
-
-          tmp := self.iname;
-          self.iname := subseq(tmp, 0, strstr(tmp, '@'));
-          self.wa_domain := subseq(tmp, strstr(tmp, '@'));
-        }
       ]]>
     </v:on-init>
     <v:after-data-bind>
@@ -100,6 +95,7 @@
      			  self.vc_redirect ('services.vspx');
  		      </v:on-post>
   		  </v:button>
+  		  <br /><br />
         <v:template name="template_01" type="simple" enabled="--case when self.wa_type in ('oDrive', 'oMail', 'IM') or (self.imodel = 1) then 0 else 1 end">
           <fieldset>
             <legend><b>Members</b></legend>
@@ -730,18 +726,20 @@
             <table>
               <tr>
                 <td width="100%">
-                  <table id="s_tbl" class="listing" style="width: 100%;" cellspacing="0">
+                  <table id="s_tbl" class="ODS_grid">
                     <thead>
-                      <tr class="listing_header_row">
-                        <th width="1%" nowrap="nowrap">Access Type</th>
-                        <th nowrap="nowrap">WebID</th>
-                        <th width="1%" align="center" nowrap="nowrap">ACL: (R)ead, (W)rite</th>
-                        <th width="1%">Action</th>
+                      <tr>
+                        <th width="15%">Type</th>
+                        <th>Value</th>
+                        <th width="1%" nowrap="nowrap">ACL: (R)ead, (W)rite</th>
+                        <th class="action">Action</th>
                       </tr>
                     </thead>
+                    <tbody id="s_tbody">
                     <tr id="s_tr_no"><td colspan="4"><b>No WebID Security</b></td></tr>
               		  <![CDATA[
               		    <script type="text/javascript">
+               		        OAT.Loader.load(["ajax", "json", "calendar"]);
       <?vsp
                         declare N integer;
 
@@ -750,11 +748,12 @@
 
                         for (N := 0; N < length (self.iacl); N := N + 1)
                         {
-                          http (sprintf ('ODSInitArray.push(function(){TBL.createRow("s", null, {fld_1: {mode: 50, value: "%s", onchange: function(){TBL.changeCell50(this);}}, fld_2: {mode: 51, className: "_validate_ _webid_", value: "%s", readOnly: %s, imgCssText: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; text-align: center;"}});});', self.iacl[N][2], self.iacl[N][1], case when self.iacl[N][2] = 'public' then 'true' else 'false' end, case when self.iacl[N][2] = 'public' then 'display: none;' else '' end, self.iacl[N][3], self.iacl[N][4], self.iacl[N][5]));
+                            http (sprintf ('ODSInitArray.push(function(){TBL.createRow("s", null, {fld_1: {mode: 50, value: "%s", onchange: function(){TBL.changeCell50(this);}}, fld_2: {mode: 51, className: "_validate_ _webid_", value: %s, readOnly: %s, imgCssText: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; text-align: center;"}});});', self.iacl[N][2], ODS..obj2json (self.iacl[N][1]), case when self.iacl[N][2] = 'public' then 'true' else 'false' end, case when self.iacl[N][2] = 'public' then 'display: none;' else '' end, self.iacl[N][3], self.iacl[N][4], self.iacl[N][5]));
         }
       ?>
               		    </script>
               		  ]]>
+                    </tbody>
                   </table>
                 </td>
                 <td valign="top" nowrap="nowrap">
@@ -765,7 +764,7 @@
             <v:button name="btn_acl_update" action="simple" value="Update" xhtml_class="form-button">
               <v:on-post>
                 <![CDATA[
-                  self.iacl := DB.DBA.wa_acl_params (e.ve_params);
+                  self.iacl := DB.DBA.wa_aci_params (e.ve_params);
                   update DB.DBA.WA_INSTANCE
                      set WAI_ACL = serialize (self.iacl)
                    where WAI_ID = self.iid;
diff --git a/appsrc/ODS-Framework/members_inv.vspx b/appsrc/ODS-Framework/members_inv.vspx
index a25aa9f..2b302dc 100644
--- a/appsrc/ODS-Framework/members_inv.vspx
+++ b/appsrc/ODS-Framework/members_inv.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: members_inv.vspx,v 1.7.2.1 2010/09/20 10:15:23 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/moat_ruleset_tags.vspx b/appsrc/ODS-Framework/moat_ruleset_tags.vspx
index 0a8f2ca..2bf6f69 100644
--- a/appsrc/ODS-Framework/moat_ruleset_tags.vspx
+++ b/appsrc/ODS-Framework/moat_ruleset_tags.vspx
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: moat_ruleset_tags.vspx,v 1.1.2.1 2010/09/20 10:15:23 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/moat_tags.vspx b/appsrc/ODS-Framework/moat_tags.vspx
index 89fb0f5..dc2ae1f 100644
--- a/appsrc/ODS-Framework/moat_tags.vspx
+++ b/appsrc/ODS-Framework/moat_tags.vspx
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: moat_tags.vspx,v 1.3.2.1 2010/09/20 10:15:23 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/mv.vsp b/appsrc/ODS-Framework/mv.vsp
index 343b5fb..4cbabae 100644
--- a/appsrc/ODS-Framework/mv.vsp
+++ b/appsrc/ODS-Framework/mv.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: mv.vsp,v 1.1.4.2 2011/08/03 11:42:19 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2011 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -23,19 +23,24 @@
 
    declare ms int;
    ms := 0;
-   http_rewrite ();	
+   http_rewrite ();
    if (length ({?'mbox'}))
      {
-       declare mbox, digest, id, mu, https, sender, sid, accept, fmt any;
+       declare mbox, digest, id, mu, https, sender, sid, accept, fmt, cb any;
        accept := http_request_header_full (lines, 'Accept', '*/*');
-       fmt := DB.DBA.HTTP_RDF_GET_ACCEPT_BY_Q (accept); 
+       fmt := {?'format'};
+       if (length (fmt) = 0)
+         {
+       fmt := DB.DBA.HTTP_RDF_GET_ACCEPT_BY_Q (accept);
+         }
        if (fmt = 'application/json')
          http_header ('Content-Type: application/json\r\n');
-       mbox := {?'mbox'}; 
-       https := ODS..getDefaultHttps ();
-       sender := (select U_E_MAIL from SYS_USERS where U_NAME = 'dav');    	
+       mbox := {?'mbox'};
+       cb := {?'cb'};
+       https := ODS.ODS_API.getDefaultHttps ();
+       sender := (select U_E_MAIL from SYS_USERS where U_NAME = 'dav');
        sid := vspx_sid_generate ();
-       insert into VSPX_SESSION (VS_SID, VS_REALM, VS_UID, VS_EXPIRY) values (sid, 'mv', mbox, now ());
+       insert into VSPX_SESSION (VS_SID, VS_REALM, VS_UID, VS_EXPIRY, VS_STATE) values (sid, 'mv', mbox, now (), serialize (vector ('callback', cb)));
        declare exit handler for sqlstate '*'
 	{
 	   if (fmt = 'application/json')
@@ -47,7 +52,7 @@
            goto error;	  
 	};
        smtp_send (null, sender, mbox,
-     	sprintf ('Subject: Mail verification service\r\nPlease click on the link bellow to confirm your email.\r\nhttps://%s/mv/mc.vsp?confirm=%U', https, sid)); 
+     	sprintf ('Subject: Mail verification service\r\nPlease click on the link below to confirm your email.\r\nhttps://%s/mv/mc.vsp?confirm=%U', https, sid));
        ms := 1;
        if (fmt = 'application/json')
          {
@@ -64,19 +69,19 @@
 	<?vsp if (ms = 0) { ?>
 	<h1>Enter your mail address</h1>
 	<form name="f" method="post" action="mv.vsp">
-	    <input type="text" size="70" name="mbox" value=""/> 
-	    <input type="submit" value="Verify" name="go" /> 
+	    <input type="text" size="70" name="mbox" value=""/>
+	    <input type="submit" value="Verify" name="go" />
 	</form>
 	<?vsp } else { ?>
 	<div>A confirmation mail was sent, please check your mail box.</div>
-	<?vsp } 
+	<?vsp }
 	   if (0)
 	     {
 		error:
 	?>
 	<div>Error in processing your request.</div>
-	<?vsp    
-	     }		
+	<?vsp
+	     }
 	?>
     </body>
 </html>
diff --git a/appsrc/ODS-Framework/myhome.vspx b/appsrc/ODS-Framework/myhome.vspx
index dca5edd..238b476 100644
--- a/appsrc/ODS-Framework/myhome.vspx
+++ b/appsrc/ODS-Framework/myhome.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: myhome.vspx,v 1.15.2.3 2010/09/20 10:15:23 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/nav_framework.css b/appsrc/ODS-Framework/nav_framework.css
index a911aeb..f3ab88a 100644
--- a/appsrc/ODS-Framework/nav_framework.css
+++ b/appsrc/ODS-Framework/nav_framework.css
@@ -1095,37 +1095,6 @@ table.form td {
   white-space: nowrap;
 }
 
-.tabs {
-	margin-top: 24px;
-	list-style-type: none;
-	padding-bottom: 1px;
-	padding-left: 0.5em;
-}
-
-.tabs li {
-	display: inline;
-	padding: 1px 3px;
-	margin-left: 0.1em;
-	cursor: pointer;
-  border-top: 1px solid #aaa;
-  border-left: 1px solid #aaa;
-  border-right: 1px solid #aaa;
-  -moz-border-radius-topleft: 3px;
-  -moz-border-radius-topright: 3px;
-  -webkit-border-top-left-radius: 3px;
-  -webkit-border-top-right-radius: 3px;
-	background-color: #EFEFEF;
-	z-index: 10;
-}
-
-.tabs li.tab_selected {
-	background-color: #FFF;
-}
-
-.tabs li.tab:hover {
-	background-color: #FFF;
-}
-
 #lf_close {
   float: right;
   cursor: pointer;
diff --git a/appsrc/ODS-Framework/nav_framework.js b/appsrc/ODS-Framework/nav_framework.js
index 4b629b1..bb58da0 100644
--- a/appsrc/ODS-Framework/nav_framework.js
+++ b/appsrc/ODS-Framework/nav_framework.js
@@ -3,7 +3,7 @@
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2010 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -55,12 +55,9 @@ function _getChildElemsByClassName(elm, class_name, max_depth,
   return elm_arr;
 }
 
-function getChildElemsByClassName(elm, class_name, max_depth,
-		stop_at_first_match) {
+function getChildElemsByClassName(elm, class_name, max_depth, stop_at_first_match) {
   var elm_arr = new Array ();
-  
-	return _getChildElemsByClassName(elm, class_name, max_depth,
-			stop_at_first_match, elm_arr);
+	return _getChildElemsByClassName(elm, class_name, max_depth, stop_at_first_match, elm_arr);
 }
 
 function replaceTemplateClass(elm, class_name, content) {
@@ -211,7 +208,7 @@ function inverseSelected(parentDiv) {
 }
 
 OAT.Preferences.imagePath = "/ods/images/oat/";
-OAT.Preferences.stylePath = "/ods/";
+OAT.Preferences.stylePath = "/ods/oat/styles/";
 
 window.ODS = {};
 
@@ -1099,7 +1096,7 @@ ODS.Nav = function(navOptions) {
 			}, 'menu_link profile_edit shortcut');
 		profileMenuAProfileEdit.innerHTML = 'edit';
       OAT.Event.attach (profileMenuAProfileEdit, "click", function () {
-				      self.loadVspx (self.expandURL (self.ods + 'uiedit.vspx'));
+				self.loadCheckedVspx(self.expandURL(self.ods + 'uiedit.vspx'));
 				  });
 
 		if (self.session.userName)
@@ -1235,11 +1232,9 @@ ODS.Nav = function(navOptions) {
 
 	    var messagesMenu = new OAT.Menu ();
 	    messagesMenu.noCloseFilter = 'menu_separator';
-
 	    messagesMenu.createFromUL ("messages_menu");
 
-	    OAT.Style.include ('dock.css');
-
+			OAT.Style.include(location.protocol + '//' + location.host + '/ods/dock.css');
 	    OAT.Dom.show ($('messages_menu').parentNode);
 
 			OAT.Loader.load( [ "dock" ], function() {
@@ -1873,7 +1868,7 @@ ODS.Nav = function(navOptions) {
 		var aSettings = OAT.Dom.create("a", {cursor: 'pointer'});
 
 		OAT.Event.attach(aSettings, "click", function() {
-			      self.loadVspx (self.expandURL (self.ods + 'app_settings.vspx'));
+			self.loadCheckedVspx(self.expandURL(self.ods + 'app_settings.vspx'));
 			  });
 
     aSettings.innerHTML = 'Application Settings';
@@ -1881,7 +1876,7 @@ ODS.Nav = function(navOptions) {
 		var aSiteSettings = OAT.Dom.create("a", {cursor: 'pointer'});
 
 		OAT.Event.attach(aSiteSettings, "click", function() {
-			      self.loadVspx (self.expandURL (self.ods + 'site_settings.vspx'));
+			self.loadCheckedVspx(self.expandURL(self.ods + 'site_settings.vspx'));
 			  });
 
 	aSiteSettings.innerHTML = 'Site Settings';
@@ -1947,6 +1942,8 @@ ODS.Nav = function(navOptions) {
       try {
         self.regData = OAT.JSON.parse(data);
       } catch (e) { self.regData = {}; }
+      if (!lsRegData)
+        lsRegData = self.regData;
     }
     OAT.AJAX.GET ('/ods/api/server.getInfo?info=regData', false, x, {async: false});
 
@@ -1985,6 +1982,9 @@ ODS.Nav = function(navOptions) {
 				} catch (e) {
 					o = null;
 				}
+        if (!lfSslData)
+         lfSslData = o;
+
 				if (o && o.iri) {
           self.sslData = o;
 					if (o.certLogin && !self.userLogged) {
@@ -1997,7 +1997,7 @@ ODS.Nav = function(navOptions) {
 		}
 	    }
         }
-			  OAT.AJAX.GET('/ods/api/user.getFOAFSSLData?sslFOAFCheck=1&sslLoginCheck=1', false, x);
+		  OAT.AJAX.GET('/ods/api/user.getFOAFSSLData?sslFOAFCheck=1', false, x, {async: false});
 			}
       }
 
@@ -2744,7 +2744,7 @@ ODS.Nav = function(navOptions) {
 
 		var connHTML = templateHtml;
 
-			connHTML = connHTML.replace('{connImgSRC}', conn.photo.length > 0 ? conn.photo : 'images/missing_profile_picture.png'); // images/profile.png
+			connHTML = connHTML.replace('images/profile.png', conn.photo.length > 0 ? conn.photo : 'images/profile.png');
 	connHTML = connHTML.replace ('{connProfileFullName}', conn.fullName);
 	connHTML = connHTML.replace ('{sendMsg}', 'sendMsg_' + conn.uid);
 	connHTML = connHTML.replace ('{viewConnections}', 'viewConnections_' + conn.uid);
@@ -3020,6 +3020,7 @@ ODS.Nav = function(navOptions) {
       img.src = userProfilePhoto;
       img.alt = userDisplayName;
       img.rel = 'foaf:depiction';
+      OAT.Dom.clear('userProfilePhoto');
       $('userProfilePhoto').appendChild(img);
   	} else {
       $('userProfilePhoto').innerHTML = '<br /><b>Photo Not Available</b><br /><br />';
@@ -4005,6 +4006,18 @@ ODS.Nav = function(navOptions) {
 		return this.expandURL(this.ods + 'sfront.vspx');
 	};
 
+	this.loadCheckedVspx = function(url) {
+    var x = function (data) {
+      var xml = OAT.Xml.createXmlDoc(data);
+      if (hasError(xml, false)) {
+				self.session.end();
+      } else {
+	      self.loadVspx(url);
+	    }
+    }
+    OAT.AJAX.GET('/ods/api/user.validate?sid='+self.session.sid+'&realm='+self.session.realm, false, x);
+	};
+
 	this.loadRDFB = function(url, useFrame) {
 		if (typeof (url) == 'undefined')
 			return;
@@ -4144,7 +4157,7 @@ ODS.Nav = function(navOptions) {
 	if (applicationType == 'FeedManager')
 	    applicationType = 'Feed Manager';
 
-	if (applicationType == 'InstantMessenger')
+		else if (applicationType == 'InstantMessenger')
 	    applicationType = 'Instant Messenger';
 
 		var data = 'sid=' + self.session.sid + '&application=' + encodeURIComponent(applicationType);
@@ -4154,7 +4167,8 @@ ODS.Nav = function(navOptions) {
 		    if (typeof (callbackFunction) == "function")
 			callbackFunction (xmlDoc);
 			} else {
-		    self.wait();
+				self.session.end();
+				// self.wait();
 		}
     }
 		OAT.AJAX.POST(self.session.endpoint + "checkApplication", data, callback, ajaxOptions);
diff --git a/appsrc/ODS-Framework/nav_framework_api.sql b/appsrc/ODS-Framework/nav_framework_api.sql
index da6cffb..d3b5ca0 100644
--- a/appsrc/ODS-Framework/nav_framework_api.sql
+++ b/appsrc/ODS-Framework/nav_framework_api.sql
@@ -1,10 +1,10 @@
 --
---  $Id: nav_framework_api.sql,v 1.23.2.20 2011/05/16 08:53:55 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/new_inst.vspx b/appsrc/ODS-Framework/new_inst.vspx
index 481d086..5d75fc4 100644
--- a/appsrc/ODS-Framework/new_inst.vspx
+++ b/appsrc/ODS-Framework/new_inst.vspx
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: new_inst.vspx,v 1.21.2.4 2010/09/20 10:15:23 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -335,12 +335,12 @@
       }
       self.ilic := self.ilic1.ufl_value;
       update WA_INSTANCE
-         set WAI_MEMBER_MODEL = self.imodel1.ufl_value,
+         set WAI_MEMBER_MODEL = atoi(self.imodel1.ufl_value),
              WAI_IS_PUBLIC = self.is_public,
              WAI_MEMBERS_VISIBLE = self.is_visible,
-             WAI_NAME = self.inst.wa_name,
-	           WAI_DESCRIPTION = self.idesc1.ufl_value,
-	           WAI_LICENSE = self.ilic1.ufl_value
+             WAI_NAME = cast (self.inst.wa_name as varchar),
+	           WAI_DESCRIPTION = cast (self.idesc1.ufl_value as varchar),
+	           WAI_LICENSE = cast (self.ilic1.ufl_value as varchar)
              where WAI_ID = id;
       -- VD creation
       {
diff --git a/appsrc/ODS-Framework/oauth/default.css b/appsrc/ODS-Framework/oauth/default.css
index 4dbec62..824b14e 100644
--- a/appsrc/ODS-Framework/oauth/default.css
+++ b/appsrc/ODS-Framework/oauth/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.1.2.1 2010/09/20 10:15:35 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/oauth/error.vspx b/appsrc/ODS-Framework/oauth/error.vspx
index 59ad67f..2177851 100644
--- a/appsrc/ODS-Framework/oauth/error.vspx
+++ b/appsrc/ODS-Framework/oauth/error.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: error.vspx,v 1.1.2.1 2010/09/20 10:15:35 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/oauth/foaf_ssl.sql b/appsrc/ODS-Framework/oauth/foaf_ssl.sql
index 54092cc..cc1049d 100644
--- a/appsrc/ODS-Framework/oauth/foaf_ssl.sql
+++ b/appsrc/ODS-Framework/oauth/foaf_ssl.sql
@@ -1,24 +1,210 @@
-DB.DBA.EXEC_STMT ('create table FOAF_SSL_ACL (FS_URI varchar primary key, FS_UID varchar not null)', 0)
+DB.DBA.EXEC_STMT ('create table FOAF_SSL_ACL (FS_URI varchar primary key, FS_UID varchar not null, FS_TYPE int default 0)', 0)
 ;
 
-create procedure FOAF_SSL_QR (in gr varchar, in agent varchar)
+create procedure webid_add_col (in tbl varchar, in col varchar, in coltype varchar)
 {
-  declare qr any;
-  qr := sprintf (
-        'sparql define input:storage "" '||
-	' prefix cert: <http://www.w3.org/ns/auth/cert#> '||
-	' prefix rsa: <http://www.w3.org/ns/auth/rsa#> ' ||
-  	' select (str (bif:coalesce (?exp_val, ?exp))) (str (bif:coalesce (?mod_val, ?mod))) '||
-	' from <%S> '||
-  	' where { '||
-	' 	  ?id cert:identity <%S> ; rsa:public_exponent ?exp ; rsa:modulus ?mod . ' ||
-	' 	  optional { ?exp cert:decimal ?exp_val . ?mod cert:hex ?mod_val . } '||
-	'       } ',
-	gr, agent);
-  return qr;      
+  if (exists (select top 1 1 from DB.DBA.SYS_COLS where upper("TABLE") = upper(tbl) and upper("COLUMN") = upper(col))) 
+    return;
+  exec (sprintf ('alter table %s add column %s %s', tbl, col, coltype));
+}
+;
+
+webid_add_col ('DB.DBA.FOAF_SSL_ACL', 'FS_TYPE', 'int default 0');
+
+exec_quiet ('create table SPARQL_WEBID_ACL (SWA_RULE varchar references FOAF_SSL_ACL (FS_URI) on delete cascade, 
+    SWA_ID int, SWA_PROP varchar, SWA_OP varchar, SWA_VAL varchar, SWA_QUERY varchar, 
+    primary key (SWA_RULE, SWA_ID))'); 
+
+--!
+-- \ingroup ods_devel_api
+--
+-- \brief Get the SQL user accociated with a WebID.
+--
+-- In ODS each WebID needs to be accociated with an SQL user. This method handles the
+-- mapping.
+--
+-- \param webID The WebID URI to translate to an SQL user.
+-- \param createMode If 1 a new SQL user will be created and accociated with the given
+-- WebID if it does not exist yet.
+--
+-- \return The SQL user account name accociated with the given WebID or an empty string
+-- if it does not exist and was not requested to be created.
+--
+-- FIXME: what about owl_sameAs WebIDs? What if I set a WebID as my owl:sameAs that already
+-- has an accociated SQL user?
+--/
+create procedure FOAF_WEBID_USER (
+  inout webID varchar,
+  inout createMode integer := 0)
+{
+  declare uid varchar;
+
+  uid := (select FS_UID from DB.DBA.FOAF_SSL_ACL where FS_URI = webID);
+  if (createMode and isnull (uid))
+  {
+    uid := sprintf ('SPUID%d', sequence_next ('__SPUID'));
+    USER_CREATE (uid, uuid());
+    USER_GRANT_ROLE (uid, 'SPARQL_SELECT');
+    USER_SET_OPTION (uid, 'DISABLED', 1);
+    insert into DB.DBA.FOAF_SSL_ACL (FS_URI, FS_UID)
+      values (webID, uid);
+  }
+  return uid;
 }
 ;
 
+create procedure WEBID_CERT_PROPS (in cert any)
+{
+  declare x, valid_from, valid_to, exp any;
+
+  valid_from := X509_STRING_DATE (get_certificate_info (4, cert));
+  valid_to := X509_STRING_DATE (get_certificate_info (5, cert));
+  exp := 0;
+  if (valid_to < now () or valid_from > now ())
+    exp := 1;
+  x := vector (
+      'webIDVerified', 1,
+      'certExpiration', exp, 
+      'certSerial', get_certificate_info (1, cert),
+      'webID', FOAF_SSL_WEBID_GET_ALL (cert),          
+      'certMail', get_certificate_info (10, cert, 0, null, 'emailAddress'),      
+      'certSubject', get_certificate_info (2, cert),    
+      'certIssuer' , get_certificate_info (3, cert),    
+      'certStartDate', valid_from, 
+      'certEndDate', valid_to,    
+      'certDigest', get_certificate_info (6, cert),     
+      'certSparqlASK', 'query'  
+      );
+   return x;
+};
+
+create procedure WEBID_GEN_ACL_PROC (in rule varchar)
+{
+  declare s, ops, op, exp any;
+  ops := vector (
+    'eq'           , '(^{value}^ = ^{pattern}^)',
+    'neq'          , '(^{value}^ <> ^{pattern}^)',
+    'lt'           , '(^{value}^ < ^{pattern}^)',
+    'lte'          , '(^{value}^ <= ^{pattern}^)',
+    'gt'           , '(^{value}^ > ^{pattern}^)',
+    'gte'          , '(^{value}^ >= ^{pattern}^)',
+    'contains'     , '(strstr (ucase (^{value}^), ucase (^{pattern}^)) is not null)',
+    'notContains'  , '(strstr (ucase (^{value}^), ucase (^{pattern}^)) is null)',
+    'startsWith'   , '(starts_with (ucase (^{value}^), ucase (^{pattern}^)))',
+    'notStartsWith', '(not (starts_with (ucase (^{value}^), ucase (^{pattern}^))))',
+    'endsWith'     , '(ends_with (ucase (^{value}^), ucase (^{pattern}^)))',
+    'notEndsWith'  , '(not (ends_with (ucase (^{value}^), ucase (^{pattern}^))))',
+    'isNull'       , '(DB.DBA.is_empty_or_null (^{value}^) = 1)',
+    'isNotNull'    , '(DB.DBA.is_empty_or_null (^{value}^) = 0)'
+  );
+  s := string_output ();
+  http (sprintf ('create procedure "WEBID_ACL_CHECK__%s" (in cert any, in graph any) { ', rule), s);
+  http ('\n', s);
+  http (sprintf (' declare val, vals, webid, rc any;'), s);
+  http ('\n', s);
+  http (sprintf (' vals := WEBID_CERT_PROPS (cert);'), s);
+  http ('\n', s);
+  for select * from SPARQL_WEBID_ACL where SWA_RULE = rule do
+    {
+      if (SWA_PROP = 'certSparqlASK')
+	{
+	  op := SWA_QUERY;
+	  http (sprintf ('\n-- rule %d\n', SWA_ID), s);
+	  http (sprintf (' val := get_keyword (%s, vals);', SYS_SQL_VAL_PRINT ('webID')), s);
+	  http ('\n', s);
+	  exp := replace (op,  '^{webid}^', '?:webid');
+	  exp := replace (exp, '^{graph}^', '?:graph');
+	  exp := replace (exp, '^{value}^', '?:val');
+	  if (strstr (op, '^{webid}^') is not null)
+	    {
+	      http (sprintf (' rc := 0;\n'), s);
+	      http (sprintf (' foreach (any w in val) do { \n'), s);
+	      http (sprintf ('  webid := w;'), s);
+	      http (sprintf ('  if (exists (sparql %s)) rc := 1;\n', exp), s);
+	      http (sprintf (' } \n'), s);
+	      http (sprintf (' if (rc = 0) return 0;\n'), s);
+	    }
+	  else
+	    {
+	      http (sprintf (' if (not exists (sparql %s)) return 0;', exp), s);
+	    }
+	  http ('\n', s);
+	}
+      else if (SWA_PROP = 'webID')
+	{
+	  http (sprintf ('\n-- rule %d\n', SWA_ID), s);
+	  http (sprintf (' val := get_keyword (%s, vals);', SYS_SQL_VAL_PRINT (SWA_PROP)), s);
+	  http ('\n', s);
+	  op := get_keyword (SWA_OP, ops);
+	  exp := replace (op, '^{value}^', 'w');
+	  exp := replace (exp, '^{pattern}^', SYS_SQL_VAL_PRINT (SWA_VAL));
+	  http (sprintf (' rc := 0;\n'), s);
+	  http (sprintf (' foreach (any w in val) do { \n'), s);
+	  http (sprintf (' if (%s) rc := 1;', exp), s);
+	  http ('\n', s);
+	  http (sprintf (' } \n'), s);
+	  http (sprintf (' if (rc = 0) return 0;\n'), s);
+	}
+      else
+	{
+	  http (sprintf ('\n-- rule %d\n', SWA_ID), s);
+	  http (sprintf (' val := get_keyword (%s, vals);', SYS_SQL_VAL_PRINT (SWA_PROP)), s);
+	  http ('\n', s);
+	  op := get_keyword (SWA_OP, ops);
+	  exp := replace (op, '^{value}^', 'val');
+	  if (SWA_PROP like '%Date')
+	    exp := replace (exp, '^{pattern}^', 'stringdate (' || SYS_SQL_VAL_PRINT (SWA_VAL) || ')');
+	  else  
+	    exp := replace (exp, '^{pattern}^', SYS_SQL_VAL_PRINT (SWA_VAL));
+	  http (sprintf (' if (not %s) return 0;', exp), s);
+	  http ('\n', s);
+	}
+    }
+  http (sprintf (' return 1;'), s);
+  http ('\n', s);
+  http (sprintf (''), s);
+  http (sprintf ('}'), s);
+  http ('\n', s);
+  return string_output_string (s);  
+}
+;
+
+
+--!
+-- \brief Create query string to fetch a certificate.
+--
+-- This method builds a query that fetches the certificates identified with a given URI.
+--
+-- \param gr The graph to query.
+-- \param uri The URI the certificates should be related to.
+--
+-- \return A query string.
+--/
+create procedure FOAF_SSL_QR (in gr varchar, in uri varchar)
+{
+    return sprintf ('sparql
+    define input:storage ""
+    define input:same-as "yes"
+    prefix cert: <http://www.w3.org/ns/auth/cert#>
+    prefix rsa: <http://www.w3.org/ns/auth/rsa#>
+    select (str (?exp)) (str (?mod))
+    from <%S>
+    where
+    {
+      { ?id cert:identity <%S> ; rsa:public_exponent ?exp ; rsa:modulus ?mod .  }
+      union
+      { ?id cert:identity <%S> ; rsa:public_exponent ?exp1 ; rsa:modulus ?mod1 . ?exp1 cert:decimal ?exp . ?mod1 cert:hex ?mod . }
+      union
+      { <%S> cert:key ?key . ?key cert:exponent ?exp . ?key cert:modulus ?mod .  }
+    }', gr, uri, uri, uri);
+}
+;
+
+--!
+-- \brief Query string to fetch the certificate by foaf:holdsAccount instead of the WebID directly.
+--
+-- FIXME: Is this backwards-compatibility legacy stuff?
+--/
 create procedure FOAF_SSL_QR_BY_ACCOUNT (in gr varchar, in agent varchar)
 {
   declare qr any;
@@ -30,10 +216,25 @@ create procedure FOAF_SSL_QR_BY_ACCOUNT (in gr varchar, in agent varchar)
   	' where { <%S> <http://xmlns.com/foaf/0.1/holdsAccount> ?acc . ?id cert:identity ?acc ; rsa:public_exponent ?exp ; rsa:modulus ?mod . '||
 	' optional { ?exp cert:decimal ?exp_val . ?mod cert:hex ?mod_val . } } ',
 	gr, agent);
-  return qr;      
+  return qr;
 }
 ;
 
+--!
+-- \ingroup ods_devel_api
+--
+-- \brief Extract the first WebID URI from a X.509 certificate.
+--
+-- \param cert An optional certificate to extract the WebID from. By default the current client-provided
+--             certificate is uses.
+-- \param cert_type The optional format of the provided certificate.
+-- - 0 (default) - PEM
+-- - 1 - DER (raw)
+-- - 2 - PKCS#12
+--
+-- \return The WebID embedded in the corresponding extension or \p null in case there is no WebID
+-- extension found in the certificate or an error occurred.
+--/
 create procedure FOAF_SSL_WEBID_GET (in cert any := null, in cert_type int := 0)
 {
   declare agent, alts any;
@@ -50,6 +251,59 @@ create procedure FOAF_SSL_WEBID_GET (in cert any := null, in cert_type int := 0)
 }
 ;
 
+--!
+-- \ingroup ods_devel_api
+--
+-- \brief Extract all WebID URIs from a X.509 certificate.
+--
+-- \param cert An optional certificate to extract the WebID from. By default the current client-provided
+--             certificate is uses.
+-- \param cert_type The optional format of the provided certificate.
+-- - 0 (default) - PEM
+-- - 1 - DER (raw)
+-- - 2 - PKCS#12
+--
+-- \return The WebIDs embedded in the corresponding extension or \p null in case there is no WebID
+-- extension found in the certificate or an error occurred.
+--/
+create procedure FOAF_SSL_WEBID_GET_ALL (in cert any := null, in cert_type int := 0)
+{
+  declare agents, agent, tmp, alts any;
+  agent := get_certificate_info (7, cert, cert_type, '', '2.5.29.17');
+  agents := null;
+  if (agent is not null)
+    {
+      declare inx int;
+      alts := regexp_replace (agent, ',[ ]*', ',', 1, null);
+      alts := split_and_decode (alts, 0, '\0\0,:');
+      if (alts is null)
+	return null;
+      while (0 <> (tmp := adm_next_keyword ('URI', alts, inx)))
+	{
+	  agents := vector_concat (agents, vector (tmp));
+	}
+    }
+  return agents;
+}
+;
+
+--!
+-- \ingroup ods_devel_api
+--
+-- \brief Extract the first EMail address from a X.509 certificate.
+--
+-- The function looks both in the ceritifacte and in the altName extension.
+--
+-- \param cert An optional certificate to extract the WebID from. By default the current client-provided
+--             certificate is uses.
+-- \param cert_type The optional format of the provided certificate.
+-- - 0 (default) - PEM
+-- - 1 - DER (raw)
+-- - 2 - PKCS#12
+--
+-- \return The EMail address embedded in the corresponding extension or \p null in case none is
+-- found in the certificate or an error occurred.
+--/
 create procedure FOAF_SSL_MAIL_GET (in cert any := null, in cert_type int := 0)
 {
   declare alts, mail any;
@@ -68,18 +322,73 @@ create procedure FOAF_SSL_MAIL_GET (in cert any := null, in cert_type int := 0)
 }
 ;
 
+--!
+-- \ingroup ods_devel_api
+--
+-- \brief Extract all EMail addresses from a X.509 certificate.
+--
+-- The function looks both in the ceritifacte and in the altName extension.
+--
+-- \param cert An optional certificate to extract the WebID from. By default the current client-provided
+--             certificate is uses.
+-- \param cert_type The optional format of the provided certificate.
+-- - 0 (default) - PEM
+-- - 1 - DER (raw)
+-- - 2 - PKCS#12
+--
+-- \return The EMail addresss embedded in the corresponding extension or \p null in case none is
+-- found in the certificate or an error occurred.
+--/
+create procedure FOAF_SSL_MAIL_GET_ALL (in cert any := null, in cert_type int := 0)
+{
+  declare alts, mail, ret any;
+  ret := vector ();
+  mail := get_certificate_info (10, cert, cert_type, '', 'emailAddress');
+  if (mail is not null)
+    ret := vector_concat (ret, vector (mail));
+  alts := get_certificate_info (7, cert, cert_type, '', '2.5.29.17');
+  if (alts is not null)
+    {
+      alts := regexp_replace (alts, ',[ ]*', ',', 1, null);
+      alts := split_and_decode (alts, 0, '\0\0,:');
+      mail := get_keyword ('email', alts);
+      if (mail is not null and not position (mail, ret)) 
+        ret := vector_concat (ret, vector (mail));
+    }
+  return ret;
+}
+;
+
 
 --
 -- WHEN USE try_loading_webid must clear the graph named as webid
--- 
+--
+--!
+-- \ingroup ods_devel_api
+--
+-- \brief Fetches the WebID or WebFinder address for a given certificate.
+--
+-- \param An optional certificate to extract the WebID from. By default the current client-provided
+--        certificate is uses.
+-- \param try_loading_webid If \p 1 the function looks for a WebID in the retrieved WebFinger profile
+--        and returns it instead of the WebFinger address.
+-- \param cert_type The optional format of the provided certificate.
+-- - 0 (default) - PEM
+-- - 1 - DER (raw)
+-- - 2 - PKCS#12
+--
+-- \return The WebID or the WebFinger address based on the value of try_loading_webid and the contents
+-- of the WebFinger profile which matches the given certificate. If no matching profile is found \p null
+-- is returned.
+--
+-- FIXME: Why does this function not clear the WebID graph itself?
+--/
 create procedure FOAF_SSL_WEBFINGER (in cert any := null, in try_loading_webid int := 0, in cert_type int := 0)
 {
-  declare mail, webid, domain, host_info, xrd, template, url any;
+  declare mails, webid, domain, host_info, xrd, template, url, h any;
   declare xt, xd, tmpcert any;
 
-  mail := FOAF_SSL_MAIL_GET (cert, cert_type);
-  if (mail is null)
-    return null;
+  mails := FOAF_SSL_MAIL_GET_ALL (cert, cert_type);
 
   declare exit handler for sqlstate '*'
     {
@@ -87,40 +396,47 @@ create procedure FOAF_SSL_WEBFINGER (in cert any := null, in try_loading_webid i
       return null;
     };
 
-  domain := subseq (mail, position ('@', mail));
-  host_info := http_get (sprintf ('http://%s/.well-known/host-meta', domain));
-  xd := xtree_doc (host_info);
-  template := cast (xpath_eval ('/XRD/Link[@rel="lrdd"]/@template', xd) as varchar);
-  url := replace (template, '{uri}', 'acct:' || mail);
-  xrd := http_get (url);
-  xd := xtree_doc (xrd);
-  xt := xpath_eval ('/XRD/Property[@type="certificate"]/@href', xd, 0);
-  foreach (any x in xt) do
-    {
-      x := cast (x as varchar);
-      tmpcert := http_get (x);
-      if (get_certificate_info (6, cert, cert_type, '') = get_certificate_info (6, tmpcert, 0, ''))
+  foreach (varchar mail in mails) do
+    {
+      domain := subseq (mail, position ('@', mail));
+      h := null;
+      host_info := http_get (sprintf ('http://%s/.well-known/host-meta', domain), h, 'GET', null, null, null, 10, 15);
+      if (h is null or h[0] not like 'HTTP/1._ 200')
+	goto next_mail;
+      xd := xtree_doc (host_info);
+      template := cast (xpath_eval ('/XRD/Link[@rel="lrdd"]/@template', xd) as varchar);
+      url := replace (template, '{uri}', 'acct:' || mail);
+      xrd := http_get (url);
+      xd := xtree_doc (xrd);
+      xt := xpath_eval ('/XRD/Property[@type="certificate"]/@href', xd, 0);
+      foreach (any x in xt) do
 	{
-	  webid := null;
-	  if (try_loading_webid)
+	  x := cast (x as varchar);
+	  tmpcert := http_get (x);
+	  if (get_certificate_info (6, cert, cert_type, '') = get_certificate_info (6, tmpcert, 0, ''))
 	    {
-	      declare hf, gr, graph, qr, stat, msg any;
-	  webid := cast (xpath_eval ('/XRD/Property[@type="webid"]/@href', xd) as varchar);
-	      hf := rfc1808_parse_uri (webid);
-	      hf[5] := '';
-	      gr := DB.DBA.vspx_uri_compose (hf);
-	      graph := uuid ();
-	      qr := sprintf ('sparql load <%S> into graph <%S>', gr, graph);
-	      stat := '00000';
-	      exec (qr, stat, msg);
-	      commit work;
-	      if (stat = '00000')
-		return graph;
-	      else
-		return null;
+	      webid := null;
+	      if (try_loading_webid)
+		{
+		  declare hf, gr, graph, qr, stat, msg any;
+		  webid := cast (xpath_eval ('/XRD/Property[@type="webid"]/@href', xd) as varchar);
+		  hf := rfc1808_parse_uri (webid);
+		  hf[5] := '';
+		  gr := DB.DBA.vspx_uri_compose (hf);
+		  graph := uuid ();
+		  qr := sprintf ('sparql load <%S> into graph <%S>', gr, graph);
+		  stat := '00000';
+		  exec (qr, stat, msg);
+		  commit work;
+		  if (stat = '00000')
+		    return graph;
+		  else
+		    return null;
+		}
+	      return coalesce (webid, 'acct:' || mail);
 	    }
-	  return coalesce (webid, 'acct:' || mail);
 	}
+      next_mail:;
     }
   return null;
 }
@@ -129,24 +445,39 @@ create procedure FOAF_SSL_WEBFINGER (in cert any := null, in try_loading_webid i
 create procedure DB.DBA.FOAF_MOD (in m any)
 {
   declare modulus any;
-  modulus := lower (regexp_replace (m, '[^A-Z0-9a-f]', '', 1, null));	      
+  modulus := lower (regexp_replace (m, '[^A-Z0-9a-f]', '', 1, null));
   --dbg_obj_print_vars (modulus);
   return modulus;
 }
 ;
 
+grant execute on DB.DBA.FOAF_MOD to SPARQL_SELECT
+;
+
 create procedure FOAF_SSL_AUTH (in realm varchar)
 {
   return FOAF_SSL_AUTH_GEN (realm, 0);
 }
 ;
 
+create procedure WEBID_AUTH (in realm varchar)
+{
+  return FOAF_SSL_AUTH_GEN (realm, 0);
+}
+;
+
+
+-- XXX: must delete, old code
 create procedure WEBID_AUTH_GEN (in cert any, in ctype int, in realm varchar, in allow_nobody int := 0, in use_session int := 1)
 {
   declare stat, msg, meta, data, info, qr, hf, graph, fing, gr, modulus, alts, dummy any;
   declare agent varchar;
   declare acc int;
+  declare ret_code, done int;
+
+  ret_code := 0;
   acc := 0;
+  done := 0;
   declare exit handler for sqlstate '*'
     {
       rollback work;
@@ -154,6 +485,7 @@ create procedure WEBID_AUTH_GEN (in cert any, in ctype int, in realm varchar, in
     }
   ;
 
+  -- gr: temporary graph URI for the profile
   gr := uuid ();
   info := get_certificate_info (9, cert, ctype);
   fing := get_certificate_info (6, cert, ctype);
@@ -176,23 +508,30 @@ create procedure WEBID_AUTH_GEN (in cert any, in ctype int, in realm varchar, in
   if (agent is null)
     return 0;
 
+  -- If we already have a session for the given certificate (fingerprint) use it
+  -- FIXME: security risk: in theory a WebID certificate could have been compromised in between
+  -- calls. At that point a third party could login with the old certificate key/fingerprint even
+  -- if the actual owner of the WebID had changed their certificate key in the meantime.
   for select VS_UID from VSPX_SESSION where VS_SID = fing and VS_REALM = 'FOAF+SSL' do
     {
       connection_set ('SPARQLUserId', VS_UID);
       return 1;
     }
 
+  -- additional LDAP URI check: no need to query certificate key if succesful
   if (agent like 'ldap://%' and DB.DBA.FOAF_SSL_LDAP_CHECK_CERT_INT (agent, cert, ctype, dummy))
     goto authenticated;
 
+  -- Resolve the agent URL and remove the SSL 's' from the protocol
   hf := rfc1808_parse_uri (agent);
   hf[5] := '';
+
   graph := DB.DBA.vspx_uri_compose (hf);
   qr := sprintf ('sparql load <%S> into graph <%S>', graph, gr);
   stat := '00000';
   exec (qr, stat, msg);
   commit work;
-  qr := FOAF_SSL_QR (gr, agent);    
+  qr := FOAF_SSL_QR (gr, agent);
   stat := '00000';
 --  dbg_printf ('%s', qr);
   exec (qr, stat, msg, vector (), 0, meta, data);
@@ -205,6 +544,7 @@ create procedure WEBID_AUTH_GEN (in cert any, in ctype int, in realm varchar, in
     {
       declare arr, uid any;
 	      authenticated:
+              -- FIXME: Here we could allow any WebID that is set as owl:sameAs of a known ODS WebID
 	      uid := coalesce ((select FS_UID from FOAF_SSL_ACL where agent like FS_URI), 'nobody');
       if ('nobody' = uid and allow_nobody = 0)
 	goto err_ret;
@@ -226,22 +566,542 @@ create procedure WEBID_AUTH_GEN (in cert any, in ctype int, in realm varchar, in
       acc := 1;
       goto again_check;
     }
+
+  -- WebID and WebFinger authentication failed
   err_ret:
+--  dbg_obj_print (stat, data);
   exec (sprintf ('sparql clear graph <%S>', gr), stat, msg);
   commit work;
---  dbg_obj_print (stat, data);
-  return 0;
+
+-- FIXME: why is the code below not in a different method? It has nothing to do with WebID!
+  {
+    declare page, xt, xp varchar;
+    declare exit handler for sqlstate '*'
+      {
+	goto ret;
+      };
+    page := http_client (url=>graph, n_redirects=>15);
+    verify:
+    xt := xtree_doc (page, 2);
+    xp := xpath_eval ('string (.)', xt);
+    xp := cast (xp as varchar);
+    -- try DI
+    if (strstr (xp, '#SHA1') is not null)
+      fing := get_certificate_info (6, cert, ctype, null, 'sha1');
+    fing := replace (fing, ':', '');
+    if (strstr (xp, sprintf ('Fingerprint:%s', fing)) is not null)
+      {
+	ret_code := 1;
+        goto ret;
+      }
+    if (graph like 'http://twitter.com/%')
+      {
+	declare acco, arr, json, res any;
+	arr := sprintf_inverse (graph, 'http://twitter.com/%s', 1);
+	acco := arr[0];
+        json := http_get (sprintf ('http://search.twitter.com/search.json?q=%%40Fingerprint%%3A%U%%20from%%3A%U', fing, acco));
+	arr := json_parse (json);
+        res := get_keyword ('results', arr);
+	if (length (res) > 0)
+	  {
+	    ret_code := 1;
+	    goto ret;
+	  }
+	fing := get_certificate_info (6, cert, ctype, null, 'sha1');
+	fing := replace (fing, ':', '');
+        json := http_get (sprintf ('http://search.twitter.com/search.json?q=%%40Fingerprint%%3A%U%%20from%%3A%U', fing, acco));
+	arr := json_parse (json);
+        res := get_keyword ('results', arr);
+	if (length (res) > 0)
+	  {
+	    ret_code := 1;
+	    goto ret;
+	  }
+      }
+    if (not done and graph like 'http://graph.facebook.com/%')
+      {
+	declare tok, og_id, tree, nick any;
+	tree := json_parse (page);
+	og_id := get_keyword ('id', tree);
+	nick := get_keyword ('username', tree);
+	tok := DB.DBA.OPENGRAPH_GET_ACCESS_TOKEN (og_id);
+	if (tok is null)
+	  goto ret;
+	page := http_get (sprintf ('https://graph.facebook.com/%U/feed?access_token=%U', nick, tok));
+	done := 1;
+	goto verify;
+      }
+    if (not done and graph like 'http://%.linkedin.com/in/%')
+      {
+	declare oauth_keys, arr, opts, url, api_url, cnt any;
+	declare consumer_key, consumer_secret, oauth_token, oauth_secret, person_id varchar;
+	opts := (select RM_OPTIONS from DB..SYS_RDF_MAPPERS where RM_HOOK = 'DB.DBA.RDF_LOAD_LINKEDIN');
+	oauth_keys := DB.DBA.LINKEDIN_GET_ACCESS_TOKEN (graph);
+	oauth_token := oauth_keys[0];
+	oauth_secret := oauth_keys[1];
+	consumer_key := get_keyword ('consumer_key', opts);
+	consumer_secret := get_keyword ('consumer_secret', opts);
+	api_url := sprintf ('https://api.linkedin.com/v1/people/url=%U:(id)', graph);
+	url := DB.DBA.sign_request ('GET', api_url, '', consumer_key, consumer_secret, oauth_token, oauth_secret, 1);
+	cnt := http_get (url);
+	xt := xtree_doc (cnt);
+        person_id := cast (xpath_eval ('/person/id/text()', xt) as varchar);
+	url := DB.DBA.sign_request ('GET', sprintf ('http://api.linkedin.com/v1/people/%s/network', person_id), 'type=SHAR&scope=self', consumer_key, consumer_secret, oauth_token, oauth_secret, 1);
+	page := http_get (url);
+	done := 1;
+	goto verify;
+      }
+    exec (sprintf (
+    'sparql define get:soft "add" prefix opl: <http://www.openlinksw.com/schemas/cert#> select ?f ?dgst from <%S> { ?s opl:hasCertificate ?c . ?c opl:fingerprint ?f ; opl:fingerprint-digest ?dgst . }',
+    	graph), stat, msg, vector (), 0, meta, data);
+    if (length (data))
+     {
+       foreach (any x in data) do
+    	 {
+	   declare fng, fng2 any;
+	   fng := get_certificate_info (6, cert, ctype, null, x[1]);
+	   fng := replace (fng, ':', '');
+	   fng2 := x[0];
+	   fng2 := replace (fng2, ':', '');
+    	   if (lower (fng2) = lower (fng))
+    	     {
+    	       ret_code := 1;
+    	       goto ret;
+    	     }
+    	 }
+      }
+
+  }
+  ret:
+  return ret_code;
+}
+;
+
+create procedure WEBID_DI_SPLIT (in str varchar)
+{
+  declare di, h, dgst varchar;
+  declare ret any;
+  ret := vector ();
+  while (di := regexp_match ('di:[^ <>]+', str, 1) is not null)
+    {
+      h := WS.WS.PARSE_URI (di);
+      dgst := bin2hex (cast (decode_base64 (replace (replace (cast (h[3] as varchar), '-', '+'), '_', '/')) as varbinary));
+      ret := vector_concat (ret, vector (vector (cast (h[2] as varchar), dgst)));
+    }
+  return ret;
+}
+;
+
+create procedure DB.DBA.X509_STRING_DATE (in val varchar)
+{
+  declare ret, tmp any;
+  ret := NULL;
+  declare exit handler for sqlstate '*'
+    {
+      return null;
+    };
+  val := regexp_replace (val, '[ ]+', ' ', 1, null);
+  -- Jan 11 14:36:33 2012 GMT
+  if (val is not null and regexp_match ('[[:upper:]][[:lower:]]{2} [0-9]{1,} [0-9]{2}:[0-9]{2}:[0-9]{2} [0-9]{4,} GMT', val) is not null)
+    {
+      tmp := sprintf_inverse (val, '%s %s %s %s GMT', 0);
+      if (tmp is not null and length (tmp) > 3)
+	{
+	  ret := http_string_date (sprintf ('Wee, %s %s %s %s GMT', tmp[1], tmp[0], tmp[3], tmp[2]));
+	  ret := dt_set_tz (ret, 0);
+	}
+    }    
+  return ret;
 }
 ;
 
+create procedure WEBID_CHECK_ACL (in ag any, in gr any, in cert any)
+{
+  declare uid varchar;
+  uid := coalesce (
+  	(select FS_UID from FOAF_SSL_ACL where ag like FS_URI and FS_TYPE < 2), 
+	(select FS_UID from FOAF_SSL_ACL, RDF_WEBID_ACL_GROUPS where AG_GROUP = FS_URI and FS_TYPE < 2 and AG_WEBID = ag), 
+	'nobody');
+  if (uid = 'nobody')
+    {
+      for select FS_URI, FS_UID from FOAF_SSL_ACL where FS_TYPE = 2 do
+	{
+	  declare pname varchar;
+	  pname := sprintf ('DB.DBA.WEBID_ACL_CHECK__%s', FS_URI);
+	  if (__proc_exists (pname) is null)
+	    log_text (sprintf ('Broken advanced WebID rule: %s', FS_URI));
+	  else if (call (pname) (cert, gr) > 0)
+	    return FS_UID;
+	}
+    }    
+  return uid;     
+}
+;
+
+--!
+-- \brief Authenticate via WebID, WebFinger, etc.
+--
+-- \param An optional certificate to extract the WebID from. By default the current client-provided
+--        certificate is uses.
+-- \param ctype The optional format of the provided certificate.
+-- - 0 (default) - PEM
+-- - 1 - DER (raw)
+-- - 2 - PKCS#12
+-- \param realm \p unused
+-- \param allow_nobody If \p 1 authentication is also allowed for WebIDs, WebFingers, and other identifiers without an ODS account.
+-- \param use_session If \p 1 a new authentication session is created for the WebID/WebFinger. FIXME: use_session is ignored for Twitter and friends!
+-- \param ag[out] The detected WebID if any.
+-- \param _gr The graph to load the profile into. If empty a random graph URI will be used.
+-- \param check_expiration If \p 1 the expiration date of the certificate will be checked. And if not valid \0 is returned.
+-- \param validation_type[out] The type of authentication validation that was used:
+-- - 0 - WebID
+-- - 1 - WebFinger
+-- - 2 - DI digest
+-- - 3 - Twitter
+-- - 4 - FIXME: something with the OpenLink cert schema
+-- - 5 - LDAP
+--
+-- FIXME: there is no validation_type for Facebook or LinkedIn. Actually the name of the method suggests that only WebID authentication is supported. This is not the case.
+-- FIXME: Apparently SPARQLUserId is not set for DI, Twitter, Facebook, LinkedIn authentication. So either there is no need to set it in general or there is a bug or bad design.
+--
+-- \return \p 1 on successful authentication, \p 0 otherwise. On success the connection's SPARQLUserId is set to the corresponding
+-- ODS user and an optional authentication session is created.
+--
+-- FIXME: apparently WEBID_AUTH_GEN is not used and can be removed in favor of WEBID_AUTH_GEN_2.
+--/
+create procedure WEBID_AUTH_GEN_2 (
+	in cert any,    		-- certificate
+	in ctype int, 			-- certificate type see get_certificate_info for details 
+	in realm varchar, 		-- application realm
+	in allow_nobody int := 0, 	-- anonymous access
+	in use_session int := 1, 	-- use session table
+	out ag any,   			-- detected webid URI
+	inout _gr any,			-- if non null data from webid URI will be loaded in the graph name in _gr
+	in check_expiration int := 0,
+	out validation_type int		-- if valid, the way it was done : 0 - rdf graph, 1 - webfinger, 2 - DI, 3 - search, 4 - sponge
+	)			
+{
+  declare stat, msg, meta, data, info, qr, hf, graph, fing, gr, modulus, alts, dummy any;
+  declare agent varchar;
+  declare acc int;
+  declare ret_code, done, is_di, deadl int;
+  declare agents, di_arr, dgst, dhash, fing_b64u any;
+  declare valid_from, valid_to datetime;
+
+again:  
+  ret_code := 0;
+  acc := 0;
+  done := 0;
+  is_di := 0;
+  ag := null;
+  deadl := 0;
+  validation_type := null;
+  declare exit handler for sqlstate '*'
+    {
+      rollback work;
+      deadl := deadl + 1;
+      if (__SQL_STATE = '40001' and deadl < 10)
+	goto again;
+      --log_message (sprintf ('webid main %s %s', cast (__SQL_STATE as varchar), cast (__SQL_MESSAGE as varchar)));
+      goto ret;
+    }
+  ;
+
+  if (cert is null and client_attr ('client_certificate') = 0)
+    return 0;
+
+  fing := get_certificate_info (6, cert, ctype);
+  if (_gr is null)
+    gr := 'http:' || replace (fing, ':', '');
+  else
+    gr := _gr;
+  info := get_certificate_info (9, cert, ctype);
+  valid_from := X509_STRING_DATE (get_certificate_info (4, cert, ctype)); 
+  valid_to := X509_STRING_DATE (get_certificate_info (5, cert, ctype)); 
+  if (check_expiration = 1 and (valid_to < now () or valid_from > now ()))
+    return 0;
+  agents := FOAF_SSL_WEBID_GET_ALL (cert, ctype);
+  if (not isarray (info))
+    return 0;
+  if (use_session)
+    {
+      -- If we already have a session for the given certificate (fingerprint) use it
+      -- FIXME: security risk: in theory a WebID certificate could have been compromised in between
+      -- calls. At that point a third party could login with the old certificate key/fingerprint even
+      -- if the actual owner of the WebID had changed their certificate key in the meantime.
+      for select VS_UID, VS_STATE from VSPX_SESSION where VS_SID = fing and VS_REALM = 'FOAF+SSL' do
+	{
+	  declare st, uid any;
+	  st := deserialize (VS_STATE);
+	  ag := get_keyword ('agent', st);
+	  uid := WEBID_CHECK_ACL (ag, gr, cert);
+	  if (exists (select 1 from SYS_USERS where U_NAME = VS_UID) and VS_UID = uid)
+	    {
+	  validation_type := get_keyword ('vtype', st);
+	  connection_set ('SPARQLUserId', VS_UID);
+	  return 1;
+	}
+	  else
+	    {
+	      uid := VS_UID;
+	      delete from VSPX_SESSION where VS_REALM = 'FOAF+SSL' and VS_UID = uid;
+	    }
+	}
+    }
+
+  if (agents is null)
+    goto verify_mails;
+
+  foreach (any _agent in agents) do
+    {
+      agent := _agent;
+      agent_fp:
+      ag := agent;
+      if (agent like 'ldap://%' and DB.DBA.FOAF_SSL_LDAP_CHECK_CERT_INT (agent, cert, ctype, dummy))
+	{
+	  validation_type := 5;
+	  goto authenticated;
+	}
+
+      hf := rfc1808_parse_uri (agent);
+      hf[5] := '';
+      graph := DB.DBA.vspx_uri_compose (hf);
+      qr := sprintf ('sparql define get:soft "add" define get:uri <%S> select count(*) from <%S> { ?s ?p ?o }', graph, gr);
+      stat := '00000';
+      exec (qr, stat, msg, vector (), 0, meta, data);
+      if (stat = '40001')
+	{
+	  deadl := deadl + 1;
+	  goto again;
+	}
+      --if (stat <> '00000')
+	--log_message (sprintf ('webid load %s %s %s', cast (stat as varchar), cast (msg as varchar), sys_sql_val_print (data)));
+      commit work;
+      qr := FOAF_SSL_QR (gr, agent);    
+      stat := '00000';
+    --  dbg_printf ('%s', qr);
+      exec (qr, stat, msg, vector (), 0, meta, data);
+      if (stat = '40001')
+	{
+	  deadl := deadl + 1;
+	  goto again;
+	}
+      --if (stat <> '00000')
+	--log_message (sprintf ('webid exec %s %s', cast (stat as varchar), cast (msg as varchar)));
+      validation_type := 0;
+      again_check:; 
+      if (stat = '00000' and length (data))
+	{
+	  foreach (any _row in data) do
+	    {
+	      declare mod any;
+	      mod := bin2hex (info[2]);
+	      --dbg_obj_print (_row[0], cast (info[1] as varchar), DB.DBA.FOAF_MOD (_row[1]), bin2hex (info[2]));
+	      if (_row[0] = cast (info[1] as varchar) and DB.DBA.FOAF_MOD (_row[1]) = bin2hex (info[2]))
+		{
+		  declare arr, uid any;
+		  authenticated:
+		  ag := agent;
+		  --_gr := graph;
+		  uid := WEBID_CHECK_ACL (ag, gr, cert);
+		  if ('nobody' = uid and allow_nobody = 0)
+		    goto ret;
+		  connection_set ('SPARQLUserId', uid);
+		  if (use_session)
+		    insert replacing VSPX_SESSION (VS_SID, VS_REALM, VS_UID, VS_EXPIRY, VS_STATE) 
+			values (fing, 'FOAF+SSL', uid, now (), serialize (vector ('agent', ag, 'vtype', validation_type)));
+		  --if (_gr is null)
+		  --  exec (sprintf ('sparql clear graph <%S>', gr), stat, msg);
+		  commit work;
+		  return 1;
+		}
+	    }
+	}
+      else if (acc = 0)
+	{
+	  qr := FOAF_SSL_QR_BY_ACCOUNT (gr, agent);
+	  stat := '00000';
+	  --  dbg_printf ('%s', qr);
+	  exec (qr, stat, msg, vector (), 0, meta, data);
+	  acc := 1;
+	  goto again_check;
+	}
+    }
+  verify_mails:
+  agent := FOAF_SSL_WEBFINGER (cert, 0, ctype);
+  if (agent is not null)
+    {
+      validation_type := 1;
+      goto authenticated;
+    }
+  validation_type := null;
+  {
+    ag := graph;
+    declare page, xt, xp varchar;
+    declare exit handler for sqlstate '*'
+      {
+	goto ret;
+      };
+    page := http_client (url=>graph, n_redirects=>15);
+
+    verify:
+    xt := xtree_doc (page, 2);
+    xp := xpath_eval ('string (.)', xt);
+    xp := cast (xp as varchar);
+    di_arr := WEBID_DI_SPLIT (xp);
+    if (length (di_arr) > 1)
+      {
+	foreach (any elm in di_arr) do
+	  {
+	    dgst := elm [0];
+	    dhash := elm [1]; 
+	    fing := get_certificate_info (6, cert, ctype, null, dgst);
+	    fing := lower (replace (fing, ':', ''));
+	    fing_b64u := encode_base64url (cast (hex2bin (fing) as varchar));
+	    if (fing = dhash)
+	      {
+		validation_type := 2;
+		ret_code := 1;
+		goto ret;	
+	      }
+	    is_di := 1;
+	  }
+      }
+    else
+      {
+	if (strstr (xp, '#SHA1') is not null)
+	  fing := get_certificate_info (6, cert, ctype, null, 'sha1');
+	fing := replace (fing, ':', '');  
+      }
+    if (strstr (xp, sprintf ('Fingerprint:%s', fing)) is not null)
+      {
+	validation_type := 2;
+	ret_code := 1;
+        goto ret;	
+      }
+    if (graph like 'http://twitter.com/%')
+      {
+	declare acco, arr, json, res, url any;
+	arr := sprintf_inverse (graph, 'http://twitter.com/%s', 1);
+	acco := arr[0];
+	if (is_di)
+	  {
+	    url := sprintf ('http://search.twitter.com/search.json?q=%%40%%23X509Cert%%20di:%s;%s%%20from%%3A%U', dgst, fing_b64u, acco);
+	  }
+	else
+	  {
+	    url := sprintf ('http://search.twitter.com/search.json?q=%%40Fingerprint%%3A%U%%20from%%3A%U', fing, acco);
+	  }
+        json := http_get (url);
+	arr := json_parse (json);
+        res := get_keyword ('results', arr);
+	if (length (res) > 0)
+	  {
+	    validation_type := 3;
+	    ret_code := 1;
+	    goto ret;	
+	  }
+	if (not is_di)
+	  {
+	    fing := get_certificate_info (6, cert, ctype, null, 'sha1');
+	    fing := replace (fing, ':', '');  
+	    json := http_get (sprintf ('http://search.twitter.com/search.json?q=%%40Fingerprint%%3A%U%%20from%%3A%U', fing, acco));
+	    arr := json_parse (json);
+	    res := get_keyword ('results', arr);
+	    if (length (res) > 0)
+	      {
+		validation_type := 3;
+		ret_code := 1;
+		goto ret;	
+	      }
+	  }
+      }
+    if (not done and graph like 'http://graph.facebook.com/%')
+      {
+	declare tok, og_id, tree, nick any;
+	tree := json_parse (page);
+	og_id := get_keyword ('id', tree);
+	nick := get_keyword ('username', tree);
+	tok := DB.DBA.OPENGRAPH_GET_ACCESS_TOKEN (og_id);
+	if (tok is null)
+	  goto ret;
+	page := http_get (sprintf ('https://graph.facebook.com/%U/feed?access_token=%U', nick, tok));
+	done := 1;
+	goto verify;
+      }
+    if (not done and graph like 'http://%.linkedin.com/in/%')
+      {
+	declare oauth_keys, arr, opts, url, api_url, cnt any;
+	declare consumer_key, consumer_secret, oauth_token, oauth_secret, person_id varchar;
+	opts := (select RM_OPTIONS from DB..SYS_RDF_MAPPERS where RM_HOOK = 'DB.DBA.RDF_LOAD_LINKEDIN');
+	oauth_keys := DB.DBA.LINKEDIN_GET_ACCESS_TOKEN (graph);
+	oauth_token := oauth_keys[0];
+	oauth_secret := oauth_keys[1];
+	consumer_key := get_keyword ('consumer_key', opts);
+	consumer_secret := get_keyword ('consumer_secret', opts);
+	api_url := sprintf ('https://api.linkedin.com/v1/people/url=%U:(id)', graph);
+	url := DB.DBA.sign_request ('GET', api_url, '', consumer_key, consumer_secret, oauth_token, oauth_secret, 1);
+	cnt := http_get (url);
+	xt := xtree_doc (cnt);
+        person_id := cast (xpath_eval ('/person/id/text()', xt) as varchar);
+	url := DB.DBA.sign_request ('GET', sprintf ('http://api.linkedin.com/v1/people/%s/network', person_id), 'type=SHAR&scope=self', consumer_key, consumer_secret, oauth_token, oauth_secret, 1);
+	page := http_get (url);
+	done := 1;
+	goto verify;
+      }
+    exec (sprintf (
+    'sparql define get:soft "add" prefix opl: <http://www.openlinksw.com/schemas/cert#> select ?f ?dgst from <%S> { ?s opl:hasCertificate ?c . ?c opl:fingerprint ?f ; opl:fingerprint-digest ?dgst . }', 
+    	graph), stat, msg, vector (), 0, meta, data);
+    if (length (data))
+     {
+       foreach (any x in data) do
+    	 {
+	   declare fng, fng2 any;
+	   fng := get_certificate_info (6, cert, ctype, null, x[1]);
+	   fng := replace (fng, ':', '');  
+	   fng2 := x[0];
+	   fng2 := replace (fng2, ':', '');  
+    	   if (lower (fng2) = lower (fng))
+    	     {
+	       validation_type := 4;
+    	       ret_code := 1;
+    	       goto ret;
+    	     }
+    	 }
+      }
+
+  }
+  ret:
+  --if (_gr is null)
+  --  exec (sprintf ('sparql clear graph <%S>', gr), stat, msg);
+  if (0 = ret_code)
+    ag := null;
+  commit work;
+  return ret_code;
+}
+;
+
+--!
+-- FIXME: FOAF_SSL_AUTH_GEN seems completely redundant in favor of WEBID_AUTH_GEN_2
+--/
 create procedure FOAF_SSL_AUTH_GEN (in realm varchar, in allow_nobody int := 0, in use_session int := 1)
 {
-  declare cert any;
+  declare cert, gr, w, vtype any;
   cert := client_attr ('client_certificate');
-  return WEBID_AUTH_GEN (cert, 0, realm, allow_nobody, use_session);
+  gr := null;
+  return WEBID_AUTH_GEN_2 (cert, 0, realm, allow_nobody, use_session, w, gr, 0, vtype);
 }
 ;
 
+--!
+-- \ingroup ods_devel_api
+--
+-- \brief Check if a URI is a valid WebID with a certificate.
+--
+-- \param agent The URI to check.
+--
+-- \return \p 1 if the profile accessible at \p agent does contain a certificate public key.
+--/
 create procedure FOAF_CHECK_WEBID (in agent varchar)
 {
   declare stat, msg, meta, data, info, qr, hf, graph, fing, gr any;
@@ -268,7 +1128,7 @@ create procedure FOAF_CHECK_WEBID (in agent varchar)
   stat := '00000';
   exec (qr, stat, msg);
   commit work;
-  qr := FOAF_SSL_QR (gr, agent);    
+  qr := FOAF_SSL_QR (gr, agent);
   stat := '00000';
 --  dbg_printf ('%s', qr);
   exec (qr, stat, msg, vector (), 0, meta, data);
@@ -300,6 +1160,10 @@ DB.DBA.VHOST_REMOVE (vhost=>'*sslini*', lhost=>'*sslini*', lpath=>'/sparql-ssl')
 DB.DBA.VHOST_DEFINE (vhost=>'*sslini*', lhost=>'*sslini*', lpath=>'/sparql-ssl',
     ppath => '/!sparql/', is_dav => 1, vsp_user => 'dba', opts => vector('noinherit', 1), auth_fn=>'DB.DBA.FOAF_SSL_AUTH');
 
+DB.DBA.VHOST_REMOVE (vhost=>'*sslini*', lhost=>'*sslini*', lpath=>'/sparql-webid');
+DB.DBA.VHOST_DEFINE (vhost=>'*sslini*', lhost=>'*sslini*', lpath=>'/sparql-webid',
+    ppath => '/!sparql/', is_dav => 1, vsp_user => 'dba', opts => vector('noinherit', 1), auth_fn=>'DB.DBA.FOAF_SSL_AUTH');
+
 create procedure FOAF_SSL_AUTH_ACL (in acl varchar, in realm varchar)
 {
   declare stat, msg, meta, data, info, qr, hf, graph, fing, gr, modulus, alts any;
@@ -341,7 +1205,7 @@ create procedure FOAF_SSL_AUTH_ACL (in acl varchar, in realm varchar)
 
   gr := uuid ();
 
-  if (wf) 
+  if (wf)
     goto authenticated;
 
   hf := rfc1808_parse_uri (agent);
@@ -351,11 +1215,11 @@ create procedure FOAF_SSL_AUTH_ACL (in acl varchar, in realm varchar)
   stat := '00000';
   exec (qr, stat, msg);
   commit work;
-  qr := FOAF_SSL_QR (gr, agent);    
+  qr := FOAF_SSL_QR (gr, agent);
   stat := '00000';
   exec (qr, stat, msg, vector (), 0, meta, data);
-  again_check:; 
-  if (stat = '00000' and length (data)) 
+  again_check:;
+  if (stat = '00000' and length (data))
     {
       foreach (any _row in data) do
         {
@@ -410,7 +1274,7 @@ create procedure DB.DBA.FOAF_SSL_LDAP_CHECK_CERT_INT (in agent varchar := null,
   if (agent is null or agent not like 'ldap://%')
     goto failed;
   arr := sprintf_inverse (agent, 'ldap://%s/%s', 1);
-  if (length (arr) <> 2) 
+  if (length (arr) <> 2)
     goto failed;
   host := arr[0];
   if (strchr (host, ':') is null)
@@ -429,7 +1293,7 @@ create procedure DB.DBA.FOAF_SSL_LDAP_CHECK_CERT_INT (in agent varchar := null,
       declare exit handler for sqlstate '*' { goto failed; };
       rc := ldap_search (host, LS_TRY_SSL, LS_BASE, ss, sprintf('%s=%s, %s', LS_UID_FLD, LS_ACCOUNT, LS_BIND_DN), LS_PASSWORD);
       if (isvector (rc) and length (rc) > 1)
-        {	
+        {
           cert := get_keyword ('userCertificate;binary', rc[1]);
           if (isvector (cert) and length (cert) and get_certificate_info (6, incert, incert_type) = get_certificate_info (6, cert[0], 1))
 	    {
diff --git a/appsrc/ODS-Framework/oauth/login.vspx b/appsrc/ODS-Framework/oauth/login.vspx
index 9fe1086..65aabea 100644
--- a/appsrc/ODS-Framework/oauth/login.vspx
+++ b/appsrc/ODS-Framework/oauth/login.vspx
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: login.vspx,v 1.1.2.2 2010/09/20 10:15:35 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/oauth/make_vad.sh b/appsrc/ODS-Framework/oauth/make_vad.sh
index 0b4ab7f..ae1d085 100755
--- a/appsrc/ODS-Framework/oauth/make_vad.sh
+++ b/appsrc/ODS-Framework/oauth/make_vad.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: make_vad.sh,v 1.7.2.4 2011/02/03 10:26:15 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2009 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -252,7 +252,7 @@ sticker_init() {
   echo "  <name package=\"$VAD_NAME\">" >> $STICKER
   echo "    <prop name=\"Title\" value=\"$VAD_DESC\"/>" >> $STICKER
   echo "    <prop name=\"Developer\" value=\"OpenLink Software\"/>" >> $STICKER
-  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2011 OpenLink Software\"/>" >> $STICKER
+  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2012 OpenLink Software\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.com/virtuoso\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.co.uk/virtuoso\"/>" >> $STICKER
   echo "  </name>" >> $STICKER
@@ -294,14 +294,14 @@ fi
   # OAuth server endpoint
   echo "    DB.DBA.VHOST_REMOVE (lpath=>'/oauth');" >> $STICKER
   echo "    DB.DBA.VHOST_DEFINE (lpath=>'/oauth', ppath=>_ppath, vsp_user=>'dba', is_dav=>$ISDAV, is_brws=>0, def_page=>'index.vsp');" >> $STICKER
-  # SPARQL + OAUTH 
-  echo "    DB.DBA.VHOST_REMOVE (lpath=>'/sparql-oauth');" >> $STICKER
-  echo "    DB.DBA.VHOST_DEFINE (lpath=>'/sparql-oauth', ppath=>_ppath, vsp_user=>'dba', is_dav=>$ISDAV, is_brws=>0, def_page=>'sparql.vsp');" >> $STICKER
   # UI for settings etc.
   echo "    DB.DBA.VHOST_REMOVE (lpath=>'/$VAD_NAME');" >> $STICKER
   echo "    DB.DBA.VHOST_DEFINE (lpath=>'/$VAD_NAME', ppath=>_ppath, vsp_user=>'dba', is_dav=>$ISDAV, is_brws=>0, def_page=>'index.vsp');" >> $STICKER
   echo "    DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"$VAD_NAME/oauth.sql', 0, 'report', $ISDAV);" >> $STICKER
   echo "    DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"$VAD_NAME/foaf_ssl.sql', 0, 'report', $ISDAV);" >> $STICKER
+  # SPARQL + OAUTH 
+  echo "    DB.DBA.VHOST_REMOVE (lpath=>'/sparql-oauth');" >> $STICKER
+  echo "    DB.DBA.VHOST_DEFINE (lpath=>'/sparql-oauth', ppath=>_ppath, vsp_user=>'dba', is_dav=>$ISDAV, is_brws=>0, def_page=>'sparql.vsp');" >> $STICKER
   echo "    ]]>" >> $STICKER
   echo "  </sql>" >> $STICKER
   echo "  <sql purpose='pre-uninstall'>" >> $STICKER
diff --git a/appsrc/ODS-Framework/oauth/oauth.sql b/appsrc/ODS-Framework/oauth/oauth.sql
index 1c22175..254c0d0 100644
--- a/appsrc/ODS-Framework/oauth/oauth.sql
+++ b/appsrc/ODS-Framework/oauth/oauth.sql
@@ -1,12 +1,12 @@
 --
---  $Id: oauth.sql,v 1.2.2.5 2011/05/02 14:16:04 source Exp $
+--  $Id$
 --
 --  OAuth protocol support.
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -43,6 +43,16 @@ DB.DBA.EXEC_STMT(
   'create unique index APP_REG_K1 on OAUTH..APP_REG (a_key)'
 , 0);
 
+create procedure APP_REG_UPDATE ()
+{
+  update OAUTH..APP_REG
+     set A_NAME = 'Box Net API'
+   where A_NAME = 'Box API';
+}
+;
+
+APP_REG_UPDATE ();
+
 -- OAuth sessions
 DB.DBA.EXEC_STMT(
 'create table OAUTH..SESSIONS (
@@ -97,6 +107,9 @@ create procedure OAUTH..OAUTH_INIT ()
 DB.DBA.VHOST_REMOVE (lpath=>'/OAuth');
 DB.DBA.VHOST_DEFINE (lpath=>'/OAuth', ppath=>'/SOAP/Http', soap_user=>'OAuth');
 
+DB.DBA.VHOST_REMOVE (lpath=>'/sparql-oauth');
+DB.DBA.VHOST_DEFINE (lpath=>'/sparql-oauth', ppath=>'/DAV/VAD/wa/oauth/', vsp_user=>'dba', is_dav=>1, is_brws=>0, def_page=>'sparql.vsp');
+
 OAUTH..OAUTH_INIT ();
 
 create procedure OAUTH..normalize_params (
@@ -725,31 +738,3 @@ web_user_password_check (in name varchar, in pass varchar)
 
 use DB;
 
-create procedure WA_USER_OAUTH_UPGRADE ()
-{
-  declare params any;
-
-  if (registry_get ('__WA_USER_OAUTH_UPGRADE') = 'done')
-    return;
-
-  declare exit handler for sqlstate '*' {return; };
-
-  params := (select US_KEY from WA_USER_SVC where US_U_ID = 2 and US_SVC = 'FBKey');
-  if (length (params))
-  {
-    params := replace (params, '\r\n', '&');
-    params := replace (params, '\n', '&');
-    params := split_and_decode (params);
-    if (params is not null and length (trim (get_keyword ('key', params))) > 4 and length (trim (get_keyword ('secret', params))) > 4)
-    {
-      insert into OAUTH..APP_REG (A_OWNER, A_NAME, A_KEY, A_SECRET)
-        values (0, 'Facebook API', trim(get_keyword('key', params)), trim (get_keyword ('secret', params)));
-
-      delete from WA_USER_SVC where US_SVC = 'FBKey';
-    }
-  }
-  registry_set ('__WA_USER_OAUTH_UPGRADE', 'done');
-}
-;
-WA_USER_OAUTH_UPGRADE ();
-
diff --git a/appsrc/ODS-Framework/oauth/oauth_apps.vspx b/appsrc/ODS-Framework/oauth/oauth_apps.vspx
index c4c49f1..71cc523 100644
--- a/appsrc/ODS-Framework/oauth/oauth_apps.vspx
+++ b/appsrc/ODS-Framework/oauth/oauth_apps.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: oauth_apps.vspx,v 1.1.2.2 2010/09/20 10:15:35 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/oauth/oauth_authorize.vspx b/appsrc/ODS-Framework/oauth/oauth_authorize.vspx
index ccc1c71..727cbbd 100644
--- a/appsrc/ODS-Framework/oauth/oauth_authorize.vspx
+++ b/appsrc/ODS-Framework/oauth/oauth_authorize.vspx
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: oauth_authorize.vspx,v 1.1.2.3 2010/09/20 10:15:35 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/oauth/oauth_error.vspx b/appsrc/ODS-Framework/oauth/oauth_error.vspx
index 66b54b6..30a3625 100644
--- a/appsrc/ODS-Framework/oauth/oauth_error.vspx
+++ b/appsrc/ODS-Framework/oauth/oauth_error.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: oauth_error.vspx,v 1.1.2.1 2010/09/20 10:15:35 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/oauth/sel_user.vspx b/appsrc/ODS-Framework/oauth/sel_user.vspx
index 8db41de..6ae32ea 100644
--- a/appsrc/ODS-Framework/oauth/sel_user.vspx
+++ b/appsrc/ODS-Framework/oauth/sel_user.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 <!--
  -
- -  $Id: sel_user.vspx,v 1.1.2.1 2010/09/20 10:15:35 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/oauth/sparql_acl.vspx b/appsrc/ODS-Framework/oauth/sparql_acl.vspx
index e0b79d7..9962648 100644
--- a/appsrc/ODS-Framework/oauth/sparql_acl.vspx
+++ b/appsrc/ODS-Framework/oauth/sparql_acl.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: sparql_acl.vspx,v 1.3.2.4 2010/09/20 10:15:36 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/oauth/vad_version b/appsrc/ODS-Framework/oauth/vad_version
index 9d8637c..32ffe12 100644
--- a/appsrc/ODS-Framework/oauth/vad_version
+++ b/appsrc/ODS-Framework/oauth/vad_version
@@ -1 +1 @@
-1.0.70
+1.1.23
diff --git a/appsrc/ODS-Framework/oauth_apps.vspx b/appsrc/ODS-Framework/oauth_apps.vspx
index e684796..a34835e 100644
--- a/appsrc/ODS-Framework/oauth_apps.vspx
+++ b/appsrc/ODS-Framework/oauth_apps.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: oauth_apps.vspx,v 1.3.2.2 2011/03/08 13:28:14 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/oauth_authorize.vspx b/appsrc/ODS-Framework/oauth_authorize.vspx
new file mode 100644
index 0000000..dc11550
--- /dev/null
+++ b/appsrc/ODS-Framework/oauth_authorize.vspx
@@ -0,0 +1,295 @@
+<!--
+ -
+ -  $Id: oauth_authorize.vspx,v 1.4 2009/01/20 18:09:38 ddimitrov Exp $
+ -
+ -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ -  project.
+ -
+ -  Copyright (C) 1998-2006 OpenLink Software
+ -
+ -  This project is free software; you can redistribute it and/or modify it
+ -  under the terms of the GNU General Public License as published by the
+ -  Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ -  This program is distributed in the hope that it will be useful, but
+ -  WITHOUT ANY WARRANTY; without even the implied warranty of
+ -  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ -  General Public License for more details.
+ -
+ -  You should have received a copy of the GNU General Public License along
+ -  with this program; if not, write to the Free Software Foundation, Inc.,
+ -  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+-->
+<v:page name="blog-home-page"
+        xmlns:vm="http://www.openlinksw.com/vspx/ods/"
+        xmlns:v="http://www.openlinksw.com/vspx/"
+        style="index.xsl"
+        doctype="-//W3C//DTD XHTML 1.0 Transitional//EN"
+        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+  <v:variable name="login_blocked" type="varchar" default="null" persist="0"/>
+  <v:variable name="login_attempts" type="integer" default="0" persist="0" />
+  <v:variable name="wa_name" type="varchar" default="null" persist="0" param-name="wa_name"/>
+  <v:variable name="is_cookie_session" type="int" default="0" persist="0" param-name="noparams"/>
+  <v:variable name="login_ip" type="varchar" default="null" persist="1"/>
+  <!-- OAuth signin -->
+  <v:variable name="token" type="varchar" default="null" param-name="token"/>
+  <v:variable name="cb" type="varchar" default="null" param-name="cb"/>
+  <v:variable name="a_name" type="varchar" default="null" persist="0" />
+  <v:variable name="a_descr" type="varchar" default="null" persist="0" />
+  <v:variable name="_ver" type="varchar" default="1" persist="0" param-name="ver" />
+  <v:variable name="_uname" type="varchar" default="null" persist="temp" />
+  <v:on-init>
+    <![CDATA[
+      declare cookie_vec, sid any;
+
+      set http_charset='UTF-8';
+
+      if (self.token is null)
+      {
+        self.vc_redirect ('login.vspx');
+      }
+
+      declare exit handler for not found
+      {
+        self.vc_redirect ('login.vspx');
+        return;
+      };
+      select U_NAME, a_name into self._uname, self.a_name
+      	from OAUTH.DBA.SESSIONS, OAUTH.DBA.APP_REG, DB.DBA.SYS_USERS
+       where U_ID = a_owner and a_id = s_a_id and s_req_key = self.token;
+
+      cookie_vec := vsp_ua_get_cookie_vec(self.vc_event.ve_lines);
+
+      if (get_keyword('sid', self.vc_event.ve_params) is null and get_keyword('sid', cookie_vec) is not null and self.token is not null)
+      {
+        declare pars, pos any;
+        pars := self.vc_event.ve_params;
+  	    sid := get_keyword('sid', cookie_vec);
+  	    pos := position ('sid', pars);
+  	    if (pos > 0)
+  	    {
+  	      pars [pos] := sid;
+  	      pos := position ('realm', pars);
+  	      if (pos > 0)
+  	        pars[pos] := 'wa';
+  	    }
+        else
+        {
+          pars := vector_concat (pars, vector ('sid', sid, 'realm', 'wa')) ;
+        }
+        self.vc_event.ve_params := pars;
+      }
+    ]]>
+  </v:on-init>
+  <html>
+    <head>
+      <link rel="stylesheet" type="text/css" href="openid_login.css" />
+      <title>OAuth Authentication</title>
+    </head>
+    <body>
+      <div id="PG">
+        <div id="MD">
+          <div id="login_page">
+  	        <v:login name="login1" realm="wa" mode="url" user-password-check="web_user_password_check">
+              <div id="id_col">
+                <div id="site_id">
+                  <p><img class="id_logo" src="images/odslogo_200.png" alt="ods logo icon" /></p>
+                </div>
+              </div>
+              <div id="form_col">
+                <h1 class="page_title">
+                  <img class="openid_logo" alt="OpenID Logo" src="images/oauth_trans_32.png"/> OAuth Authorization Service
+                </h1>
+    	          <div id="login_form_ctr">
+    	            <v:template type="if-no-login" name="login_if_no_login">
+    		            <h2>Please log in to
+                      <?vsp
+                        declare copy varchar;
+                        copy := (select top 1 WS_WEB_TITLE from WA_SETTINGS);
+
+                        if (copy = '' or copy is null)
+                          http(sys_stat ('st_host_name'));
+                        else
+                          http(copy);
+                      ?>
+    		            </h2>
+                    <div id="login_form">
+                      <form> <!-- just to keep validator happy on this mockup -->
+                  		  <label for="login_frm_username">Member ID</label>
+                  		  <v:text name="username" type="hidden" value="--self._uname" xhtml_id="login_frm_username" /><?V self._uname ?><br />
+                  		  <label for="password">Password</label>
+                  		  <v:text name="password" value="" xhtml_id="login_frm_password" type="password" />
+                  		  <div class="login_frm_button_row">
+                  		    <v:button action="simple" name="login" value="Login" xhtml_id="login_frm_b_login">
+                  		      <v:on-post>
+                  		        <![CDATA[
+                                declare _blocked_until any;
+
+    	                          _blocked_until := (select WAB_DISABLE_UNTIL from WA_BLOCKED_IP where WAB_IP = http_client_ip ());
+                                if (_blocked_until is not null and _blocked_until > now ())
+                                {
+                                  self.login_blocked := 'Too many failed attempts. Try again in an hour.';
+                                  return;
+                                }
+                                self.login_attempts := coalesce(self.login_attempts, 0) + 1;
+                                if (self.login_attempts > 6)
+                                {
+                                  insert replacing WA_BLOCKED_IP (WAB_IP, WAB_DISABLE_UNTIL) values (http_client_ip(), dateadd('hour', 1, now()));
+                                }
+                                commit work;
+                              ]]>
+                            </v:on-post>
+                            <v:before-render>
+                              <![CDATA[
+                                if (self.login_blocked is not null)
+                                   control.vc_enabled := 0;
+                              ]]>
+                            </v:before-render>
+    		                  </v:button>
+    		                  <v:button action="simple" name="cancel" value="Cancel" xhtml_id="login_frm_b_login">
+      		                  <v:on-post>
+      		                    <![CDATA[
+      			                    self.vc_redirect (self.cb);
+      			                  ]]>
+      			                </v:on-post>
+      		                </v:button>
+      		              </div>
+                      </form>
+                    </div> <!-- login_form -->
+      	            <p class="login_frm_guide">
+      	              A <?V http_client_ip () ?> trying to access <i><?V self.a_name ?></i>, please login to authorize or decline the request.
+      	            </p>
+      	          </v:template>
+                  <?vsp
+                    if (self.login_blocked is not null)
+                    }
+                      http(self.login_blocked);
+                    } else {
+                      if (self.login_attempts > 0 and self.sid is null)
+                      {
+                  ?>
+                  <div class="login_error_ctr">
+                    <p class="login_error">
+                      <img class="warn_img" src="images/warn_16.png"/>
+                      <span class="err_msg">Invalid member ID or password</span>
+                    </p>
+                  </div>
+                  <?vsp
+                      }
+                    }
+                  ?>
+                </div> <!-- login_form_ctr -->
+      	        <v:template type="if-login" name="login_if_login">
+      	          <div>
+      	            <div class="login_frm_guide">
+      		            A <?V http_client_ip () ?> trying to access <?V self.a_name ?>
+      		            <br />
+      		            <?V self.a_descr ?>
+      	            </div>
+        	          <div>
+          		        <v:button action="simple" name="decl" value="Decline">
+          		          <v:on-post>
+          		            <![CDATA[
+          		              self.vc_redirect (self.cb);
+          		            ]]>
+          		          </v:on-post>
+          		        </v:button>
+          		        <v:button action="simple" name="accept" value="Authorize">
+          		          <v:on-post>
+          		            <![CDATA[
+          		              update OAUTH..SESSIONS
+          		                 set s_state = 2,
+          		  	                 s_sid = self.sid,
+          			                   s_url_cb = self.cb
+          		  	           where s_req_key = self.token
+          		  	             and s_ip = http_client_ip ()
+          		  	             and s_state = 1;
+          		              commit work;
+          		              self.vc_redirect (self.cb);
+          		            ]]>
+          		          </v:on-post>
+          	          </v:button>
+          	        </div>
+      	          </div>
+      	        </v:template>
+              </div> <!-- form_col -->
+              <v:on-post>
+                <![CDATA[
+                  declare cook_str, expire varchar;
+                  if (self.vc_authenticated and length (self.sid))
+                  {
+                    declare expire varchar;
+                    expire := sprintf (' expires=%s;', date_rfc1123 (dateadd ('hour', 1, now())));
+                    cook_str := sprintf ('Set-Cookie: sid=%s;%s path=/\r\n', self.sid, expire);
+
+                    if (strstr (http_header_get (), 'Set-Cookie: sid=') is null)
+                    {
+                      cook_str := concat (http_header_get (), cook_str);
+                      http_header (cook_str);
+                    }
+                    expire := date_rfc1123 (dateadd ('hour', 1, now()));
+                    cook_str := sprintf ('Set-Cookie: openid.sid=%s; expires=%s; path=/;\r\n', self.sid, expire);
+                    if (strstr (http_header_get (), 'Set-Cookie: openid.sid=') is null)
+                    {
+                      cook_str := concat (http_header_get (), cook_str);
+                      http_header (cook_str);
+                    }
+                  }
+                ]]>
+              </v:on-post>
+              <v:after-data-bind>
+                <![CDATA[
+                  if (length (self.sid))
+                  {
+                    declare exit handler for not found
+                    {
+                      self.sid := null;
+                      self.vc_authenticated := 0;
+                      control.vl_authenticated := 0;
+                      connection_vars_set (null);
+                      return;
+                    }
+                    select a_name, a_descr into self.a_name, self.a_descr
+                      from OAUTH.DBA.SESSIONS, OAUTH.DBA.APP_REG, DB.DBA.SYS_USERS, DB.DBA.VSPX_SESSION
+                     where VS_SID = self.sid and VS_REALM = self.realm and U_NAME = VS_UID and U_ID = a_owner and a_id = s_a_id and s_req_key = self.token;
+                  }
+                  if (length (self.sid) and length (self.login_ip) and self.login_ip <> http_client_ip ())
+                  {
+                    delete from VSPX_SESSION where VS_SID = self.sid and VS_REALM = self.realm;
+                    commit work;
+
+                    self.sid := null;
+                    self.vc_authenticated := 0;
+                    control.vl_authenticated := 0;
+                    connection_vars_set (null);
+                    self.vc_redirect ('login.vspx');
+                    return;
+                  }
+                  else if (length (self.sid) and self.login_ip is null)
+                  {
+                    self.login_ip := http_client_ip ();
+                  }
+                  commit work;
+                ]]>
+              </v:after-data-bind>
+            </v:login>
+          </div> <!-- login_page -->
+        </div> <!-- MD -->
+        <div id="FT">
+          <div id="FT_LC">
+            <a href="http://www.openlinksw.com/virtuoso"><img alt="Powered by OpenLink Virtuoso Universal Server" src="images/virt_power_no_border.png" border="0"/>
+            </a>
+          </div>
+          <div id="FT_RC"><a href="/ods/faq.html">FAQ</a> |
+            <a href="/ods/privacy.html">Privacy</a> |
+            <a href="/ods/rabuse.vspx">Report Abuse</a>
+            <div class="copyright">
+              Copyright © 1999-2008 OpenLink Software
+            </div>
+          </div> <!-- FT_R -->
+        </div>
+      </div> <!-- PG -->
+    </body>
+  </html>
+</v:page>
diff --git a/appsrc/ODS-Framework/oauth_sid.vsp b/appsrc/ODS-Framework/oauth_sid.vsp
index fdebdd1..644d5d9 100644
--- a/appsrc/ODS-Framework/oauth_sid.vsp
+++ b/appsrc/ODS-Framework/oauth_sid.vsp
@@ -146,7 +146,7 @@
           <a href="/ods/privacy.html">Privacy</a> |
           <a href="/ods/rabuse.vspx">Report Abuse</a>
           <div class="copyright">
-            Copyright © 1998-2011 OpenLink Software
+            Copyright © 1998-2012 OpenLink Software
           </div>
         </div>
       </div>
diff --git a/appsrc/ODS-Framework/ods_api.sql b/appsrc/ODS-Framework/ods_api.sql
index a12c15c..01040df 100644
--- a/appsrc/ODS-Framework/ods_api.sql
+++ b/appsrc/ODS-Framework/ods_api.sql
@@ -312,8 +312,7 @@ create procedure ODS_CREATE_USER (
                  'DAV_ENABLE' , 1,
                  'SQL_ENABLE', 0));
    update SYS_USERS set U_ACCOUNT_DISABLED = _mail_verify_on where U_ID = uid;
-   DAV_MAKE_DIR ('/DAV/home/', http_dav_uid (), http_admin_gid (), '110100100R');
-  DAV_MAKE_DIR ('/DAV/home/' || _username || '/', uid, http_nogroup_gid (), '110100000R');
+  DB.DBA.DAV_HOME_DIR_CREATE (_username);
 
   declare _det_col_id integer;
   _det_col_id := DB.DBA.DAV_MAKE_DIR ('/DAV/home/'||_username||'/RDFData/', uid, http_nogroup_gid (), '110100100N');
@@ -325,7 +324,7 @@ create procedure ODS_CREATE_USER (
 
    WA_USER_EDIT (_username, 'WAUI_SEARCHABLE', _is_searchable);
    WA_USER_EDIT (_username, 'WAUI_SHOWACTIVE', _show_activity);
-
+  if (0) -- don't use IP location service, since this api can be run locally
    {
      declare coords any;
      declare exit handler for sqlstate '*';
diff --git a/appsrc/ODS-Framework/ods_bar.vspx b/appsrc/ODS-Framework/ods_bar.vspx
index d9dab29..85b848d 100644
--- a/appsrc/ODS-Framework/ods_bar.vspx
+++ b/appsrc/ODS-Framework/ods_bar.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: ods_bar.vspx,v 1.4.2.1 2010/09/20 10:15:23 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/ods_controllers.sql b/appsrc/ODS-Framework/ods_controllers.sql
index ae353a0..061b2c5 100644
--- a/appsrc/ODS-Framework/ods_controllers.sql
+++ b/appsrc/ODS-Framework/ods_controllers.sql
@@ -1,10 +1,10 @@
 --
---  $Id: ods_controllers.sql,v 1.19.2.69 2011/08/03 11:42:30 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -175,6 +175,9 @@ create procedure normalize_url_like_browser (in x varchar)
 }
 ;
 
+--!
+-- FIXME: get_ses is only used in Gallery!
+--/
 create procedure get_ses (in uname varchar)
 {
   declare params, lines any;
@@ -195,6 +198,9 @@ create procedure get_ses (in uname varchar)
 }
 ;
 
+--!
+-- FIXME: close_ses is only used in Gallery!
+--/
 create procedure close_ses (in sid1 varchar)
 {
   declare params, lines any;
@@ -270,8 +276,10 @@ create procedure ods_xml_item (
   in pTag varchar,
   in pValue any)
 {
+  -- sprintf %V cannot handle UTF-8. We need to convert to wide chars first. Otherwise we end up with double-endoded characters.
+  -- if the input string is already wide nothing is done.
   if (not DB.DBA.is_empty_or_null (pValue))
-    http (sprintf ('<%s>%V</%s>', pTag, cast (pValue as varchar), pTag));
+    http (sprintf ('<%s>%V</%s>', pTag,  charset_recode (cast (pValue as varchar), 'UTF-8', '_WIDE_'), pTag));
 }
 ;
 
@@ -400,6 +408,10 @@ create procedure obj2xml (
   {
     retValue := sprintf ('%V', o);
   }
+  else if (__tag (o) = 211)
+  {
+    retValue := datestring (o);
+  }
   else if (isJsonObject (o))
   {
     for (N := 2; N < length(o); N := N + 2)
@@ -457,6 +469,13 @@ create procedure params2json (in o any)
 }
 ;
 
+create procedure json2obj (
+  in o any)
+{
+  return json_parse (o);
+}
+;
+
 create procedure dav_path_normalize (
   in path varchar,
   in path_type varchar := 'P')
@@ -511,7 +530,7 @@ create procedure ODS.ODS_API."qrcode" (
   in data any,
   in width int := 120,
   in height int := 120,
-  in scale int := 4) __soap_http 'text/plain'
+  in scale int := 3) __soap_http 'text/plain'
 {
   declare qrcode_bytes, mixed_content, content varchar;
   declare qrcode any;
@@ -532,6 +551,13 @@ create procedure ODS.ODS_API."qrcode" (
 }
 ;
 
+create procedure ODS.ODS_API."iri2proxy" (
+  in iri any) __soap_http 'text/plain'
+{
+  return DB.DBA.RDF_PROXY_ENTITY_IRI (rtrim (iri, '#this'));
+}
+;
+
 -- Ontology Info
 create procedure ODS.ODS_API."ontology.classes" (
   in ontology varchar,
@@ -748,7 +774,6 @@ create procedure ODS.ODS_API."ontology.sparql" (
   commit work;
   st := '00000';
   exec (S, st, msg, V, vector ('use_cache', 1), meta, data);
-  --exec (S, st, msg, V, 0, meta, data);
   if (debug)
     dbg_obj_princ (S, st, msg);
   if (st = '00000')
@@ -1199,36 +1224,45 @@ create procedure ODS.ODS_API."lookup.list" (
 }
 ;
 
-create procedure ODS..getDefaultHttps ()
+create procedure ODS.ODS_API.getDefaultHttps () __SOAP_HTTP 'text/plain'
 {
   declare host, port, tmp varchar;
-  host := null; port := null;
-  for select top 1 HP_HOST, HP_LISTEN_HOST from  DB.DBA.HTTP_PATH, DB.DBA.WA_DOMAINS
-    where HP_PPATH like '/DAV/VAD/wa/%' and WD_HOST = HP_HOST and WD_LISTEN_HOST = HP_LISTEN_HOST
-	and WD_LPATH = HP_LPATH and HP_HOST not like '*sslini*' and HP_SECURITY = 'SSL' and length (HP_HOST) do
-	 {
-	    tmp := split_and_decode (HP_LISTEN_HOST, 0, '\0\0:');
-	    if (length (tmp) = 2)
-	      tmp := tmp[1];
-	    else
-	      tmp := HP_LISTEN_HOST;
-	    host := HP_HOST;
-	    port := tmp;  
-	    if (port <> '443')
-	      host := host || ':' || port;
-	 }
+
+  host := null;
+  port := null;
+  for select top 1 HP_HOST, HP_LISTEN_HOST
+        from DB.DBA.HTTP_PATH, DB.DBA.WA_DOMAINS
+       where HP_PPATH like '/DAV/VAD/wa/%'
+         and WD_HOST = HP_HOST
+         and WD_LISTEN_HOST = HP_LISTEN_HOST
+	       and WD_LPATH = HP_LPATH
+	       and HP_HOST not like '*sslini*'
+	       and HP_SECURITY = 'SSL'
+	       and length (HP_HOST) do
+	{
+	  tmp := split_and_decode (HP_LISTEN_HOST, 0, '\0\0:');
+	  if (length (tmp) = 2)
+	    tmp := tmp[1];
+	  else
+	    tmp := HP_LISTEN_HOST;
+	  host := HP_HOST;
+	  port := tmp;
+	  if (port <> '443')
+	    host := host || ':' || port;
+	}
   if (server_https_port () is not null and host is null)
-    {
-      host := registry_get ('URIQADefaultHost');
-      tmp := split_and_decode (host, 0, '\0\0:');
-      if (length (tmp) = 2)
-	tmp := tmp[0];
-      else
-	tmp := host;
-      port := server_https_port (); 
-      if (port <> '443')
-	host := host || ':' || port;
-    }
+  {
+    host := registry_get ('URIQADefaultHost');
+    tmp := split_and_decode (host, 0, '\0\0:');
+    if (length (tmp) = 2)
+	    tmp := tmp[0];
+    else
+	    tmp := host;
+
+    port := server_https_port ();
+    if (port <> '443')
+	    host := tmp || ':' || port;
+  }
   return host;
 }
 ;
@@ -1326,8 +1360,38 @@ create procedure ODS.ODS_API."address.geoData" (
 ;
 
 -- User account activity
-
-create procedure ODS.ODS_API."user.checkAvalability" (
+--!
+-- \brief Check if a certain user account name is available.
+--
+-- Before creating an account via user.register() this method can be used
+-- to check the availability of the user name and the email address.
+--
+-- Although both parameters are marked as optional reliable results are only
+-- obtained if both parameters are given.
+--
+-- \param name The user account name to check.
+-- \param email The corresponding email address.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+-- If the account name and email address are available \p 1 is returned. Otherwise an error code and a human readable message
+-- indicating the problem are returned.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i http://demo.openlinksw.com/ods/api/user.checkAvalability?name=demo2&email=demo2@hello.com
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.01.3127 (Linux) x86_64-unknown-linux-gnu
+-- Connection: Keep-Alive
+-- Date: Tue, 17 Apr 2012 15:44:46 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result><code>1</code><message>Success</message></result>
+-- \endverbatim
+--/
+create procedure ODS.ODS_API."user.checkAvailability" (
   in name varchar := null,
 	in email varchar := null) __soap_http 'text/xml'
 {
@@ -1337,7 +1401,7 @@ create procedure ODS.ODS_API."user.checkAvalability" (
     return ods_serialize_sql_error (__SQL_STATE, __SQL_MESSAGE);
   };
   if (name is null or length (name) < 1 or length (name) > 20)
-    signal ('23023', 'Login name cannot be empty or longer then 20 chars');
+    signal ('23023', 'Login name cannot be empty or longer than 20 chars');
 
   if (regexp_match ('^[A-Za-z0-9_. at -]+\$', name) is null)
     signal ('23023', 'The login name contains invalid characters');
@@ -1358,10 +1422,59 @@ create procedure ODS.ODS_API."user.checkAvalability" (
 }
 ;
 
---! User registration
---! name: desired user account name
---! password: desired password
---! email: user's e-mail address
+--!
+-- \deprecated Use user.checkAvailability() instead.
+--/
+create procedure ODS.ODS_API."user.checkAvalability" (
+  in name varchar := null,
+    in email varchar := null) __soap_http 'text/xml'
+{
+  return ODS.ODS_API."user.checkAvalability"(name, email);
+}
+;
+
+--!
+-- \brief Register a new user account.
+--
+-- \param name The user name for the new account. Except for \p mode \p 4 and \p 5 (Twitter and LinkedIn) this is mandatory.
+-- \param password The password for the new account. Only used if \p mode is \p 0. Otherwise authentication is done through the specified service without the need
+-- for a specific ODS password.
+-- \param email The email address for the new account. Except for \p mode \p 2 (Facebook) this is mandatory.
+-- \param mode ODS supports different methods of authentication as detailed in \ref ods_authentication. For user registration ODS also supports several methods:
+-- - \p 0 - Default registration via username and password. This is the default.
+-- - \p 1 - Registration via OpenID.
+-- - \p 2 - Registration via Facebook.
+-- - \p 3 - Registration via FOAF+SSL/WebID.
+-- - \p 4 - Registration via Twitter.
+-- - \p 5 - Registration via LinkedIn.
+-- \param data Additional registration details. The format depends on the registration \p mode.
+-- - \p mode = \p 0 (username/password) - \p data is unused.
+-- - \p mode = \p 1 (OpenID) - A JSON stream of profile details. At least \p openid_url and \p openid_server need to be provided. FIXME: why not simply use the OpenID and do the rest internally somehow?
+-- - \p mode = \p 2 (Facebook) - A JSON stream of profile data. At least \p uid - the Facebook UID, needs to be specified.
+-- - \p mode = \p 3 (FOAF+SSL/WebID) - A JSON stream of details. FIXME: why not simply fetch the FOAF via the WebID instead of delegating that work to the client?
+-- - \p mode = \p 4 (Twitter) - An XML stream of user information as for example returned by Twitter's users/lookup API call. FIXME: why not simply use the Twitter ID and do the rest internally?
+-- - \p mode = \p 5 (LinkedIn) - An XML stream of user information from LinkedIn. At least \p /person/public-profile-url needs to be provided. FIXME: why not simply use the linkedin profile URL?
+--
+-- \return On success a new session id is returned which can be used as described in \ref ods_authentication_session_id.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/user.register?name=test123&password=1&email=test@yahoo.com"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/05.12.3041 (Solaris) x86_64-sun-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Mon, 28 Dec 2009 22:18:59 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="ISO-8859-1"
+-- Content-Length: 59
+--
+-- <result>
+--   <code>191</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."user.register" (
   in name varchar := null,
 	in "password" varchar := null,
@@ -1418,7 +1531,7 @@ create procedure ODS.ODS_API."user.register" (
     "password" := uuid ();
 	}
   if (name is null or length (name) < 1 or length (name) > 20)
-    signal ('23023', 'Login name cannot be empty or longer then 20 chars');
+    signal ('23023', 'Login name cannot be empty or longer than 20 chars');
 
   if (regexp_match ('^[A-Za-z0-9_. at -]+\$', name) is null)
     signal ('23023', 'The login name contains invalid characters');
@@ -1496,6 +1609,7 @@ create procedure ODS.ODS_API."user.register" (
     DB.DBA.WA_USER_EDIT (name, 'WAUI_BORG_HOMEPAGE', get_keyword ('organizationHomepage', data));
     DB.DBA.WA_USER_EDIT (name, 'WAUI_BORG'         , get_keyword ('organizationTitle', data));
     DB.DBA.WA_USER_EDIT (name, 'WAUI_FOAF'         , get_keyword ('iri', data));
+    DB.DBA.WA_USER_EDIT (name, 'WAUI_PHOTO_URL'    , get_keyword ('depiction', data));
 
     declare cert any;
     cert := client_attr ('client_certificate');
@@ -1620,8 +1734,51 @@ create procedure ODS.ODS_API.linkedinVerify (
 }
 ;
 
---! Authenticate ODS account using name & password hash
---! Will estabilish a session in VSPX_SESSION table
+--!
+-- \brief Start a new user session.
+--
+-- This method allows to authenticate with one of the supported authentication
+-- methods to create a new user session. The returned session id can be used for
+-- further method calls instead of password hash or OAuth authentication.
+--
+-- ODS supports several methods to authenticate:
+-- - Standard user name and password hash authentication as detailed in \ref ods_authentication_password_hash.
+-- - Authentication via a Facebook UID. The ID needs to be added to the profile of the user for this method to work. FIXME: Does this require the user to be logged into Facebook?
+-- - Authentication via OpenID. FIXME
+-- - Authentication via OAuth: ODS allows to authenticate with Twitter or LinkedIn IDs through OAuth.
+--
+-- A session will timeout after being unused for half an hour.
+--
+-- \param user_name The user name of the account created via user.register(). If specified \p password_hash also needs to be provided.
+-- \param password_hash The password hash as explained in \ref ods_authentication_password_hash. Mandatory if \p user_name is specified.
+-- \param facebookUID The Facebook UID. This is the numerical id contained in the profile URL. The facebook UID needs to be registered
+-- with an account. Every other parameter should be \p null.
+-- \param openIdUrl
+-- \param openIdIdentity
+-- \param oauthMode Can be one of \p twitter or \p linkedin to either login through Twitter or LinkedIn. If specified \p oauthSid, \p oauthVerifier, and \p oauthToken also need
+-- to be specified.
+-- \param oauthSid The OAuth session ID. See \ref ods_authentication_oauth for details.
+-- \param oauthVerifier The OAuth Verifier. See \ref ods_authentication_oauth for details.
+-- \param oauthToken The OAuth token. See \ref ods_authentication_oauth for details.
+--
+-- \return The session id of the newly created session. This session id can then be
+-- used to authenticate other method calls as explained in \ref ods_authentication_session_id.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/user.authenticate?user_name=demo&password_hash=49e473da03fbc286f06b5f0bf1f3301b5e4a67fd"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.01.3127 (Linux) x86_64-unknown-linux-gnu
+-- Connection: Keep-Alive
+-- Date: Tue, 17 Apr 2012 09:31:34 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 114
+--
+-- <root><sid>1de236f5da2f32d92e8c0cce5053a96e</sid><userName>demo</userName><userId>127</userId><dba>0</dba></root>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."user.authenticate" (
   in user_name varchar := null,
 	in password_hash varchar := null,
@@ -1735,6 +1892,10 @@ create procedure ODS.ODS_API."user.authenticate" (
   if (isnull (uname))
     return ods_auth_failed ();
 
+
+  if ((select U_ACCOUNT_DISABLED from DB.DBA.SYS_USERS where U_NAME = uname) = 1)
+    signal ('22000', 'The ODS account is deactivated<>');
+
   sid := DB.DBA.vspx_sid_generate ();
   insert into DB.DBA.VSPX_SESSION (VS_SID, VS_REALM, VS_UID, VS_STATE, VS_EXPIRY)
     values (sid, 'wa', uname, serialize (vector ('vspx_user', uname)), now ());
@@ -1748,6 +1909,20 @@ create procedure ODS.ODS_API."user.authenticate" (
 }
 ;
 
+--!
+-- \deprecated Use user.authenticate() instead.
+--
+-- \brief Start a new user session.
+--
+-- Calling this method is similar to calling user.authenticate() with the password hash
+-- method.
+--
+-- \param user_name The user name of the account created via user.register().
+-- \param password_hash The password hash as explained in \ref ods_authentication_password_hash.
+--
+-- \return The session id of the newly created session. This session id can then be
+-- used to authenticate other method calls as explained in \ref ods_authentication_session_id.
+--/
 create procedure ODS.ODS_API."user.login" (
   in user_name varchar,
 	in password_hash varchar) __soap_http 'text/plain'
@@ -1756,6 +1931,15 @@ create procedure ODS.ODS_API."user.login" (
 }
 ;
 
+--!
+-- \brief Validate user authentication credentials.
+--
+-- This method can be used to check user authentication credentials as detailed in
+-- \ref ods_authentication.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+-- If the authentication credentials are valid \p 1 is returned.
+--/
 create procedure ODS.ODS_API."user.validate" () __soap_http 'text/xml'
 {
   declare uname varchar;
@@ -1772,6 +1956,14 @@ create procedure ODS.ODS_API."user.validate" () __soap_http 'text/xml'
 }
 ;
 
+--!
+-- \brief End a user session.
+--
+-- This method ends a user session created via user.login() or user.authenticate().
+-- The user session needs to be specified via \ref ods_authentication_session_id.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--/
 create procedure ODS.ODS_API."user.logout" () __soap_http 'text/plain'
 {
   declare uname varchar;
@@ -1797,6 +1989,108 @@ create procedure ODS.ODS_API."user.logout" () __soap_http 'text/plain'
 }
 ;
 
+--!
+-- \brief Change user profile information.
+--
+-- This method allows to update any key/value pair in the user profile.
+--
+-- \param user_info A comma-separated list of \p key=value pairs identifying
+-- details in the user profile of the authenticated user. The following keys are supported:
+-- - \p WAUI_TITLE
+-- - \p WAUI_FIRST_NAME
+-- - \p WAUI_LAST_NAME
+-- - \p WAUI_FULL_NAME
+-- - \p WAUI_GENDER
+-- - \p WAUI_BIRTHDAY
+-- - \p WAUI_WEBPAGE
+-- - \p WAUI_MSIGNATURE
+-- - \p WAUI_ICQ
+-- - \p WAUI_SKYPE
+-- - \p WAUI_AIM
+-- - \p WAUI_YAHOO
+-- - \p WAUI_MSN
+-- - \p WAUI_HADDRESS1
+-- - \p WAUI_HADDRESS2
+-- - \p WAUI_HCODE
+-- - \p WAUI_HCITY
+-- - \p WAUI_HSTATE
+-- - \p WAUI_HCOUNTRY
+-- - \p WAUI_HTZONE
+-- - \p WAUI_HPHONE
+-- - \p WAUI_HPHONE_EXT
+-- - \p WAUI_HMOBILE
+-- - \p WAUI_BINDUSTRY
+-- - \p WAUI_BORG
+-- - \p WAUI_BJOB
+-- - \p WAUI_BADDRESS1
+-- - \p WAUI_BADDRESS2
+-- - \p WAUI_BCODE
+-- - \p WAUI_BCITY
+-- - \p WAUI_BSTATE
+-- - \p WAUI_BCOUNTRY
+-- - \p WAUI_BTZONE
+-- - \p WAUI_BLAT
+-- - \p WAUI_BLNG
+-- - \p WAUI_BPHONE
+-- - \p WAUI_BPHONE_EXT
+-- - \p WAUI_BMOBILE
+-- - \p WAUI_BREGNO
+-- - \p WAUI_BCAREER
+-- - \p WAUI_BEMPTOTAL
+-- - \p WAUI_BVENDOR
+-- - \p WAUI_BSERVICE
+-- - \p WAUI_BOTHER
+-- - \p WAUI_BNETWORK
+-- - \p WAUI_SUMMARY
+-- - \p WAUI_RESUME
+-- - \p WAUI_SEC_QUESTION
+-- - \p WAUI_SEC_ANSWER
+-- - \p WAUI_PHOTO_URL
+-- - \p WAUI_TEMPLATE
+-- - \p WAUI_LAT
+-- - \p WAUI_LNG
+-- - \p WAUI_LATLNG_VISIBLE
+-- - \p WAUI_USER_SEARCHABLE
+-- - \p WAUI_AUDIO_CLIP
+-- - \p WAUI_FAVORITE_BOOKS
+-- - \p WAUI_FAVORITE_MUSIC
+-- - \p WAUI_FAVORITE_MOVIES
+-- - \p WAUI_SEARCHABLE
+-- - \p WAUI_SHOWACTIVE
+-- - \p WAUI_LATLNG_HBDEF
+-- - \p WAUI_SITE_NAME
+-- - \p WAUI_INTERESTS
+-- - \p WAUI_INTEREST_TOPICS
+-- - \p WAUI_BORG_HOMEPAGE
+-- - \p WAUI_OPENID_URL
+-- - \p WAUI_OPENID_SERVER
+-- - \p WAUI_FACEBOOK_ID
+-- - \p WAUI_IS_ORG
+-- - \p WAUI_APP_ENABLE
+-- - \p WAUI_SPB_ENABLE
+-- - \p WAUI_NICK
+-- - \p WAUI_BICQ
+-- - \p WAUI_BSKYPE
+-- - \p WAUI_BAIM
+-- - \p WAUI_BYAHOO
+-- - \p WAUI_BMSN
+-- - \p WAUI_MESSAGING
+-- - \p WAUI_BMESSAGING
+-- - \p WAUI_CERT_LOGIN
+-- - \p WAUI_CERT_FINGERPRINT
+-- - \p WAUI_CERT
+-- - \p WAUI_ACL - A serialized array of ACLs which is nearly impossible to create as a client since the serialization requires an internal Virtuoso function called serialize().
+-- - \p WAUI_SALMON_KEY
+-- - \p WAUI_SETTINGS
+-- - \p WAUI_JOIN_DATE
+-- - \p WAUI_FOAF
+--
+-- \reqb{The request body should contain a \ref ods_user_profile_resource.}
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \sa user.update.fields()
+--/
 create procedure ODS.ODS_API."user.update" (
 	in user_info any) __soap_http 'text/xml'
 {
@@ -1839,6 +2133,95 @@ create procedure ODS.ODS_API."user.update.field" (
 }
 ;
 
+--!
+-- \brief Change user profile information.
+--
+-- This method allows to update details in the user profile. Any parameter can be omitted which will
+-- result in its value not being touched.
+--
+-- \param nickName The user's nick name. Typically a short name used in chats and such.
+-- \param mail The user's email address.
+-- \param title The user's title. Can be something like "Mr." or "Ms."
+-- \param firstName The user's first name.
+-- \param lastName The user's last name.
+-- \param fullName The user's full name including any middle names.
+-- \param gender The user's gender. Can be either \p "male" or \p "female".
+-- \param birthday The user's birthday. The date format is \p YYYY.MM.DD.
+-- \param homepage The user's homepage.
+-- \param mailSignature The user's mail signature to be attached to each mail written.
+-- \param sumary A piece of text giving a summary of the user. This can be anything. The summary is subject to privacy settings as detailed in \ref ods_user_privacy.
+-- \param appSetting
+-- \param spbEnable
+-- \param Search
+-- \param showActive
+-- \param webIDs
+-- \param interests
+-- \param topicInterests
+-- \param icq
+-- \param skype
+-- \param yahoo
+-- \param aim
+-- \param msn
+-- \param messaging
+-- \param defaultMapLocation
+-- \param homeCountry
+-- \param homeState
+-- \param homeCity
+-- \param homeCode
+-- \param homeAddress1
+-- \param homeAddress2
+-- \param homeTimezone
+-- \param homeLatitude
+-- \param homeLongitude
+-- \param homePhone
+-- \param homePhoneExt
+-- \param homeMobile
+-- \param businessIndustry
+-- \param businessOrganization
+-- \param businessHomePage
+-- \param businessJob
+-- \param businessRegNo
+-- \param businessCareer
+-- \param businessEmployees
+-- \param businessVendor
+-- \param businessService
+-- \param businessOther
+-- \param businessNetwork
+-- \param businessResume
+-- \param businessCountry
+-- \param businessState
+-- \param businessCity
+-- \param businessCode
+-- \param businessAddress1
+-- \param businessAddress2
+-- \param businessTimezone
+-- \param businessLatitude
+-- \param businessLongitude
+-- \param businessPhone
+-- \param businessPhoneExt
+-- \param businessMobile
+-- \param businessIcq
+-- \param businessSkype
+-- \param businessYahoo
+-- \param businessAim
+-- \param businessMsn
+-- \param businessMessaging
+-- \param securityOpenID
+-- \param securityFacebookID
+-- \param securitySecretQuestion
+-- \param securitySecretAnswer
+-- \param securitySiocLimit
+-- \param photo
+-- \param photoContent
+-- \param audio
+-- \param audioContent
+-- \param mode
+-- \param onlineAccounts
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \sa user.update()
+--/
 create procedure ODS.ODS_API."user.update.fields" (
   in nickName varchar := null,
   in mail varchar := null,
@@ -2054,6 +2437,7 @@ create procedure ODS.ODS_API."user.update.fields" (
 }
 ;
 
+-- FIXME: this does not seem to be complete
 create procedure ODS.ODS_API."user.acl.array" ()
 {
   return vector (
@@ -2113,6 +2497,35 @@ create procedure ODS.ODS_API."user.acl.array" ()
 }
 ;
 
+--!
+-- \brief Get privacy information about user profile details.
+--
+-- Almost each detail in a user's profile can have its individual privacy setting as detailed in
+-- \ref ods_user_privacy. This method returns the currently configured privacy settings for the
+-- authenticated user.
+--
+-- \return An XML stream containing one tag for each user profile detail with the following content:
+-- - \p 1 - The detail is public
+-- - \p 2 - The detail is controlled by ACLs. FIXME: see also somewhere
+-- - \p 3 - The detail is private
+--
+-- \sa user.acl.update()
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/user.acl.info?user_name=demo&password_hash=49e473da03fbf295f06b5f0bf1f3301b5e4a67fc"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.01.3127 (Linux) x86_64-unknown-linux-gnu
+-- Connection: Keep-Alive
+-- Date: Wed, 18 Apr 2012 06:30:48 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 1421
+--
+-- <acl><title>1</title><firstName>1</firstName><lastName>1</lastName><fullName>1</fullName><mail>1</mail><gender>1</gender><birthday>2</birthday><homepage>1</homepage><webIDs>1</webIDs><mailSignature>3</mailSignature><icq>1</icq><skype>1</skype><yahoo>1</yahoo><aim>1</aim><msn>1</msn><homeAddress1>1</homeAddress1><homeCountry>1</homeCountry><homeTimezone>1</homeTimezone><homePhone>1</homePhone><businessIndustry>1</businessIndustry><businessOrganization>1</businessOrganization><businessJob>1</businessJob><businessAddress1>1</businessAddress1><businessCountry>1</businessCountry><businessTimezone>1</businessTimezone><businessPhone>1</businessPhone><businessRegNo>1</businessRegNo><businessCareer>1</businessCareer><businessEmployees>1</businessEmployees><businessVendor>1</businessVendor><businessService>1</businessService><businessOther>1</businessOther><businessNetwork>1</businessNetwork><summary>1</summary><businessResume>1</businessResume><photo>1</photo><homeLatitude>1</homeLatitude><audio>1</audio><businessLatitude>1</businessLatitude><interests>1</interests><topicInterests>1</topicInterests><businessIcq>1</businessIcq><businessSkype>1</businessSkype><businessYahoo>1</businessYahoo><businessAim>1</businessAim><businessMsn>1</businessMsn><homeCode>3</homeCode><homeCity>3</homeCity><homeState>3</homeState><businessCode>3</businessCode><businessCity>3</businessCity><businessState>3</businessState></acl>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."user.acl.info" () __soap_http 'text/xml'
 {
   declare uname varchar;
@@ -2140,6 +2553,93 @@ create procedure ODS.ODS_API."user.acl.info" () __soap_http 'text/xml'
 }
 ;
 
+--!
+-- \brief Change the user profile detail privacy settings.
+--
+-- Almost each detail in a user's profile can have its individual privacy setting as detailed in
+-- \ref ods_user_privacy. This method allows to change these privacy settings.
+--
+-- The following user detail identifier are supported:
+-- - \p title
+-- - \p firstName
+-- - \p lastName
+-- - \p fullName
+-- - \p mail
+-- - \p gender
+-- - \p birthday
+-- - \p homepage
+-- - \p webIDs
+-- - \p mailSignature
+-- - \p icq
+-- - \p skype
+-- - \p yahoo
+-- - \p aim
+-- - \p msn
+-- - \p homeAddress1
+-- - \p homeCountry
+-- - \p homeTimezone
+-- - \p homePhone
+-- - \p businessIndustry
+-- - \p businessOrganization
+-- - \p businessJob
+-- - \p businessAddress1
+-- - \p businessCountry
+-- - \p businessTimezone
+-- - \p businessPhone
+-- - \p businessRegNo
+-- - \p businessCareer
+-- - \p businessEmployees
+-- - \p businessVendor
+-- - \p businessService
+-- - \p businessOther
+-- - \p businessNetwork
+-- - \p summary
+-- - \p businessResume
+-- - \p photo
+-- - \p homeLatitude
+-- - \p audio
+-- - \p businessLatitude
+-- - \p interests
+-- - \p topicInterests
+-- - \p businessIcq
+-- - \p businessSkype
+-- - \p businessYahoo
+-- - \p businessAim
+-- - \p businessMsn
+-- - \p homeCode
+-- - \p homeCity
+-- - \p homeState
+-- - \p businessCode
+-- - \p businessCity
+-- - \p businessState
+--
+-- \param acls A list of URL-parameter style key/value pairs where each key corresponds to one user profile
+-- detail and each value refers to its visibility. A simple example would be \p "gender=1&birthday=3&photo=1"
+-- which would set the gender to be public, the birthday to be controlled by fine grained ACLs, and
+-- the photo to be public, too. The visibility value can be one of the following:
+-- - \p 1 - The detail is public
+-- - \p 2 - The detail is controlled by ACLs. FIXME: see also somewhere
+-- - \p 3 - The detail is private
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \sa user.acl.info()
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/user.acl.update?user_name=demo&password_hash=49e473da03fbd296f05b5f0bf1f3301b5e4a67fc&acls=gender%3D1%26birthday%3D3%26photo%3D1"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.01.3127 (Linux) x86_64-unknown-linux-gnu
+-- Connection: Keep-Alive
+-- Date: Wed, 18 Apr 2012 09:07:25 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 57
+--
+-- <result><code>1</code><message>Success</message></result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."user.acl.update" (
   in acls varchar) __soap_http 'text/xml'
 {
@@ -2171,6 +2671,35 @@ create procedure ODS.ODS_API."user.acl.update" (
 }
 ;
 
+--!
+-- \brief Change the password of a user account.
+--
+-- This method allows to change the password on a user account. Since passwords
+-- are transmitted in plain text it is recommended to use an encrypted connection.
+--
+-- \param old_password The old password in plain text.
+-- \param new_password The new password in plain text.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/user.password_change?user_name=test123&password_hash=4674a4b44e89011cfa581ff90967ebc52fd1080d&old_password=1&new_password=2"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/05.12.3041 (Solaris) x86_64-sun-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Mon, 28 Dec 2009 22:46:56 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="ISO-8859-1"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>1</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."user.password_change" (
   in old_password varchar,
 	in new_password varchar) __soap_http 'text/xml'
@@ -2208,6 +2737,24 @@ ret:
 }
 ;
 
+--!
+-- \deprecated Use user.update() instead.
+--
+-- \brief Upload binary user data.
+--
+-- The ODS user profile contains an optional user photo and user audio file. These can be
+-- uploaded through this method.
+--
+-- For this purpose an HTTP POST needs to be performed with the following paramters:
+-- - \c pf_photo - The file name of the photo.
+-- - \c pf_photoContent - The content of the photo file (jpg, gif, or png)
+-- - \c pf_audio - The file name of the audio.
+-- - \c pf_audioContent - The content of the audio file.
+--
+-- \return \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \sa user.update(), user.update.fields()
+--/
 create procedure ODS.ODS_API."user.upload" () __soap_http 'text/xml'
 {
   declare params any;
@@ -2362,22 +2909,34 @@ create procedure ODS.ODS_API."user.delete" (
 create procedure ODS.ODS_API."user.enable" (
   in name varchar) __soap_http 'text/xml'
 {
+  declare rc, allow integer;
   declare uname varchar;
-  declare rc integer;
   declare exit handler for sqlstate '*'
   {
     rollback work;
     return ods_serialize_sql_error (__SQL_STATE, __SQL_MESSAGE);
   };
+
   if (not ods_check_auth (uname))
     return ods_auth_failed ();
+
   if (not exists (select 1 from DB.DBA.SYS_USERS where U_NAME = name))
     return ods_serialize_sql_error ('37000', 'The item is not found');
+
+  allow := 0;
   if (uname in ('dav', 'dba'))
+    allow := 1;
+
+  if ((not allow) and (uname = DB.DBA.WA_USER_SETTING_GET (name, 'DISABLED_BY')))
+    allow := 1;
+
+  if (allow)
     {
     update DB.DBA.WA_INSTANCE
        set WAI_IS_FROZEN = 0
      where WAI_NAME in (select WAM_INST from DB.DBA.WA_MEMBER, DB.DBA.SYS_USERS where WAM_USER = U_ID and U_NAME = name and WAM_MEMBER_TYPE = 1);
+    DB.DBA.WA_USER_SETTING_SET (name, 'DISABLED_BY', null);
+    connection_set ('WA_USER_DISABLED', name);
       DB.DBA.USER_SET_OPTION (name, 'DISABLED', 0);
       rc := 1;
   } else {
@@ -2390,23 +2949,28 @@ create procedure ODS.ODS_API."user.enable" (
 create procedure ODS.ODS_API."user.disable" (
   in name varchar) __soap_http 'text/xml'
 {
-  declare uname varchar;
   declare rc integer;
+  declare uname varchar;
   declare exit handler for sqlstate '*'
   {
     rollback work;
     return ods_serialize_sql_error (__SQL_STATE, __SQL_MESSAGE);
   };
+
   if (not ods_check_auth (uname))
     return ods_auth_failed ();
+
   if (not exists (select 1 from DB.DBA.SYS_USERS where U_NAME = name))
     return ods_serialize_sql_error ('37000', 'The item is not found');
-  if (uname in ('dav', 'dba'))
+
+  if ((uname in ('dav', 'dba')) or (uname = name))
     {
     delete from DB.DBA.VSPX_SESSION where VS_UID = name;
     update DB.DBA.WA_INSTANCE
        set WAI_IS_FROZEN = 1
      where WAI_NAME in (select WAM_INST from DB.DBA.WA_MEMBER, DB.DBA.SYS_USERS where WAM_USER = U_ID and U_NAME = name and WAM_MEMBER_TYPE = 1);
+    DB.DBA.WA_USER_SETTING_SET (name, 'DISABLED_BY', uname);
+    connection_set ('WA_USER_DISABLED', name);
     DB.DBA.USER_SET_OPTION (name, 'DISABLED', 1);
       rc := 1;
   } else {
@@ -2425,12 +2989,40 @@ create procedure ODS.ODS_API."user.get" (
     rollback work;
     return ods_serialize_sql_error (__SQL_STATE, __SQL_MESSAGE);
   };
+
   q := sprintf ('select * from <%s> where { ?user a sioc:User ; sioc:id "%s" ; ?property ?value } ', ods_graph(), name);
   exec_sparql (q);
   return '';
 }
 ;
 
+--!
+-- \brief Fetch basic information about a user.
+--
+-- This method allows to fetch details about an ODS user. If no user name is given the authenticated
+-- user is returned. This means that user.info() can be used to get user information for an authentication
+-- session (see also \ref ods_authentication_session_id).
+--
+-- \param name The optional ODS user name. Defaults to the authenticated user.
+-- \param short An optional boolean setting. If \p 1 only the most basic information is returned.
+--
+-- \return An XML stream encoding the user details such as uid, name, or the personal URL.
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/user.info?sid=07e6e4b8da77691c729e6c95e3016ac8&short=1"
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/06.01.3127 (Linux) x86_64-unknown-linux-gnu
+-- Connection: Keep-Alive
+-- Date: Sat, 21 Apr 2012 09:52:46 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="UTF-8"
+-- Content-Length: 157
+--
+-- <user><uid>127</uid><iri>http://demo.openlinksw.com/dataspace/person/demo#this</iri><name>demo</name><nickName>demo</nickName><fullName>Demo User
+-- </fullName></user>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."user.info" (
   in name varchar := null,
   in "short" varchar := '0') __soap_http 'text/xml'
@@ -2453,7 +3045,7 @@ create procedure ODS.ODS_API."user.info" (
     name := uname;
 
   if (not isnull (uname) and (uname <> name))
-    return ods_serialize_sql_error ('37000', 'Bad  user''s name paramater');
+    return ods_serialize_sql_error ('37000', 'Bad  user''s name parameter');
 
   if (not exists (select 1 from DB.DBA.SYS_USERS where U_NAME = name))
     return ods_serialize_sql_error ('37000', 'The item is not found');
@@ -2585,6 +3177,17 @@ create procedure ODS.ODS_API."user.info" (
 }
 ;
 
+--!
+-- \brief Fetch details about an ODS user based on their WebID.
+--
+-- This method returns public information about an ODS user based on their specific
+-- ODS WebID.
+--
+-- \param webID The WebID of the user to lookup.
+-- \param output The output type. Can be either \p xml or \p json. Defaults to \p xml.
+--
+-- \return The details of the requested user serialized as an xml stream.s
+--/
 create procedure ODS.ODS_API."user.info.webID" (
   in webID varchar,
   in output varchar := 'xml') __soap_http 'text/xml'
@@ -2816,7 +3419,46 @@ create procedure ODS.ODS_API."user.search" (
 
 -- Social Network activity
 
-create procedure ODS.ODS_API."user.invite" (
+--!
+-- \brief Invite someone to join the user's social network.
+--
+-- ODS allows users to be connected in a social network. This requires users to send invitations
+-- to other users. The other users then need to either approve or reject that invitation.
+--
+-- \param friends_email The email address the invitation should be sent to. This can either be
+-- an already registered user or someone that is also invited to create an account with the instance of ODS.
+-- \param custom_message An optional custom message to be sent as part of the autogenerated one. The auto-generated
+-- message is based on a template stored in the DAV file system at \p "/DAV/VAD/wa/tmpl/SN_INV_TEMPLATE" or in the
+-- web server's file structure at \p "wa/tmpl/SN_INV_TEMPLATE". The default template can be seen below.
+-- \verbatim
+-- %invitation%
+--
+-- I've created my own place on %app% and I'd like you to connect to me so we can stay in touch.
+-- You can view my blog, my photos, my news and wiki.
+--
+-- With %app%, you can create your own personal page and blog of your own,
+-- which will can be linked to mine.
+--
+-- To join my network please visit %url%
+--
+-- - %user%
+--
+-- --------------------------------------------------------------------------
+--
+-- Thank you for using Virtuoso Web Applications. Virtuoso Team
+--
+-- -- Powered by Virtuoso  http://virtuoso.openlinksw.com/
+-- \endverbatim
+-- It can easily be replaced by the system administrator. The following placeholders are supported:
+-- - \p %app% - The title of the web service or the server's hostname as a fallback.
+-- - \p %user% - The full name of the user sending the invitation.
+-- - \p %url% - The URL to the login page of this ODS instance. FIXME: This depends on the used UI. It should be provided by the client or be configurable.
+-- - \p %invitation% - The \p custom_message provided as a parameter.
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \sa user.invitation.approve(), user.invitation.list()
+--/
+create procedure ODS.ODS_API."user.invitation.new" (
   in friends_email varchar,
   in custom_message varchar := '') __soap_http 'text/xml'
 {
@@ -2835,6 +3477,7 @@ create procedure ODS.ODS_API."user.invite" (
   if (not ods_check_auth (uname))
     return ods_auth_failed ();
 
+-- FIXME: this URL is UI specific and should be provided by the client rather than being hard-coded here.
   url := WS.WS.EXPAND_URL (HTTP_URL_HANDLER (), 'login.vspx?URL=sn_rec_inv.vspx');
   copy := (select top 1 WS_WEB_TITLE from DB.DBA.WA_SETTINGS);
   if (copy = '' or copy is null)
@@ -2846,10 +3489,14 @@ create procedure ODS.ODS_API."user.invite" (
   sn_id := (select sne_id from DB.DBA.sn_person where sne_name = uname);
   msg := DB.DBA.WA_GET_EMAIL_TEMPLATE ('SN_INV_TEMPLATE', 1);
   msg := replace (msg, '%app%', copy);
+-- FIXME: the template does not contain the '%invitation%' placeholder
   msg := replace (msg, '%invitation%', custom_message);
+-- FIXME: why would the user send a message to themselves. Here the receipiant's name should go. This we only have if the user is already registered or if we invite a WebID which should be possible, too.
   msg := replace (msg, '%user%', DB.DBA.WA_WIDE_TO_UTF8 (_u_full_name));
   msg := replace (msg, '%url%', url);
 
+-- FIXME: %app_action_url%, %service_url%, %app_owner%, %timeout_join% and %service% are never replaced in the msg.
+
   uids := split_and_decode (friends_email, 0, '\0\0,');
 
   if (not length (uids))
@@ -2897,7 +3544,33 @@ ret:
 }
 ;
 
-create procedure ODS.ODS_API."user.invitation" (
+--!
+-- \deprecated Use user.invitation.new() instead.
+--/
+create procedure ODS.ODS_API."user.invite" (
+  in friends_email varchar,
+  in custom_message varchar := '') __soap_http 'text/xml'
+{
+  return ODS.ODS_API."user.invitation.new"(friends_email, custom_message);
+}
+;
+
+--!
+-- \brief Approve an invitation from another user.
+--
+-- ODS allows users to be connected in a social network. This requires users to send invitations
+-- to other users. The other users then need to either approve or reject that invitation.
+--
+-- This method allow to approve or reject invitations from other users.
+--
+-- \param invitation_id The id of the invitation as reported by user.invitation.list().
+-- \param approve Either \p 1 or \p 0 to \em approve or \em reject the invitation.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \sa user.invitation.new(), user.invitation.list()
+--/
+create procedure ODS.ODS_API."user.invitation.approve" (
   in invitation_id int,
   in approve smallint) __soap_http 'text/xml'
 {
@@ -2938,7 +3611,30 @@ ret:
 }
 ;
 
-create procedure ODS.ODS_API."user.invitations.get" () __soap_http 'text/xml'
+--!
+-- \deprecated Use user.invitation.approve() instead.
+--/
+create procedure ODS.ODS_API."user.invitation" (
+  in invitation_id int,
+  in approve smallint) __soap_http 'text/xml'
+{
+  return ODS.ODS_API."user.invitation.approve"(invitation_id, approve);
+}
+;
+
+--!
+-- \brief Get a list of pending invitations.
+--
+-- ODS allows users to be connected in a social network. This requires users to send invitations
+-- to other users. The other users then need to either approve or reject that invitation.
+--
+-- This method lists the invitations other users sent to the authenticated user.
+--
+-- \return FIXME
+--
+-- \sa user.invitation.new(), user.invitation.approve()
+--/
+create procedure ODS.ODS_API."user.invitation.list" () __soap_http 'text/xml'
 {
   declare uname varchar;
   declare rc integer;
@@ -2953,12 +3649,34 @@ create procedure ODS.ODS_API."user.invitations.get" () __soap_http 'text/xml'
     return ods_auth_failed ();
 
   -- XXX: add sparql_exec after RDF data update triggers is done
+-- FIXME: simply return the values from sn_invitation
 ret:
   return ods_serialize_int_res (rc);
 }
 ;
 
-create procedure ODS.ODS_API."user.relation_terminate" (
+--!
+-- \deprecated Use user.invitation.list() instead.
+--/
+create procedure ODS.ODS_API."user.invitations.get" () __soap_http 'text/xml'
+{
+  return ODS.ODS_API."user.invitation.list"();
+}
+;
+
+--!
+-- \brief Delete a connection to another user.
+--
+-- ODS allows users to be connected in a social network. This requires users to send invitations
+-- to other users. The other users then need to either approve or reject that invitation.
+--
+-- This method allows to remove a connection that has been created through an approved invitation.
+--
+-- \return An error code stating the success of the command execution as detailed in \ref ods_response_format_result_code.
+--
+-- \sa user.invitation.new(), user.invitation.list()
+--/
+create procedure ODS.ODS_API."user.relation.delete" (
   in friend varchar) __soap_http 'text/xml'
 {
   declare uname varchar;
@@ -2978,6 +3696,19 @@ create procedure ODS.ODS_API."user.relation_terminate" (
 }
 ;
 
+--!
+-- \deprecated Use user.relation.delete() instead.
+--/
+create procedure ODS.ODS_API."user.relation_terminate" (
+  in friend varchar) __soap_http 'text/xml'
+{
+  return ODS.ODS_API."user.relation.delete"(friend);
+}
+;
+
+--!
+-- \brief Change connection details. FIXME: this does nothing!
+--/
 create procedure ODS.ODS_API."user.relation_update" (
   in friend varchar,
   in relation_details any) __soap_http 'text/xml'
@@ -3839,7 +4570,7 @@ create procedure ODS.ODS_API."user.mades.update" (
   {
     declare exit handler for sqlstate '*'
     {
-      exec (sprintf ('sparql clear graph <%s>', tmp), stat, msg);
+      SPARQL clear graph ?:tmp;
       goto _next;
     };
     qrs := vector (0,0,0);
@@ -3886,7 +4617,7 @@ create procedure ODS.ODS_API."user.mades.update" (
     	}
     }
   _found:
-    exec (sprintf ('sparql clear graph <%s>', tmp), stat, msg);
+    SPARQL clear graph ?:tmp;
   }
 _next:;
 
@@ -4522,6 +5253,33 @@ create procedure ODS.ODS_API."user.certificates.list" () __soap_http 'applicatio
 }
 ;
 
+create procedure ODS.ODS_API."user.instances.list" () __soap_http 'text/xml'
+{
+  declare uname varchar;
+  declare _u_id integer;
+  declare retValue any;
+
+  declare exit handler for sqlstate '*' {
+    rollback work;
+    return ods_serialize_sql_error (__SQL_STATE, __SQL_MESSAGE);
+  };
+  if (not ods_check_auth (uname))
+    return ods_auth_failed ();
+  _u_id := (select U_ID from DB.DBA.SYS_USERS where U_NAME = uname);
+
+  retValue := (select 
+  	xmlelement ('result', 
+	  	xmlagg (
+		  	xmlelement ('instance', 
+			xmlelement ('id', WAI_ID), 
+			xmlelement ('name', WAI_NAME), 
+			xmlelement ('type', DB.DBA.wa_type_to_app (WAI_TYPE_NAME)), 
+			xmlelement ('member_type', WAM_MEMBER_TYPE)))) 
+	from DB.DBA.WA_MEMBER, DB.DBA.WA_INSTANCE where WAM_INST = WAI_NAME and WAM_USER = _u_id);
+  return serialize_to_UTF8_xml (retValue);
+}
+;
+
 create procedure ODS.ODS_API."user.certificates.get" (
   in id integer) __soap_http 'application/json'
 {
@@ -4544,7 +5302,7 @@ create procedure ODS.ODS_API."user.certificates.get" (
   for (select UC_ID, UC_CERT, UC_LOGIN, UC_FINGERPRINT from DB.DBA.WA_USER_CERTS where UC_ID = id and UC_U_ID = _u_id) do
   {
     subject := get_certificate_info (2, UC_CERT, 0, '');
-    agentID := ODS.ODS_API.SSL_WEBID_GET (UC_CERT);
+    agentID := DB.DBA.FOAF_SSL_WEBID_GET (UC_CERT);
     fingerPrint := get_certificate_info (6, UC_CERT, 0, '');
     certificate := UC_CERT;
     enableLogin := UC_LOGIN;
@@ -4579,7 +5337,7 @@ create procedure ODS.ODS_API."user.certificates.update" (
 
   _u_id := (select U_ID from DB.DBA.SYS_USERS where U_NAME = uname);
 
-  agent := ODS.ODS_API.SSL_WEBID_GET (certificate);
+  agent := DB.DBA.FOAF_SSL_WEBID_GET (certificate);
   if ((agent is null and length (certificate)) or (0 = length (certificate)))
 	  signal ('', 'The certificate must be in PEM format and must have Alternate Name attribute.');
 
@@ -4820,7 +5578,7 @@ create procedure ODS.ODS_API.graph_clear (
   in graph varchar)
 {
   commit work;
-  exec (sprintf ('SPARQL clear graph <%s>', graph));
+  SPARQL clear graph ?:graph;
 }
 ;
 
@@ -4875,7 +5633,8 @@ create procedure ODS.ODS_API.getFOAFDataArray (
                             select ?iri
           		                from <%s>
                              where {
-                                     ?iri a foaf:Person.
+			     	     [] foaf:primaryTopic ?iri .
+                                     ?iri a foaf:Person .
                                    } ', foafGraph)
                  );
 
@@ -4929,9 +5688,12 @@ _loginIn:
   {
     for (select UC_U_ID, UC_LOGIN from DB.DBA.WA_USER_CERTS where UC_FINGERPRINT = get_certificate_info (6)) do
     {
+      loginName := (select U_NAME from DB.DBA.SYS_USERS where U_ID = UC_U_ID);
+      if (not isnull (loginName))
+      {
       certLogin := 1;
       certLoginEnable := coalesce (UC_LOGIN, 0);
-      loginName := (select U_NAME from DB.DBA.SYS_USERS where U_ID = UC_U_ID);
+      }
   }
   }
   V := ODS.ODS_API.extractFOAFDataArray (personUri, foafGraph);
@@ -4960,7 +5722,6 @@ _loginIn:
 
 _exit:;
   ODS.ODS_API.graph_clear (foafGraph);
-  -- dbg_obj_print ('V', V);
   return V;
 }
 ;
@@ -5000,9 +5761,23 @@ create procedure ODS.ODS_API.extractFOAFDataArray (
   in iri varchar,
   in graph varchar)
 {
+  declare V any;
+
+  V := vector ();
+  ODS.ODS_API.extractPersonData (V, iri, graph);
+
+  return V;
+}
+;
+
+
+create procedure ODS.ODS_API.extractPersonData (
+  inout V any,
+  in iri varchar,
+  in graph varchar)
+{
   declare N integer;
-  declare S varchar;
-  declare V, S, st, msg, rows, meta any;
+  declare S, st, msg, rows, meta any;
 
   S := sprintf ('sparql
                  define input:storage ""
@@ -5046,6 +5821,7 @@ create procedure ODS.ODS_API.extractFOAFDataArray (
                         ?onlineAccount_url
                         ?sameAs_array
                         ?knows_array
+                        ?knows_name
                         ?knows_nick
 		               from <%s>
                    where {
@@ -5096,13 +5872,12 @@ create procedure ODS.ODS_API.extractFOAFDataArray (
                                      } .
                           filter (?iri = iri(?::0)).
                         }', graph);
-  V := vector ();
   st := '00000';
   commit work;
   exec (S, st, msg, vector (iri), vector ('use_cache', 1), meta, rows);
   if (st = '00000')
   {
-  meta := ODS.ODS_API.simplifyMeta(meta);
+    meta := ODS.ODS_API.simplifyMeta (meta);
   foreach (any row in rows) do
   {
     N := 0;
@@ -5118,10 +5893,22 @@ create procedure ODS.ODS_API.extractFOAFDataArray (
     }
   }
   }
- return V;
   }
 ;
 
+--!
+-- \brief Fetch the contents of a FOAF user profile.
+--
+-- \param foafIRI The URL of the FOAF profile to lookup.
+-- \param spongerMode \em unused
+-- \param sslFOAFCheck If set to anything but \p 0 no action will be taken unless the connection is secure.
+-- \param outputMode \em unused
+-- \param sslLoginCheck \em unused
+--
+-- \return The details of the FOAF profile serialized as a JSON stream.
+--
+-- \b FIXME: support CN and fix outputMode.
+--/
 create procedure ODS.ODS_API."user.getFOAFData" (
   in foafIRI varchar,
   in spongerMode integer := 0,
@@ -5139,81 +5926,131 @@ create procedure ODS.ODS_API."user.getFOAFData" (
 }
 ;
 
-create procedure ODS.ODS_API.SSL_WEBID_GET (in cert any := null)
+create procedure ODS.ODS_API.SSL_WEBID_GET (
+  in cert any := null)
+{
+  declare rc, webid, webidType, graph any;
+
+  graph := null;
+  rc := ODS.ODS_API.SSL_WEBID_GET_2 (cert, webid, webidType, graph);
+  if (rc)
+    return webid;
+
+  return null;
+}
+;
+
+create procedure ODS.ODS_API.SSL_WEBID_GET_2 (
+  in cert any,
+  inout webid varchar,
+  inout webidType integer,
+  inout graph varchar)
 {
-  return DB.DBA.FOAF_SSL_WEBID_GET (cert);
+  declare rc any;
+
+  if (isnull (cert))
+    cert := client_attr ('client_certificate');
+
+  rc := DB.DBA.WEBID_AUTH_GEN_2 (cert, 0, null, 1, 0, webid, graph, 0, webidType);
+  return rc;
 }
 ;
 
+--!
+-- \brief Fetch the FOAF profile for a WebID certificate.
+--
+-- The client needs to provide the WebID X.509 certificate as an additional context attribute.
+--
+-- \param sslFOAFCheck \em unused
+-- \param outputMode \em unused
+-- \param sslLoginCheck \em unused
+--
+-- \return The details of the FOAF profile serialized as a JSON stream.
+--/
 create procedure ODS.ODS_API."user.getFOAFSSLData" (
   in sslFOAFCheck integer := 0,
   in outputMode integer := 1,
   in sslLoginCheck integer := 0) __soap_http 'application/json'
 {
-  declare foafIRI, alts any;
+  declare rc, webid, webidType, graph, alts any;
   declare V any;
-  declare certLogin, certLoginEnable any;
+  declare cert, loginName, certLogin, certLoginEnable any;
 
-  certLogin := 0;
+  set_user_id ('dba');
+  graph := 'http://' || uuid ();
+  cert := client_attr ('client_certificate');
+  rc := ODS.ODS_API.SSL_WEBID_GET_2 (cert, webid, webidType, graph);
+  if (not rc)
+    return obj2json (null);
+
+ 	V := vector ();
+  appendProperty (V, 'iri', webid);
+
+ 	loginName := '';
+ 	certLogin := 0;
   certLoginEnable := 0;
-  foafIRI := ODS.ODS_API.SSL_WEBID_GET ();
-  if (not isnull (foafIRI))
+  for (select UC_U_ID, UC_LOGIN from DB.DBA.WA_USER_CERTS where UC_FINGERPRINT = get_certificate_info (6, cert, 0, '')) do
+	{
+    loginName := (select U_NAME from DB.DBA.SYS_USERS where U_ID = UC_U_ID);
+    if (not isnull (loginName))
+    {
+	  certLogin := 1;
+    certLoginEnable := coalesce (UC_LOGIN, 0);
+	  appendProperty (V, 'certLogin', cast (certLogin as varchar));
+	  appendProperty (V, 'certLoginEnable', cast (certLoginEnable as varchar));
+	}
+	}
+  if (webidType = 0)
   {
-    try_auth:
-    if (foafIRI like 'ldap://%')
-      {
-	declare i, arr, rc any;
-	V := vector ();
-	rc := DB.DBA.FOAF_SSL_LDAP_CHECK_INT (foafIRI, arr);
-	arr := arr[1];
-	for (i := 0; i < length (arr); i := i + 2)
-	   {
-	     if (arr[i] = 'mail')
-	       appendProperty (V, 'mbox', cast (arr[i+1][0] as varchar));
-	     else if (arr[i] = 'cn')
-	       appendProperty (V, 'name', cast (arr[i+1][0] as varchar));
-	   }
-	if (rc)
-	  {
-	    appendProperty (V, 'iri', foafIRI);
-	  }
-    	for (select UC_LOGIN from DB.DBA.WA_USER_CERTS where UC_FINGERPRINT = get_certificate_info (6)) do
-  	  {
-  	    certLogin := 1;
-  	    appendProperty (V, 'certLogin', cast (certLogin as varchar));
-	  }
-      }
-    else
-    V := ODS.ODS_API.getFOAFDataArray (foafIRI, sslFOAFCheck, sslLoginCheck);
-    return case when outputMode then params2json (V) else V end;
+    -- FOAF
+    ODS.ODS_API.extractPersonData (V, webid, graph);
+  }
+  else if (webidType = 1)
+  {
+    -- WEBFINGER
+    appendProperty (V, 'mbox', get_certificate_info (10, cert, 0, '', 'emailAddress'));
+	  appendProperty (V, 'name', get_certificate_info (10, cert, 0, '', 'CN'));
   }
-  else if (is_https_ctx ()) -- try webfinger
+  else if (webidType = 2)
   {
-    declare agent any;
-    agent := DB.DBA.FOAF_SSL_WEBFINGER ();
-    if (agent is not null)
+    -- DI
+    ;
+  }
+  else if (webidType = 3)
+  {
+    -- SEARCH
+    ;
+  }
+  else if (webidType = 4)
+  {
+    -- SPONGE
+    ODS.ODS_API.extractPersonData (V, webid, graph);
+  }
+  else if (webidType = 5)
+  {
+    -- LDAP
+    declare i, items any;
+
+  	if (DB.DBA.FOAF_SSL_LDAP_CHECK_INT (webid, items))
+  	{
+    	items := items[1];
+    	for (i := 0; i < length (items); i := i + 2)
       {
-	V := vector ();
-	for (select UC_LOGIN from DB.DBA.WA_USER_CERTS where UC_FINGERPRINT = get_certificate_info (6)) do
-	  {
-	    certLogin := 1;
-	    certLoginEnable := coalesce (UC_LOGIN, 0);
-	    appendProperty (V, 'iri', agent);
-	    appendProperty (V, 'mbox', get_certificate_info (10, null, 0, '', 'emailAddress'));
-	    appendProperty (V, 'name', get_certificate_info (10, null, 0, '', 'CN'));
-  	    appendProperty (V, 'certLogin', cast (certLogin as varchar));
-  	    --appendProperty (V, 'certLoginEnable', certLoginEnable);
-	    return case when outputMode then params2json (V) else V end;
-	  }
+        if (items[i] = 'mail')
+          appendProperty (V, 'mbox', cast (items[i+1][0] as varchar));
+        else if (items[i] = 'cn')
+          appendProperty (V, 'name', cast (items[i+1][0] as varchar));
       }
-    else
-      {
-	foafIRI := ODS..FINGERPOINT_WEBID_GET ();
-	if (foafIRI is not null)
-	  goto try_auth;
       }
   }
-  return case when outputMode then obj2json (null) else null end;
+  if (loginName = '')
+    loginName := DB.DBA.WA_MAKE_NICK2 (get_keyword ('nick', V), get_keyword ('name', V), get_keyword ('firstName', V), get_keyword ('family_name', V));
+
+  if (loginName <> '')
+    appendProperty (V, 'loginName', loginName);
+
+
+  return params2json (V);
 }
 ;
 
@@ -5228,9 +6065,8 @@ create procedure ODS.ODS_API."user.getFacebookData" (
 
   retValue := null;
   if (isnull (fb) and DB.DBA._get_ods_fb_settings (fbOptions))
-  {
     fb := new DB.DBA.Facebook(fbOptions[0], fbOptions[1], http_param (), http_request_header ());
-  }
+
   if (not isnull (fb))
   {
     fbPaths := vector ();
@@ -5239,9 +6075,7 @@ create procedure ODS.ODS_API."user.getFacebookData" (
                       'last_name', 'family_name',
                       'sex', 'gender'
                      );
-    retValue := jsonObject ();
-    retValue := vector_concat (retValue, vector ('api_key', fb.api_key));
-    retValue := vector_concat (retValue, vector ('secret', fb.secret));
+    retValue := vector_concat (jsonObject (), vector ('api_key', fb.api_key, 'secret', fb.secret));
     if (length (fb._user))
     {
       resValue := fb.api_client.users_getInfo(fb._user, fields);
@@ -5255,13 +6089,11 @@ create procedure ODS.ODS_API."user.getFacebookData" (
           tmpPath := '/users_getInfo_response/user/' || get_keyword (V[N], fbPaths, V[N]);
           tmpValue := serialize_to_UTF8_xml (xpath_eval (sprintf ('string(%s)', tmpPath), resValue));
           if (length (tmpValue))
-          {
             retValue := vector_concat (retValue, vector (get_keyword (V[N], fbMaps, V[N]), tmpValue));
           }
         }
       }
     }
-  }
   return case when outputMode then obj2json (retValue) else retValue end;
 }
 ;
@@ -5358,7 +6190,7 @@ create procedure ODS.ODS_API."user.getKnowsData" (
   }
 
 _exit:;
-  exec (sprintf ('SPARQL clear graph <%s>', foafGraph), st, msg, vector (), 0);
+  SPARQL clear graph ?:foafGraph;
   return obj2json (V);
 }
 ;
@@ -5668,6 +6500,39 @@ create procedure ODS.ODS_API."instance.get" (
 }
 ;
 
+--!
+-- \brief Get the id of an ODS app instance.
+--
+-- Each ODS app has a unique numeric id which is required for almost
+-- all operations. This method allows to determine that id from the
+-- app instance's name (App instance names are oftern something like
+-- "foobar's Calendar").
+--
+-- \param instanceName The name of the app instance.
+--
+-- \return An error code as defined in \ref ods_response_format_result_code which in this case
+-- matches the instance id.
+--
+-- \sa \ref ods_instance_id
+--
+-- \b Example:
+-- \verbatim
+-- $ curl -i "http://demo.openlinksw.com/ods/api/instance.get.id?instanceName=Demo%20account%27s%20Briefcase&sid=c198c56e675abd9967b2b264d1119ae2&realm=wa"
+--
+-- HTTP/1.1 200 OK
+-- Server: Virtuoso/05.12.3041 (Solaris) x86_64-sun-solaris2.10-64  VDB
+-- Connection: Keep-Alive
+-- Date: Tue, 01 Dec 2009 12:39:19 GMT
+-- Accept-Ranges: bytes
+-- Content-Type: text/xml; charset="ISO-8859-1"
+-- Content-Length: 57
+--
+-- <result>
+--   <code>6</code>
+--   <message>Success</message>
+-- </result>
+-- \endverbatim
+--/
 create procedure ODS.ODS_API."instance.get.id" (
   in instanceName varchar) __soap_http 'text/xml'
 {
@@ -5746,6 +6611,89 @@ ret:
 }
 ;
 
+create procedure ODS.ODS_API.predicates ()
+{
+  return vector (
+    'webIDVerified'  , vector ('Certificate - Verified',           'boolean',     'boolean',  vector ()),
+    'certExpiration' , vector ('Certificate - Expiration Status',  'boolean',     'boolean',  vector ()),
+    'certSerial'     , vector ('Certificate - Serial Number',      'varchar',     'varchar',  vector ()),
+    'webID'          , vector ('Certificate - WebID',              'varchar',     'varchar',  vector ('class', '_validate_ _webid_')),
+    'certMail'       , vector ('Certificate - Mail',               'varchar',     'varchar',  vector ()),
+    'certSubject'    , vector ('Certificate - Subject',            'varchar',     'varchar',  vector ()),
+    'certIssuer'     , vector ('Certificate - Issuer',             'varchar',     'varchar',  vector ()),
+    'certStartDate'  , vector ('Certificate - Issue Date',         'date',        'date',     vector ('size', '10', 'class', '_validate_ _date_', 'onclick', 'datePopup(\'-FIELD-\')', 'button', '<img id="-FIELD-_select" border="0" src="/oMail/i/pick_calendar.gif" onclick="javascript: datePopup(\'-FIELD-\');" />')),
+    'certEndDate'    , vector ('Certificate - Expiry Date',        'date',        'date',     vector ('size', '10', 'class', '_validate_ _date_', 'onclick', 'datePopup(\'-FIELD-\')', 'button', '<img id="-FIELD-_select" border="0" src="/oMail/i/pick_calendar.gif" onclick="javascript: datePopup(\'-FIELD-\');" />')),
+    'certDigest'     , vector ('Certificate - Fingerprint Digest', 'digest',      'varchar',  vector ('class', '_validate_ _digest_')),
+    'certSparqlASK'  , vector ('Certificate - SPARQL ASK',         'sparql',      'boolean',  vector ())
+  );
+}
+;
+
+create procedure ODS.ODS_API.compares ()
+{
+  return vector (
+    'eq'           , vector ('equal to'                 , vector ('integer', 'date', 'varchar', 'address', 'priority', 'folder', 'boolean', 'sparql', 'digest'), 1),
+    'neq'          , vector ('not equal to'             , vector ('integer', 'date', 'varchar', 'address', 'priority', 'folder', 'boolean', 'sparql', 'digest'), 1),
+    'lt'           , vector ('less than'                , vector ('integer', 'date', 'priority'), 1),
+    'lte'          , vector ('less thanor equal to'     , vector ('integer', 'date', 'priority'), 1),
+    'gt'           , vector ('greater than'             , vector ('integer', 'date', 'priority'), 1),
+    'gte'          , vector ('greater than or equal to' , vector ('integer', 'date', 'priority'), 1),
+    'contains'     , vector ('contains substring'       , vector ('varchar', 'address'), 1),
+    'notContains'  , vector ('does not contain substring', vector ('varchar', 'address'), 1),
+    'startsWith'   , vector ('starts with'              , vector ('varchar', 'address'), 1),
+    'notStartsWith', vector ('does not start with'       , vector ('varchar', 'address'), 1),
+    'endsWith'     , vector ('ends with'                , vector ('varchar', 'address'), 1),
+    'notEndsWith'  , vector ('does not end with'         , vector ('varchar', 'address'), 1),
+    'isNull'       , vector ('is null'                  , vector ('address'), 0),
+    'isNotNull'    , vector ('is not null'              , vector ('address'), 0)
+  );
+}
+;
+
+--!
+-- \brief Mapping of ODS supported comparison commands to SQL expressions.
+--
+-- The returned vector contains a mapping from comparison name (\p eq, \p gt, etc)
+-- to an SQL command which does the actual comparison. The command uses two variables:
+-- - value
+-- - pattern
+--
+-- One example is the \greater \p than command which is encoded as follows:
+-- \verbatim
+--     'gt', '(^{value}^ > ^{pattern}^)'
+-- \endverbatim
+--
+-- This is used by sioc.sql for ACL rule checking only.
+--/
+create procedure ODS.ODS_API.commands ()
+{
+  return vector (
+    'eq'           , '(^{value}^ = ^{pattern}^)',
+    'neq'          , '(^{value}^ <> ^{pattern}^)',
+    'lt'           , '(^{value}^ < ^{pattern}^)',
+    'lte'          , '(^{value}^ <= ^{pattern}^)',
+    'gt'           , '(^{value}^ > ^{pattern}^)',
+    'gte'          , '(^{value}^ >= ^{pattern}^)',
+    'contains'     , '(strstr (ucase (^{value}^), ucase (^{pattern}^)) is not null)',
+    'notContains'  , '(strstr (ucase (^{value}^), ucase (^{pattern}^)) is null)',
+    'startsWith'   , '(starts_with (ucase (^{value}^), ucase (^{pattern}^)))',
+    'notStartsWith', '(not (starts_with (ucase (^{value}^), ucase (^{pattern}^))))',
+    'endsWith'     , '(ends_with (ucase (^{value}^), ucase (^{pattern}^)))',
+    'notEndsWith'  , '(not (ends_with (ucase (^{value}^), ucase (^{pattern}^))))',
+    'isNull'       , '(DB.DBA.is_empty_or_null (^{value}^) = 1)',
+    'isNotNull'    , '(DB.DBA.is_empty_or_null (^{value}^) = 0)'
+    );
+}
+;
+
+-----------------------------------------------------------------------------
+--
+create procedure ODS.ODS_API."filtersData" () __soap_http 'application/json'
+{
+  return obj2json (vector (ODS.ODS_API."predicates" (), ODS.ODS_API."compares" ()));
+}
+;
+
 -- global actions
 
 create procedure ODS.ODS_API."site.search" (in pattern varchar, in options any) __soap_http 'text/xml'
@@ -5771,12 +6719,16 @@ create procedure ODS.ODS_API.error_handler () __soap_http 'text/xml'
 ;
 
 DB.DBA.USER_CREATE ('ODS_API', uuid(), vector ('DISABLED', 1, 'LOGIN_QUALIFIER', 'ODS'));
+DB.DBA.EXEC_STMT ('grant SPARQL_UPDATE to ODS_API', 0);
 DB.DBA.VHOST_REMOVE (lpath=>'/ods/api');
 DB.DBA.VHOST_DEFINE (lpath=>'/ods/api', ppath=>'/SOAP/Http', soap_user=>'ODS_API', opts=>vector ('500_page', 'error_handler'));
 
 grant execute on ODS.ODS_API.error_handler to ODS_API;
 
+grant execute on ODS.ODS_API."iri2proxy" to ODS_API;
+
 grant execute on ODS.ODS_API."qrcode" to ODS_API;
+grant execute on ODS.ODS_API."getDefaultHttps" to ODS_API;
 
 grant execute on ODS.ODS_API."ontology.classes" to ODS_API;
 grant execute on ODS.ODS_API."ontology.classProperties" to ODS_API;
@@ -5795,6 +6747,7 @@ grant execute on ODS.ODS_API."linkedinServer" to ODS_API;
 grant execute on ODS.ODS_API."linkedinVerify" to ODS_API;
 
 grant execute on ODS.ODS_API."user.checkAvalability" to ODS_API;
+grant execute on ODS.ODS_API."user.checkAvailability" to ODS_API;
 grant execute on ODS.ODS_API."user.register" to ODS_API;
 grant execute on ODS.ODS_API."user.authenticate" to ODS_API;
 grant execute on ODS.ODS_API."user.login" to ODS_API;
@@ -5814,6 +6767,10 @@ grant execute on ODS.ODS_API."user.info" to ODS_API;
 grant execute on ODS.ODS_API."user.info.webID" to ODS_API;
 grant execute on ODS.ODS_API."user.certificateUrl" to ODS_API;
 grant execute on ODS.ODS_API."user.search" to ODS_API;
+grant execute on ODS.ODS_API."user.invitation.new" to ODS_API;
+grant execute on ODS.ODS_API."user.invitation.approve" to ODS_API;
+grant execute on ODS.ODS_API."user.invitation.list" to ODS_API;
+grant execute on ODS.ODS_API."user.relation.delete" to ODS_API;
 grant execute on ODS.ODS_API."user.invite" to ODS_API;
 grant execute on ODS.ODS_API."user.invitation" to ODS_API;
 grant execute on ODS.ODS_API."user.invitations.get" to ODS_API;
@@ -5873,6 +6830,7 @@ grant execute on ODS.ODS_API."user.knows.get" to ODS_API;
 grant execute on ODS.ODS_API."user.knows.new" to ODS_API;
 grant execute on ODS.ODS_API."user.knows.edit" to ODS_API;
 grant execute on ODS.ODS_API."user.knows.delete" to ODS_API;
+grant execute on ODS.ODS_API."user.instances.list" to ODS_API;
 grant execute on ODS.ODS_API."user.certificates.list" to ODS_API;
 grant execute on ODS.ODS_API."user.certificates.get" to ODS_API;
 grant execute on ODS.ODS_API."user.certificates.new" to ODS_API;
@@ -5902,6 +6860,7 @@ grant execute on ODS.ODS_API."instance.unfreeze" to ODS_API;
 
 grant execute on ODS.ODS_API."site.search" to ODS_API;
 
+grant execute on ODS.ODS_API."filtersData" to ODS_API;
 
 create procedure __user_password (in uname varchar)
 {
diff --git a/appsrc/ODS-Framework/ods_ubiquity.html b/appsrc/ODS-Framework/ods_ubiquity.html
index 3bab0c3..e51d8f1 100644
--- a/appsrc/ODS-Framework/ods_ubiquity.html
+++ b/appsrc/ODS-Framework/ods_ubiquity.html
@@ -18,7 +18,7 @@
      </p>
     </div>
     <div id="footer">
-      <div id="ft_t">Copyright © 1998-2011 OpenLink Software</div>
+      <div id="ft_t">Copyright © 1998-2012 OpenLink Software</div>
       <div id="ft_b">
         <a href="http://virtuoso.openlinksw.com" title="OpenLink Virtuoso"><img class="powered_by" src="/ods/images/PoweredByVirtuoso.gif" alt="Powered by OpenLink Virtuoso"/></a>
       </div>
diff --git a/appsrc/ODS-Framework/ods_ubiquity.js b/appsrc/ODS-Framework/ods_ubiquity.js
index e5e30bd..6ed0860 100644
--- a/appsrc/ODS-Framework/ods_ubiquity.js
+++ b/appsrc/ODS-Framework/ods_ubiquity.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: ods_ubiquity.js,v 1.23.2.7 2010/09/20 10:15:23 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2008 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/openid.js b/appsrc/ODS-Framework/openid.js
index d2ff19c..77469dd 100644
--- a/appsrc/ODS-Framework/openid.js
+++ b/appsrc/ODS-Framework/openid.js
@@ -3,7 +3,7 @@
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/openid.sql b/appsrc/ODS-Framework/openid.sql
index 5d73996..ed8f546 100644
--- a/appsrc/ODS-Framework/openid.sql
+++ b/appsrc/ODS-Framework/openid.sql
@@ -1,12 +1,12 @@
 --
---  $Id: openid.sql,v 1.17.2.6 2010/09/20 10:15:24 source Exp $
+--  $Id$
 --
 --  OpenID protocol support.
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -62,10 +62,10 @@ create procedure yadis (in uname varchar, in tp varchar := null)
   if (tp not in ('person/', 'organization/'))
     tp := '';
   url := db.dba.wa_link (1, '/dataspace/'||tp||uname);
-  ssl := ODS..getDefaultHttps ();
+  ssl := ODS.ODS_API.getDefaultHttps ();
   if (exists (select 1 from DB..WA_SETTINGS where WS_HTTPS = 1) and ssl is not null)
     srv := 'https://' || ssl || '/openid';
-  else  
+  else
   srv := db.dba.wa_link (1, '/openid');
   for select WAUI_OPENID_URL, WAUI_OPENID_SERVER, WAUI_NICK
     from DB.DBA.WA_USER_INFO, DB.DBA.SYS_USERS where WAUI_U_ID = U_ID and U_NAME = uname
@@ -151,7 +151,7 @@ create procedure server
   cookies_vec := DB.DBA.vsp_ua_get_cookie_vec (lines);
   oid_sid := get_keyword ('openid.sid', cookies_vec);
   ns := get_keyword ('openid.ns', params, 'http://openid.net/signon/1.1');
-  oauth_ns := 'openid.oauth.';	
+  oauth_ns := 'openid.oauth.';
   pos := position (oauth_ns (), params);
   if (pos > 1)
     {
@@ -168,7 +168,7 @@ create procedure server
     ver := 1;
   if (is_https_ctx ())
     op := sprintf ('https://%{WSHost}s/openid');
-  else  
+  else
     op := sprintf ('http://%{WSHost}s/openid');
 
   if ("openid.mode" = 'associate')
@@ -431,7 +431,7 @@ create procedure get_user_details (in gr varchar, in _identity varchar)
 	  if (regexp_match ('http://[^/]+/dataspace/(person|organization)/.+', _identity) is not null)
 	    {
 	      arr1 := sprintf_inverse (_identity, '%s://%s/dataspace/%s/%s', 1);
-	      if (length (arr1) = 4 and length (arr2) = 3 and arr1[0] = arr2[0] and arr1[1] = arr2[1] and 
+	      if (length (arr1) = 4 and length (arr2) = 3 and arr1[0] = arr2[0] and arr1[1] = arr2[1] and
 		  exists (select 1 from DB.DBA.SYS_USERS, DB.DBA.WA_USER_INFO where WAUI_U_ID = U_ID and U_NAME = arr1[3]))
 		goto verified;
 	    }
@@ -510,7 +510,7 @@ create procedure checkid_immediate
   --dbg_obj_print_vars ('checkid_immediate', sid, ver);
   ns := '';
   ns_sign := '';
-  oauthf := ''; 
+  oauthf := '';
   oauth_resp := '';
   if (isstring (ver))
     ver := atoi (ver);
@@ -535,7 +535,7 @@ create procedure checkid_immediate
       if (length (oauth_consumer))
         {
           login := login || sprintf ('&oauth_consumer=%U&oauth_scope=%U', oauth_consumer, oauth_scope);
-        }	  
+        }
       --dbg_obj_print (sprintf ('Location: %s?openid.mode=id_res&openid.user_setup_url=%U\r\n', return_to, login));
       http_header (http_header_get () || sprintf ('Location: %s%sopenid.mode=id_res%s&openid.user_setup_url=%U\r\n',
 	    return_to, delim, ns, login));
@@ -631,11 +631,11 @@ create procedure checkid_immediate
 		  values (assoc_handle, ss_key, ss_key_data, '3DES', dateadd ('hour', 1, now()));
 	    }
 	}
-      -- make OAuth request_token call 
-      if (length (oauth_consumer) > 0)	  
-	tok := OAUTH..hybrid_request_token (sid, oauth_consumer);	  
+      -- make OAuth request_token call
+      if (length (oauth_consumer) > 0)
+	tok := OAUTH..hybrid_request_token (sid, oauth_consumer);
       else
-        tok := null;	
+        tok := null;
 
       rhf := WS.WS.PARSE_URI (return_to);
       if (rhf[4] <> '')
@@ -660,7 +660,7 @@ create procedure checkid_immediate
 	    {
 	  if (is_https_ctx ())
 	    op := sprintf ('https://%{WSHost}s/openid');
-	  else  
+	      else
 	    op := sprintf ('http://%{WSHost}s/openid');
 	    }
 	  nonce := DB.DBA.date_iso8601 (dt_set_tz (curdatetime (0), 0)) || cast (msec_time () as varchar);
@@ -706,7 +706,7 @@ create procedure checkid_immediate
 	      http (sprintf ('oauth.scope:%s\x0A', oauth_scope), ses);
 	      oauth_resp := oauth_resp || sprintf ('&openid.oauth.scope=%U', oauth_scope);
 	    }
-        }	  
+        }
 
       if (user <> 'OpenID')
         set_user_id ('OpenID');
@@ -764,12 +764,12 @@ create procedure checkid_setup
       if (length (oauth_consumer))
         {
           login := login || sprintf ('&oauth_consumer=%U&oauth_scope=%U', oauth_consumer, oauth_scope);
-        }	  
+        }
       http_header (http_header_get () || sprintf ('Location: %s\r\n', login));
       --http_header (http_header_get () || sprintf ('Location: %s%sopenid.mode=cancel\r\n', return_to, delim));
       return '';
     }
-  return checkid_immediate (ver, _identity, assoc_handle, return_to, trust_root, sid, 1, sreg_required, sreg_optional, policy_url, 
+  return checkid_immediate (ver, _identity, assoc_handle, return_to, trust_root, sid, 1, sreg_required, sreg_optional, policy_url,
       oauth_consumer, oauth_scope, op);
 };
 
@@ -813,19 +813,19 @@ create procedure oid_set_sid (in sid varchar, in pars any)
 create procedure oid_get_user_id (in _identity any)
 {
   declare iarr, uname, webid any;
-  declare webid, gr varchar;    
+  declare webid, gr varchar;
   uname := null;
   --dbg_obj_print_vars (_identity);
   if (strchr (_identity, '@') is not null)
-    { 
+    {
       gr := sioc..get_graph ();
-      webid := (SPARQL 
-	       PREFIX owl: <http://www.w3.org/2002/07/owl#> 
-	       PREFIX foaf: <http://xmlns.com/foaf/0.1/>	 
+      webid := (SPARQL
+	       PREFIX owl: <http://www.w3.org/2002/07/owl#>
+	       PREFIX foaf: <http://xmlns.com/foaf/0.1/>
 	       SELECT ?openid WHERE { graph `iri(?:gr)` { ?webid owl:sameAs `iri(?:_identity)` ; foaf:openid ?openid . }});
       if (webid is not null)
-        _identity := webid;	
-    }	 
+        _identity := webid;
+    }
   if (regexp_match ('http://[^/]+/dataspace/(person|organization)/.+', _identity) is not null)
     {
       iarr := sprintf_inverse (_identity, 'http://%s/dataspace/%s/%s', 1);
diff --git a/appsrc/ODS-Framework/openid_helper.vsp b/appsrc/ODS-Framework/openid_helper.vsp
index 602ec02..c05bbee 100644
--- a/appsrc/ODS-Framework/openid_helper.vsp
+++ b/appsrc/ODS-Framework/openid_helper.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: openid_helper.vsp,v 1.3.2.1 2010/09/20 10:15:24 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/openid_login.vspx b/appsrc/ODS-Framework/openid_login.vspx
index 8c9b43b..c6a3456 100644
--- a/appsrc/ODS-Framework/openid_login.vspx
+++ b/appsrc/ODS-Framework/openid_login.vspx
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: openid_login.vspx,v 1.8.2.8 2011/02/03 10:26:15 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -53,6 +53,7 @@
   <v:on-init><![CDATA[
     declare cookie_vec, sid any;
     declare pos, tmp any;
+    declare real_uid varchar;
 
     set http_charset='UTF-8';
 
@@ -60,6 +61,14 @@
       {
         signal ('42000', 'Unknown identity.');
       }
+    if (self._identity = 'http://specs.openid.net/auth/2.0/identifier_select' and get_keyword ('username', self.vc_event.ve_params) is not null)  
+      {
+        for select U_NAME, WAUI_IS_ORG from SYS_USERS join WA_USER_INFO on (WAUI_U_ID = U_ID) where WAUI_NICK = self._uname do
+          {
+	    self._uname := U_NAME;	
+	    self._identity := db.dba.wa_link (1, '/dataspace/' || case WAUI_IS_ORG when 1 then 'organization/' else 'person/' end || U_NAME);  
+	  }  
+      }
     if (self._uname is null)
       {
         tmp := self._identity;
@@ -68,11 +77,12 @@
         pos := strrchr (tmp, '/');
         if (pos is not null)
 	  {
-            declare real_uid varchar;
 	    self._uname := subseq (tmp, pos + 1);
 	    real_uid := (select U_NAME from SYS_USERS join WA_USER_INFO on (WAUI_U_ID = U_ID) where WAUI_NICK = self._uname);
 	    if (length (real_uid))
 	      self._uname := real_uid;
+            else 
+	      self._uname := null;
 	  }
 	else if (strchr (tmp, '@') is not null)  
 	  {
@@ -102,14 +112,12 @@
 	  }
     if (get_keyword ('sid', self.vc_event.ve_params) is null and is_https_ctx ())
           {
-	declare gr, stat, msg varchar;
+	declare gr, stat, msg, webid, vtype varchar;
 	declare rc int;
 	declare vec any;
-	gr := null;
-	rc := sioc.DBA.foaf_check_ssl_int (null, gr);
-	if (not rc)
-	gr := FOAF_SSL_WEBFINGER (null, 1);
-	if (gr is not null)
+	gr := 'http:' || uuid ();
+	rc := WEBID_AUTH_GEN_2 (null, 0, null, 1, 0, webid, gr, 0, vtype);
+	if (rc)
 	  {
 	    vec := OPENID.DBA.get_user_details (gr, self._identity);
 	    if (vec is not null)
@@ -157,7 +165,12 @@
               <div id="login_form">
                 <form> <!-- just to keep validator happy on this mockup -->
 		  <label for="login_frm_username">User ID</label>
-		  <v:text name="username" type="hidden" value="--self._uname" xhtml_id="login_frm_username" /><?V self._uname ?><br />
+		  <?vsp if (self._identity <> 'http://specs.openid.net/auth/2.0/identifier_select') { ?>
+		  <input type="hidden" name="username" value="<?V self._uname ?>" id="login_frm_username" /><?V self._uname ?><?vsp 
+		  	} else { 
+		  ?><v:text name="username" value="--self._uname" xhtml_id="login_frm_username" />
+		  <?vsp } ?>
+		  <br />
 		  <label for="password">Password</label>
 		  <v:text name="password" value="" xhtml_id="login_frm_password" type="password" />
 		  <div class="login_frm_button_row">
@@ -280,7 +293,7 @@
           <a href="/ods/privacy.html">Privacy</a> |
           <a href="/ods/rabuse.vspx">Report Abuse</a>
           <div class="copyright">
-            Copyright © 1998-2011 OpenLink Software
+            Copyright © 1998-2012 OpenLink Software
           </div>
         </div> <!-- FT_R -->
       </div>
diff --git a/appsrc/ODS-Framework/pass_recovery.vspx b/appsrc/ODS-Framework/pass_recovery.vspx
index 165d86a..9138953 100644
--- a/appsrc/ODS-Framework/pass_recovery.vspx
+++ b/appsrc/ODS-Framework/pass_recovery.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: pass_recovery.vspx,v 1.5.2.1 2010/09/20 10:15:24 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/ping_log.vspx b/appsrc/ODS-Framework/ping_log.vspx
index b32bf60..1b96c0c 100644
--- a/appsrc/ODS-Framework/ping_log.vspx
+++ b/appsrc/ODS-Framework/ping_log.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: ping_log.vspx,v 1.2.2.1 2010/09/20 10:15:24 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/ping_svc.vspx b/appsrc/ODS-Framework/ping_svc.vspx
index dff8f92..7d492c8 100644
--- a/appsrc/ODS-Framework/ping_svc.vspx
+++ b/appsrc/ODS-Framework/ping_svc.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: ping_svc.vspx,v 1.3.2.4 2011/03/08 13:28:15 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/popup_browser.vspx b/appsrc/ODS-Framework/popup_browser.vspx
index 3eb42f0..2c57f92 100644
--- a/appsrc/ODS-Framework/popup_browser.vspx
+++ b/appsrc/ODS-Framework/popup_browser.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: popup_browser.vspx,v 1.5.2.1 2010/09/20 10:15:24 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/privacy.html b/appsrc/ODS-Framework/privacy.html
index c555b0b..51c3877 100644
--- a/appsrc/ODS-Framework/privacy.html
+++ b/appsrc/ODS-Framework/privacy.html
@@ -1,12 +1,12 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
  -
- -  $Id: privacy.html,v 1.6.2.1 2010/09/20 10:15:24 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/provinces.sql b/appsrc/ODS-Framework/provinces.sql
index 51128ab..87e813a 100644
--- a/appsrc/ODS-Framework/provinces.sql
+++ b/appsrc/ODS-Framework/provinces.sql
@@ -1,5 +1,5 @@
 --
---  $Id: provinces.sql,v 1.4.2.2 2010/12/10 16:04:14 source Exp $
+--  $Id$
 --
 --  Provinces list
 
@@ -7,7 +7,7 @@
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/rabuse.vspx b/appsrc/ODS-Framework/rabuse.vspx
index b136f10..950c52e 100644
--- a/appsrc/ODS-Framework/rabuse.vspx
+++ b/appsrc/ODS-Framework/rabuse.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rabuse.vspx,v 1.4.2.1 2010/09/20 10:15:25 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/rdf_storage.vspx b/appsrc/ODS-Framework/rdf_storage.vspx
index 35bd121..989cb18 100644
--- a/appsrc/ODS-Framework/rdf_storage.vspx
+++ b/appsrc/ODS-Framework/rdf_storage.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: rdf_storage.vspx,v 1.5.2.1 2010/09/20 10:15:25 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/rdfb.css b/appsrc/ODS-Framework/rdfb.css
index 3478cd9..c980ad5 100644
--- a/appsrc/ODS-Framework/rdfb.css
+++ b/appsrc/ODS-Framework/rdfb.css
@@ -3,7 +3,7 @@
 *
 *  This file is part of the OpenLink Software Ajax Toolkit (OAT) project.
 *
-*  Copyright (C) 2005-2007 OpenLink Software
+*  Copyright (C) 2005-2012 OpenLink Software
 *
 *  See LICENSE file for details.
 */
diff --git a/appsrc/ODS-Framework/rdfb.js b/appsrc/ODS-Framework/rdfb.js
index d88e949..9934fb4 100644
--- a/appsrc/ODS-Framework/rdfb.js
+++ b/appsrc/ODS-Framework/rdfb.js
@@ -1,9 +1,9 @@
 /*
- *  $Id: rdfb.js,v 1.13.2.5 2010/10/13 12:16:48 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Ajax Toolkit (OAT) project.
  *
- *  Copyright (C) 2005-2007 OpenLink Software
+ *  Copyright (C) 2005-2012 OpenLink Software
  *
  *  See LICENSE file for details.
  */
@@ -289,7 +289,7 @@ OAT.Dereference = {
 		IO.doLoadWQX(obj.load,true);
 	} else {
 		$('about_oat_version').innerHTML = OAT.Preferences.version;
-		var ver = "$Id: rdfb.js,v 1.13.2.5 2010/10/13 12:16:48 source Exp $";
+		var ver = "$Id$";
 		var r = ver.match(/main\.js,v ([^ ]+)/);
 		$('about_version').innerHTML = r[1];
 		dialogs.connection.show();
diff --git a/appsrc/ODS-Framework/register.js b/appsrc/ODS-Framework/register.js
index 2b5ef5c..84fa7c0 100644
--- a/appsrc/ODS-Framework/register.js
+++ b/appsrc/ODS-Framework/register.js
@@ -3,7 +3,7 @@
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2010 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -130,6 +130,8 @@ function rfRowInput(tbl, label, fName, fOptions) {
   fld.type = 'text';
   fld.id = fName;
   fld.name = fld.id;
+  if (fld.value == 'undefined')
+    fld.value = '';
   td.appendChild(fld);
 
   tbl.appendChild(tr);
@@ -216,7 +218,7 @@ function rfInit() {
     rfTab.go(1);
     if (typeof (uriParams['openid.signed']) != 'undefined' && uriParams['openid.signed'] != '') {
       var x = function (params, param, data, property) {
-        if (params[param] && params[param].length != 0)
+          if (params[param] && params[param].length != 0 &&  params[param] != 'undefined')
           data[property] = params[param];
       }
       var data = {};
@@ -232,6 +234,7 @@ function rfInit() {
         x(uriParams, 'openid.'+ns+'.value.email', data, 'mbox');
         x(uriParams, 'openid.'+ns+'.value.firstname', data, 'firstName');
         x(uriParams, 'openid.'+ns+'.value.fname', data, 'name');
+          x(uriParams, 'openid.'+ns+'.value.fullname', data, 'name');
         x(uriParams, 'openid.'+ns+'.value.language', data, 'language');
         x(uriParams, 'openid.'+ns+'.value.lastname', data, 'family_name');
         x(uriParams, 'openid.'+ns+'.value.fname', data, 'nick');
@@ -255,8 +258,10 @@ function rfInit() {
       if (!data['nick'] || !data['mbox']) {
         hiddenCreate('oid-data', null, OAT.JSON.stringify(data));
         var tbl = $('rf_table_1');
-          addProfileRowInput(tbl, 'Login Name', 'rf_uid_1', {value: data['nick'], width: '150px'});
-          addProfileRowInput(tbl, 'E-Mail', 'rf_email_1', {value: data['mbox'], width: '300px'});
+          rfRowInput(tbl, 'Login Name', 'rf_uid_1', {value: data['nick'], width: '150px'});
+          rfRowInput(tbl, 'E-Mail', 'rf_email_1', {value: data['mbox'], width: '300px'});
+          if (data['name'])
+            rfRowValue(tbl, 'Full Name', data['name']);
           rfCheckUpdate(1);
       } else {
         var q = 'mode=1&data=' + encodeURIComponent(OAT.JSON.stringify(data));
@@ -310,7 +315,7 @@ function rfInit() {
             rfRowInput(tbl, 'Login Name', 'rf_uid_3', {value: rfSslData.loginName, width: '150px'});
 
           if (rfSslData.mbox && rfSslData.certLogin)
-            rfRowValue(tbl, 'E-Mail', sslData.mbox);
+            rfRowValue(tbl, 'E-Mail', rfSslData.mbox);
 
           if (!rfSslData.certLogin)
             rfRowInput(tbl, 'E-Mail', 'rf_email_3', {value: rfSslData.mbox, width: '300px'});
@@ -399,6 +404,7 @@ function rfCheckUpdate(idx, mode) {
 
 function rfStart() {
   rfAjaxs++;
+  $('rf_check').disabled = true;
   $('rf_signup').disabled = true;
 	OAT.Dom.hide('rf_close');
 	OAT.Dom.show('rf_throbber');
@@ -409,6 +415,7 @@ function rfEnd() {
   if (rfAjaxs == 0) {
     OAT.Dom.hide('rf_throbber');
   	OAT.Dom.show('rf_close');
+    $('rf_check').disabled = false;
     $('rf_signup').disabled = false;
   }
 }
@@ -520,7 +527,7 @@ function rfOpenIdAuthenticate(prefix) {
     var xml = OAT.Xml.createXmlDoc(data);
     var error = OAT.Xml.xpath (xml, '//error_response', {});
     if (error.length)
-      showError('Invalied OpenID Server');
+      showError('Invalid OpenID Server');
 
     var oidServer = OAT.Xml.textValue (OAT.Xml.xpath (xml, '/openIdServer_response/server', {})[0]);
     if (!oidServer || !oidServer.length)
diff --git a/appsrc/ODS-Framework/register.vspx b/appsrc/ODS-Framework/register.vspx
index 4bac869..5991413 100644
--- a/appsrc/ODS-Framework/register.vspx
+++ b/appsrc/ODS-Framework/register.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: register.vspx,v 1.6.2.3 2010/09/22 13:55:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/registration_xml.sql b/appsrc/ODS-Framework/registration_xml.sql
index bcd40e5..ef9c3e6 100644
--- a/appsrc/ODS-Framework/registration_xml.sql
+++ b/appsrc/ODS-Framework/registration_xml.sql
@@ -1,10 +1,10 @@
 --
---  $Id: registration_xml.sql,v 1.3.2.1 2010/09/20 10:15:25 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -27,7 +27,7 @@ UPDATE WA_SETTINGS SET WS_REGISTRATION_XML = xtree_doc('
       <field stored="none">
         <label for="reguid">Login Name<div style="font-weight: normal; display:inline; color:red;"> *</div></label>
         <v:text xhtml_readonly="readonly" error-glyph="?" xhtml_id="reguid" value="--self.u_name">
-          <v:validator test="length" min="1" max="20" message="Login name cannot be empty or longer then 20 chars"/>
+          <v:validator test="length" min="1" max="20" message="Login name cannot be empty or longer than 20 chars"/>
         </v:text>
       </field>
       <field id="TITLE" stored="user_options">
diff --git a/appsrc/ODS-Framework/related_apps.vspx b/appsrc/ODS-Framework/related_apps.vspx
index 52a42fd..07bef71 100644
--- a/appsrc/ODS-Framework/related_apps.vspx
+++ b/appsrc/ODS-Framework/related_apps.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: related_apps.vspx,v 1.1.2.2 2010/11/11 12:38:18 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/scot.sql b/appsrc/ODS-Framework/scot.sql
index 8354b3d..4acbd6b 100644
--- a/appsrc/ODS-Framework/scot.sql
+++ b/appsrc/ODS-Framework/scot.sql
@@ -1,14 +1,14 @@
 --
 --  scot.sql
 --
---  $Id: scot.sql,v 1.7.2.2 2010/09/20 10:15:25 source Exp $
+--  $Id$
 --
 --  Procedures to support the SCOT Ontology RDF data in ODS.
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/search.vspx b/appsrc/ODS-Framework/search.vspx
index 58146a7..19bd952 100644
--- a/appsrc/ODS-Framework/search.vspx
+++ b/appsrc/ODS-Framework/search.vspx
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: search.vspx,v 1.28.2.7 2010/10/13 12:16:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -1675,7 +1675,7 @@ if (self.on_type = 'discussion' or self.on_type = 'nntpf')
                 end) ?></SampleSearch>
   <Developer>OpenLink Software</Developer>
   <Contact>OpenLink Software</Contact>
-  <Attribution>Copyright OpenLink Software</Attribution>
+  <Attribution>Copyright (C) 1998-2012 OpenLink Software</Attribution>
   <SyndicationRight>open</SyndicationRight>
   <AdultContent>false</AdultContent>
 </OpenSearchDescription><?vsp
diff --git a/appsrc/ODS-Framework/search_ajax.vsp b/appsrc/ODS-Framework/search_ajax.vsp
index 25c5875..a230386 100644
--- a/appsrc/ODS-Framework/search_ajax.vsp
+++ b/appsrc/ODS-Framework/search_ajax.vsp
@@ -1,13 +1,13 @@
 <?vsp
 --
---   $Id: search_ajax.vsp,v 1.5.2.1 2010/09/20 10:15:25 source Exp $
+--   $Id$
 --
 --   AJAX Handler for the google map control
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/security.vspx b/appsrc/ODS-Framework/security.vspx
index b5cbc48..25b0b7c 100644
--- a/appsrc/ODS-Framework/security.vspx
+++ b/appsrc/ODS-Framework/security.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: security.vspx,v 1.4.2.1 2010/09/20 10:15:25 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/semping.sql b/appsrc/ODS-Framework/semping.sql
index ccb9c5d..91c08b5 100644
--- a/appsrc/ODS-Framework/semping.sql
+++ b/appsrc/ODS-Framework/semping.sql
@@ -49,7 +49,7 @@ create trigger PING_RULES_I after insert on PING_RULES referencing new as N
   declare ep varchar;
   if (0 = length (N.PR_GRAPH))
     return;
-  ep := sprintf ('http://%s/semping', sioc..get_cname ());
+  ep := sprintf ('http://%s/semping/rest', sioc..get_cname ());
   sparql insert into graph iri(?:N.PR_GRAPH) { `iri(?:N.PR_IRI)` <http://purl.org/net/pingback/to> `iri(?:ep)` . };
 }
 ;
@@ -59,7 +59,7 @@ create trigger PING_RULES_U after update on PING_RULES referencing old as O, new
   declare ep varchar;
   if (0 = length (N.PR_GRAPH))
     return;
-  ep := sprintf ('http://%s/semping', sioc..get_cname ());
+  ep := sprintf ('http://%s/semping/rest', sioc..get_cname ());
   sparql delete from graph iri(?:O.PR_GRAPH) { `iri(?:O.PR_IRI)` <http://purl.org/net/pingback/to> `iri(?:ep)` . };
   sparql insert into graph iri(?:N.PR_GRAPH) { `iri(?:N.PR_IRI)` <http://purl.org/net/pingback/to> `iri(?:ep)` . };
 }
@@ -70,7 +70,7 @@ create trigger PING_RULES_D after delete on PING_RULES referencing old as O
   declare ep varchar;
   if (0 = length (O.PR_GRAPH))
     return;
-  ep := sprintf ('http://%s/semping', sioc..get_cname ());
+  ep := sprintf ('http://%s/semping/rest', sioc..get_cname ());
   sparql delete from graph iri(?:O.PR_GRAPH) { `iri(?:O.PR_IRI)` <http://purl.org/net/pingback/to> `iri(?:ep)` . };
 }
 ;
@@ -105,13 +105,13 @@ create procedure CLI_PING_SRV (in src varchar, in tgt varchar)
   url := WS.WS.VFS_URI_COMPOSE (hf);
   sparql load ?:url into graph ?:gr;
   pserv := (sparql prefix pingback: <http://purl.org/net/pingback/> select ?ps where { graph ?:gr { ?:tgt pingback:service ?ps }});
-  proto := 'REST';  
+  proto := 'RPC';
   if (pserv is null)
     {
       pserv := (sparql prefix pingback: <http://purl.org/net/pingback/> select ?ps where { graph ?:gr { ?:tgt pingback:to ?ps }});
-      proto := 'RPC';  
+      proto := 'REST';
     }
-  sparql clear ?:gr;  
+  sparql clear graph ?:gr;
   update CLI_QUEUE set CQ_SERVER = pserv, CQ_PROTO = proto, CQ_STATE = 1 where CQ_SOURCE = src and CQ_TARGET = tgt;
   commit work;
   if (pserv is not null)
@@ -169,8 +169,27 @@ DB.DBA.VHOST_DEFINE ( lhost=>'*ini*', vhost=>'*ini*', lpath=>'/semping/rest', pp
     );
     
 
-create procedure "semping-rest" (in source varchar, in target varchar) returns varchar __SOAP_HTTP 'text/plain'
+create procedure "semping-rest" (in source varchar := null, in target varchar := null) returns varchar __SOAP_HTTP 'text/plain'
 {
+  if (source is null or target is null)
+    {
+      http_header ('Content-Type: text/html\r\n');
+      http (
+      '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
+      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" xmlns:pingback="http://purl.org/net/pingback/">
+      <head> <title>Pingback Service</title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> </head>
+      <body typeof="pingback:Container">
+      <form method="post" action="">
+      <p>source: <input type="text" property="pingback:source" name="source" /></p>
+      <p>target: <input type="text" property="pingback:target" name="target" /></p>
+      <p>comment: <input maxlength="256" type="text" name="comment" /></p>
+      <p><input type="submit" name="submit" value="Send" /></p>
+      </form>
+      </body>
+      </html>'
+      );
+      return '';
+    }
   return "pingback.ping" (source, target);
 }
 ;
@@ -187,8 +206,8 @@ create procedure "pingback.ping" (in source varchar, in target varchar)
       signal ('42000', 'Access denied');
     }
 
-  -- dbg_obj_print ('------------------------------------');
-  -- dbg_obj_print_vars (source, target);
+  dbg_obj_print ('------------------------------------');
+  dbg_obj_print_vars (source, target);
   set_user_id ('dba');
 
   srcgr := 'urn:temp.semping.src:' || uuid ();
@@ -219,7 +238,7 @@ create procedure "pingback.ping" (in source varchar, in target varchar)
     }
   mail := (sparql prefix foaf: <http://xmlns.com/foaf/0.1/> select ?mbox where { graph `iri(?:tgtgr)` { `iri(?:target)` foaf:mbox ?mbox . }}); 
 
-  -- dbg_obj_print_vars (pred, mail);
+  dbg_obj_print_vars (pred, mail);
   sparql clear graph iri(?:srcgr);
   sparql clear graph iri(?:tgtgr);
 
@@ -240,6 +259,7 @@ create procedure "pingback.ping" (in source varchar, in target varchar)
   aq := async_queue (1);
   aq_request (aq, 'SEMPING.DBA.CLI_NOTIFY', vector ());
 
+  http_status_set (201);
   return 'Success';
 }
 ;
@@ -284,7 +304,7 @@ again:
       if (PR_FLAG = 1)
 	{
           sparql insert into graph iri(?:PR_GRAPH) { `iri(?:tgt)` `iri(?:prop)` `iri(?:src)` };	
-	  insert into DB.DBA.WA_USER_RELATED_RES (WUR_U_ID, WUR_P_IRI, WUR_SEEALSO_IRI) values (PR_U_ID, prop, src);
+	  insert soft DB.DBA.WA_USER_RELATED_RES (WUR_U_ID, WUR_P_IRI, WUR_SEEALSO_IRI) values (PR_U_ID, prop, src);
 	  commit work;
 	}
     }
diff --git a/appsrc/ODS-Framework/semping_app.vspx b/appsrc/ODS-Framework/semping_app.vspx
index b7dc4f9..0429c30 100644
--- a/appsrc/ODS-Framework/semping_app.vspx
+++ b/appsrc/ODS-Framework/semping_app.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: semping_app.vspx,v 1.1.4.6 2011/03/08 13:28:16 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/semping_log.vspx b/appsrc/ODS-Framework/semping_log.vspx
index f36002f..783e5ee 100644
--- a/appsrc/ODS-Framework/semping_log.vspx
+++ b/appsrc/ODS-Framework/semping_log.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: semping_log.vspx,v 1.1.4.3 2010/09/20 10:15:26 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/server.vspx b/appsrc/ODS-Framework/server.vspx
index ff8a823..a2e1f8f 100644
--- a/appsrc/ODS-Framework/server.vspx
+++ b/appsrc/ODS-Framework/server.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: server.vspx,v 1.5.2.1 2010/09/20 10:15:26 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/services.vspx b/appsrc/ODS-Framework/services.vspx
index 23fd767..ef1c908 100644
--- a/appsrc/ODS-Framework/services.vspx
+++ b/appsrc/ODS-Framework/services.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: services.vspx,v 1.9.2.4 2010/11/11 12:38:18 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -454,8 +454,7 @@
                   <v:after-data-bind>
                     <![CDATA[
                       control.ufl_value := '<img src="images/icons/group_16.png" border="0" alt="Members (application)" title="Members (application)"/> Members';
-		      if ((control.vc_parent as vspx_row_template).te_rowset[7] = 1 or
-                                    (control.vc_parent as vspx_row_template).te_rowset[6] in ('oMail', 'IM'))
+                                if ((control.vc_parent as vspx_row_template).te_rowset[7] = 1)
 		        control.vc_enabled := 0;
                     ]]>
                   </v:after-data-bind>
diff --git a/appsrc/ODS-Framework/settings.vspx b/appsrc/ODS-Framework/settings.vspx
index 8aed575..0d063a8 100644
--- a/appsrc/ODS-Framework/settings.vspx
+++ b/appsrc/ODS-Framework/settings.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: settings.vspx,v 1.4.2.1 2010/09/20 10:15:26 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/sfoaf.xml b/appsrc/ODS-Framework/sfoaf.xml
index fc50daa..63c1bab 100644
--- a/appsrc/ODS-Framework/sfoaf.xml
+++ b/appsrc/ODS-Framework/sfoaf.xml
@@ -1,12 +1,12 @@
 <?xml version ='1.0' encoding='UTF-8'?>
 <!--
  -
- -  $Id: sfoaf.xml,v 1.3.2.1 2010/09/20 10:15:26 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/sfront.vspx b/appsrc/ODS-Framework/sfront.vspx
index 53ba84a..b10a17a 100644
--- a/appsrc/ODS-Framework/sfront.vspx
+++ b/appsrc/ODS-Framework/sfront.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: sfront.vspx,v 1.6.2.1 2010/09/20 10:15:26 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/sioc.sql b/appsrc/ODS-Framework/sioc.sql
index 525622a..b867575 100644
--- a/appsrc/ODS-Framework/sioc.sql
+++ b/appsrc/ODS-Framework/sioc.sql
@@ -1,14 +1,14 @@
 --
 --  sioc.sql
 --
---  $Id: sioc.sql,v 1.79.2.53 2011/08/01 14:14:21 source Exp $
+--  $Id$
 --
 --  Procedures to support the SIOC Ontology RDF data in ODS.
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -41,7 +41,8 @@ create procedure get_graph ()
   return sprintf ('http://%s%s', get_cname (), get_base_path ());
 };
 
-create procedure get_graph_ext (in access_mode integer)
+create procedure get_graph_ext (
+  in access_mode integer)
 {
   declare graph varchar;
 
@@ -53,32 +54,18 @@ create procedure get_graph_ext (in access_mode integer)
 };
 
 create procedure get_graph_new (
-  in instance_id integer := null,
   in access_mode integer := null,
   in object_iri varchar := null)
 {
-  declare arr any;
-  declare exit handler for not found { return null; };
-
-  if (isnull (access_mode))
-    access_mode := coalesce((select WAI_IS_PUBLIC from DB.DBA.WA_INSTANCE where WAI_ID = instance_id), 0);
-
-  if (access_mode = 0)
-    return null;
+  declare V any;
 
   if (access_mode = 1)
     return get_graph ();
 
-  if (access_mode = 2)
-  {
-    if (isnull (object_iri))
-      object_iri := get_graph ();
-    arr := sprintf_inverse (object_iri, 'http://%s/dataspace/%s', 1);
-    if (length (arr) <> 2)
-      return null;
-    return sprintf ('http://%s/dataspace/protected/%s',arr[0],arr[1]);
-  }
-  return null;
+  V := sprintf_inverse (object_iri, 'http://%s/dataspace/%s', 1);
+  if (length (V) <> 2)
+    return null;
+  return sprintf ('http://%s/dataspace/protected/%s', V[0], V[1]);
 };
 
 create procedure get_ods_link ()
@@ -224,11 +211,26 @@ create procedure opl_iri (in s varchar)
 };
 
 
+create procedure oplmail_iri (in s varchar)
+{
+  return concat ('http://www.openlinksw.com/schemas/mail#', s);
+};
+
+create procedure oplflt_iri (in s varchar)
+{
+  return concat ('http://www.openlinksw.com/schemas/acl/filter#', s);
+};
+
 create procedure cert_iri (in s varchar)
 {
   return concat ('http://www.w3.org/ns/auth/cert#', s);
 };
 
+create procedure xsd_iri (in s varchar)
+{
+  return concat ('http://www.w3.org/2001/XMLSchema#', s);
+};
+
 create procedure rev_iri (in s varchar)
 {
   return concat ('http://purl.org/stuff/rev#', s);
@@ -737,7 +739,7 @@ create procedure sioc_user (in graph_iri varchar, in iri varchar, in u_name varc
   --!!! ACL   }
 
   DB.DBA.ODS_QUAD_URI (graph_iri, iri, sioc_iri ('account_of'), person_iri);
-  DB.DBA.ODS_QUAD_URI (graph_iri, person_iri, foaf_iri ('holdsAccount'), iri);
+  DB.DBA.ODS_QUAD_URI (graph_iri, person_iri, foaf_iri ('account'), iri);
   -- OpenID (new)
   DB.DBA.ODS_QUAD_URI (graph_iri, person_iri, foaf_iri ('openid'), link);
 
@@ -820,11 +822,11 @@ create procedure sioc_user_cert (in graph_iri varchar, in person_iri varchar, in
       modulus := info[2];
       exponent := info[1];
       crt_iri := replace (person_iri, '#this', sprintf ('#cert%d', cert_id));
-      DB.DBA.ODS_QUAD_URI (graph_iri, crt_iri, cert_iri ('identity'), person_iri);
-      DB.DBA.ODS_QUAD_URI (graph_iri, crt_iri, rdf_iri ('type'), rsa_iri ('RSAPublicKey'));
+      DB.DBA.ODS_QUAD_URI (graph_iri, person_iri, cert_iri ('key'), crt_iri);
+      DB.DBA.ODS_QUAD_URI (graph_iri, crt_iri, rdf_iri ('type'), cert_iri ('RSAPublicKey'));
 
-      DB.DBA.ODS_QUAD_URI_L_TYPED (graph_iri,crt_iri, rsa_iri ('modulus'), bin2hex (modulus), cert_iri ('hex'), null);
-      DB.DBA.ODS_QUAD_URI_L_TYPED (graph_iri,crt_iri, rsa_iri ('public_exponent'), cast (exponent as varchar), cert_iri ('int'), null);
+      DB.DBA.ODS_QUAD_URI_L_TYPED (graph_iri,crt_iri, cert_iri ('modulus'), bin2hex (modulus), xsd_iri ('hexBinary'), null);
+      DB.DBA.ODS_QUAD_URI_L_TYPED (graph_iri,crt_iri, cert_iri ('exponent'), cast (exponent as varchar), xsd_iri ('int'), null);
     }
   return;
 }
@@ -1108,26 +1110,6 @@ create procedure sioc_user_info (
   if (protected is not null)
     DB.DBA.ODS_QUAD_URI (public_graph_iri, iri, rdfs_iri ('seeAlso'), protected);
 
-  -- disabled, see above function
-  if (0 and length (cert))
-	{
-	  declare info, modulus, exponent any;
-
-	  info := get_certificate_info (9, cast (cert as varchar), 0);
-	  if (info is not null and isarray (info) and cast (info[0] as varchar) = 'RSAPublicKey')
-	    {
-    	  DB.DBA.ODS_QUAD_URI (public_graph_iri, crt_iri, cert_iri ('identity'), iri);
-	      modulus := info[2];
-	      exponent := info[1];
-    	  DB.DBA.ODS_QUAD_URI (public_graph_iri, crt_iri, rdf_iri ('type'), rsa_iri ('RSAPublicKey'));
-    	  DB.DBA.ODS_QUAD_URI_L_TYPED (public_graph_iri, crt_iri, rsa_iri ('modulus'), bin2hex (modulus), cert_iri ('hex'), null);
-    	  DB.DBA.ODS_QUAD_URI_L_TYPED (public_graph_iri, crt_iri, rsa_iri ('public_exponent'), cast (exponent as varchar), cert_iri ('int'), null);
-    	  --DB.DBA.ODS_QUAD_URI (graph_iri, crt_iri, rsa_iri ('modulus'), crt_mod);
-    	  --DB.DBA.ODS_QUAD_URI (graph_iri, crt_iri, rsa_iri ('public_exponent'), crt_exp);
-    	  --DB.DBA.ODS_QUAD_URI_L (graph_iri, crt_mod, cert_iri ('hex'), bin2hex (modulus));
-    	  --DB.DBA.ODS_QUAD_URI_L (graph_iri, crt_exp, cert_iri ('decimal'), cast (exponent as varchar));
-	    }
-	}
   -- contact services
   SIOC..ods_object_services_attach (public_graph_iri, iri, 'user');
 };
@@ -1266,7 +1248,7 @@ create procedure sioc_user_offerlist (in user_id integer, in ol_id integer, in o
     sioc_log_message (__SQL_MESSAGE);
     return;
   };
-  user_iri := user_iri (user_id);
+  user_iri := person_iri (user_iri (user_id));
   user_name := (select U_NAME from DB.DBA.SYS_USERS where U_ID = user_id);
   graph_iri := sioc_user_graph (user_name, ol_flag);
   if (isnull (graph_iri))
@@ -1347,7 +1329,7 @@ create procedure sioc_user_likes (in user_id integer, in l_id integer, in l_flag
     sioc_log_message (__SQL_MESSAGE);
     return;
   };
-  user_iri := user_iri (user_id);
+  user_iri := person_iri (user_iri (user_id));
   user_name := (select U_NAME from DB.DBA.SYS_USERS where U_ID = user_id);
   graph_iri := sioc_user_graph (user_name, l_flag);
   if (isnull (graph_iri))
@@ -1409,7 +1391,7 @@ create procedure sioc_user_knows (in user_id integer, in k_id integer, in k_flag
     sioc_log_message (__SQL_MESSAGE);
     return;
   };
-  user_iri := user_iri (user_id);
+  user_iri := person_iri (user_iri (user_id));
   user_name := (select U_NAME from DB.DBA.SYS_USERS where U_ID = user_id);
   graph_iri := sioc_user_graph (user_name, k_flag);
   if (isnull (graph_iri))
@@ -1428,7 +1410,7 @@ create procedure sioc_user_knows_delete (in user_id integer, in k_id integer, in
     sioc_log_message (__SQL_MESSAGE);
     return;
   };
-  user_iri := user_iri (user_id);
+  user_iri := person_iri (user_iri (user_id));
   user_name := (select U_NAME from DB.DBA.SYS_USERS where U_ID = user_id);
   graph_iri := sioc_user_graph (user_name, k_flag);
   if (isnull (graph_iri))
@@ -1448,7 +1430,7 @@ create procedure sioc_user_favorite (in user_id integer, in f_id integer, in f_f
     sioc_log_message (__SQL_MESSAGE);
     return;
   };
-  user_iri := user_iri (user_id);
+  user_iri := person_iri (user_iri (user_id));
   user_name := (select U_NAME from DB.DBA.SYS_USERS where U_ID = user_id);
 
   forum_name := forum_name (user_name, 'FavoriteThings');
@@ -1601,7 +1583,7 @@ create procedure sioc_user_account (in graph_iri varchar, in iri varchar, in nam
   DB.DBA.ODS_QUAD_URI (graph_iri, uri, rdf_iri ('type'), foaf_iri ('OnlineAccount'));
   DB.DBA.ODS_QUAD_URI (graph_iri, uri, foaf_iri ('accountServiceHomepage'), url);
   DB.DBA.ODS_QUAD_URI_L (graph_iri, uri, foaf_iri ('accountName'), name);
-  DB.DBA.ODS_QUAD_URI (graph_iri, pers_iri, foaf_iri ('holdsAccount'), uri);
+  DB.DBA.ODS_QUAD_URI (graph_iri, pers_iri, foaf_iri ('account'), uri);
 };
 
 create procedure sioc_user_account_delete (in graph_iri varchar, in iri varchar, in name varchar, in uri varchar := null)
@@ -1971,11 +1953,11 @@ create procedure ods_sioc_post (
       if (__tag (content) = __tag of XML)
 	content := serialize_to_UTF8_xml (content);
       content := subseq (content, 0, 10000000);
-      content := regexp_replace (content, '<[^>]+>', '', 1, null);
-	  ses := string_output ();
-	  http_value (content, null, ses);
-	  ses := string_output_string (ses);
-	  DB.DBA.ODS_QUAD_URI_L (graph_iri, iri, sioc_iri ('content'), ses);
+      --content := regexp_replace (content, '<[^>]+>', '', 1, null);
+      --ses := string_output ();
+      --http_value (content, null, ses);
+      --ses := string_output_string (ses);
+      DB.DBA.ODS_QUAD_URI_L (graph_iri, iri, sioc_iri ('content'), content);
 	}
       if (do_ann)
 	{
@@ -2271,7 +2253,7 @@ create procedure fill_ods_sioc_online (in doall int := 0, in iri_result int := 1
 
 create procedure fill_ods_sioc (in doall int := 0)
 {
-  declare iri, site_iri, graph_iri, sioc_version varchar;
+  declare iri, site_iri, graph_iri, tmp_graph_iri, forum_iri, sioc_version varchar;
   declare fCreate, cpt, deadl, cnt int;
 
   declare exit handler for sqlstate '*', not found
@@ -2303,6 +2285,30 @@ create procedure fill_ods_sioc (in doall int := 0)
     
     l0:
     delete from DB.DBA.RDF_QUAD where G = DB.DBA.RDF_IID_OF_QNAME (fix_graph (graph_iri));
+
+    -- clean private graphs
+	  for select WAI_ID,
+	             WAI_TYPE_NAME,
+	             WAI_NAME,
+               WAI_IS_PUBLIC
+		      from DB.DBA.WA_INSTANCE
+		     where WAI_IS_PUBLIC = 0 do
+		{
+      forum_iri := forum_iri (WAI_TYPE_NAME, WAI_NAME);
+      tmp_graph_iri := get_graph_new (WAI_IS_PUBLIC, forum_iri);
+      if (length (tmp_graph_iri))
+      {
+        delete from DB.DBA.RDF_QUAD where G = DB.DBA.RDF_IID_OF_QNAME (tmp_graph_iri);
+
+        -- remove user's rights for private graphs
+    	  for select WAM_USER
+    		      from DB.DBA.WA_MEMBER
+  		     where WAM_INST = WAI_NAME do
+    		{
+          SIOC..private_user_remove (tmp_graph_iri, WAM_USER);
+        }
+      }
+		}
     commit work;
     set isolation='committed';
     ods_graph_init ();
@@ -2340,7 +2346,7 @@ create procedure fill_ods_sioc (in doall int := 0)
       else -- sioc:User
 	{
 	  declare u_site_iri, person_iri any;
-	  declare forum_name, forum_iri any;
+    	  declare forum_name any;
 
 	  iri := user_iri (u_id);
 	  if (iri is not null)
@@ -2499,7 +2505,7 @@ create procedure fill_ods_sioc (in doall int := 0)
 		           DB.DBA.WA_INSTANCE
 		     where WAM_USER = U_ID 
 		       and WAM_INST = WAI_NAME 
-		       and ((WAI_IS_PUBLIC = 1) or (WAI_TYPE_NAME = 'oDrive')) do
+		       and SIOC..instance_sioc_check (WAI_IS_PUBLIC, WAI_TYPE_NAME) = 1 do
 		{
 		  instance_sioc_data (
                           WAM_INST,
@@ -2543,7 +2549,8 @@ create procedure fill_ods_sioc (in doall int := 0)
   for select * from SEMPING.DBA.PING_RULES where PR_GRAPH = graph_iri do
     {
       sparql insert into graph iri(?:PR_GRAPH) { `iri(?:PR_IRI)` <http://purl.org/net/pingback/to> `iri(?:ep2)` . };
-      sparql insert into graph iri(?:PR_GRAPH) { `iri(?:PR_IRI)` <http://purl.org/net/pingback/service> `iri(?:ep)` . };
+      -- XXX: obsolete
+      --sparql insert into graph iri(?:PR_GRAPH) { `iri(?:PR_IRI)` <http://purl.org/net/pingback/service> `iri(?:ep)` . };
     }
 
   {
@@ -3627,14 +3634,24 @@ create trigger WA_RELATED_APPS_SIOC_D after delete on DB.DBA.WA_RELATED_APPS ref
 };
 
 
+create procedure instance_sioc_check (
+  in _WA_IS_PUBLIC integer,
+  in _WA_TYPE varchar)
+{
+  if ((_WA_IS_PUBLIC > 0) or (_WA_TYPE in ('oDrive', 'oMail')))
+    return 1;
+
+  return 0;
+};
+
 create procedure instance_sioc_data (
-  in N_WAM_INST varchar,
-  in N_WAM_APP_TYPE varchar,
-  in N_WAM_USER integer,
-  in N_WAM_MEMBER_TYPE integer,
-  in N_WAM_IS_PUBLIC integer,
-  in N_WAM_DESCRIPTION varchar := null,
-  in N_WAM_LICENSE varchar := null)
+  in _WAM_INST varchar,
+  in _WAM_APP_TYPE varchar,
+  in _WAM_USER integer,
+  in _WAM_MEMBER_TYPE integer,
+  in _WAM_IS_PUBLIC integer,
+  in _WAM_DESCRIPTION varchar := null,
+  in _WAM_LICENSE varchar := null)
 {
   declare graph_iri, user_iri, role_iri, forum_iri, site_iri, svc_proc_name varchar;
   declare exit handler for sqlstate '*'
@@ -3643,28 +3660,43 @@ create procedure instance_sioc_data (
     return;
   };
 
-  if ((N_WAM_MEMBER_TYPE = 1) and ((N_WAM_IS_PUBLIC > 0) or (N_WAM_APP_TYPE = 'oDrive')))
+  if (not SIOC..instance_sioc_check (_WAM_IS_PUBLIC, _WAM_APP_TYPE))
+    return;
+
+  forum_iri := forum_iri (_WAM_APP_TYPE, _WAM_INST);
+  graph_iri := get_graph_new (_WAM_IS_PUBLIC, forum_iri);
+  if (_WAM_MEMBER_TYPE = 1)
     {
+    if (not _WAM_IS_PUBLIC)
+    {
+      SIOC..private_init ();
+      SIOC..private_graph_add (graph_iri);
+      if (not SIOC..private_graph_check (graph_iri))
+        return;
+    }
+
     site_iri := get_graph ();
-    forum_iri := forum_iri (N_WAM_APP_TYPE, N_WAM_INST);
-    graph_iri := get_graph_new (null, N_WAM_IS_PUBLIC, forum_iri);
-    sioc_forum (graph_iri, site_iri, forum_iri, N_WAM_INST, N_WAM_APP_TYPE, N_WAM_DESCRIPTION);
-    if (not isnull (N_WAM_LICENSE))
-      cc_work_lic (graph_iri, forum_iri, N_WAM_LICENSE);
+    sioc_forum (graph_iri, site_iri, forum_iri, _WAM_INST, _WAM_APP_TYPE, _WAM_DESCRIPTION);
+    if (not isnull (_WAM_LICENSE))
+      cc_work_lic (graph_iri, forum_iri, _WAM_LICENSE);
 
       -- add services here
-    svc_proc_name := sprintf ('SIOC.DBA.ods_%s_services', DB.DBA.wa_type_to_app (N_WAM_APP_TYPE));
+    svc_proc_name := sprintf ('SIOC.DBA.ods_%s_services', DB.DBA.wa_type_to_app (_WAM_APP_TYPE));
     if (__proc_exists (svc_proc_name))
-	    call (svc_proc_name) (graph_iri, forum_iri, N_WAM_USER, N_WAM_INST);
+	    call (svc_proc_name) (graph_iri, forum_iri, _WAM_USER, _WAM_INST);
     }
+  if (not _WAM_IS_PUBLIC)
+  {
+    SIOC..private_user_add (graph_iri, _WAM_USER);
+    if (not SIOC..private_graph_check (graph_iri))
+      return;
+  }
 
-  user_iri := user_iri (N_WAM_USER);
-  role_iri := role_iri_by_name (N_WAM_INST, N_WAM_USER);
+  user_iri := user_iri (_WAM_USER);
+  role_iri := role_iri_by_name (_WAM_INST, _WAM_USER);
 
-  do_social:
-  forum_iri := forum_iri (N_WAM_APP_TYPE, N_WAM_INST);
-  graph_iri := get_graph_new (null, N_WAM_IS_PUBLIC, forum_iri);
-  if (user_iri is not null and role_iri is not null and forum_iri is not null and ((N_WAM_IS_PUBLIC > 0) or (N_WAM_APP_TYPE = 'oDrive')))
+_social:
+  if ((user_iri is not null) and (role_iri is not null) and (forum_iri is not null))
   {
     DB.DBA.ODS_QUAD_URI (graph_iri, user_iri, sioc_iri ('has_function'), role_iri);
     DB.DBA.ODS_QUAD_URI (graph_iri, role_iri, sioc_iri ('function_of'), user_iri);
@@ -3675,33 +3707,26 @@ create procedure instance_sioc_data (
 	    DB.DBA.ODS_QUAD_URI (graph_iri, forum_iri, sioc_iri ('has_owner'), user_iri);
 	    DB.DBA.ODS_QUAD_URI (graph_iri, user_iri, sioc_iri ('owner_of'), forum_iri);
 	}
-    if (N_WAM_APP_TYPE = 'Community')
-	{
-	  declare person_iri any;
+    if (_WAM_APP_TYPE = 'Community')
+	    DB.DBA.ODS_QUAD_URI (graph_iri, group_iri (forum_iri), foaf_iri ('member'), person_iri (user_iri));
 
-	    person_iri := person_iri (user_iri);
-	    DB.DBA.ODS_QUAD_URI (graph_iri, group_iri (forum_iri), foaf_iri ('member'), person_iri);
-    }
-    if (N_WAM_APP_TYPE = 'AddressBook')
+    if (_WAM_APP_TYPE = 'AddressBook')
     {
-      N_WAM_APP_TYPE := 'SocialNetwork';
-      goto do_social;
+      _WAM_APP_TYPE := 'SocialNetwork';
+      forum_iri := forum_iri ('SocialNetwork', _WAM_INST);
+      graph_iri := get_graph_new (_WAM_IS_PUBLIC, forum_iri);
+      goto _social;
     }
   }
-};
-
--- DB.DBA.WA_MEMBER
-create trigger WA_MEMBER_SIOC_I after insert on DB.DBA.WA_MEMBER referencing new as N
-{
-  SIOC..instance_sioc_data (
-    N.WAM_INST,
-    N.WAM_APP_TYPE,
-    N.WAM_USER,
-    N.WAM_MEMBER_TYPE,
-    N.WAM_IS_PUBLIC);
-};
+}
+;
 
-create trigger WA_MEMBER_SIOC_D before delete on DB.DBA.WA_MEMBER referencing old as O
+create procedure instance_sioc_data_delete (
+  in _WAM_INST varchar,
+  in _WAM_APP_TYPE varchar,
+  in _WAM_USER integer,
+  in _WAM_MEMBER_TYPE integer,
+  in _WAM_IS_PUBLIC integer)
 {
   declare p_name varchar;
   declare user_iri, graph_iri, role_iri, forum_iri varchar;
@@ -3711,132 +3736,351 @@ create trigger WA_MEMBER_SIOC_D before delete on DB.DBA.WA_MEMBER referencing ol
     return;
   };
 
-  forum_iri := SIOC..forum_iri (O.WAM_APP_TYPE, O.WAM_INST);
-  graph_iri := SIOC..get_graph_new (null, O.WAM_IS_PUBLIC, forum_iri);
-  if ((O.WAM_MEMBER_TYPE = 1) and (O.WAM_IS_PUBLIC > 0)) -- instance drop
+  if (not SIOC..instance_sioc_check (_WAM_IS_PUBLIC, _WAM_APP_TYPE))
+    return;
+
+  forum_iri := SIOC..forum_iri (_WAM_APP_TYPE, _WAM_INST);
+  graph_iri := SIOC..get_graph_new (_WAM_IS_PUBLIC, forum_iri);
+  if (_WAM_MEMBER_TYPE = 1)
     {
+    if (not _WAM_IS_PUBLIC)
+      SIOC..private_graph_remove (graph_iri);
+
+    -- instance drop
     SIOC..delete_quad_s_or_o (graph_iri, forum_iri, forum_iri);
-    p_name := sprintf ('SIOC.DBA.clean_ods_%s_sioc2', DB.DBA.wa_type_to_app (O.WAM_APP_TYPE));
+    p_name := sprintf ('SIOC.DBA.clean_ods_%s_sioc', DB.DBA.wa_type_to_app (_WAM_APP_TYPE));
     if (__proc_exists (p_name))
-	    call (p_name) (O.WAM_INST, O.WAM_IS_PUBLIC);
+	    call (p_name) (_WAM_INST, _WAM_IS_PUBLIC);
 
     SIOC..ods_object_services_dettach (graph_iri, forum_iri, 'instance');
-    SIOC..ods_object_services_dettach (graph_iri, forum_iri, DB.DBA.wa_type_to_app (O.WAM_APP_TYPE));
+    SIOC..ods_object_services_dettach (graph_iri, forum_iri, DB.DBA.wa_type_to_app (_WAM_APP_TYPE));
     }
 
-  user_iri := user_iri (O.WAM_USER);
-  role_iri := role_iri_by_name (O.WAM_INST, O.WAM_USER);
+  if (not _WAM_IS_PUBLIC)
+    SIOC..private_user_remove (graph_iri, _WAM_USER);
+
+  user_iri := user_iri (_WAM_USER);
+  role_iri := role_iri_by_name (_WAM_INST, _WAM_USER);
   if (user_iri is not null and role_iri is not null)
-    {
     delete_quad_s_or_o (graph_iri, role_iri, role_iri);
-    }
-  if (O.WAM_APP_TYPE = 'Community')
-    {
-      declare person_iri any;
 
-    person_iri := person_iri (user_iri);
-      delete_quad_po (graph_iri, foaf_iri ('member'), person_iri);
-    }
-};
+  if (_WAM_APP_TYPE = 'Community')
+    delete_quad_po (graph_iri, foaf_iri ('member'), person_iri (user_iri));
+}
+;
+
+-- DB.DBA.WA_MEMBER
+create trigger WA_MEMBER_SIOC_I after insert on DB.DBA.WA_MEMBER referencing new as N
+{
+  SIOC..instance_sioc_data (
+    N.WAM_INST,
+    N.WAM_APP_TYPE,
+    N.WAM_USER,
+    N.WAM_MEMBER_TYPE,
+    N.WAM_IS_PUBLIC);
+}
+;
+
+create trigger WA_MEMBER_SIOC_D before delete on DB.DBA.WA_MEMBER referencing old as O
+{
+  SIOC..instance_sioc_data_delete (
+    O.WAM_INST,
+    O.WAM_APP_TYPE,
+    O.WAM_USER,
+    O.WAM_MEMBER_TYPE,
+    O.WAM_IS_PUBLIC);
+}
+;
 
 -- DB.DBA.WA_INSTANCE
 -- INSERT and delete are DONE IN THE WA_MEMBER WHEN INSERT THE OWNER
 create trigger WA_INSTANCE_SIOC_U before update on DB.DBA.WA_INSTANCE referencing old as O, new as N
 {
-  declare p_name varchar;
-  declare o_graph_iri, n_graph_iri, site_iri, o_forum_iri, n_forum_iri, role_iri, o_role_iri varchar;
+  declare p_name, wam_user varchar;
+  declare site_iri, o_graph_iri, n_graph_iri, o_forum_iri, n_forum_iri, n_role_iri, o_role_iri varchar;
   declare exit handler for sqlstate '*'
   {
     sioc_log_message (__SQL_MESSAGE);
     return;
   };
 
-  if ((N.WAI_IS_PUBLIC = 0) and (O.WAI_IS_PUBLIC = 0))
-    return;
-
   n_forum_iri := SIOC..forum_iri_n (O.WAI_TYPE_NAME, O.WAI_NAME, N.WAI_NAME);
-  n_graph_iri := SIOC..get_graph_new (null, N.WAI_IS_PUBLIC, n_forum_iri);
+  n_graph_iri := SIOC..get_graph_new (N.WAI_IS_PUBLIC, n_forum_iri);
   o_forum_iri := SIOC..forum_iri (O.WAI_TYPE_NAME, O.WAI_NAME);
-  o_graph_iri := SIOC..get_graph_new (null, O.WAI_IS_PUBLIC, o_forum_iri);
-  if (N.WAI_TYPE_NAME = 'Community')
-    {
-    declare group_iri any;
+  o_graph_iri := SIOC..get_graph_new (O.WAI_IS_PUBLIC, o_forum_iri);
 
-    group_iri := group_iri (o_forum_iri);
-    delete_quad_sp (o_graph_iri, group_iri, foaf_iri ('name'));
-    }
+  -- no SIOC related changes
+  if ((n_graph_iri = o_graph_iri) and (n_forum_iri = o_forum_iri))
+    return;
 
-  -- new: private data
-  if (N.WAI_IS_PUBLIC = 0)
-    {
-    for select O as post
-          from DB.DBA.RDF_QUAD
-         where G = DB.DBA.RDF_IID_OF_QNAME (o_graph_iri)
-           and S = DB.DBA.RDF_IID_OF_QNAME (o_forum_iri)
-           and P = DB.DBA.RDF_IID_OF_QNAME (sioc_iri ('container_of')) do
-	  {
-	    SIOC..delete_quad_s_or_o (o_graph_iri, post, post);
-	  }
-    SIOC..delete_quad_s_or_o (o_graph_iri, o_forum_iri, o_forum_iri);
-    p_name := sprintf ('sioc.DBA.clean_ods_%s_sioc', DB.DBA.wa_type_to_app (N.WAI_TYPE_NAME));
-    if (__proc_exists (p_name))
-	    call (p_name) (O.WAI_NAME, O.WAI_IS_PUBLIC);
+  -- delete old
+  wam_user := (select WAM_USER from DB.DBA.WA_MEMBER where WAM_INST = O.WAI_NAME and WAM_MEMBER_TYPE = 1);
+  SIOC..instance_sioc_data_delete (
+      O.WAI_NAME,
+      O.WAI_TYPE_NAME,
+      wam_user,
+      1,
+      O.WAI_IS_PUBLIC);
 
-    SIOC..ods_object_services_dettach (o_graph_iri, o_forum_iri, 'instance');
-    SIOC..ods_object_services_dettach (o_graph_iri, o_forum_iri, DB.DBA.wa_type_to_app (O.WAI_TYPE_NAME));
+  if (not SIOC..instance_sioc_check (N.WAI_IS_PUBLIC, N.WAI_TYPE_NAME))
     return;
-    }
 
-  -- old: private data - must be created forum
-  if (O.WAI_IS_PUBLIC = 0)
+  -- create new
+  SIOC..instance_sioc_data (
+    N.WAI_NAME,
+    N.WAI_TYPE_NAME,
+    wam_user,
+    1,
+    N.WAI_IS_PUBLIC,
+    N.WAI_DESCRIPTION,
+    N.WAI_LICENSE);
+
+  delete_quad_sp (o_graph_iri, o_forum_iri, sioc_iri ('id'));
+  delete_quad_sp (o_graph_iri, o_forum_iri, sioc_iri ('link'));
+  DB.DBA.ODS_QUAD_URI_L (n_graph_iri, n_forum_iri, sioc_iri ('id'), N.WAI_NAME);
+  DB.DBA.ODS_QUAD_URI (n_graph_iri, n_forum_iri, sioc_iri ('link'), n_forum_iri);
+  update_quad_g_s_o (o_graph_iri, n_graph_iri, o_forum_iri, n_forum_iri);
+
+  delete_quad_sp (o_graph_iri, o_forum_iri, cc_iri ('license'));
+  cc_work_lic (n_graph_iri, n_forum_iri, N.WAI_LICENSE);
+
+  if (o_graph_iri <> n_graph_iri)
   {
-    SIOC..instance_sioc_data (
-      N.WAI_NAME,
-      N.WAI_TYPE_NAME,
-      (select WAM_USER from DB.DBA.WA_MEMBER where WAM_INST = O.WAI_NAME and WAM_MEMBER_TYPE = 1),
-      1,
-      N.WAI_IS_PUBLIC,
-      N.WAI_DESCRIPTION,
-      N.WAI_LICENSE);
-    }
-  else if (N.WAI_IS_PUBLIC <> O.WAI_IS_PUBLIC)
+    for select distinct WAM_MEMBER_TYPE as tp from DB.DBA.WA_MEMBER where WAM_INST = O.WAI_NAME and SIOC..instance_sioc_check (WAM_IS_PUBLIC, WAM_APP_TYPE) = 1 do
     {
-    delete_quad_sp (o_graph_iri, o_forum_iri, sioc_iri ('id'));
-    delete_quad_sp (o_graph_iri, o_forum_iri, sioc_iri ('link'));
-    update_quad_g_s_o (o_graph_iri, n_graph_iri, o_forum_iri, n_forum_iri);
-    delete_quad_sp (o_graph_iri, o_forum_iri, cc_iri ('license'));
-    cc_work_lic (n_graph_iri, n_forum_iri, N.WAI_LICENSE);
+      declare _role varchar;
 
-    for select distinct WAM_MEMBER_TYPE as tp from DB.DBA.WA_MEMBER where WAM_INST = O.WAI_NAME and ((WAM_IS_PUBLIC > 0) or (WAM_APP_TYPE = 'oDrive')) do
-	{
-	  declare _role varchar;
+      _role := (select WMT_NAME from DB.DBA.WA_MEMBER_TYPE where WMT_APP = O.WAI_NAME and WMT_ID = tp);
+      if (_role is null and tp = 1)
+        _role := 'owner';
 
-	    _role := (select WMT_NAME from DB.DBA.WA_MEMBER_TYPE where WMT_APP = O.WAI_NAME and WMT_ID = tp);
-	  if (_role is null and tp = 1)
-	    _role := 'owner';
+      n_role_iri := n_forum_iri || '#' || _role;
+      o_role_iri := o_forum_iri || '#' || _role;
+      update_quad_g_s_o (o_graph_iri, n_graph_iri, o_role_iri, n_role_iri);
+    }
+    }
 
-	    role_iri := n_forum_iri || '#' || _role;
-	    o_role_iri := o_forum_iri || '#' || _role;
-	    update_quad_g_s_o (o_graph_iri, n_graph_iri, o_role_iri, role_iri);
-	  }
-    DB.DBA.ODS_QUAD_URI_L (n_graph_iri, n_forum_iri, sioc_iri ('id'), N.WAI_NAME);
-    DB.DBA.ODS_QUAD_URI (n_graph_iri, n_forum_iri, sioc_iri ('link'), n_forum_iri);
-	}
+  -- update instanse item's data
+  p_name := sprintf ('sioc.DBA.clean_ods_%s_sioc', DB.DBA.wa_type_to_app (N.WAI_TYPE_NAME));
+  if (__proc_exists (p_name))
+    call (p_name) (O.WAI_NAME, O.WAI_IS_PUBLIC);
+  p_name := sprintf ('sioc.DBA.fill_ods_%s_sioc', DB.DBA.wa_type_to_app (N.WAI_TYPE_NAME));
+  if (__proc_exists (p_name))
+    call (p_name) (n_graph_iri, site_iri, N.WAI_NAME);
+  p_name := sprintf ('sioc.DBA.fill_ods_%s_sioc2', DB.DBA.wa_type_to_app (N.WAI_TYPE_NAME));
+  if (__proc_exists (p_name))
+    call (p_name) (N.WAI_NAME, N.WAI_IS_PUBLIC);
+}
+;
 
-  -- refresh be created forum
-  if (N.WAI_IS_PUBLIC <> O.WAI_IS_PUBLIC)
+--
+-- Private graphs
+--
+create procedure SIOC..private_graph ()
+{
+  return 'http://www.openlinksw.com/schemas/virtrdf#PrivateGraphs';
+}
+;
+
+create procedure SIOC..private_init ()
+{
+  declare exit handler for sqlstate '*' {return 0;};
+
+  -- create private graph group (if not exists)
+  DB.DBA.RDF_GRAPH_GROUP_CREATE (SIOC..private_graph (), 1);
+
+  -- set default rights for private graphs
+  DB.DBA.RDF_DEFAULT_USER_PERMS_SET ('nobody', 0, 1);
+  DB.DBA.RDF_DEFAULT_USER_PERMS_SET ('dba', 511, 1);
+  return 1;
+}
+;
+
+--!
+-- \brief Make an RDF graph private.
+--
+-- \param graph_iri The IRI of the graph to make private. The graph will be private afterwards.
+-- Without subsequent calls to SIOC..private_user_add nobody can read or write the graph.
+--
+-- \return \p 1 on success, \p 0 otherwise.
+--
+-- \sa SIOC..private_graph_remove, SIOC..private_user_add
+--/
+create procedure SIOC..private_graph_add (
+  in graph_iri varchar)
+{
+  declare exit handler for sqlstate '*' {return 0;};
+
+  DB.DBA.RDF_GRAPH_GROUP_INS (SIOC..private_graph (), graph_iri);
+  return 1;
+}
+;
+
+--!
+-- \brief Make an RDF graph public.
+--
+-- \param The IRI of the graph to make public.
+--
+-- \sa SIOC..private_graph_remove, SIOC..private_user_add
+--/
+create procedure SIOC..private_graph_remove (
+  in graph_iri varchar)
+{
+  DB.DBA.RDF_GRAPH_GROUP_DEL (SIOC..private_graph (), graph_iri);
+}
+;
+
+--!
+-- \brief Check if an RDF graph is private or not.
+--
+-- Private graphs can still be readable or even writable by certain users,
+-- depending on the configured rights.
+--
+-- \param graph_iri The IRI of the graph to check.
+--
+-- \return \p 1 if the given graph is private, \p 0 otherwise.
+--
+-- \sa SIOC..private_graph_add, SIOC..private_user_add
+--/
+create procedure SIOC..private_graph_check (
+  in graph_iri varchar)
+{
+  declare private_graph varchar;
+
+  private_graph := SIOC..private_graph ();
+  if (not exists (select top 1 1 from DB.DBA.RDF_GRAPH_GROUP where RGG_IRI = private_graph))
+    return 0;
+
+  if (not exists (select top 1 1 from DB.DBA.RDF_GRAPH_GROUP_MEMBER where RGGM_GROUP_IID = iri_to_id (private_graph) and RGGM_MEMBER_IID = iri_to_id (graph_iri)))
+    return 0;
+
+  return 1;
+}
+;
+
+--!
+-- \brief Grant access to a private RDF graph.
+--
+-- Grants access to a certain RDF graph. There is no need to call SIOC..private_graph_add before.
+-- The given graph is made private automatically.
+--
+-- \param graph_iri The IRI of the graph to grant access to.
+-- \param uid The numerical or string ID of the SQL user to grant access to \p graph_iri.
+-- \param rights The rights to grant to \p uid:
+-- - \p 1 - Read
+-- - \p 2 - Write
+-- - \p 3 - Read/Write
+--
+-- \return \p 1 on success, \p 0 otherwise.
+--
+-- \sa SIOC..private_graph_add, SIOC..private_user_add
+--/
+create procedure SIOC..private_user_add (
+  in graph_iri varchar,
+  in uid any,
+  in rights integer := 1)
+{
+  declare exit handler for sqlstate '*' {return 0;};
+
+  if (isinteger (uid))
+    uid := (select U_NAME from DB.DBA.SYS_USERS where U_ID = uid);
+  DB.DBA.RDF_GRAPH_GROUP_INS (SIOC..private_graph (), graph_iri);
+  DB.DBA.RDF_GRAPH_USER_PERMS_SET (graph_iri, uid, rights);
+  return 1;
+}
+;
+
+--!
+-- \brief Revoke access to a private RDF graph.
+--
+-- \param graph_iri The IRI of the private graph to revoke access to,
+-- \param uid The numerical or string ID of the SQL user to revoke access from.
+--
+-- \sa SIOC..private_user_add
+--/
+create procedure SIOC..private_user_remove (
+  in graph_iri varchar,
+  in uid any)
+{
+  declare exit handler for sqlstate '*' {return 0;};
+
+  if (isinteger (uid))
+    uid := (select U_NAME from DB.DBA.SYS_USERS where U_ID = uid);
+  DB.DBA.RDF_GRAPH_USER_PERMS_DEL (graph_iri, uid);
+  return 0;
+}
+;
+
+--
+-- Private WebID rights
+--
+create procedure SIOC..private_acl_insert (
+  inout graph_iri varchar,
+  inout acl any)
+{
+  declare uid, rights any;
+  declare N, aclArray any;
+
+  aclArray := deserialize (acl);
+  for (N := 0; N < length (aclArray); N := N + 1)
   {
-    p_name := sprintf ('sioc.DBA.clean_ods_%s_sioc', DB.DBA.wa_type_to_app (N.WAI_TYPE_NAME));
-    if (__proc_exists (p_name))
-	    call (p_name) (O.WAI_NAME, O.WAI_IS_PUBLIC);
-    p_name := sprintf ('sioc.DBA.fill_ods_%s_sioc', DB.DBA.wa_type_to_app (N.WAI_TYPE_NAME));
-    if (__proc_exists (p_name))
-	    call (p_name) (n_graph_iri, site_iri, N.WAI_NAME);
-    p_name := sprintf ('sioc.DBA.fill_ods_%s_sioc2', DB.DBA.wa_type_to_app (N.WAI_TYPE_NAME));
-    if (__proc_exists (p_name))
-	    call (p_name) (N.WAI_NAME, N.WAI_IS_PUBLIC);
+    uid := null;
+    if (aclArray[N][2] = 'person')
+    {
+      uid := DB.DBA.FOAF_WEBID_USER (aclArray[N][1], 1);
     }
-};
+    else if (aclArray[N][2] = 'group')
+    {
+      ;
+    }
+    else if (aclArray[N][2] = 'public')
+    {
+      uid := 'nobody';
+    }
+    if (not isnull (uid))
+    {
+      rights := 0;
+      -- read
+      if (aclArray[N][3])
+        rights := rights + 1;
+      -- write
+      if (aclArray[N][4])
+        rights := rights + 2;
+
+      SIOC..private_user_add (graph_iri, uid, rights);
+    }
+  }
+}
+;
+
+create procedure SIOC..private_acl_delete (
+  inout graph_iri varchar,
+  inout acl any)
+{
+  declare uid any;
+  declare N, aclArray any;
+
+  aclArray := deserialize (acl);
+  for (N := 0; N < length (aclArray); N := N + 1)
+  {
+    uid := null;
+    if (aclArray[N][2] = 'person')
+    {
+      uid := DB.DBA.FOAF_WEBID_USER (aclArray[N][1]);
+    }
+    else if (aclArray[N][2] = 'group')
+    {
+      ;
+    }
+    else if (aclArray[N][2] = 'public')
+    {
+      uid := 'nobody';
+    }
+    if (not isnull (uid))
+      SIOC..private_user_remove (graph_iri, uid);
+  }
+}
+;
 
 --
 -- ACL
@@ -3884,8 +4128,8 @@ create procedure SIOC..acl_insert (
   inout iri varchar,
   inout acl any)
 {
-  declare acl_iri, clean_iri varchar;
-  declare N, aclArray any;
+  declare acl_iri, clean_iri, filter_iri, criteria_iri varchar;
+  declare N, M, aclArray any;
   declare exit handler for sqlstate '*'
   {
     sioc_log_message (__SQL_MESSAGE);
@@ -3896,7 +4140,7 @@ create procedure SIOC..acl_insert (
   aclArray := deserialize (acl);
   for (N := 0; N < length (aclArray); N := N + 1)
   {
-    acl_iri := clean_iri || sprintf('#acl%d', N);
+    acl_iri := clean_iri || sprintf('#acl_%d', N);
 
     DB.DBA.ODS_QUAD_URI (graph_iri, acl_iri, rdf_iri ('type'), acl_iri ('Authorization'));
     DB.DBA.ODS_QUAD_URI (graph_iri, acl_iri, acl_iri ('accessTo'), iri);
@@ -3912,6 +4156,21 @@ create procedure SIOC..acl_insert (
     {
       DB.DBA.ODS_QUAD_URI (graph_iri, acl_iri, acl_iri ('agentClass'), foaf_iri('Agent'));
     }
+    else if (aclArray[N][2] = 'advanced')
+    {
+      filter_iri := clean_iri || sprintf('#filter_%d', N);
+      DB.DBA.ODS_QUAD_URI (graph_iri, acl_iri, oplflt_iri ('hasFilter'), filter_iri);
+      for (M := 0; M < length (aclArray[N][1]); M := M + 1)
+      {
+        criteria_iri := clean_iri || sprintf('#criteria_%d_%d', N, M);
+        DB.DBA.ODS_QUAD_URI (graph_iri, filter_iri, oplflt_iri ('hasCriteria'), criteria_iri);
+        DB.DBA.ODS_QUAD_URI (graph_iri, criteria_iri, oplflt_iri ('operand'), oplflt_iri (aclArray[N][1][M][1]));
+        DB.DBA.ODS_QUAD_URI (graph_iri, criteria_iri, oplflt_iri ('condition'), oplflt_iri (aclArray[N][1][M][2]));
+        DB.DBA.ODS_QUAD_URI_L (graph_iri, criteria_iri, oplflt_iri ('value'), aclArray[N][1][M][3]);
+        if ((length (aclArray[N][1][M]) > 3) and not DB.DBA.is_empty_or_null (aclArray[N][1][M][4]))
+          DB.DBA.ODS_QUAD_URI_L (graph_iri, criteria_iri, oplflt_iri ('statement'), aclArray[N][1][M][4]);
+      }
+    }
     if (aclArray[N][3])
       DB.DBA.ODS_QUAD_URI (graph_iri, acl_iri, acl_iri ('mode'), acl_iri('Read'));
     if (aclArray[N][4])
@@ -3927,8 +4186,8 @@ create procedure SIOC..acl_delete (
   inout iri varchar,
   inout acl any)
 {
-  declare acl_iri, clean_iri varchar;
-  declare N, aclArray any;
+  declare acl_iri, clean_iri, filter_iri, criteria_iri varchar;
+  declare N, M, aclArray any;
   declare exit handler for sqlstate '*'
   {
     sioc_log_message (__SQL_MESSAGE);
@@ -3941,122 +4200,95 @@ create procedure SIOC..acl_delete (
   {
     acl_iri := clean_iri || sprintf('#acl%d', N);
     delete_quad_s_or_o (graph_iri, acl_iri, acl_iri);
+    acl_iri := clean_iri || sprintf('#acl_%d', N);
+    delete_quad_s_or_o (graph_iri, acl_iri, acl_iri);
+    if (aclArray[N][2] = 'advanced')
+    {
+      filter_iri := clean_iri || sprintf('#filter_%d', N);
+      delete_quad_s_or_o (graph_iri, filter_iri, filter_iri);
+      for (M := 0; M < length (aclArray[N][1]); M := M + 1)
+      {
+        criteria_iri := clean_iri || sprintf('#criteria_%d_%d', N, M);
+        delete_quad_s_or_o (graph_iri, criteria_iri, criteria_iri);
+      }
+    }
   }
 }
 ;
 
-create procedure SIOC..acl_webID ()
+create procedure SIOC..acl_webid (
+  inout webid varchar,
+  inout graph varchar := null)
 {
-  declare retIRI varchar;
-  declare foafIRI, foafGraph, loadIRI, localIRI any;
-  declare S, V, info, st, msg, data, meta any;
+  declare cert, vtype any;
 
   if (not is_https_ctx ())
-  {
-    retIRI := null;
-    goto _exit;
-  }
+    return null;
 
-  retIRI := connection_get ('vspx_vebid');
-  if (not isnull (retIRI))
+  webid := connection_get ('vspx_vebid');
+  if (not isnull (webid))
   {
-    if (retIRI = '')
-      retIRI := null;
+    if (webid = '')
+      webid := null;
     goto _exit;
   }
 
-  foafIRI := trim (get_certificate_info (7, null, null, null, '2.5.29.17'));
-  V := regexp_replace (foafIRI, ',[ ]*', ',', 1, null);
-  V := split_and_decode (V, 0, '\0\0,:');
-  if (V is null)
-    V := vector ();
-  foafIRI := get_keyword ('URI', V);
-  if (isnull (foafIRI))
-  {
-    retIRI := DB.DBA.FOAF_SSL_WEBFINGER ();
-    if (not isnull (retIRI))
-      goto _set;
-    retIRI := ODS.DBA.FINGERPOINT_WEBID_GET ();
-    goto _set;
-  }
+  set_user_id ('dba');
+  cert := client_attr ('client_certificate');
+  if (not DB.DBA.WEBID_AUTH_GEN_2 (cert, 0, null, 1, 0, webid, graph, 0, vtype))
+    webid := null;
+  connection_set ('vspx_vebid', coalesce (webid, ''));
 
-  foafGraph := 'http://local.virt/FOAF/' || cast (rnd (1000) as varchar);
-  localIRI := foafIRI;
-  V := rfc1808_parse_uri (localIRI);
-  if (cfg_item_value (virtuoso_ini_path (), 'URIQA', 'DynamicLocal') = '1' and V[1] = registry_get ('URIQADefaultHost'))
-  {
-    V [0] := 'local';
-    V [1] := '';
-    localIRI := db.dba.vspx_uri_compose (V);
-  }
-  V := rfc1808_parse_uri (foafIRI);
-  V[5] := '';
-  loadIRI := DB.DBA.vspx_uri_compose (V);
-
-  S := sprintf ('sparql load <%s> into graph <%s>', loadIRI, foafGraph);
-  st := '00000';
-  exec (S, st, msg, vector (), 0);
-  if (st = '00000')
-  {
-  S := sprintf (' sparql define input:storage "" ' ||
-                ' prefix cert: <http://www.w3.org/ns/auth/cert#> ' ||
-                ' prefix rsa: <http://www.w3.org/ns/auth/rsa#> ' ||
-                ' select (str (bif:coalesce (?exp_val, ?exp))) ' ||
-                '        (str (bif:coalesce (?mod_val, ?mod))) ' ||
-                '   from <%s> ' ||
-                '  where { ' ||
-                '          ?id cert:identity <%s> ; ' ||
-                '              rsa:public_exponent ?exp ; ' ||
-                '              rsa:modulus ?mod . ' ||
-                '          optional { ?exp cert:decimal ?exp_val . ' ||
-                '          ?mod cert:hex ?mod_val . } ' ||
-                '        }',
-                foafGraph,
-                localIRI);
-  exec (S, st, msg, vector (), 0, meta, data);
-    if (st = '00000')
-    {
-      info := get_certificate_info (9);
-  foreach (any _row in data) do
-  {
-    if (_row[0] = cast (info[1] as varchar) and lower (regexp_replace (_row[1], '[^A-Z0-9a-f]', '', 1, null)) = bin2hex (info[2]))
-    {
-          retIRI := foafIRI;
-          goto _break;
-        }
-      }
-    }
-  }
-_break:;
-  exec (sprintf ('SPARQL clear graph <%s>', foafGraph), st, msg, vector (), 0);
+_exit:;
+  return webid;
+}
+;
+
+create procedure SIOC..acl_prepare_sql (
+  inout _sql varchar,
+  inout _sqlParams any,
+  in _params any)
+{
+  declare _name, _value, _pattern, _char varchar;
+  declare V any;
 
-_set:;
-  connection_set ('vspx_vebid', coalesce (retIRI, ''));
+  _char := '?';
+  if (_sql like 'sparql%')
+    _char := '??';
 
+  _pattern := '\\^\\{([a-zA-Z0-9])+\\}\\^';
+  while (1)
+  {
+    V := regexp_parse (_pattern, _sql, 0);
+    if (isnull (V))
+      goto _exit;
+
+    _name := subseq (_sql, V[0]+2, V[1]-2);
+    _value := get_keyword (_name, _params);
+    _sqlParams := vector_concat (_sqlParams, vector (_value));
+    _sql := regexp_replace (_sql, _pattern, _char);
+  }
 _exit:;
-  return retIRI;
+  return;
 }
 ;
 
-create procedure SIOC..acl_check (
+create procedure SIOC..acl_check_internal (
+  in webid varchar,
+  in webidGraph varchar,
   in acl_graph_iri varchar,
   in acl_groups_iri varchar,
   in acl_iris any)
 {
-  declare N, M, I integer;
-  declare tmp, rc, foafIRI, acl_iri varchar;
-  declare IRIs any;
+  declare M, I integer;
+  declare rc, acl_iri varchar;
+  declare _cert, _commands, _command any;
+  declare _filterMode, _filterValue, _mode, _filter, _criteria, _operand, _condition, _pattern, _statement, _params any;
+  declare _sql, _state, _msg, _sqlParams, _meta, _rows any;
 
   rc := '';
-  foafIRI := SIOC..acl_webID ();
-  if (isnull (foafIRI))
-    goto _exit;
-
-  IRIs := vector (vector(), vector(), vector());
-      for (N := 0; N < length (acl_iris); N := N + 1)
+  foreach (any acl_iri in acl_iris) do
       {
-    tmp := '';
-    acl_iri := acl_iris[N];
     for ( sparql
           define input:storage ""
           prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
@@ -4069,7 +4301,7 @@ create procedure SIOC..acl_check (
                      {
                        ?rule rdf:type acl:Authorization ;
                              acl:accessTo `iri(?:acl_iri)` ;
-                             acl:agent `iri(?:foafIRI)` ;
+                             acl:agent `iri(?:webid)` ;
                              acl:agent ?p1 .
                        OPTIONAL {?rule acl:mode ?mode .} .
                      }
@@ -4097,7 +4329,7 @@ create procedure SIOC..acl_check (
                      graph `iri(?:acl_groups_iri)`
                      {
                        ?p3 rdf:type foaf:Group ;
-                           foaf:member `iri(?:foafIRI)` .
+                           foaf:member `iri(?:webid)` .
                      }
             }
           }
@@ -4112,12 +4344,6 @@ create procedure SIOC..acl_check (
       else
         goto _skip;
 
-      tmp := coalesce ("p1", coalesce ("p2", "p3"));
-      for (M := 0; M < length (IRIs[I]); M := M + 1)
-      {
-        if (tmp = IRIs[I][M])
-          goto _skip;
-        }
       if ("mode" like '%#Write')
       {
         rc := 'W';
@@ -4126,10 +4352,148 @@ create procedure SIOC..acl_check (
       if ("mode" like '%#Read')
         rc := 'R';
 
-      IRIs[I] := vector_concat (IRIs[I], vector (tmp));
-
     _skip:;
     }
+
+    _cert := client_attr ('client_certificate');
+    _commands := ODS.ODS_API.commands ();
+    _filterMode := '';
+    _filterValue := 1;
+    _filter := '';
+    _criteria := '';
+    for (
+      sparql
+          define input:storage ""
+          prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
+          prefix foaf: <http://xmlns.com/foaf/0.1/>
+          prefix acl: <http://www.w3.org/ns/auth/acl#>
+      prefix flt: <http://www.openlinksw.com/schemas/acl/filter#>
+      select ?filter ?criteria ?mode ?operand ?condition ?pattern ?statement
+           where {
+               {
+                   graph `iri(?:acl_graph_iri)`
+                   {
+                     ?rule rdf:type acl:Authorization ;
+                           acl:accessTo `iri(?:acl_iri)` ;
+                         acl:mode ?mode ;
+                         flt:hasFilter ?filter .
+                         ?filter flt:hasCriteria ?criteria .
+                         ?criteria flt:operand ?operand ;
+                                   flt:condition ?condition ;
+                                   flt:value ?pattern .
+                         OPTIONAL { ?criteria flt:statement ?statement . }
+                   }
+                 }
+             }
+       order by ?filter ?criteria) do
+    {
+      _mode := "mode";
+      _operand := replace ("operand", 'http://www.openlinksw.com/schemas/acl/filter#', '');
+      _condition := replace ("condition", 'http://www.openlinksw.com/schemas/acl/filter#', '');;
+      _pattern := cast ("pattern" as varchar);
+      _statement := cast ("statement" as varchar);
+      if (_filter <> "filter")
+  	  {
+        if (_filterValue and (_filter <> ''))
+	      {
+          if (_filterMode <> '')
+            rc := _filterMode;
+          if (rc = 'W')
+            goto _exit;
+        }
+        _filterMode := '';
+        _filterValue := 1;
+        _filter := "filter";
+        _criteria := '';
+      }
+      if (_filterValue and (_criteria <> "criteria"))
+      {
+        _command := get_keyword (_condition, _commands);
+        if (isnull (_command))
+          goto _skip2;
+
+        _sql := 'select case when ' || _command || ' then 1 else 0 end';
+        _sqlParams := vector ();
+        _params := vector ('pattern', _pattern);
+        if      (_operand = 'webIDVerified')
+        {
+          ODS.ODS_API.set_keyword ('value', _params, '1');
+    }
+        else if (_operand = 'webID')
+                   {
+          ODS.ODS_API.set_keyword ('value', _params, webid);
+                   }
+        else if (_operand = 'certExpiration')
+                   {
+          declare _from, _to any;
+
+          _from := DB.DBA.X509_STRING_DATE (get_certificate_info (4, _cert));
+          _to := DB.DBA.X509_STRING_DATE (get_certificate_info (5, _cert));
+          ODS.ODS_API.set_keyword ('value', _params, case when (_to < now () or _from > now ()) then '1' else '0' end);
+                   }
+        else if (_operand = 'certSerial')
+        {
+          ODS.ODS_API.set_keyword ('value', _params, get_certificate_info (1, _cert));
+                 }
+        else if (_operand = 'certMail')
+    {
+          ODS.ODS_API.set_keyword ('value', _params, get_certificate_info (10, _cert, 0, '', 'emailAddress'));
+        }
+        else if (_operand = 'certSubject')
+  	  {
+          ODS.ODS_API.set_keyword ('value', _params, get_certificate_info (2, _cert));
+        }
+        else if (_operand = 'certIssuer')
+        {
+          ODS.ODS_API.set_keyword ('value', _params, get_certificate_info (3, _cert));
+        }
+        else if (_operand = 'certStartDate')
+        {
+          ODS.ODS_API.set_keyword ('value', _params, DB.DBA.X509_STRING_DATE (get_certificate_info (4, _cert)));
+          ODS.ODS_API.set_keyword ('pattern', _params, DB.DBA.DAV_AUTHENTICATE_SSL_DATE (_pattern));
+        }
+        else if (_operand = 'certEndDate')
+        {
+          ODS.ODS_API.set_keyword ('value', _params, DB.DBA.X509_STRING_DATE (get_certificate_info (5, _cert)));
+          ODS.ODS_API.set_keyword ('pattern', _params, DB.DBA.DAV_AUTHENTICATE_SSL_DATE (_pattern));
+        }
+        else if (_operand = 'certDigest')
+        {
+          ODS.ODS_API.set_keyword ('value', _params, _cert);
+          _sql := 'select case when ' || sprintf ('(DB.DBA.DAV_AUTHENTICATE_SSL_DIGEST_CHECK (^{value}^, ''%s'', ^{pattern}^) = 1)', _condition) || ' then 1 else 0 end';
+        }
+        else if (_operand = 'certSparqlASK')
+        {
+          ODS.ODS_API.set_keyword ('webid', _params, webid);
+          ODS.ODS_API.set_keyword ('value', _params, webid);
+          ODS.ODS_API.set_keyword ('graph', _params, webidGraph);
+          _sql := 'sparql ' || _statement;
+        }
+
+        _state := '00000';
+        SIOC..acl_prepare_sql (_sql, _sqlParams, _params);
+        exec (_sql, _state, _msg, _sqlParams, 0, _meta, _rows);
+        if (_state <> '00000')
+          _filterValue := 0;
+
+        else if (_rows[0][0] = 0)
+          _filterValue := 0;
+        }
+      if (_filterMode <> 'W')
+      {
+        if (_mode like '%#Write')
+          _filterMode := 'W';
+        else if (_mode like '%#Read')
+          _filterMode := 'R';
+      }
+
+    _skip2:;
+      _criteria := "criteria";
+    }
+    if (_filterValue and (_filter <> '') and (_filterMode <> ''))
+      rc := _filterMode;
+
+  _continue:;
   }
 
 _exit:;
@@ -4137,19 +4501,43 @@ _exit:;
 }
 ;
 
+create procedure SIOC..acl_check (
+  in acl_graph_iri varchar,
+  in acl_groups_iri varchar,
+  in acl_iris any)
+{
+  declare rc, webid, webidGraph varchar;
+
+  rc := '';
+  webidGraph := ODS.ODS_API.graph_create ();
+  SIOC..acl_webid (webid, webidGraph);
+  if (isnull (webid))
+    goto _exit;
+
+  rc := SIOC..acl_check_internal (webid, webidGraph, acl_graph_iri, acl_groups_iri, acl_iris);
+
+_exit:;
+  ODS.ODS_API.graph_clear (webidGraph);
+  return rc;
+}
+;
+
 create procedure SIOC..acl_list (
   in acl_graph_iri varchar,
   in acl_groups_iri varchar,
   in acl_iri varchar)
 {
-  declare rc, foafIRI varchar;
+  declare rc, webid, webidGraph varchar;
+  declare cert, diArray, finger, digest, digestHash any;
 
   result_names (rc);
 
-  foafIRI := SIOC..acl_webID ();
-  if (isnull (foafIRI))
+  webidGraph := null;
+  SIOC..acl_webid (webid, webidGraph);
+  if (isnull (webid))
     return;
 
+  cert := client_attr ('client_certificate');
   for ( sparql
         define input:storage ""
         prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
@@ -4162,7 +4550,7 @@ create procedure SIOC..acl_list (
                    {
                      ?rule rdf:type acl:Authorization ;
                            acl:accessTo ?iri ;
-                           acl:agent `iri(?:foafIRI)` .
+                           acl:agent `iri(?:webid)` .
                      filter (?iri != ?:acl_iri).
                    }
                  }
@@ -4188,7 +4576,7 @@ create procedure SIOC..acl_list (
                    graph `iri(?:acl_groups_iri)`
                    {
                      ?group rdf:type foaf:Group ;
-                         foaf:member `iri(?:foafIRI)` .
+                            foaf:member `iri(?:webid)` .
                    }
                  }
                }
@@ -4258,6 +4646,7 @@ create procedure SIOC..acl_ping2 (
 ;
 
 create procedure SIOC..wa_instance_acl_insert (
+  inout is_public integer,
   inout type_name varchar,
   inout name varchar,
   inout acl any)
@@ -4272,10 +4661,14 @@ create procedure SIOC..wa_instance_acl_insert (
   graph_iri := SIOC..acl_graph (type_name, name);
 
   SIOC..acl_insert (graph_iri, iri, acl);
+
+  if (not is_public and SIOC..instance_sioc_check (is_public, type_name))
+    SIOC..private_acl_insert (SIOC..get_graph_new (is_public, iri), acl);
 }
 ;
 
 create procedure SIOC..wa_instance_acl_delete (
+  inout is_public integer,
   inout type_name varchar,
   inout name varchar,
   inout acl any)
@@ -4291,29 +4684,32 @@ create procedure SIOC..wa_instance_acl_delete (
   graph_iri := SIOC..acl_graph (type_name, name);
 
   SIOC..acl_delete (graph_iri, iri, acl);
+
+  if (not is_public and SIOC..instance_sioc_check (is_public, type_name))
+    SIOC..private_acl_delete (SIOC..get_graph_new (is_public, iri), acl);
 }
 ;
 
 create trigger WA_INSTANCE_ACL_I after insert on DB.DBA.WA_INSTANCE order 100 referencing new as N
 {
   if (coalesce (N.WAI_ACL, '') <> '')
-    SIOC..wa_instance_acl_insert (N.WAI_TYPE_NAME, N.WAI_NAME, N.WAI_ACL);
+    SIOC..wa_instance_acl_insert (N.WAI_IS_PUBLIC, N.WAI_TYPE_NAME, N.WAI_NAME, N.WAI_ACL);
 }
 ;
 
 create trigger WA_INSTANCE_ACL_U after update on DB.DBA.WA_INSTANCE order 100 referencing old as O, new as N
 {
   if ((coalesce (O.WAI_ACL, '') <> '') and (coalesce (O.WAI_ACL, '') <> coalesce (N.WAI_ACL, '')))
-    SIOC..wa_instance_acl_delete (O.WAI_TYPE_NAME, O.WAI_NAME, O.WAI_ACL);
+    SIOC..wa_instance_acl_delete (O.WAI_IS_PUBLIC, O.WAI_TYPE_NAME, O.WAI_NAME, O.WAI_ACL);
   if ((coalesce (N.WAI_ACL, '') <> '') and (coalesce (O.WAI_ACL, '') <> coalesce (N.WAI_ACL, '')))
-    SIOC..wa_instance_acl_insert (N.WAI_TYPE_NAME, N.WAI_NAME, N.WAI_ACL);
+    SIOC..wa_instance_acl_insert (N.WAI_IS_PUBLIC, N.WAI_TYPE_NAME, N.WAI_NAME, N.WAI_ACL);
 }
 ;
 
 create trigger WA_INSTANCE_ACL_D before delete on DB.DBA.WA_INSTANCE order 100 referencing old as O
 {
   if (coalesce (O.WAI_ACL, '') <> '')
-    SIOC..wa_instance_acl_delete (O.WAI_TYPE_NAME, O.WAI_NAME, O.WAI_ACL);
+    SIOC..wa_instance_acl_delete (O.WAI_IS_PUBLIC, O.WAI_TYPE_NAME, O.WAI_NAME, O.WAI_ACL);
 }
 ;
 
@@ -4968,50 +5364,12 @@ create procedure foaf_check_friend (in iri varchar, in agent varchar)
 }
 ;
 
-create procedure foaf_check_ssl_int (in iri varchar, out graph varchar)
-{
-  declare stat, msg, meta, data, info, qr, hf, gr any;
-  declare agent varchar;
-  declare rc int;
-  declare groups_iri, arr any;
-
-  graph := null;
-  rc := 0;
-  declare exit handler for sqlstate '*'
+create procedure foaf_check_ssl (
+  in iri varchar)
     {
-      rollback work;
-      return 0;
-  };
+  declare arr, groups_iri, msg, webid, webidGraph varchar;
 
   set_user_id ('dba');
-  info := get_certificate_info (9);
-  agent := ODS.ODS_API.SSL_WEBID_GET (); 
-
-  if (agent is not null and agent like 'ldap://%')
-    {
-      return DB.DBA.FOAF_SSL_LDAP_CHECK (agent);
-    }
-  if (agent is null)
-    {
-      agent := DB.DBA.FOAF_SSL_WEBFINGER ();
-      -- when no webid asked the webfinder already did check for certitificate
-      if (agent is not null and iri is null)
-	{
-	  graph := uuid ();
-	  return 1;
-	}
-    }
-  if (agent is null)
-    agent := ODS..FINGERPOINT_WEBID_GET ();
-
---  dbg_obj_print (info, agent);
-  if (not isarray (info) or agent is null)
-    return 0;
-
-  -- old check
-  -- if (iri is not null and not foaf_check_friend (iri, agent))
-  --  return 0;
-
   if (iri is not null)
   {
   -- ACL check
@@ -5023,45 +5381,15 @@ create procedure foaf_check_ssl_int (in iri varchar, out graph varchar)
   if (SIOC..acl_check (SIOC..acl_clean_iri (iri) || '/webaccess', groups_iri, vector (iri)) = '')
     return 0;
   }
-
-  -- agent := fix_uri (agent);
-  hf := rfc1808_parse_uri (agent);
-  hf[5] := '';
-  gr := DB.DBA.vspx_uri_compose (hf);
-  graph := uuid ();
-  qr := sprintf ('sparql load <%S> into graph <%S>', gr, graph);
-  stat := '00000';
-  exec (qr, stat, msg);
+  webidGraph := null;
+  SIOC..acl_webid (webid, webidGraph);
   commit work;
-  qr := DB.DBA.FOAF_SSL_QR (graph, agent);      
-  stat := '00000';
---  dbg_printf ('%s', qr);
-  exec (qr, stat, msg, vector (), 0, meta, data);
---  dbg_obj_print (data);
-  if (stat = '00000' and length (data))
-    {
-      foreach (any _row in data) do
-	{
-	  if (_row[0] = cast (info[1] as varchar) and DB.DBA.FOAF_MOD (_row[1]) = bin2hex (info[2]))
-    rc := 1;
-	}
-    }
-  return rc;
+  if (isnull (webid))
+    return 0;
+  return 1;
 }
 ;
 
-create procedure foaf_check_ssl (in iri varchar)
-{
-  declare rc int;
-  declare graph, stat, msg varchar;
-
-  set_user_id ('dba');
-  rc := foaf_check_ssl_int (iri, graph);
-  exec (sprintf ('sparql clear graph <%S>', graph), stat, msg);
-  commit work;
-  return rc;
-}
-;
 
 create procedure compose_foaf (in u_name varchar, in fmt varchar := 'n3', in p int := 0)
 {
@@ -5142,7 +5470,7 @@ create procedure compose_foaf (in u_name varchar, in fmt varchar := 'n3', in p i
 	    ?person foaf:mbox ?mbox .
 	    ?person foaf:mbox_sha1sum ?sha1 .
 	    ?person foaf:name ?full_name .
-	    ?person foaf:holdsAccount ?sioc_user .
+	    ?person foaf:account ?sioc_user .
 	    ?person rdfs:seeAlso ?pers_see_also .
 	    ?sioc_user rdfs:seeAlso ?see_also .
 	    ?sioc_user a sioc:User .
@@ -5181,10 +5509,10 @@ create procedure compose_foaf (in u_name varchar, in fmt varchar := 'n3', in p i
 	    graph <%s>
 	    {
 	      {
-	      ?person foaf:holdsAccount <%s/%s#this> ;
+	      ?person foaf:account <%s/%s#this> ;
 	      rdf:type ?type ;
 	      foaf:nick ?nick ;
-	      foaf:holdsAccount ?sioc_user .
+	      foaf:account ?sioc_user .
 	      optional { ?person rdfs:seeAlso ?pers_see_also . } .
 	      optional { ?sioc_user rdfs:seeAlso ?see_also . } .
 	      optional { ?person foaf:mbox ?mbox ; foaf:mbox_sha1sum ?sha1 . } .
@@ -5252,7 +5580,7 @@ create procedure compose_foaf (in u_name varchar, in fmt varchar := 'n3', in p i
 	    ?event dc:date ?bdate .
 	    ?person bio:keywords ?keywords .
 	    ?person owl:sameAs ?same_as .
-	    ?person foaf:holdsAccount ?oa .
+	    ?person foaf:account ?oa .
 	    ?oa a foaf:OnlineAccount .
 	    ?oa foaf:accountServiceHomepage ?ashp .
 	    ?oa foaf:accountName ?an .
@@ -5268,7 +5596,7 @@ create procedure compose_foaf (in u_name varchar, in fmt varchar := 'n3', in p i
 	    graph <%s>
 	    {
 	      {
-	      ?person foaf:holdsAccount <%s/%s#this> ;
+  	      ?person foaf:account <%s/%s#this> ;
 	      foaf:openid ?oid .
 	      optional { ?person bio:olb ?bio  } .
               optional { ?person bio:event ?event . ?event a bio:Birth ; dc:date ?bdate } .
@@ -5282,7 +5610,7 @@ create procedure compose_foaf (in u_name varchar, in fmt varchar := 'n3', in p i
 	      	       } .
               optional { ?person bio:keywords ?keywords } .
 	      optional { ?person owl:sameAs ?same_as } .
-			 ?person foaf:holdsAccount ?oa .
+  	      ?person foaf:account ?oa .
 	      optional {
 		         ?oa foaf:accountServiceHomepage ?ashp ; foaf:accountName ?an
 	      	       } .
@@ -5308,30 +5636,32 @@ create procedure compose_foaf (in u_name varchar, in fmt varchar := 'n3', in p i
 	    ?interest rdfs:label ?interest_label .
 	    ?person foaf:topic_interest ?topic_interest .
 	    ?topic_interest rdfs:label ?topic_interest_label .
-	    ?idn cert:identity ?person .
-	    ?idn rdf:type rsa:RSAPublicKey .
-	    ?idn rsa:public_exponent ?exp .
-	    ?idn rsa:modulus ?mod .
+	    ?person cert:key ?key .
+	    ?key rdf:type cert:RSAPublicKey .
+	    ?key cert:exponent ?exp .
+	    ?key cert:modulus ?mod .
 	    ?event_iri rdf:type ?bioEvent .
 	    ?event_iri bio:date ?bioDate .
 	    ?event_iri bio:place ?bioPlace .
 	    ?person pingback:to ?pb .
 	    ?person pingback:service ?psvc .
 	    ?person foaf:made `iri (bif:sprintf (''http://%%{WSHost}s/ods/describe?uri=%%U'', ?mbox))` .
+	    ?person <http://vocab.deri.ie/void#inDataset> <http://%{URIQADefaultHost}s/dataspace> .
+	    <http://%{URIQADefaultHost}s/dataspace> <http://rdfs.org/ns/void#sparqlEndpoint> <http://%{URIQADefaultHost}s/sparql-auth/> .
 	  }
 	  WHERE
 	  {
 	    graph <%s>
 	    {
 	      {
-	      ?person foaf:holdsAccount <%s/%s#this> .
+	        ?person foaf:account <%s/%s#this> .
 		optional { ?person foaf:mbox ?mbox . } .  
 	      optional { ?person foaf:made ?made . ?made dc:identifier ?ident . ?made dc:title ?made_title . optional { ?made a ?made_type . } } .
 	      optional { ?person foaf:interest ?interest } .
 	      optional { ?interest rdfs:label ?interest_label  } .
 	      optional { ?person foaf:topic_interest ?topic_interest } .
 	      optional { ?topic_interest rdfs:label ?topic_interest_label  } .
-	        optional { ?idn cert:identity ?person ; rsa:public_exponent ?exp ; rsa:modulus ?mod . } .
+	        optional { ?person cert:key ?key . ?key cert:exponent ?exp ; cert:modulus ?mod . } .
 	      optional { ?person bio:event ?event_iri . ?event_iri rdf:type ?bioEvent . ?event_iri bio:date ?bioDate . ?event_iri bio:place ?bioPlace } .
 		optional { ?person pingback:to ?pb } .
 		optional { ?person pingback:service ?psvc } .
@@ -5356,7 +5686,7 @@ create procedure compose_foaf (in u_name varchar, in fmt varchar := 'n3', in p i
 	  {
 	    graph <%s>
 	    {
-	        ?person foaf:holdsAccount <%s/%s#this> .
+        ?person foaf:account <%s/%s#this> .
         {
           {
             ?container foaf:maker ?person;
@@ -5981,14 +6311,14 @@ create procedure sioc_compose_xml (in u_name varchar, in wai_name varchar, in in
       if (kind = 0)
 	{
 	  part := sprintf (
-	     ' CONSTRUCT { ?s ?p ?o . ?f foaf:holdsAccount ?ha . ?f rdfs:seeAlso ?sa . '||
+  	     ' CONSTRUCT { ?s ?p ?o . ?f foaf:account ?ha . ?f rdfs:seeAlso ?sa . '||
 	     '  ?frm sioc:scope_of ?role. ?role sioc:function_of ?member. ?frm sioc:type ?ft. ?frm sioc:id ?fid . '||
 	     '  ?frm rdfs:seeAlso ?fsa . ?frm sioc:has_space ?fh .  ?role sioc:has_scope ?frm . ' ||
 	     '  ?frm sioc:has_owner ?member . ?member sioc:owner_of ?frm . } \n' ||
 	     ' FROM <%s> WHERE { \n' ||
 	     '   { ?s ?p ?o . ?s sioc:id "%s" FILTER (?p != "http://www.w3.org/2000/01/rdf-schema#seeAlso" && ' ||
 	     ' 					  ?p != "http://rdfs.org/sioc/ns#creator_of") } union  \n' ||
-	     '   { ?f foaf:nick "%s" ; foaf:holdsAccount ?ha ; rdfs:seeAlso ?sa  } union  \n' ||
+  	     '   { ?f foaf:nick "%s" ; foaf:account ?ha ; rdfs:seeAlso ?sa  } union  \n' ||
 	     '   { ?frm sioc:scope_of ?role . ?role sioc:function_of ?member . '||
 	     '     ?member sioc:id "%s". ?frm sioc:type ?ft; sioc:id ?fid; rdfs:seeAlso ?fsa; sioc:has_space ?fh. '||
              '     OPTIONAL { ?frm sioc:has_owner ?member . } '||
@@ -6004,7 +6334,7 @@ create procedure sioc_compose_xml (in u_name varchar, in wai_name varchar, in in
 	    ?person foaf:mbox ?mbox .
 	    ?person foaf:mbox_sha1sum ?sha1 .
 	    ?person foaf:name ?full_name .
-	    ?person foaf:holdsAccount ?sioc_user .
+  	    ?person foaf:account ?sioc_user .
 	    ?sioc_user rdfs:seeAlso ?see_also .
 	    ?sioc_user a sioc:User .
 	    ?person foaf:firstName ?fn .
@@ -6053,7 +6383,7 @@ create procedure sioc_compose_xml (in u_name varchar, in wai_name varchar, in in
 	    {
 	      {
 	      ?person foaf:nick "%s" ;
-	      foaf:holdsAccount ?sioc_user .
+    	      foaf:account ?sioc_user .
 	      ?sioc_user rdfs:seeAlso ?see_also .
 	      optional { ?person foaf:mbox ?mbox ; foaf:mbox_sha1sum ?sha1 . } .
 	      optional {
@@ -6508,10 +6838,24 @@ create procedure SIOC..rdf_links_head_internal (in iri any)
 --
 create procedure SIOC..rdf_links_head (in iri any)
 {
+  if (iri is null)
+    return;
+
   http (SIOC..rdf_links_head_internal(iri));
 }
 ;
 
+create procedure ods_account_update ()
+{
+  if (registry_get ('ods_account_update') = '1') return;
+  update_quad_p (get_graph (), foaf_iri ('holdsAccount'), foaf_iri ('account'));
+  registry_set ('ods_account_update', '1');
+}
+;
+
+ods_account_update ()
+;
+
 use DB;
 
 create procedure WA_INTEREST_UPGRADE ()
@@ -6524,8 +6868,11 @@ create procedure WA_INTEREST_UPGRADE ()
   for (select WAUI_U_ID, WAUI_INTERESTS as F1, WAUI_INTEREST_TOPICS as F2 from DB.DBA.WA_USER_INFO) do
   {
   	 uname := (select U_NAME from DB.DBA.SYS_USERS where U_ID = WAUI_U_ID);
-     WA_USER_EDIT (uname, 'WAUI_INTERESTS', F2);
-     WA_USER_EDIT (uname, 'WAUI_INTEREST_TOPICS', F1);
+  	 if (not isnull (uname))
+  	 {
+       WA_USER_EDIT (uname, 'WAUI_INTERESTS', F2);
+       WA_USER_EDIT (uname, 'WAUI_INTEREST_TOPICS', F1);
+     }
   }
 
   registry_set ('WA_INTEREST_UPGRADE', 'done');
@@ -6536,9 +6883,7 @@ WA_INTEREST_UPGRADE ()
 
 create procedure ods_object_services_update ()
 {
-  if (registry_get ('ods_services_update') = '1')
-    return;
-
+  if (registry_get ('ods_services_update') = '1') return;
   SIOC..fill_ods_services ();
   registry_set ('ods_services_update', '1');
 }
diff --git a/appsrc/ODS-Framework/site_settings.vspx b/appsrc/ODS-Framework/site_settings.vspx
index fa8c12c..e06b570 100644
--- a/appsrc/ODS-Framework/site_settings.vspx
+++ b/appsrc/ODS-Framework/site_settings.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: site_settings.vspx,v 1.8.2.3 2011/01/31 11:17:30 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/sn.sql b/appsrc/ODS-Framework/sn.sql
index aa68acd..3ef0a5b 100644
--- a/appsrc/ODS-Framework/sn.sql
+++ b/appsrc/ODS-Framework/sn.sql
@@ -1,10 +1,10 @@
 --
---  $Id: sn.sql,v 1.6.2.3 2010/09/20 10:15:26 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/sn_connections.vspx b/appsrc/ODS-Framework/sn_connections.vspx
index 0a3375b..0df3471 100644
--- a/appsrc/ODS-Framework/sn_connections.vspx
+++ b/appsrc/ODS-Framework/sn_connections.vspx
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: sn_connections.vspx,v 1.9.2.1 2010/09/20 10:15:26 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/sn_delete.vspx b/appsrc/ODS-Framework/sn_delete.vspx
index e932da4..9706b17 100644
--- a/appsrc/ODS-Framework/sn_delete.vspx
+++ b/appsrc/ODS-Framework/sn_delete.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: sn_delete.vspx,v 1.4.2.1 2010/09/20 10:15:27 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/sn_export.vspx b/appsrc/ODS-Framework/sn_export.vspx
index f36b6da..a9bb33a 100644
--- a/appsrc/ODS-Framework/sn_export.vspx
+++ b/appsrc/ODS-Framework/sn_export.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: sn_export.vspx,v 1.5.2.1 2010/09/20 10:15:27 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/sn_make_inv.vspx b/appsrc/ODS-Framework/sn_make_inv.vspx
index 5b68bf3..1cef5a3 100644
--- a/appsrc/ODS-Framework/sn_make_inv.vspx
+++ b/appsrc/ODS-Framework/sn_make_inv.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: sn_make_inv.vspx,v 1.5.2.1 2010/09/20 10:15:27 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/sn_profile.vspx b/appsrc/ODS-Framework/sn_profile.vspx
index facabcb..bac5223 100644
--- a/appsrc/ODS-Framework/sn_profile.vspx
+++ b/appsrc/ODS-Framework/sn_profile.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: sn_profile.vspx,v 1.4.2.1 2010/09/20 10:15:27 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/sn_rec_inv.vspx b/appsrc/ODS-Framework/sn_rec_inv.vspx
index ed11abe..f608e7e 100644
--- a/appsrc/ODS-Framework/sn_rec_inv.vspx
+++ b/appsrc/ODS-Framework/sn_rec_inv.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: sn_rec_inv.vspx,v 1.5.2.1 2010/09/20 10:15:27 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/sn_sent_inv.vspx b/appsrc/ODS-Framework/sn_sent_inv.vspx
index 6109dc0..9cb1d22 100644
--- a/appsrc/ODS-Framework/sn_sent_inv.vspx
+++ b/appsrc/ODS-Framework/sn_sent_inv.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: sn_sent_inv.vspx,v 1.5.2.1 2010/09/20 10:15:27 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/sn_settings.vspx b/appsrc/ODS-Framework/sn_settings.vspx
index 9fe98e2..dd35d3a 100644
--- a/appsrc/ODS-Framework/sn_settings.vspx
+++ b/appsrc/ODS-Framework/sn_settings.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: sn_settings.vspx,v 1.4.2.1 2010/09/20 10:15:27 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/sn_user_export.vspx b/appsrc/ODS-Framework/sn_user_export.vspx
index 727043a..b0de81c 100644
--- a/appsrc/ODS-Framework/sn_user_export.vspx
+++ b/appsrc/ODS-Framework/sn_user_export.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: sn_user_export.vspx,v 1.6.2.1 2010/09/20 10:15:27 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/sparql_load.vspx b/appsrc/ODS-Framework/sparql_load.vspx
index 6ae2e45..6434c54 100644
--- a/appsrc/ODS-Framework/sparql_load.vspx
+++ b/appsrc/ODS-Framework/sparql_load.vspx
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: sparql_load.vspx,v 1.7.2.1 2010/09/20 10:15:27 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/sparql_save.vspx b/appsrc/ODS-Framework/sparql_save.vspx
index 13279f3..853cebe 100644
--- a/appsrc/ODS-Framework/sparql_save.vspx
+++ b/appsrc/ODS-Framework/sparql_save.vspx
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: sparql_save.vspx,v 1.5.2.1 2010/09/20 10:15:27 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/sql_rdf.sql b/appsrc/ODS-Framework/sql_rdf.sql
index 8c53b34..31706ec 100644
--- a/appsrc/ODS-Framework/sql_rdf.sql
+++ b/appsrc/ODS-Framework/sql_rdf.sql
@@ -1,10 +1,10 @@
 --
---  $Id: sql_rdf.sql,v 1.18.2.1 2010/09/20 10:15:27 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/stat.vspx b/appsrc/ODS-Framework/stat.vspx
index 2933917..85f52ea 100644
--- a/appsrc/ODS-Framework/stat.vspx
+++ b/appsrc/ODS-Framework/stat.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: stat.vspx,v 1.4.2.1 2010/09/20 10:15:27 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/tags.sql b/appsrc/ODS-Framework/tags.sql
index ddbbebd..1315ce9 100644
--- a/appsrc/ODS-Framework/tags.sql
+++ b/appsrc/ODS-Framework/tags.sql
@@ -1,10 +1,10 @@
 --
---  $Id: tags.sql,v 1.7.2.1 2010/09/20 10:15:27 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/tags.vspx b/appsrc/ODS-Framework/tags.vspx
index 87ea615..e3cdbb7 100644
--- a/appsrc/ODS-Framework/tags.vspx
+++ b/appsrc/ODS-Framework/tags.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: tags.vspx,v 1.4.2.1 2010/09/20 10:15:28 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/tbl.js b/appsrc/ODS-Framework/tbl.js
index 6404c47..7b59b01 100644
--- a/appsrc/ODS-Framework/tbl.js
+++ b/appsrc/ODS-Framework/tbl.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: tbl.js,v 1.2.2.30 2011/08/01 14:14:21 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2010 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -177,7 +177,7 @@ TBL.createRow = function (prefix, No, optionObject, viewMode) {
       // actions
       var td = OAT.Dom.create('td');
       td.id = prefix+'_td_'+ No+'_btn';
-      td.style.whiteSpace = 'nowrap';
+      td.style.cssText = 'white-space: nowrap; vertical-align: top;';
       tr.appendChild(td);
       if (options.id) {
       	var fld = OAT.Dom.create("input");
@@ -215,7 +215,9 @@ TBL.createRow = function (prefix, No, optionObject, viewMode) {
 
 TBL.createViewRow = function (prefix, options)
 {
-  var tbl = $(prefix+'_tbl');
+  var tbl = $(prefix+'_tbody');
+  if (!tbl)
+    tbl = $(prefix+'_tbl');
   if (tbl)
   {
     var No = TBL.No(tbl, prefix, options);
@@ -237,7 +239,7 @@ TBL.createViewRow = function (prefix, options)
         tr.appendChild(td);
 
         if (fldOptions.mode) {
-          fldName = prefix + '_' + fld + '_0';
+          fldName = prefix + '_' + fld + '_' + No;
           var fn = TBL["viewCell"+fldOptions.mode];
           if (fn)
         	  fn(td, prefix, fldName, 0, fldOptions);
@@ -275,10 +277,25 @@ TBL.clean = function (prefix) {
   return true;
 }
 
-TBL.createCellSelect = function (fldName) {
+TBL.createCellOptions = function (fld, fldOptions) {
+  if (fldOptions) {
+    if (fldOptions.className)
+      fld.className = fldOptions.className;
+    if (fldOptions.onblur)
+      fld.onblur = fldOptions.onblur;
+    if (fldOptions.cssText)
+      fld.style.cssText = fldOptions.cssText;
+    if (fldOptions.readOnly)
+      fld.readOnly = fldOptions.readOnly;
+  }
+}
+
+TBL.createCellSelect = function (fldName, fldOptions) {
 	var fld = OAT.Dom.create("select");
   fld.name = fldName;
   fld.id = fldName;
+  TBL.createCellOptions(fld, fldOptions);
+
   return fld;
 }
 
@@ -294,7 +311,7 @@ TBL.createCellCombolist = function (td, fldValue, fldOptions) {
   return fld;
 }
 
-TBL.createCell0 = function (td, prefix, fldName, No, fldOptions) {
+TBL.createCell0 = function (td, prefix, fldName, No, fldOptions, disabled) {
   var fld = OAT.Dom.create('input');
   fld.type = (fldOptions.type)? (fldOptions.type): 'text';
   fld.id = fldName;
@@ -303,20 +320,20 @@ TBL.createCell0 = function (td, prefix, fldName, No, fldOptions) {
     fld.value = fldOptions.value;
     fld.defaultValue = fld.value;
   }
-  if (fldOptions.className)
-    fld.className = fldOptions.className;
-  if (fldOptions.onblur)
-    fld.onblur = fldOptions.onblur;
+  TBL.createCellOptions(fld, fldOptions);
   fld.style.width = '95%';
-  if (fldOptions.cssText)
-    fld.style.cssText = fldOptions.cssText;
-  if (fldOptions.readOnly)
-    fld.readOnly = fldOptions.readOnly;
+
+  if (disabled)
+    fld.disabled = disabled;
 
   td.appendChild(fld);
   return fld;
 }
 
+TBL.viewCell0 = function (td, prefix, fldName, No, fldOptions) {
+  td.innerHTML = fldOptions.value;
+}
+
 TBL.createCell1 = function (td, prefix, fldName, No, fldOptions) {
   var fld = TBL.createCell0 (td, prefix, fldName, No, fldOptions)
   if (document.forms[0].elements['sid']) {
@@ -798,6 +815,15 @@ TBL.changeCell50 = function (srcFld) {
   var dstName = srcFld.name.replace('fld_1', 'fld_2');
   var dstFld = $(dstName);
   var dstImg = $(dstName+'_img');
+  if (srcValue == 'advanced') {
+    OAT.Dom.hide(dstFld);
+    OAT.Dom.hide(dstImg);
+    OAT.Dom.removeClass(dstFld, '_validate_');
+    var td = TBL.parent(dstFld, 'td');
+    TBL.showCell51Tbl(td, dstName);
+  } else {
+    OAT.Dom.show(dstFld);
+    OAT.Dom.addClass(dstFld, '_validate_');
   if (srcValue == 'public') {
     dstFld.value = 'foaf:Agent';
     dstFld.readOnly = true;
@@ -811,35 +837,38 @@ TBL.changeCell50 = function (srcFld) {
   } else {
     OAT.Dom.show(dstImg);
   }
+    var dstTbl = $(dstName.replace('_fld', '_tbl'));
+    OAT.Dom.hide(dstTbl);
+  }
 }
 
 TBL.viewCell50 = function (td, prefix, fldName, No, fldOptions) {
-	if (fldOptions.value == "public") {
-	  td.innerHTML = "Public";
-	} else if (fldOptions.value == "group") {
-	  td.innerHTML = "Group";
-	} else {
-	  td.innerHTML = "Personal";
-	}
+  TBL.createCell50(td, prefix, fldName, No, fldOptions, true);
 }
 
-TBL.createCell50 = function (td, prefix, fldName, No, fldOptions) {
+TBL.createCell50 = function (td, prefix, fldName, No, fldOptions, disabled) {
 	var fld = OAT.Dom.create("select");
 	fld.name = fldName;
 	fld.id = fldName;
 	TBL.selectOption(fld, fldOptions.value, "Personal", "person");
 	TBL.selectOption(fld, fldOptions.value, "Group", "group");
 	TBL.selectOption(fld, fldOptions.value, "Public", "public");
+  if (!fldOptions.noAdvanced)
+    TBL.selectOption(fld, fldOptions.value, "Advanced", "advanced");
   if (fldOptions.onchange)
     fld.onclick = fldOptions.onchange;
 
+  if (disabled)
+    fld.disabled = disabled;
+
   td.appendChild(fld);
+  td.style.verticalAlign = 'top';
   return fld;
 }
 
-TBL.createCell51 = function (td, prefix, fldName, No, fldOptions)
-{
+TBL.createCell51 = function (td, prefix, fldName, No, fldOptions) {
   var fld = TBL.createCell0 (td, prefix, fldName, No, fldOptions)
+  var srcFld = $(fld.name.replace('fld_2', 'fld_1'));
 
   td.appendChild(OAT.Dom.text(' '));
   var img = OAT.Dom.image('/ods/images/select.gif');
@@ -850,15 +879,84 @@ TBL.createCell51 = function (td, prefix, fldName, No, fldOptions)
     img.style.cssText = fldOptions.imgCssText;
 
   td.appendChild(img);
+  td.style.verticalAlign = 'top';
 
   var ta = new TypeAhead(fld.id, 'webIDs', {checkMode: 1, userParams: TBL.typeheadProperty});
   fld.setAttribute('autocomplete', 'off');
   fld.form.onsubmit = CheckSubmit;
   taVars[taVars.length] = ta;
 
+  if (srcFld.value == 'advanced') {
+    OAT.Dom.hide(fld);
+    OAT.Dom.hide(img);
+    OAT.Dom.removeClass(fld, '_validate_');
+    TBL.showCell51Tbl(td, fldName, fldOptions);
+  }
+  if (srcFld.value == 'public')
+    OAT.Dom.hide(img);
+
   return fld;
 }
 
+TBL.showCell51Tbl = function (td, fldName, fldOptions, disabled) {
+  OAT.Loader.load(["ajax", "json"], function(){TBL.showCell51TblInternal (td, fldName, fldOptions, disabled);});
+}
+
+TBL.showCell51TblInternal = function (td, fldName, fldOptions, disabled) {
+  var tblName = fldName.replace ('_fld', '_tbl');
+  var tbl = $(tblName);
+  if ($(tbl)) {
+    OAT.Dom.show(tbl);
+  } else {
+    if (!disabled) {
+      tbl = OAT.Dom.create('table', {width: '100%', id: tblName});
+    } else {
+      tbl = OAT.Dom.create('table', {width: '95%', id: tblName});
+    }
+    td.appendChild(tbl);
+    var tr = OAT.Dom.create('tr');
+    tbl.appendChild(tr);
+    var td = OAT.Dom.create('td', {width: '95%', style: 'padding: 0'});
+    tr.appendChild(td);
+    var tbl2 = OAT.Dom.create('table', {width: '100%', class: 'ODS_formList'});
+    td.appendChild(tbl2);
+    var tbody2 = OAT.Dom.create('tbody', {id: fldName+'_tbody'});
+    tbl2.appendChild(tbody2);
+    var tr2 = OAT.Dom.create('tr', {id: fldName+'_tr_no'});
+    tbody2.appendChild(tr2);
+    var td2 = OAT.Dom.create('td', {colspan: '3'});
+    tr2.appendChild(td2);
+    var S = '<b>No Criteria</b>';
+    td2.innerHTML = S.replace(/-TBL-/g, fldName);
+    if (!disabled) {
+      var td2 = OAT.Dom.create('td');
+      td2.style.cssText = 'white-space: nowrap; vertical-align: top;';
+      tr.appendChild(td2);
+      S = '<img src="/ods/images/icons/add_16.png" border="0" class="button pointer" onclick="javascript: TBL.createRow(\'-TBL-\', null, {fld_1: {mode: 55, tdCssText: \'width: 33%; vertical-align: top;\', className: \'_validate_\'}, fld_2: {mode: 56, tdCssText: \'width: 33%; vertical-align: top;\', cssText: \'display: none;\', className: \'_validate_\'}, fld_3: {mode: 57, tdCssText: \'width: 33%; vertical-align: top;\', cssText: \'display: none;\', className: \'_validate_\'}, btn_1: {mode: 55}});" alt="Add Condition" title="Add Condition" />';
+      td2.innerHTML = S.replace(/-TBL-/g, fldName);
+    }
+    if (fldOptions && fldOptions.value) {
+      for (var i = 0; i < fldOptions.value.length; i = i + 1) {
+        if (disabled) {
+          TBL.createViewRow(fldName, {fld_1: {mode: 55, value: fldOptions.value[i][1], valueExt: fldOptions.value[i][4], tdCssText: 'width: 33%;'}, fld_2: {mode: 56, value: fldOptions.value[i][2], tdCssText: 'width: 33%; vertical-align: top;'}, fld_3: {mode: 57, value: fldOptions.value[i][3], tdCssText: 'width: 33%; vertical-align: top;'}});
+        } else {
+          TBL.createRow(fldName, null, {fld_1: {mode: 55, value: fldOptions.value[i][1], valueExt: fldOptions.value[i][4], tdCssText: 'width: 33%;', className: '_validate_'}, fld_2: {mode: 56, value: fldOptions.value[i][2], tdCssText: 'width: 33%; vertical-align: top;', className: '_validate_'}, fld_3: {mode: 57, value: fldOptions.value[i][3], tdCssText: 'width: 33%; vertical-align: top;', className: '_validate_'}, btn_1: {mode: 55}});
+        }
+      }
+    }
+  }
+  return tbl;
+}
+
+TBL.viewCell51 = function (td, prefix, fldName, No, fldOptions) {
+  var srcFld = $(fldName.replace('fld_2', 'fld_1'));
+  if (srcFld && (srcFld.value == 'advanced')) {
+    TBL.showCell51Tbl(td, fldName, fldOptions, true);
+  } else {
+    TBL.viewCell0(td, prefix, fldName, No, fldOptions);
+  }
+}
+
 TBL.createCell52 = function (td, prefix, fldName, No, fldOptions, disabled) {
   function cb(td, prefix, fldName, No, fldOptions, disabled, ndx) {
   	var fld = OAT.Dom.create("input");
@@ -881,6 +979,8 @@ TBL.createCell52 = function (td, prefix, fldName, No, fldOptions, disabled) {
   cb(td, prefix, fldName+'_w'+suffix, No, fldOptions, disabled, 1);
   if (fldOptions.execute)
     cb(td, prefix, fldName+'_x'+suffix, No, fldOptions, disabled, 2);
+
+  td.style.verticalAlign = 'top';
 }
 
 TBL.viewCell52 = function (td, prefix, fldName, No, fldOptions) {
@@ -901,6 +1001,197 @@ TBL.clickCell52 = function (fld)
   $(fldName).checked = false;
 }
 
+TBL.changeCell55 = function (obj)
+{
+  var prefix = obj._prefix;
+  var No = obj._No;
+
+  TBL.createCell55Ext(obj);
+
+  var td = $(prefix+'_td_'+No+'_2');
+  td.innerHTML = '';
+  TBL.createCell56(td, prefix, prefix+'_fld_2_'+No, No, {className: '_validate_'});
+
+  var td = $(prefix+'_td_'+No+'_3');
+  td.innerHTML = '';
+  TBL.createCell57(td, prefix, prefix+'_fld_3_'+No, No, {className: '_validate_'});
+}
+
+TBL.createCell55 = function (td, prefix, fldName, No, fldOptions, disabled) {
+  var fld = TBL.createCellSelect(fldName, fldOptions);
+  fld._prefix = prefix;
+  fld._No = No;
+  fld.style.width = '95%';
+  OAT.Dom.option('', '', fld);
+  if (!TBL.predicates)
+    TBL.initValues();
+  if (TBL.predicates)
+    for (var i = 0; i < TBL.predicates.length; i = i + 2) {
+      OAT.Dom.option(TBL.predicates[i+1][0], TBL.predicates[i], fld);
+    }
+
+  if (fldOptions.value)
+    fld.value = fldOptions.value;
+
+  if (disabled)
+    fld.disabled = disabled;
+
+  if (!disabled)
+    fld.onchange = function(){TBL.changeCell55(this)};
+
+  td.appendChild(fld);
+  TBL.createCell55Ext(fld, fldOptions, disabled)
+
+  return fld;
+}
+
+TBL.createCell55Ext = function (obj, fldOptions, disabled) {
+  var prefix = obj._prefix;
+  var No = obj._No;
+
+  var predicate = TBL.predicateGet(prefix+'_fld_1_'+No);
+  if (!predicate)
+    return;
+
+  var fldName = prefix+'_fld_0_'+No;
+  if (predicate[1] != 'sparql') {
+    OAT.Dom.unlink(fldName);
+    return;
+  }
+
+  if ($(fldName))
+    return;
+
+  if (!fldOptions)
+    fldOptions = {valueExt: 'prefix sioc: <http://rdfs.org/sioc/ns#>\nprefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>\nprefix foaf: <http://xmlns.com/foaf/0.1/>\nASK where {^{webid}^ rdf:type foaf:Person}'};
+
+  var td = TBL.parent(obj, 'td');
+  var fld = OAT.Dom.create('textarea');
+  fld.id = fldName;
+  fld.name = fld.id;
+  fld.style.cssFloat = 'left';
+  fld.style.width = '94%';
+  fld.style.height = '8em';
+  if (fldOptions.valueExt)
+    fld.value = fldOptions.valueExt;
+  if (disabled)
+    fld.disabled = disabled;
+
+  td.appendChild(fld);
+}
+
+TBL.changeCell56 = function (obj) {
+  var prefix = obj._prefix;
+  var No = obj._No;
+
+  var td = $(prefix+'_td_'+No+'_3');
+  td.innerHTML = '';
+  TBL.createCell57(td, prefix, prefix+'_fld_3_'+No, No, {className: '_validate_'});
+}
+
+TBL.viewCell55 = function (td, prefix, fldName, No, fldOptions) {
+  TBL.createCell55(td, prefix, fldName, No, fldOptions, true);
+}
+
+TBL.createCell56 = function (td, prefix, fldName, No, fldOptions, disabled)
+{
+  var predicate = TBL.predicateGet(prefix+'_fld_1_'+No);
+  if (!predicate)
+    return;
+
+  var fld = TBL.createCellSelect(fldName, fldOptions);
+  fld._prefix = prefix;
+  fld._No = No;
+  fld.style.width = '95%';
+  OAT.Dom.option('', '', fld);
+  var predicateType = predicate[1];
+  if (TBL.compares)
+    for (var i = 0; i < TBL.compares.length; i = i + 2) {
+      var compareTypes = TBL.compares[i+1][1];
+      for (var j = 0; j < compareTypes.length; j++) {
+        if (compareTypes[j] == predicateType)
+          OAT.Dom.option(TBL.compares[i+1][0], TBL.compares[i], fld);
+      }
+    }
+  if (fldOptions.value)
+    fld.value = fldOptions.value;
+
+  if (disabled)
+    fld.disabled = disabled;
+
+  if (!disabled)
+    fld.onchange = function(){TBL.changeCell56(this)};
+
+  td.appendChild(fld);
+  return fld;
+}
+
+TBL.viewCell56 = function (td, prefix, fldName, No, fldOptions) {
+  TBL.createCell56(td, prefix, fldName, No, fldOptions, true);
+}
+
+TBL.createCell57 = function (td, prefix, fldName, No, fldOptions)
+{
+  var predicate = TBL.predicateGet(prefix+'_fld_1_'+No);
+  if (!predicate)
+    return;
+
+  var fld_2 = $(fldName.replace('fld_3', 'fld_2'));
+  if (!fld_2)
+    return;
+
+  var compare;
+  for (var i = 0; i < TBL.compares.length; i = i + 2) {
+    if (TBL.compares[i] == fld_2.value)
+      compare = TBL.compares[i+1];
+  }
+  if (!compare || (compare[2] == 0))
+    return;
+
+  if ((predicate[1] == 'boolean') || (predicate[1] == 'sparql')) {
+    var fld = OAT.Dom.create("select");
+    OAT.Dom.option('Yes', '1', fld);
+    OAT.Dom.option('No', '0', fld);
+  }
+  else
+  {
+    var fld = OAT.Dom.create("input");
+    fld.type = 'text';
+  }
+  fld.id = fldName;
+  fld.name = fld.id;
+  fld.style.width = '93%';
+  if (fldOptions.value)
+    fld.value = fldOptions.value;
+  if (fldOptions.className)
+    fld.className = fldOptions.className;
+  td.appendChild(fld);
+
+  for (var i = 0; i < predicate[3].length; i += 2) {
+    if (predicate[3][i] == 'size') {
+      fld['size'] = predicate[3][i+1];
+      fld.style.width = null;
+    }
+
+    if (predicate[3][i] == 'class')
+      fld.className = predicate[3][i+1];
+
+    if (predicate[3][i] == 'onclick')
+      OAT.Event.attach(fld, "click", new Function((predicate[3][i+1]).replace(/-FIELD-/g, fld.id)));
+
+    if (predicate[3][i] == 'button') {
+      var span = OAT.Dom.create("span");
+      span.innerHTML = ' ' + (predicate[3][i+1]).replace(/-FIELD-/g, fld.id);
+      td.appendChild(span);
+    }
+  }
+  return fld;
+}
+
+TBL.viewCell57 = function (td, prefix, fldName, No, fldOptions) {
+  TBL.createCell0(td, prefix, fldName, No, fldOptions, true);
+}
+
 TBL.createButton0 = function (td, prefix, fldName, No, fldOptions)
 {
   var fld = OAT.Dom.create('span');
@@ -1071,6 +1362,19 @@ TBL.createButton44 = function (td, prefix, fldName, No, fldOptions)
   }
 }
 
+TBL.createButton55 = function (td, prefix, fldName, No, fldOptions)
+{
+  var img = OAT.Dom.create('img');
+  img.src = '/ods/images/icons/trash_16.png';
+  img.alt = 'Delete row';
+  img.title = img.alt;
+  img.onclick = function(){TBL.deleteRow(prefix, No);};
+  OAT.Dom.addClass(img, 'button');
+
+  td.appendChild(img);
+  return img;
+}
+
 TBL.webidProperty = function(obj)
 {
   var S = 'p';
@@ -1109,3 +1413,26 @@ TBL.windowShow = function(sPage, sPageName, width, height)
   win = window.open(sPage, sPageName, "width="+width+",height="+height+",top=100,left=100,status=yes,toolbar=no,menubar=no,scrollbars=yes,resizable=yes");
   win.window.focus();
 }
+
+TBL.initValues = function () {
+  // load filters data
+  var x = function(data) {
+    var o = OAT.JSON.parse(data);
+    TBL.predicates = o[0];
+    TBL.compares = o[1];
+  }
+  OAT.AJAX.GET('/ods/api/filtersData', false, x, {async: false});
+}
+
+TBL.predicateGet = function (fldName) {
+  var fld = $(fldName)
+  if (fld) {
+    if (!TBL.predicates)
+      TBL.initValues();
+    for (var i = 0; i < TBL.predicates.length; i += 2) {
+      if (TBL.predicates[i] == fld.value)
+        return TBL.predicates[i+1];
+    }
+  }
+  return null;
+}
diff --git a/appsrc/ODS-Framework/terms.html b/appsrc/ODS-Framework/terms.html
index ea83148..145e3d6 100644
--- a/appsrc/ODS-Framework/terms.html
+++ b/appsrc/ODS-Framework/terms.html
@@ -1,12 +1,12 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
  -
- -  $Id: terms.html,v 1.5.2.1 2010/09/20 10:15:28 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/tools.vspx b/appsrc/ODS-Framework/tools.vspx
index ed7a7ba..1834195 100644
--- a/appsrc/ODS-Framework/tools.vspx
+++ b/appsrc/ODS-Framework/tools.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: tools.vspx,v 1.4.2.1 2010/09/20 10:15:28 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/trs_export.xml b/appsrc/ODS-Framework/trs_export.xml
index 4f026a1..c4f1ef8 100644
--- a/appsrc/ODS-Framework/trs_export.xml
+++ b/appsrc/ODS-Framework/trs_export.xml
@@ -1,12 +1,12 @@
 <?xml version ='1.0' encoding='UTF-8'?>
 <!--
  -
- -  $Id: trs_export.xml,v 1.3.2.1 2010/09/20 10:15:28 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/trs_export_all.xml b/appsrc/ODS-Framework/trs_export_all.xml
index 5dc11cb..937527c 100644
--- a/appsrc/ODS-Framework/trs_export_all.xml
+++ b/appsrc/ODS-Framework/trs_export_all.xml
@@ -1,12 +1,12 @@
 <?xml version ='1.0' encoding='UTF-8'?>
 <!--
  -  
- -  $Id: trs_export_all.xml,v 1.1.2.1 2010/09/20 10:15:28 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/typeahead.css b/appsrc/ODS-Framework/typeahead.css
index 6f51a60..ecce130 100644
--- a/appsrc/ODS-Framework/typeahead.css
+++ b/appsrc/ODS-Framework/typeahead.css
@@ -1,4 +1,4 @@
-/* $Id: typeahead.css,v 1.1.2.3 2010/09/20 10:15:28 source Exp $ */
+/* $Id$ */
 .THHideDropDown {
 	display: none;
 }
diff --git a/appsrc/ODS-Framework/ufoaf.xml b/appsrc/ODS-Framework/ufoaf.xml
index 2cdfcf1..dab9602 100644
--- a/appsrc/ODS-Framework/ufoaf.xml
+++ b/appsrc/ODS-Framework/ufoaf.xml
@@ -1,12 +1,12 @@
 <?xml version ='1.0' encoding='UTF-8'?>
 <!--
  -
- -  $Id: ufoaf.xml,v 1.14.2.1 2010/09/20 10:15:28 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uhome.vspx b/appsrc/ODS-Framework/uhome.vspx
index a3a896c..8eaf507 100644
--- a/appsrc/ODS-Framework/uhome.vspx
+++ b/appsrc/ODS-Framework/uhome.vspx
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: uhome.vspx,v 1.7.2.3 2010/09/20 10:15:28 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit.vspx b/appsrc/ODS-Framework/uiedit.vspx
index 9ad391e..86d2eaa 100644
--- a/appsrc/ODS-Framework/uiedit.vspx
+++ b/appsrc/ODS-Framework/uiedit.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: uiedit.vspx,v 1.23.2.22 2011/05/02 14:16:03 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_acl.vspx b/appsrc/ODS-Framework/uiedit_acl.vspx
index 2ab2d31..bdc82e2 100644
--- a/appsrc/ODS-Framework/uiedit_acl.vspx
+++ b/appsrc/ODS-Framework/uiedit_acl.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: uiedit_acl.vspx,v 1.1.4.2 2010/11/09 20:18:23 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_acls.vspx b/appsrc/ODS-Framework/uiedit_acls.vspx
index 354b36f..a495846 100644
--- a/appsrc/ODS-Framework/uiedit_acls.vspx
+++ b/appsrc/ODS-Framework/uiedit_acls.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_acls.vspx,v 1.1.4.2 2010/11/09 20:18:23 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2010 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -52,6 +52,7 @@
               <th width="1%">Action</th>
             </tr>
           </thead>
+          <tbody id="s_tbody">
           <tr id="s_tr_no"><td colspan="4"><b>No WebID Security</b></td></tr>
     		  <![CDATA[
     		    <script type="text/javascript">
@@ -65,6 +66,7 @@
             ?>
     		    </script>
     		  ]]>
+          </tbody>
         </table>
       </td>
       <td valign="top" nowrap="nowrap">
@@ -75,7 +77,7 @@
   <v:button name="btn_acl_update" action="simple" value="Update" xhtml_class="form-button">
     <v:on-post>
       <![CDATA[
-        self.iAcl := DB.DBA.wa_acl_params (e.ve_params);
+        self.iAcl := DB.DBA.wa_aci_params (e.ve_params);
         WA_USER_EDIT (self.u_name, 'WAUI_ACL', serialize (self.iAcl));
 
         self.vc_data_bind(e);
diff --git a/appsrc/ODS-Framework/uiedit_ann.vspx b/appsrc/ODS-Framework/uiedit_ann.vspx
index ae1ee54..e24fbb5 100644
--- a/appsrc/ODS-Framework/uiedit_ann.vspx
+++ b/appsrc/ODS-Framework/uiedit_ann.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: uiedit_ann.vspx,v 1.1.4.2 2010/09/27 14:45:39 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -60,6 +60,7 @@
 
   <vm:page>
     <vm:header>
+      <script type="text/javascript" src="validate.js">;</script>
       <script type="text/javascript" src="tbl.js">;</script>
       <script type="text/javascript" src="typeahead.js">;</script>
       <link rel="stylesheet" href="typeahead.css" type="text/css" />
diff --git a/appsrc/ODS-Framework/uiedit_buss.vspx b/appsrc/ODS-Framework/uiedit_buss.vspx
index a2e9fb0..83b813e 100644
--- a/appsrc/ODS-Framework/uiedit_buss.vspx
+++ b/appsrc/ODS-Framework/uiedit_buss.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_buss.vspx,v 1.19.2.7 2010/09/27 14:45:39 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_buss_0.vspx b/appsrc/ODS-Framework/uiedit_buss_0.vspx
index 0d1a289..72d4272 100644
--- a/appsrc/ODS-Framework/uiedit_buss_0.vspx
+++ b/appsrc/ODS-Framework/uiedit_buss_0.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_buss_0.vspx,v 1.1.2.4 2010/11/09 20:18:23 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_buss_1.vspx b/appsrc/ODS-Framework/uiedit_buss_1.vspx
index 5d13957..fd8e37b 100644
--- a/appsrc/ODS-Framework/uiedit_buss_1.vspx
+++ b/appsrc/ODS-Framework/uiedit_buss_1.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_buss_1.vspx,v 1.2.2.8 2011/01/25 14:11:28 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_buss_2.vspx b/appsrc/ODS-Framework/uiedit_buss_2.vspx
index 6fc5046..868581e 100644
--- a/appsrc/ODS-Framework/uiedit_buss_2.vspx
+++ b/appsrc/ODS-Framework/uiedit_buss_2.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_buss_2.vspx,v 1.1.2.11 2010/09/21 11:46:16 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_buss_3.vspx b/appsrc/ODS-Framework/uiedit_buss_3.vspx
index dfd12ac..0ef28b8 100644
--- a/appsrc/ODS-Framework/uiedit_buss_3.vspx
+++ b/appsrc/ODS-Framework/uiedit_buss_3.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_buss_3.vspx,v 1.1.2.7 2010/11/09 20:18:23 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_bz.vspx b/appsrc/ODS-Framework/uiedit_bz.vspx
index ae8c87a..78011ba 100644
--- a/appsrc/ODS-Framework/uiedit_bz.vspx
+++ b/appsrc/ODS-Framework/uiedit_bz.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: uiedit_bz.vspx,v 1.1.4.2 2010/09/27 14:45:40 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_groups.vspx b/appsrc/ODS-Framework/uiedit_groups.vspx
index e8d3a28..be7358f 100644
--- a/appsrc/ODS-Framework/uiedit_groups.vspx
+++ b/appsrc/ODS-Framework/uiedit_groups.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_groups.vspx,v 1.1.4.8 2011/05/20 12:02:32 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2010 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -499,6 +499,7 @@
             <tr>
               <td width="800px">
                 <table id="x_tbl" class="listing" cellspacing="0">
+                  <thead>
                   <tr class="listing_header_row">
                     <th>
                       Personal WebID
@@ -507,6 +508,9 @@
                       Action
                     </th>
                   </tr>
+                  </thead>
+                  <tbody id="x_tbody">
+                    <tr id="x_tr_no"><td colspan="2"><b>No Personal WebIDs</b></td></tr>
             		  <![CDATA[
             		    <script type="text/javascript">
                     <?vsp
@@ -519,12 +523,12 @@
                       for (N := 0; N < length (self.fg_members); N := N + 1)
                       {
                         if (length (self.fg_members[N]))
-                          http (sprintf ('ODSInitArray.push(function(){OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createRow("x", null, {fld_1: {mode: 51, className: "_validate_ _uri_", value: "%s"}});});});', self.fg_members[N]));
+                            http (sprintf ('ODSInitArray.push(function(){OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createRow("x", null, {fld_1: {mode: 51, className: "_validate_ _uri_", value: "%s", noAdvanced: true}});});});', self.fg_members[N]));
                       }
                     ?>
             		    </script>
             		  ]]>
-                  <tr id="x_tr_no"><td colspan="2"><b>No Personal WebIDs</b></td></tr>
+                  </tbody>
                 </table>
               </td>
               <td valign="top" nowrap="nowrap">
diff --git a/appsrc/ODS-Framework/uiedit_grp.vspx b/appsrc/ODS-Framework/uiedit_grp.vspx
index a28484b..7552a7e 100644
--- a/appsrc/ODS-Framework/uiedit_grp.vspx
+++ b/appsrc/ODS-Framework/uiedit_grp.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: uiedit_grp.vspx,v 1.1.4.2 2010/09/27 14:45:40 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_knows.vspx b/appsrc/ODS-Framework/uiedit_knows.vspx
index 90fd70e..54b24d9 100644
--- a/appsrc/ODS-Framework/uiedit_knows.vspx
+++ b/appsrc/ODS-Framework/uiedit_knows.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_knows.vspx,v 1.1.4.2 2010/12/07 11:11:31 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2010 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -90,7 +90,7 @@
 	                sql="select WUK_ID, WUK_URI, WUK_LABEL from DB.DBA.WA_USER_KNOWS where WUK_U_ID = :self.u_id"
 		              scrollable="1"
 		              editable="1"
-		              nrows="10">
+		              nrows="0">
 
         <v:template name="k_ds_header" type="simple" name-to-remove="table" set-to-remove="bottom">
       	  <table class="listing" rules="groups">
@@ -197,7 +197,7 @@
 		        </th>
             <td>
               <input type="text" name="k_import" id="k_import" value="" size="100" class="_validate_ _uri_" />
-              <input type="button" value="Download" onclick="javascript: knowsData(); return false;" class="button" />
+              <input type="button" value="Retrieve" onclick="javascript: knowsData(); return false;" class="button" />
               <img id="k_import_image" alt="Import knows URIs" src="/ods/images/oat/Ajax_throbber.gif" style="display: none" />
             </td>
           </tr>
@@ -221,7 +221,7 @@
                     </th>
                   </tr>
                 </thead>
-                <tr id="k_tr_no"><td colspan="3"><b>No downloaded items</b></td></tr>
+                <tr id="k_tr_no"><td colspan="3"><b>No retrieved items</b></td></tr>
               </table>
             </td>
           </tr>
diff --git a/appsrc/ODS-Framework/uiedit_ldap.vspx b/appsrc/ODS-Framework/uiedit_ldap.vspx
index cb1b972..2b50658 100644
--- a/appsrc/ODS-Framework/uiedit_ldap.vspx
+++ b/appsrc/ODS-Framework/uiedit_ldap.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_ldap.vspx,v 1.5.2.7 2010/09/27 14:45:40 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_ldap_include.vspx b/appsrc/ODS-Framework/uiedit_ldap_include.vspx
index 2b6e5b0..c00dec0 100644
--- a/appsrc/ODS-Framework/uiedit_ldap_include.vspx
+++ b/appsrc/ODS-Framework/uiedit_ldap_include.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_ldap_include.vspx,v 1.1.4.3 2010/12/07 11:11:31 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -101,7 +101,7 @@
 
   <h3>LDAP Servers Addministration</h3>
   <vm:if test="self.v_mode = 'LDAP/browse'">
-    <v:data-source name="dsrc" expression-type="sql" nrows="10" initial-offset="0">
+    <v:data-source name="dsrc" expression-type="sql" nrows="0" initial-offset="0">
       <v:before-data-bind>
         <![CDATA[
           control.ds_sql := sprintf ('select * from LDAP..LDAP_SERVERS where LS_USER_ID = %d', self.u_id);
diff --git a/appsrc/ODS-Framework/uiedit_likes.vspx b/appsrc/ODS-Framework/uiedit_likes.vspx
index 9fe7265..bfd28cd 100644
--- a/appsrc/ODS-Framework/uiedit_likes.vspx
+++ b/appsrc/ODS-Framework/uiedit_likes.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_likes.vspx,v 1.1.4.4 2011/05/02 14:16:03 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2010 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_offerlist.vspx b/appsrc/ODS-Framework/uiedit_offerlist.vspx
index fa5a241..5048a26 100644
--- a/appsrc/ODS-Framework/uiedit_offerlist.vspx
+++ b/appsrc/ODS-Framework/uiedit_offerlist.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_offerlist.vspx,v 1.1.2.15 2011/06/09 17:43:00 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -81,7 +81,7 @@
 	                sql="select WUOL_ID, WUOL_OFFER, WUOL_COMMENT from DB.DBA.WA_USER_OFFERLIST where WUOL_U_ID = :self.u_id and WUOL_TYPE = :self.ol_type"
 		              scrollable="1"
 		              editable="1"
-		              nrows="10">
+		              nrows="0">
 
         <v:template name="ol_ds_header" type="simple" name-to-remove="table" set-to-remove="bottom">
 	  <table class="listing" rules="groups">
diff --git a/appsrc/ODS-Framework/uiedit_others.vspx b/appsrc/ODS-Framework/uiedit_others.vspx
index 2e2aef5..87a7453 100644
--- a/appsrc/ODS-Framework/uiedit_others.vspx
+++ b/appsrc/ODS-Framework/uiedit_others.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_others.vspx,v 1.1.4.2 2010/12/07 11:11:31 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_owns.vspx b/appsrc/ODS-Framework/uiedit_owns.vspx
index ff10bc1..366d8a2 100644
--- a/appsrc/ODS-Framework/uiedit_owns.vspx
+++ b/appsrc/ODS-Framework/uiedit_owns.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_owns.vspx,v 1.1.4.3 2011/02/16 20:58:17 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2010 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -81,7 +81,7 @@
 	                sql="select WUOL_ID, WUOL_OFFER, WUOL_COMMENT from DB.DBA.WA_USER_OFFERLIST where WUOL_U_ID = :self.u_id and WUOL_TYPE = :self.ow_type"
 		              scrollable="1"
 		              editable="1"
-		              nrows="10">
+		              nrows="0">
 
         <v:template name="ow_ds_header" type="simple" name-to-remove="table" set-to-remove="bottom">
       	  <table class="listing" rules="groups">
diff --git a/appsrc/ODS-Framework/uiedit_personal.vspx b/appsrc/ODS-Framework/uiedit_personal.vspx
index a017245..d70a358 100644
--- a/appsrc/ODS-Framework/uiedit_personal.vspx
+++ b/appsrc/ODS-Framework/uiedit_personal.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_personal.vspx,v 1.33.2.25 2011/05/02 14:16:03 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_personal_0.vspx b/appsrc/ODS-Framework/uiedit_personal_0.vspx
index 9e98333..2c2d4b1 100644
--- a/appsrc/ODS-Framework/uiedit_personal_0.vspx
+++ b/appsrc/ODS-Framework/uiedit_personal_0.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_personal_0.vspx,v 1.1.2.9 2011/08/03 11:42:30 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -619,7 +619,7 @@
             <tr>
               <td valign="top"><input type="checkbox" name="cb_item_iKnows" id="cb_item_iKnows" value="1" /></td>
               <td valign="top">Knows URIs</td>
-              <td><?vsp self.show_data (self.iKnows, vector ('value')); ?></td>
+              <td><?vsp self.show_data (self.iKnows, vector ('value', 'name')); ?></td>
             </tr>
           </v:template>
         </table>
diff --git a/appsrc/ODS-Framework/uiedit_personal_1.vspx b/appsrc/ODS-Framework/uiedit_personal_1.vspx
index 01ec4ad..16f4e14 100644
--- a/appsrc/ODS-Framework/uiedit_personal_1.vspx
+++ b/appsrc/ODS-Framework/uiedit_personal_1.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_personal_1.vspx,v 1.1.2.18 2011/05/16 08:53:56 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -133,7 +133,7 @@
         self.s_photo.ufl_value := '';
         return;
       }
-      if (get_keyword ('up_photo', params, '') <> '' or (self.previe_path <> '' and self.s_photo.ufl_value <> ''))
+      if ((get_keyword ('up_photo', params, '') <> '') or (self.previe_path <> '' and self.s_photo.ufl_value <> ''))
       {
         declare dir, p_path, p_path_org, dotpos, up_cont any;
         declare p_path_size2 any;
@@ -195,10 +195,13 @@
           p_path := subseq (p_path, 4);
         WA_USER_EDIT (self.u_name, 'WAUI_PHOTO_URL', p_path);
       }
-      else
+      else if ((get_keyword ('s_photo', params) like 'http://%') or (get_keyword ('s_photo', params) like 'https://%'))
       {
-        if (get_keyword ('s_photo', params, '') = '')
-          WA_USER_EDIT (self.u_name, 'WAUI_PHOTO_URL', '');
+        WA_USER_EDIT (self.u_name, 'WAUI_PHOTO_URL', get_keyword ('s_photo', params));
+      }
+      else if (get_keyword ('s_photo', params) = '')
+      {
+        WA_USER_EDIT (self.u_name, 'WAUI_PHOTO_URL', '');
       }
       if (get_keyword ('up_audio', params, '') <> '')
       {
@@ -263,28 +266,28 @@
     ]]>
   </v:method>
 
-  <v:variable persist="0" name="utitle" type="varchar" default="''"/>
-  <v:variable persist="0" name="nick" type="varchar" default="''"/>
-  <v:variable persist="0" name="ftname" type="varchar" default="''"/>
-  <v:variable persist="0" name="lname" type="varchar" default="''"/>
-  <v:variable persist="0" name="fullname" type="varchar" default="''"/>
-  <v:variable persist="0" name="gender" type="varchar" default="''"/>
-  <v:variable persist="0" name="bdate" type="datetime" default="null"/>
-
-  <v:variable persist="0" name="wpage" type="varchar" default="''"/>
-  <v:variable persist="0" name="efoaf" type="varchar" default="''"/>
-  <v:variable persist="0" name="msign" type="varchar" default="''"/>
-  <v:variable persist="0" name="summ" type="varchar" default="''"/>
-  <v:variable persist="0" name="email" type="varchar" default="''"/>
-  <v:variable persist="0" name="photo" type="varchar" default="''"/>
-  <v:variable persist="0" name="audio" type="varchar" default="''"/>
-
-  <v:variable persist="0" name="inSearch" type="int" default="1"/>
-  <v:variable persist="0" name="showactive" type="int" default="1"/>
-  <v:variable persist="0" name="interests" type="varchar" default="''"/>
-  <v:variable persist="0" name="interestTopics" type="varchar" default="''"/>
-  <v:variable persist="0" name="appEnable" type="integer" default="0"/>
-  <v:variable persist="0" name="spbEnable" type="integer" default="0"/>
+  <v:variable persist="0" name="utitle" type="varchar" default="''" />
+  <v:variable persist="0" name="nick" type="varchar" default="''" />
+  <v:variable persist="0" name="ftname" type="varchar" default="''" />
+  <v:variable persist="0" name="lname" type="varchar" default="''" />
+  <v:variable persist="0" name="fullname" type="varchar" default="''" />
+  <v:variable persist="0" name="gender" type="varchar" default="''" />
+  <v:variable persist="0" name="bdate" type="datetime" default="null" />
+
+  <v:variable persist="0" name="wpage" type="varchar" default="''" />
+  <v:variable persist="0" name="efoaf" type="varchar" default="''" />
+  <v:variable persist="0" name="msign" type="varchar" default="''" />
+  <v:variable persist="0" name="summ" type="varchar" default="''" />
+  <v:variable persist="0" name="email" type="varchar" default="''" />
+  <v:variable persist="0" name="photo" type="varchar" default="''" />
+  <v:variable persist="0" name="audio" type="varchar" default="''" />
+
+  <v:variable persist="0" name="inSearch" type="int" default="1" />
+  <v:variable persist="0" name="showactive" type="int" default="1" />
+  <v:variable persist="0" name="interests" type="varchar" default="''" />
+  <v:variable persist="0" name="interestTopics" type="varchar" default="''" />
+  <v:variable persist="0" name="appEnable" type="integer" default="0" />
+  <v:variable persist="0" name="spbEnable" type="integer" default="0" />
 
   <v:variable name="sav0" type="varchar" default="'1'" />
   <v:variable name="sav1" type="varchar" default="'1'" />
@@ -406,16 +409,23 @@
     <div>
       <table class="ctl_grp">
         <tr>
+          <th>Account deactivation</th>
+          <td class="listing_col" nowrap="1">
+            <input type="button" value="Deactivate" onclick="return accountDisable('x_name');" />
+          </td>
+        </tr>
+        <tr>
           <th><label for="labelww">Login name</label></th>
           <td class="listing_col" nowrap="1">
-            <v:label value="--self.u_name" format="%s"/>
+            <v:label value="--self.u_name" format="%s" />
+            <v:text name="x_name" xhtml_id="x_name" type="hidden" value="--self.u_name" />
           </td>
         </tr>
         <tr>
           <th><label for="labelwwn">Nick name</label></th>
           <td class="listing_col" nowrap="1">
             <v:text name="nickn" value="--self.nick" format="%s">
-              <v:validator test="length" min="3" max="100" name="vv_nickn" message="Nick name cannot be shorter than 3 chars or longer than 100 chars"/>
+              <v:validator test="length" min="3" max="100" name="vv_nickn" message="Nick name cannot be shorter than 3 chars or longer than 100 chars" />
             </v:text>
           </td>
         </tr>
@@ -437,12 +447,12 @@
           <th><label for="regtitle">Title</label></th>
           <td class="listing_col" nowrap="1">
             <v:select-list name="regtitle">
-              <v:item name="" value=""/>
-              <v:item name="Mr" value="Mr"/>
-              <v:item name="Mrs" value="Mrs"/>
-              <v:item name="Dr" value="Dr"/>
-              <v:item name="Ms" value="Ms"/>
-              <v:item name="Sir" value="Sir"/>
+              <v:item name="" value="" />
+              <v:item name="Mr" value="Mr" />
+              <v:item name="Mrs" value="Mrs" />
+              <v:item name="Dr" value="Dr" />
+              <v:item name="Ms" value="Ms" />
+              <v:item name="Sir" value="Sir" />
 
               <v:before-data-bind>
                 <![CDATA[
@@ -458,8 +468,8 @@
           <th><label for="f_name">First Name</label></th>
           <td class="listing_col" nowrap="1">
             <v:text name="f_name" error-glyph="*" value="--self.ftname" xhtml_style="width:216px" fmt-function="wa_utf8_to_wide" xhtml_onblur="javascript: fillFullName (this.form.full_name, this.form.f_name, this.form.l_name, false)">
-              <v:validator test="length" min="0" max="50" name="vv_f_name1" message="First name cannot be longer then 50 chars" empty-allowed="1"/>
-              <v:validator test="sql" name="vv_f_name2" expression="length(trim(self.f_name.ufl_value)) > 50" message="First name cannot be longer then 50 chars" empty-allowed="1"/>
+              <v:validator test="length" min="0" max="50" name="vv_f_name1" message="First name cannot be longer then 50 chars" empty-allowed="1" />
+              <v:validator test="sql" name="vv_f_name2" expression="length(trim(self.f_name.ufl_value)) > 50" message="First name cannot be longer then 50 chars" empty-allowed="1" />
             </v:text>
             <div style="display:inline; color:red;"><v:error-summary match="f_name" /></div>
             <vm:u-prop-select name="sel_1" value="self.sav1" />
@@ -469,8 +479,8 @@
           <th><label for="l_name">Last Name</label></th>
           <td class="listing_col" nowrap="1">
             <v:text name="l_name" error-glyph="*" value="--self.lname" xhtml_style="width:216px" fmt-function="wa_utf8_to_wide" xhtml_onblur="javascript: fillFullName (this.form.full_name, this.form.f_name, this.form.l_name, false)">
-              <v:validator test="length" min="0" max="50" message="Last name cannot be longer then 50 chars" empty-allowed="1" name="vv_lname1"/>
-              <v:validator test="sql" expression="length(trim(self.l_name.ufl_value)) > 50" name="vv_lname2" message="Last name cannot be longer then 50 chars" empty-allowed="1"/>
+              <v:validator test="length" min="0" max="50" message="Last name cannot be longer then 50 chars" empty-allowed="1" name="vv_lname1" />
+              <v:validator test="sql" expression="length(trim(self.l_name.ufl_value)) > 50" name="vv_lname2" message="Last name cannot be longer then 50 chars" empty-allowed="1" />
             </v:text>
             <div style="display:inline; color:red;"><v:error-summary match="l_name" /></div>
             <vm:u-prop-select name="sel_2" value="self.sav2" />
@@ -481,7 +491,7 @@
           <td class="listing_col" nowrap="1">
             <v:text name="full_name" error-glyph="*" value="--self.fullname" xhtml_style="width:216px" fmt-function="wa_utf8_to_wide" xhtml_onfocus="javascript: fillFullName (this.form.full_name, this.form.f_name, this.form.l_name, true)">
               <v:validator test="length" min="0" max="100" name="vv_fulname1" message="Full name cannot be longer then 100 chars" empty-allowed="1" />
-              <v:validator test="sql" expression="length(trim(self.full_name.ufl_value)) > 100" name="vv_fulname2" message="Full name cannot be longer then 100 chars" mpty-allowed="1"/>
+              <v:validator test="sql" expression="length(trim(self.full_name.ufl_value)) > 100" name="vv_fulname2" message="Full name cannot be longer then 100 chars" mpty-allowed="1" />
             </v:text>
             <div style="display:inline; color:red;"><v:error-summary match="full_name" /></div>
             <vm:u-prop-select name="sel_3" value="self.sav3" />
@@ -500,9 +510,9 @@
           <th><label for="regender">Gender</label></th>
           <td class="listing_col" nowrap="1">
             <v:select-list name="regender">
-              <v:item name="Not Specified" value="unknown"/>
-              <v:item name="Male" value="male"/>
-              <v:item name="Female" value="female"/>
+              <v:item name="Not Specified" value="unknown" />
+              <v:item name="Male" value="male" />
+              <v:item name="Female" value="female" />
               <v:before-data-bind>
                 <v:script><![CDATA[
                   control.ufl_value := self.gender;
@@ -516,14 +526,14 @@
         <tr id="pers_5" class="initial_hidden">
           <th><label for="regbday">Birthday</label></th>
           <td class="listing_col" nowrap="1">
-            <v:text name="regbdate" xhtml_id="regbdate" value="--case when isnull (self.bdate) then '' else left (datestring (self.bdate), 10) end" xhtml_size="10" xhtml_onclick="javascript: datePopup(\'regbdate\');"/>
+            <v:text name="regbdate" xhtml_id="regbdate" value="--case when isnull (self.bdate) then '' else left (datestring (self.bdate), 10) end" xhtml_size="10" xhtml_onclick="javascript: datePopup(\'regbdate\');" />
             <vm:u-prop-select name="sel_6" value="self.sav6" />
           </td>
         </tr>
          <tr>
            <th><label for="w_page" id="lb_1">Personal Webpage</label></th>
            <td class="listing_col" nowrap="1">
-             <v:text name="w_page" value="--self.wpage" xhtml_class="_validate_ _url_ _canEmpty_" xhtml_style="width:216px" xhtml_onblur="javascript: validateField(this);"/>
+             <v:text name="w_page" value="--self.wpage" xhtml_class="_validate_ _url_ _canEmpty_" xhtml_style="width:216px" xhtml_onblur="javascript: validateField(this);" />
              <vm:u-prop-select name="sel_7" value="self.sav7" />
            </td>
          </tr>
@@ -573,15 +583,15 @@
            <th><label for="m_sign">Mail Signature<span class="small">Automatically added to mails sent by you</span></label></th>
            <td class="listing_col" nowrap="1">
              <v:textarea name="m_sign" value="--self.msign" xhtml_rows="4" xhtml_cols="80" fmt-function="wa_utf8_to_wide" error-glyph="*">
-               <v:validator test="length" min="0" max="255" name="vv_m_sign1" message="Mail Signature cannot be longer then 255 chars" empty-allowed="1"/>
+               <v:validator test="length" min="0" max="255" name="vv_m_sign1" message="Mail Signature cannot be longer then 255 chars" empty-allowed="1" />
              </v:textarea>
-             <v:text type="hidden" name="sel_9" value="3"/>
+             <v:text type="hidden" name="sel_9" value="3" />
            </td>
          </tr>
          <tr>
            <th><label for="s_summ">Summary</label></th>
            <td class="listing_col" nowrap="1">
-             <v:textarea name="s_summ" value="--self.summ" xhtml_rows="4" xhtml_cols="80" fmt-function="wa_utf8_to_wide" error-glyph="*"/>
+             <v:textarea name="s_summ" value="--self.summ" xhtml_rows="4" xhtml_cols="80" fmt-function="wa_utf8_to_wide" error-glyph="*" />
              <vm:u-prop-select name="sel_33" value="self.sav33" />
            </td>
          </tr>
@@ -592,7 +602,7 @@
           <td class="listing_col" nowrap="1">
             <v:textarea name="s_tag" value="--WA_USER_TAG_GET(self.u_name)" xhtml_cols="50" xhtml_rows="5" />
             <v:button action="browse" name="tagsbt" value="Import Tags..." selector="get_tags_popup.vspx" child-window-options="scrollbar=yes,resizable=yes,menubar=no,height=600,width=800">
-              <v:field name="s_tag"/>
+              <v:field name="s_tag" />
             </v:button>
           </td>
          </tr>
@@ -789,9 +799,9 @@
            </th>
            <td>
              <v:select-list xhtml_class="select" name="app_enable" xhtml_id="app_enable">
-               <v:item value="0" name="disabled"/>
-               <v:item value="1" name="click"/>
-               <v:item value="2" name="hover"/>
+               <v:item value="0" name="disabled" />
+               <v:item value="1" name="click" />
+               <v:item value="2" name="hover" />
                <v:before-data-bind>
                  <v:script>
                    <![CDATA[
diff --git a/appsrc/ODS-Framework/uiedit_personal_2.vspx b/appsrc/ODS-Framework/uiedit_personal_2.vspx
index 3d12873..8d1ef31 100644
--- a/appsrc/ODS-Framework/uiedit_personal_2.vspx
+++ b/appsrc/ODS-Framework/uiedit_personal_2.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_personal_2.vspx,v 1.2.2.7 2011/01/25 14:11:29 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_personal_3.vspx b/appsrc/ODS-Framework/uiedit_personal_3.vspx
index 793214a..62557eb 100644
--- a/appsrc/ODS-Framework/uiedit_personal_3.vspx
+++ b/appsrc/ODS-Framework/uiedit_personal_3.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_personal_3.vspx,v 1.1.2.11 2010/10/07 13:22:38 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_personal_4.vspx b/appsrc/ODS-Framework/uiedit_personal_4.vspx
index 973e2dc..d0fe99e 100644
--- a/appsrc/ODS-Framework/uiedit_personal_4.vspx
+++ b/appsrc/ODS-Framework/uiedit_personal_4.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_personal_4.vspx,v 1.1.2.10 2010/11/09 20:18:23 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_personal_5.vspx b/appsrc/ODS-Framework/uiedit_personal_5.vspx
index 3ce2fa0..ae7a2b3 100644
--- a/appsrc/ODS-Framework/uiedit_personal_5.vspx
+++ b/appsrc/ODS-Framework/uiedit_personal_5.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_personal_5.vspx,v 1.1.2.9 2010/09/20 10:15:30 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_personal_6.vspx b/appsrc/ODS-Framework/uiedit_personal_6.vspx
index d7b028d..95880ef 100644
--- a/appsrc/ODS-Framework/uiedit_personal_6.vspx
+++ b/appsrc/ODS-Framework/uiedit_personal_6.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_personal_6.vspx,v 1.1.2.10 2010/12/07 11:11:31 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -78,7 +78,7 @@
 	                sql="select WUF_ID, WUF_LABEL, WUF_URI from DB.DBA.WA_USER_FAVORITES where WUF_U_ID = :self.u_id"
 		              scrollable="1"
 		              editable="1"
-		              nrows="10">
+		              nrows="0">
 
         <v:template name="r_ds_header" type="simple" name-to-remove="table" set-to-remove="bottom">
       	  <table class="listing" rules="groups">
diff --git a/appsrc/ODS-Framework/uiedit_prj.vspx b/appsrc/ODS-Framework/uiedit_prj.vspx
index c816f43..06dbdf4 100644
--- a/appsrc/ODS-Framework/uiedit_prj.vspx
+++ b/appsrc/ODS-Framework/uiedit_prj.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_prj.vspx,v 1.12.2.7 2011/05/16 08:53:56 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -76,7 +76,7 @@
 	                sql="select WUP_ID, WUP_NAME, WUP_URL, WUP_DESC from DB.DBA.WA_USER_PROJECTS where WUP_U_ID = :self.u_id"
 		              scrollable="1"
 		              editable="1"
-		              nrows="10">
+                  nrows="0">
 
         <v:template name="m_ds_header" type="simple" name-to-remove="table" set-to-remove="bottom">
 	  <table class="listing" rules="groups">
diff --git a/appsrc/ODS-Framework/uiedit_pwd.vspx b/appsrc/ODS-Framework/uiedit_pwd.vspx
index 678ec90..a7f8085 100644
--- a/appsrc/ODS-Framework/uiedit_pwd.vspx
+++ b/appsrc/ODS-Framework/uiedit_pwd.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_pwd.vspx,v 1.15.2.19 2011/08/01 14:14:21 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -121,7 +121,7 @@
           }
        ?>
       <v:url name="sec_url_5" value="X.509 Certificates" url="--sprintf('uiedit_sec.vspx?page=3&tabNo=5')" xhtml_class="--case when self.tabNo = 5 then 'tabX activeTabX' else 'tabX' end"/>
-      <v:url name="sec_url_6" value="Private Keys" url="--sprintf('uiedit_sec.vspx?page=3&tabNo=7')" xhtml_class="--case when self.tabNo = 7 then 'tabX activeTabX' else 'tabX' end"/>
+      <v:url name="sec_url_6" value="Certificate & Private Key" url="--sprintf('uiedit_sec.vspx?page=3&tabNo=7')" xhtml_class="--case when self.tabNo = 7 then 'tabX activeTabX' else 'tabX' end"/>
     </div>
     <div class="contents">
   <v:form name="usr_pwd" type="simple" method="POST" action="uiedit_sec.vspx?page=3">
diff --git a/appsrc/ODS-Framework/uiedit_related.vspx b/appsrc/ODS-Framework/uiedit_related.vspx
index 85b94a1..f2482fd 100644
--- a/appsrc/ODS-Framework/uiedit_related.vspx
+++ b/appsrc/ODS-Framework/uiedit_related.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_related.vspx,v 1.9.2.6 2010/09/27 14:45:40 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -43,7 +43,7 @@
 		  sql="select WUR_ID, WUR_LABEL, WUR_SEEALSO_IRI, WUR_P_IRI from WA_USER_RELATED_RES where WUR_U_ID = :self.u_id"
                   scrollable="1"
                   editable="1"
-                  nrows="1000">
+                  nrows="0">
 		  <v:before-data-bind>
 if (not e.ve_is_post and self.del_related is not null)
 {
@@ -127,25 +127,22 @@ if (not e.ve_is_post and control.te_rowset[0] = self.edit_related)
 	          </div>
         <label for="related_url">URI</label>
 		  <br/>
-        <v:text name="related_url" value="" xhtml_id="related_url" xhtml_size="50" xhtml_class="_validate_ _url_ _canEmpty_" xhtml_onblur="javascript: validateField(this);" />
+        <v:text name="related_url" value="" xhtml_id="related_url" xhtml_size="50" xhtml_class="_validate_ _url_" />
 		  <br />
         <label for="related_name">Label</label>
         <br/>
-		  <v:text name="related_name" value="" xhtml_id="related_name" xhtml_size="50" error-glyph="*">
-		      <v:validator test="sql" expression="length(trim(control.ufl_value)) < 2" message="Label can not be empty"/>
-		  </v:text>
+        <v:text name="related_name" value="" xhtml_id="related_name" xhtml_size="50" xhtml_class="_validate_" />
 		  <br/>
-	<v:check-box name="spb" value="1" xhtml_id="spb"/> 
+	<v:check-box name="spb" value="1" xhtml_id="spb"/>
 	<label for="spb">Issue Semantic Pingback</label>
         <br/>
 	      <span class="fm_ctl_btn">
-		  <v:button name="related_cancel1" value="Cancel" action="simple" enabled="--equ(isnull(self.edit_related),0)">
+          <v:button name="related_cancel1" value="Cancel" action="simple">
 		      <v:on-post>
 self.related_name.ufl_value := null;
 self.related_url.ufl_value := null;
 self.edit_related := null;
               self.vc_data_bind (e);
-control.vc_enabled := 0;
 		      </v:on-post>
 		  </v:button>
           <v:button name="related_save1" value="--case when self.edit_related is null then 'Add' else 'Update' end" action="simple" xhtml_onclick="return validateInputs(this);">
@@ -156,9 +153,9 @@ declare stat, msg, dta, mdta, qrs any;
 if (not self.vc_is_valid)
   return;
 
-url := self.related_url.ufl_value;
-name := self.related_name.ufl_value;
-pred := get_keyword ('pred', e.ve_params);
+              url := trim (self.related_url.ufl_value);
+              name := trim (self.related_name.ufl_value);
+              pred := trim (get_keyword ('pred', e.ve_params));
 if (not length (url))
   {
     self.vc_is_valid := 0;
@@ -173,13 +170,25 @@ if (not length (pred))
   }
               self.rel_iri := pred;
 pred := ods_iri_expand (pred);
+              if (self.edit_related is null and exists (select 1 from WA_USER_RELATED_RES where WUR_U_ID = self.u_id and WUR_SEEALSO_IRI = url and WUR_P_IRI = pred))
+              {
+                self.vc_is_valid := 0;
+                self.vc_error_message := 'The relation already exists';
+                return;
+              }
+
 if (self.edit_related is null)
   {
-    insert into WA_USER_RELATED_RES (WUR_U_ID,WUR_LABEL,WUR_SEEALSO_IRI, WUR_P_IRI) values (self.u_id, name, url, pred);
+                insert into WA_USER_RELATED_RES (WUR_U_ID, WUR_LABEL, WUR_SEEALSO_IRI, WUR_P_IRI)
+                  values (self.u_id, name, url, pred);
   }
 else
   {
-    update WA_USER_RELATED_RES set WUR_LABEL = name, WUR_SEEALSO_IRI = url, WUR_P_IRI = pred where WUR_ID = self.edit_related;
+                update WA_USER_RELATED_RES
+                   set WUR_LABEL = name,
+                       WUR_SEEALSO_IRI = url,
+                       WUR_P_IRI = pred
+                 where WUR_ID = self.edit_related;
   }
 	      if (self.spb.ufl_selected)
 	        {
diff --git a/appsrc/ODS-Framework/uiedit_sec.vspx b/appsrc/ODS-Framework/uiedit_sec.vspx
index afee9ad..5ce3b53 100644
--- a/appsrc/ODS-Framework/uiedit_sec.vspx
+++ b/appsrc/ODS-Framework/uiedit_sec.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: uiedit_sec.vspx,v 1.1.4.2 2010/09/27 14:45:40 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_svc.vspx b/appsrc/ODS-Framework/uiedit_svc.vspx
index 5665358..290a6b7 100644
--- a/appsrc/ODS-Framework/uiedit_svc.vspx
+++ b/appsrc/ODS-Framework/uiedit_svc.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_svc.vspx,v 1.14.2.7 2011/05/02 14:16:03 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -39,7 +39,7 @@
 		  <th>URI</th>
 		    <th width="50px">Action</th>
 	      </tr>
-      <v:data-set name="svc" sql="select US_ID, US_SVC, US_IRI, US_KEY from WA_USER_SVC where US_U_ID = :self.u_id" scrollable="1" editable="1" nrows="1000">
+      <v:data-set name="svc" sql="select US_ID, US_SVC, US_IRI, US_KEY from WA_USER_SVC where US_U_ID = :self.u_id" scrollable="1" editable="1" nrows="0">
 		  <v:before-data-bind>
 if (not e.ve_is_post and self.del_svc is not null)
 {
diff --git a/appsrc/ODS-Framework/uiedit_val.vspx b/appsrc/ODS-Framework/uiedit_val.vspx
index 719dacc..7e4267c 100644
--- a/appsrc/ODS-Framework/uiedit_val.vspx
+++ b/appsrc/ODS-Framework/uiedit_val.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: uiedit_val.vspx,v 1.1.4.2 2010/09/27 14:45:41 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_validation.vspx b/appsrc/ODS-Framework/uiedit_validation.vspx
index b99c6ce..e30f0e3 100644
--- a/appsrc/ODS-Framework/uiedit_validation.vspx
+++ b/appsrc/ODS-Framework/uiedit_validation.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_validation.vspx,v 1.3.2.5 2011/03/23 12:18:30 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_visb.vspx b/appsrc/ODS-Framework/uiedit_visb.vspx
index 19b45eb..87fe0b4 100644
--- a/appsrc/ODS-Framework/uiedit_visb.vspx
+++ b/appsrc/ODS-Framework/uiedit_visb.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: uiedit_visb.vspx,v 1.4.2.2 2010/11/09 20:18:23 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/uiedit_wishlist.vspx b/appsrc/ODS-Framework/uiedit_wishlist.vspx
index 88c0079..3ca9729 100644
--- a/appsrc/ODS-Framework/uiedit_wishlist.vspx
+++ b/appsrc/ODS-Framework/uiedit_wishlist.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: uiedit_wishlist.vspx,v 1.1.2.16 2011/06/09 17:43:00 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -81,7 +81,7 @@
 	                sql="select WUOL_ID, WUOL_OFFER, WUOL_COMMENT from DB.DBA.WA_USER_OFFERLIST where WUOL_U_ID = :self.u_id and WUOL_TYPE = :self.wl_type"
 		              scrollable="1"
 		              editable="1"
-		              nrows="10">
+		              nrows="0">
 
         <v:template name="wl_ds_header" type="simple" name-to-remove="table" set-to-remove="bottom">
 	  <table class="listing" rules="groups">
diff --git a/appsrc/ODS-Framework/uiedit_ws.vspx b/appsrc/ODS-Framework/uiedit_ws.vspx
index caf1cf2..dda8763 100644
--- a/appsrc/ODS-Framework/uiedit_ws.vspx
+++ b/appsrc/ODS-Framework/uiedit_ws.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: uiedit_ws.vspx,v 1.1.4.2 2010/09/27 14:45:41 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/url_rew.sql b/appsrc/ODS-Framework/url_rew.sql
index 5ab5c43..d65d567 100644
--- a/appsrc/ODS-Framework/url_rew.sql
+++ b/appsrc/ODS-Framework/url_rew.sql
@@ -1,14 +1,14 @@
 --
 --  url_rev.sql
 --
---  $Id: url_rew.sql,v 1.35.2.11 2011/08/01 14:14:21 source Exp $
+--  $Id$
 --
 --  URL rewrite rules for ODS
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -255,6 +255,17 @@ create procedure DB.DBA.ODS_URLREW_XRDS (in path varchar)
 }
 ;
 
+create procedure DB.DBA.ODS_SERVICES_PAGE (in par varchar, in fmt varchar, in val varchar)
+{
+  declare ret any;
+
+  if (par = 'part')
+    {
+      ret := sprintf ('http://%s%s/services/%s', SIOC..get_cname (), SIOC..get_base_path (), val);
+    }
+  return sprintf (fmt, ret);
+}
+;
 
 -- Person IRI as HTML
 DB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_person_html', 1,
@@ -402,6 +413,14 @@ DB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_item_html', 1,
     NULL,
     2);
 
+DB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_item_briefcase_html', 1,
+    '/dataspace/doc/([^/]*)/(briefcase)/([^/]*)/folder/([^/\\?]*)',
+    vector('uname', 'app', 'inst', 'item'), 3,
+    '%s?id=%s&what=c', vector('inst', 'item'),
+    'DB.DBA.ODS_ITEM_PAGE',
+    NULL,
+    2);
+
 -- Wiki item is special case
 DB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_wiki_item_html', 1,
     '/dataspace/doc/([^/]*)/wiki/([^/]*)/([^\\?]*)',
@@ -610,7 +629,7 @@ DB.DBA.HTTP_VARIANT_ADD ('ods_rule_list1', 'sioc\x24', 'sioc.n3',     'text/rdf+
 DB.DBA.HTTP_VARIANT_ADD ('ods_rule_list1', 'sioc\x24', 'sioc.nt',     'text/n3',             1.0, location_hook=>null);
 DB.DBA.HTTP_VARIANT_ADD ('ods_rule_list1', 'sioc\x24', 'sioc.rdf',    'application/rdf+xml', 1.0, location_hook=>null);
 DB.DBA.HTTP_VARIANT_ADD ('ods_rule_list1', 'sioc\x24', 'sioc.jmd',    'application/microdata+json', 1.0, location_hook=>null);
-DB.DBA.HTTP_VARIANT_ADD ('ods_rule_list1', 'sioc\x24', 'sioc.jld',    'application/x-json+ld', 1.0, location_hook=>null);
+DB.DBA.HTTP_VARIANT_ADD ('ods_rule_list1', 'sioc\x24', 'sioc.jld',    'application/ld+json', 1.0, location_hook=>null);
 
 create procedure DB.DBA.ODS_URLREW_HDR (in in_path varchar)
 {
@@ -633,7 +652,7 @@ create procedure DB.DBA.ODS_URLREW_HDR (in in_path varchar)
 	vector ('turtle','N3/Turtle', 'text/turtle'),
 	vector ('ttl', 	'N3/Turtle', 'text/rdf+ttl'),
 	vector ('jmd', 	'Microdata+JSON', 'application/microdata+json'),
-	vector ('jld', 	'JSON-LD', 'application/x-json+ld')
+	vector ('jld', 	'JSON-LD', 'application/ld+json')
 	);
   path := regexp_replace (in_path, '/(about|foaf|sioc)\\.([a-z0-9]+)\x24', '', 1, null);	
   if (regexp_match ('/dataspace/(person|organization)/([^/]+)\x24', path) is not null)
@@ -651,7 +670,7 @@ create procedure DB.DBA.ODS_URLREW_HDR (in in_path varchar)
     {
       tmp := path;
     }
-  links := 'Link: ';
+  links := sprintf ('X-RDF-Graph: http://%{WSHost}s/dataspace\r\nX-SPARQL-Endpoint: http://%{WSHost}s/sparql-auth/\r\nLink: ');
   links := links || sprintf ('<http://%s%s>; rel="http://xmlns.com/foaf/0.1/primaryTopic",', host, tmp);
   links := links || sprintf ('\r\n <http://%s%s>; rev="describedby",', host, tmp);
   if (uname is not null)
@@ -694,7 +713,7 @@ DB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_rdf', 1,
     '/dataspace/([^\\?]*)', vector('path'), 1,
     '/dataspace/raw/%s/sioc', vector('path'),
     null, --'DB.DBA.ODS_DET_REF',
-    '(application/rdf.xml)|(text/rdf.n3)|(text/rdf.turtle)|(text/rdf.ttl)|([a-z]+/turtle)|(application/x-turtle)|(text/n3)|(application/json)|(application/microdata+json)|(application/x-json+ld)',
+    '(application/rdf.xml)|(text/rdf.n3)|(text/rdf.turtle)|(text/rdf.ttl)|([a-z]+/turtle)|(application/x-turtle)|(text/n3)|(application/json)|(application/microdata+json)|(application/ld+json)',
     2,
     303,
     null --'^{sql:DB.DBA.ODS_URLREW_HDR}^'
@@ -705,7 +724,7 @@ DB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_rdf_next', 1,
     '/dataspace/(.*)/page/([0-9]*)', vector('path', 'page'), 1,
     '/ods/data/rdf/%U.%U?page=%U', vector('path', '*accept*', 'page'),
     'DB.DBA.ODS_DET_REF',
-    '(application/rdf.xml)|(text/rdf.n3)|(text/rdf.turtle)|(text/rdf.ttl)|([a-z]+/turtle)|(application/x-turtle)|(text/n3)|(application/json)|(application/microdata+json)|(application/x-json+ld)',
+    '(application/rdf.xml)|(text/rdf.n3)|(text/rdf.turtle)|(text/rdf.ttl)|([a-z]+/turtle)|(application/x-turtle)|(text/n3)|(application/json)|(application/microdata+json)|(application/ld+json)',
     2,
     303,
     null --'^{sql:DB.DBA.ODS_URLREW_HDR}^'
@@ -746,10 +765,20 @@ DB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_error', 1,
     null,
     2);
 
+DB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ods_services', 1,
+    '/dataspace/doc/services/([^\\?]*)\x24',
+    vector('part'), 1,
+    '/describe/?url=%U', vector('part'),
+    'DB.DBA.ODS_SERVICES_PAGE',
+    null,
+    2,
+    302);
+
 -- All rules are processed in the order below.
 -- Every rule will be tried and last matching rule will win
 DB.DBA.URLREWRITE_CREATE_RULELIST ('ods_rule_list1', 1,
    	vector(
+	  'ods_services',
 	  'ods_person_html',
 	  'ods_person_yadis',
 	  'ods_apps_html',
@@ -766,6 +795,7 @@ DB.DBA.URLREWRITE_CREATE_RULELIST ('ods_rule_list1', 1,
 	  'ods_discussion_home_html',
 	  'ods_discussion_html',
 	  'ods_item_html',
+    'ods_item_briefcase_html',
     'ods_item_discussion_html',
     'ods_item_annotation_html',
 	  'ods_wiki_item_html',
diff --git a/appsrc/ODS-Framework/url_rule.vspx b/appsrc/ODS-Framework/url_rule.vspx
index 2994bd3..3e0f5de 100644
--- a/appsrc/ODS-Framework/url_rule.vspx
+++ b/appsrc/ODS-Framework/url_rule.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: url_rule.vspx,v 1.2.2.2 2011/01/25 14:11:29 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/user_rdf.sql b/appsrc/ODS-Framework/user_rdf.sql
index 8829dfe..8bf0d1c 100644
--- a/appsrc/ODS-Framework/user_rdf.sql
+++ b/appsrc/ODS-Framework/user_rdf.sql
@@ -1,10 +1,10 @@
 --
---  $Id: user_rdf.sql,v 1.8.2.1 2010/09/20 10:15:31 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/user_template.vspx b/appsrc/ODS-Framework/user_template.vspx
index 8f41751..3c26d42 100644
--- a/appsrc/ODS-Framework/user_template.vspx
+++ b/appsrc/ODS-Framework/user_template.vspx
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: user_template.vspx,v 1.6.2.1 2010/09/20 10:15:31 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/users/css/users.css b/appsrc/ODS-Framework/users/css/users.css
index e73d441..4c9a9d2 100644
--- a/appsrc/ODS-Framework/users/css/users.css
+++ b/appsrc/ODS-Framework/users/css/users.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: users.css,v 1.2.2.9 2010/12/20 12:27:09 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2010 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/users/js/users.js b/appsrc/ODS-Framework/users/js/users.js
index 937e23e..75674af 100644
--- a/appsrc/ODS-Framework/users/js/users.js
+++ b/appsrc/ODS-Framework/users/js/users.js
@@ -3,7 +3,7 @@
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2007 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -647,14 +647,14 @@ function init()
 	    rfTab.go(1);
       if (typeof (uriParams['openid.signed']) != 'undefined' && uriParams['openid.signed'] != '') {
         var x = function (params, param, data, property) {
-          if (params[param] && params[param].length != 0)
+            if (params[param] && params[param].length != 0 &&  params[param] != 'undefined')
             data[property] = params[param];
         }
         var data = {};
         var ns;
         for (var prop in uriParams) {
           if (uriParams.hasOwnProperty(prop) && (uriParams[prop] == 'http://openid.net/srv/ax/1.0')) {
-            ns = prop.replace('openid.ax.', '');
+              ns = prop.replace('openid.ns.', '');
             break;
           }
         }
@@ -663,6 +663,7 @@ function init()
           x(uriParams, 'openid.'+ns+'.value.email', data, 'mbox');
           x(uriParams, 'openid.'+ns+'.value.firstname', data, 'firstName');
           x(uriParams, 'openid.'+ns+'.value.fname', data, 'name');
+            x(uriParams, 'openid.'+ns+'.value.fullname', data, 'name');
           x(uriParams, 'openid.'+ns+'.value.language', data, 'language');
           x(uriParams, 'openid.'+ns+'.value.lastname', data, 'family_name');
           x(uriParams, 'openid.'+ns+'.value.fname', data, 'nick');
@@ -688,6 +689,8 @@ function init()
           var tbl = $('rf_table_1');
           addProfileRowInput(tbl, 'Login Name', 'rf_uid_1', {value: data['nick'], width: '150px'});
           addProfileRowInput(tbl, 'E-Mail', 'rf_email_1', {value: data['mbox'], width: '300px'});
+          if (data['name'])
+            addProfileRowValue(tbl, 'Full Name', data['name']);
           rfCheckUpdate(1);
       }
       else if (typeof (uriParams['openid.mode']) != 'undefined' && uriParams['openid.mode'] == 'cancel')
@@ -872,8 +875,8 @@ function init()
 
     pfTabInit('pf_tab_2_', $v('formTab2'));
 	}
-  if (!startForm) {
     var userName;
+  if (!startForm) {
     if (typeof (uriParams['userName']) != 'undefined' && uriParams['userName'] != '')
       userName = uriParams['userName'];
 
@@ -889,10 +892,75 @@ function init()
     if (validateSession || userName)
       selectProfile(userName);
   }
+	if ($v('mode') == 'html') {
+	  var host = document.location.protocol + '//' + document.location.host;
+    $('hostTag_1').href = host + $('hostTag_1').getAttribute("href");
+    $('hostTag_2').href = host + $('hostTag_2').getAttribute("href");
+
+    if (userName) {
+      // add link & meta tags
+      var S =
+        '<link id="userTag_1"  rel="meta" type="application/rdf+xml" title="SIOC" href="[HOST]/dataspace/[USER]/sioc.rdf" />\n' +
+        '<link id="userTag_2"  rel="meta" type="application/rdf+xml" title="FOAF" href="[HOST]/dataspace/person/[USER]/foaf.rdf" />\n' +
+        '<link id="userTag_3"  rel="meta" type="text/rdf+n3" title="FOAF" href="[HOST]/dataspace/person/[USER]/foaf.n3" />\n' +
+        '<link id="userTag_4"  rel="meta" type="application/json" title="FOAF" href="[HOST]/dataspace/person/[USER]/foaf.json" />\n' +
+        '<link id="userTag_5"  rel="http://xmlns.com/foaf/0.1/primaryTopic"  title="About" href="[HOST]/dataspace/person/[USER]#this" />\n' +
+        '<link id="userTag_6"  rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />\n' +
+        '<meta id="userTag_7"  name="dc.language" content="en" scheme="rfc1766" />\n' +
+        '<meta id="userTag_8"  name="dc.creator" content="[USER]" />\n' +
+        '<meta id="userTag_9"  name="dc.description" content="ODS HTML [USER]s page" />\n' +
+        '<meta id="userTag_10" name="dc.title" content="ODS HTML [USER]s page" />\n' +
+        '<link id="userTag_11" rev="describedby" title="About" href="[HOST]/dataspace/person/[USER]#this" />\n' +
+        '<link id="userTag_12" rel="schema.geo" href="http://www.w3.org/2003/01/geo/wgs84_pos#" />\n' +
+        '<meta id="userTag_13" http-equiv="X-XRDS-Location" content="[HOST]/dataspace/[USER]/yadis.xrds" />\n' +
+        '<meta id="userTag_14" http-equiv="X-YADIS-Location" content="[HOST]/dataspace/[USER]/yadis.xrds" />\n' +
+        '<link id="userTag_15" rel="meta" type="application/xml+apml" title="APML 0.6" href="[HOST]/dataspace/[USER]/apml.xml" />\n' +
+        '<link id="userTag_16" rel="alternate" type="application/atom+xml" title="OpenSocial Friends" href="[HOST]/feeds/people/[USER]/friends" />';
+      S = S.replace ('[HOST]', host);
+      S = S.replace ('[USER]', userName);
+      var tag_1  = OAT.Dom.create('link', {id: 'userTag_1',  rel: 'meta', type: 'application/rdf+xml', title: 'SIOC', href: userHref('[HOST]/dataspace/[USER]/sioc.rdf', host, userName)});
+      var tag_2  = OAT.Dom.create('link', {id: 'userTag_2',  rel: 'meta', type: 'application/rdf+xml', title: 'FOAF', href: userHref('[HOST]/dataspace/person/[USER]/foaf.rdf', host, userName)});
+      var tag_3  = OAT.Dom.create('link', {id: 'userTag_3',  rel: 'meta', type: 'text/rdf+n3', title: 'FOAF', href: userHref('[HOST]/dataspace/person/[USER]/foaf.n3', host, userName)});
+      var tag_4  = OAT.Dom.create('link', {id: 'userTag_4',  rel: 'meta', type: 'application/json', title: 'FOAF', href: userHref('[HOST]/dataspace/person/[USER]/foaf.json', host, userName)});
+      var tag_5  = OAT.Dom.create('link', {id: 'userTag_5',  rel: 'http://xmlns.com/foaf/0.1/primaryTopic', title: 'About', href: userHref('[HOST]/dataspace/person/[USER]#this', host, userName)});
+      var tag_6  = OAT.Dom.create('link', {id: 'userTag_6',  rel: 'schema.dc', href: userHref('http://purl.org/dc/elements/1.1/', host, userName)});
+      var tag_7  = OAT.Dom.create('meta', {id: 'userTag_7',  name: 'dc.language', content: 'en', scheme: 'rfc1766'});
+      var tag_8  = OAT.Dom.create('meta', {id: 'userTag_8',  name: 'dc.creator', content: userHref('[USER]', host, userName)});
+      var tag_9  = OAT.Dom.create('meta', {id: 'userTag_9',  name: 'dc.description', content: userHref('ODS HTML [USER]\'s page', host, userName)});
+      var tag_10 = OAT.Dom.create('meta', {id: 'userTag_10', name: 'dc.title', content: userHref('ODS HTML [USER]\'s page', host, userName)});
+      var tag_11 = OAT.Dom.create('link', {id: 'userTag_11', rev: 'describedby', title: 'About', href: userHref('[HOST]/dataspace/person/[USER]#this', host, userName)});
+      var tag_12 = OAT.Dom.create('link', {id: 'userTag_12', rel: 'schema.geo', href: userHref('http://www.w3.org/2003/01/geo/wgs84_pos#', host, userName)});
+      var tag_13 = OAT.Dom.create('meta', {id: 'userTag_13', "http-equiv": 'X-XRDS-Location', content: userHref('[HOST]/dataspace/[USER]/yadis.xrds', host, userName)});
+      var tag_14 = OAT.Dom.create('meta', {id: 'userTag_14', "http-equiv": 'X-YADIS-Location', content: userHref('[HOST]/dataspace/[USER]/yadis.xrds', host, userName)});
+      var tag_15 = OAT.Dom.create('link', {id: 'userTag_15', rel: 'meta', type: 'application/xml+apml', title: 'APML 0.6', href: userHref('[HOST]/dataspace/[USER]/apml.xml', host, userName)});
+      var tag_16 = OAT.Dom.create('link', {id: 'userTag_16', rel: 'alternate', type: 'application/atom+xml', title: 'OpenSocial Friends', href: userHref('[HOST]/feeds/people/[USER]/friends', host, userName)});
+      $('hostTag_2').parentNode.insertBefore(tag_1, $('hostTag_2').nextSibling);
+      tag_1.parentNode.insertBefore (tag_2 , tag_1.nextSibling);
+      tag_2.parentNode.insertBefore (tag_3 , tag_1.nextSibling);
+      tag_3.parentNode.insertBefore (tag_4 , tag_1.nextSibling);
+      tag_4.parentNode.insertBefore (tag_5 , tag_1.nextSibling);
+      tag_5.parentNode.insertBefore (tag_6 , tag_1.nextSibling);
+      tag_6.parentNode.insertBefore (tag_7 , tag_1.nextSibling);
+      tag_7.parentNode.insertBefore (tag_8 , tag_1.nextSibling);
+      tag_8.parentNode.insertBefore (tag_9 , tag_1.nextSibling);
+      tag_9.parentNode.insertBefore (tag_10, tag_1.nextSibling);
+      tag_10.parentNode.insertBefore(tag_11, tag_1.nextSibling);
+      tag_11.parentNode.insertBefore(tag_12, tag_1.nextSibling);
+      tag_12.parentNode.insertBefore(tag_13, tag_1.nextSibling);
+      tag_13.parentNode.insertBefore(tag_14, tag_1.nextSibling);
+      tag_14.parentNode.insertBefore(tag_15, tag_1.nextSibling);
+      tag_15.parentNode.insertBefore(tag_16, tag_1.nextSibling);
+	  }
+	}
 
   OAT.MSG.send(OAT, 'PAGE_LOADED');
 }
 
+function userHref(S, host, userName)
+{
+  return (S.replace ('[HOST]', host)).replace ('[USER]', userName);
+}
+
 function lfCallback(oldIndex, newIndex)
 {
   $('lf_login').disabled = false;
@@ -2124,6 +2192,8 @@ function addProfileRowInput(tbl, label, fName, fOptions) {
   fld.type = 'type';
   fld.id = fName;
   fld.name = fld.id;
+  if (fld.value == 'undefined')
+    fld.value = '';
   td.appendChild(fld);
 
 	tbl.appendChild(tr);
@@ -2418,7 +2488,6 @@ function ufProfileCallback(data) {
 			// main
       hiddenCreate('c_nick', null, tagValue(user, 'nickName'));
       $('ob_left_name').innerHTML = tagValue(user, 'fullName');
-      fieldUpdate(user, 'nickName', 'pf_nickName');
 			fieldUpdate(user, 'name', 'pf_loginName');
 			fieldUpdate(user, 'nickName', 'pf_nickName');
 			fieldUpdate(user, 'mail', 'pf_mail', aclData);
@@ -3527,3 +3596,17 @@ function knowsData() {
 	}
 	OAT.AJAX.GET(S, '', x, {onstart : function() {OAT.Dom.show('k_import_image')}, onend : function() {OAT.Dom.hide('k_import_image')}});
 }
+
+function userDisable(userName)
+{
+  var S = '/ods/api/user.disable?name='+encodeURIComponent($v(userName)) + '&sid=' + $v('sid') + '&realm=wa';
+	var x = function(data) {
+    var xml = OAT.Xml.createXmlDoc(data);
+    if (!hasError(xml, false)) {
+      alert('User\'s account is disabled!');
+      logoutUrl();
+    }
+	}
+  OAT.AJAX.GET(S, '', x);
+}
+
diff --git a/appsrc/ODS-Framework/users/users.html b/appsrc/ODS-Framework/users/users.html
index bdfef47..723c6d9 100644
--- a/appsrc/ODS-Framework/users/users.html
+++ b/appsrc/ODS-Framework/users/users.html
@@ -1,7 +1,33 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+ -
+ -  $Id$
+ -
+ -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+ -  project.
+ -
+ -  Copyright (C) 1998-2012 OpenLink Software
+ -
+ -  This project is free software; you can redistribute it and/or modify it
+ -  under the terms of the GNU General Public License as published by the
+ -  Free Software Foundation; only version 2 of the License, dated June 1991.
+ -
+ -  This program is distributed in the hope that it will be useful, but
+ -  WITHOUT ANY WARRANTY; without even the implied warranty of
+ -  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ -  General Public License for more details.
+ -
+ -  You should have received a copy of the GNU General Public License along
+ -  with this program; if not, write to the Free Software Foundation, Inc.,
+ -  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ -
+ -
+-->
 <html>
   <head>
-    <title>Virtuoso Web Applications</title>
+    <title>ODS users's pages</title>
+    <link id="hostTag_1" rel="openid.server" title="OpenID Server" href="/openid" />
+    <link id="hostTag_2" rel="openid2.provider" title="OpenID v2 Server" href="/openid" />
     <link rel="stylesheet" type="text/css" href="/ods/users/css/users.css" />
     <link rel="stylesheet" type="text/css" href="/ods/default.css" />
     <link rel="stylesheet" type="text/css" href="/ods/nav_framework.css" />
@@ -79,7 +105,7 @@
                   <div id="lf_page_0" class="tabContent" >
                 <table class="form" cellspacing="5">
                   <tr>
-                    <th width="30%">
+                        <th width="20%">
                           <label for="lf_uid">User ID</label>
                     </th>
                     <td nowrap="nowrap">
@@ -99,7 +125,7 @@
                   <div id="lf_page_1" class="tabContent" style="display: none">
                     <table class="form" cellspacing="5">
                   <tr>
-                        <th width="30%">
+                        <th width="20%">
                           <label for="lf_openId">OpenID URL</label>
                     </th>
                         <td nowrap="nowrap">
@@ -111,7 +137,7 @@
                   <div id="lf_page_2" class="tabContent" style="display: none">
                     <table class="form" cellspacing="5">
                   <tr>
-                        <th width="30%">
+                        <th width="20%">
                     </th>
                     <td nowrap="nowrap">
                           <span id="lf_facebookData" style="min-height: 20px;"></span>
@@ -136,7 +162,7 @@
                   <div id="lf_page_4" class="tabContent" style="display: none">
                     <table id="lf_table_4" class="form" cellspacing="5">
                       <tr>
-                        <th width="30%">
+                        <th width="20%">
                         </th>
                         <td>
                           <span id="lf_twitter" style="min-height: 20px;"></span>
@@ -219,7 +245,7 @@
                   <div id="rf_page_1" class="tabContent" >
                     <table id="rf_table_1" class="form" cellspacing="5">
                       <tr>
-                        <th width="30%">
+                        <th width="20%">
                           <label for="rf_openId">OpenID</label>
                         </th>
                         <td nowrap="nowrap">
@@ -231,7 +257,7 @@
                   <div id="rf_page_2" class="tabContent" >
                     <table id="rf_table_2" class="form" cellspacing="5">
                       <tr>
-                        <th width="30%">
+                        <th width="20%">
                         </th>
                         <td nowrap="nowrap">
                           <span id="rf_facebookData" style="min-height: 20px;"></span>
@@ -256,7 +282,7 @@
                   <div id="rf_page_4" class="tabContent" style="display: none">
                     <table id="rf_table_4" class="form" cellspacing="5">
                       <tr>
-                        <th width="30%">
+                        <th width="20%">
                         </th>
                         <td>
                           <span id="rf_twitter" style="min-height: 20px;"></span>
@@ -283,7 +309,7 @@
                 <div>
                   <table class="form" cellspacing="5">
                     <tr>
-                      <th width="30%">
+                      <th width="20%">
                       </th>
                       <td nowrap="nowrap">
                         <input type="checkbox" name="rf_is_agreed" value="1" id="rf_is_agreed"/><label for="rf_is_agreed">I agree to the <a href="/ods/terms.html" target="_blank">Terms of Service</a>.</label>
@@ -354,6 +380,12 @@
                       <div id="pf_page_0_1" class="tabContent" style="display:none;">
                         <table class="form" cellspacing="5">
                           <tr>
+                            <th>Account deactivation</th>
+                            <td>
+                              <input type="button" value="Deactivate" onclick="return userDisable('pf_loginName');" />
+                            </td>
+                          </tr>
+                          <tr>
                             <th>
                               <label for="pf_loginName">Login Name</label>
                             </th>
@@ -1501,7 +1533,7 @@
                       		        </th>
                                   <td>
                                     <input type="text" class="_validate_ _uri_" size="100" value="" id="k_import" name="k_import">
-                                    <input type="button" class="button" onclick="javascript: knowsData(); return false;" value="Download">
+                                    <input type="button" class="button" onclick="javascript: knowsData(); return false;" value="Retrieve">
                                     <img style="display: none;" src="/ods/images/oat/Ajax_throbber.gif" alt="Import knows URIs" id="k_import_image">
                                   </td>
                                 </tr>
@@ -1528,7 +1560,7 @@
                                       <tbody>
                                         <tr id="k_tr_no">
                                            <td colspan="3">
-                                             <b>No downloaded items</b>
+                                             <b>No retrieved items</b>
                                            </td>
                                         </tr>
                                       </tbody>
@@ -2244,7 +2276,7 @@
      <div id="FT_R">
        <a href="/ods/faq.html">FAQ</a> | <a href="/ods/privacy.html">Privacy</a> | <a href="/ods/rabuse.vspx">Report Abuse</a>
        <div>
-            Copyright © 1999-2011 OpenLink Software
+            Copyright © 1999-2012 OpenLink Software
        </div>
      </div>
     </div>
diff --git a/appsrc/ODS-Framework/users/users.jsp b/appsrc/ODS-Framework/users/users.jsp
index 61db09a..690273b 100644
--- a/appsrc/ODS-Framework/users/users.jsp
+++ b/appsrc/ODS-Framework/users/users.jsp
@@ -1,12 +1,12 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
  -
- -  $Id: users.jsp,v 1.5.2.43 2011/08/03 11:42:30 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -48,27 +48,6 @@
 <%@ page import="org.apache.commons.fileupload.*" %>
 <%@ page import="org.apache.commons.fileupload.disk.*" %>
 <%@ page import="org.apache.commons.fileupload.servlet.*" %>
-<html>
-  <head>
-    <title>Virtuoso Web Applications</title>
-    <link rel="stylesheet" type="text/css" href="/ods/users/css/users.css" />
-    <link rel="stylesheet" type="text/css" href="/ods/default.css" />
-    <link rel="stylesheet" type="text/css" href="/ods/nav_framework.css" />
-    <link rel="stylesheet" type="text/css" href="/ods/typeahead.css" />
-    <link rel="stylesheet" type="text/css" href="/ods/ods-bar.css" />
-    <link rel="stylesheet" type="text/css" href="/ods/rdfm.css" />
-    <script type="text/javascript" src="/ods/users/js/users.js"></script>
-    <script type="text/javascript" src="/ods/common.js"></script>
-    <script type="text/javascript" src="/ods/typeahead.js"></script>
-    <script type="text/javascript" src="/ods/tbl.js"></script>
-    <script type="text/javascript" src="/ods/validate.js"></script>
-    <script type="text/javascript">
-      // OAT
-      var toolkitPath="/ods/oat";
-      var featureList = ["ajax", "json", "tab", "combolist", "calendar", "rdfmini", "grid", "graphsvg", "tagcloud", "map", "timeline", "anchor"];
-    </script>
-    <script type="text/javascript" src="/ods/oat/loader.js"></script>
-  </head>
   <%!
     XPathFactory factory = XPathFactory.newInstance();
     XPath xpath = factory.newXPath();
@@ -353,6 +332,9 @@
     String $_formMode = "";
     if (getParameter(items, request, "formMode") != null)
       $_formMode = getParameter(items, request, "formMode");
+  String $_host;
+  String $_hostLinks = "";
+  String $_userLinks = "";
 
     try
     {
@@ -1009,12 +991,63 @@
       {
         $_sid = "";
       }
+
+    $_host = (new URL(request.getScheme(), request.getServerName(), request.getServerPort(), "")).toString();
+    $_hostLinks =
+      "    <link rel=\"openid.server\" title=\"OpenID Server\" href=\"[HOST]/openid\" />\n" +
+      "    <link rel=\"openid2.provider\" title=\"OpenID v2 Server\" href=\"[HOST]/openid\" />";
+    $_hostLinks = $_hostLinks.replace ("[HOST]", $_host);
+
+    if ($_userName != null) {
+      $_userLinks =
+        "    <link rel=\"meta\" type=\"application/rdf+xml\" title=\"SIOC\" href=\"[HOST]/dataspace/[USER]/sioc.rdf\" />\n" +
+        "    <link rel=\"meta\" type=\"application/rdf+xml\" title=\"FOAF\" href=\"[HOST]/dataspace/person/[USER]/foaf.rdf\" />\n" +
+        "    <link rel=\"meta\" type=\"text/rdf+n3\" title=\"FOAF\" href=\"[HOST]/dataspace/person/[USER]/foaf.n3\" />\n" +
+        "    <link rel=\"meta\" type=\"application/json\" title=\"FOAF\" href=\"[HOST]/dataspace/person/[USER]/foaf.json\" />\n" +
+        "    <link rel=\"http://xmlns.com/foaf/0.1/primaryTopic\"  title=\"About\" href=\"[HOST]/dataspace/person/[USER]#this\" />\n" +
+        "    <link rel=\"schema.dc\" href=\"http://purl.org/dc/elements/1.1/\" />\n" +
+        "    <meta name=\"dc.language\" content=\"en\" scheme=\"rfc1766\" />\n" +
+        "    <meta name=\"dc.creator\" content=\"[USER]\" />\n" +
+        "    <meta name=\"dc.description\" content=\"ODS HTML [USER]'s page\" />\n" +
+        "    <meta name=\"dc.title\" content=\"ODS HTML [USER]'s page\" />\n" +
+        "    <link rev=\"describedby\" title=\"About\" href=\"[HOST]/dataspace/person/[USER]#this\" />\n" +
+        "    <link rel=\"schema.geo\" href=\"http://www.w3.org/2003/01/geo/wgs84_pos#\" />\n" +
+        "    <meta http-equiv=\"X-XRDS-Location\" content=\"[HOST]/dataspace/[USER]/yadis.xrds\" />\n" +
+        "    <meta http-equiv=\"X-YADIS-Location\" content=\"[HOST]/dataspace/[USER]/yadis.xrds\" />\n" +
+        "    <link rel=\"meta\" type=\"application/xml+apml\" title=\"APML 0.6\" href=\"[HOST]/dataspace/[USER]/apml.xml\" />\n" +
+        "    <link rel=\"alternate\" type=\"application/atom+xml\" title=\"OpenSocial Friends\" href=\"[HOST]/feeds/people/[USER]/friends\" />";
+      $_userLinks = $_userLinks.replace ("[HOST]", $_host);
+      $_userLinks = $_userLinks.replace ("[USER]", $_userName);
+    }
     }
     catch (Exception e)
     {
       $_error = "Failure: " + e.getMessage();
     }
   %>
+<html>
+  <head>
+    <title>ODS user's pages</title>
+<% out.print($_hostLinks); %>
+<% out.print($_userLinks); %>
+    <link rel="stylesheet" type="text/css" href="/ods/users/css/users.css" />
+    <link rel="stylesheet" type="text/css" href="/ods/default.css" />
+    <link rel="stylesheet" type="text/css" href="/ods/nav_framework.css" />
+    <link rel="stylesheet" type="text/css" href="/ods/typeahead.css" />
+    <link rel="stylesheet" type="text/css" href="/ods/ods-bar.css" />
+    <link rel="stylesheet" type="text/css" href="/ods/rdfm.css" />
+    <script type="text/javascript" src="/ods/users/js/users.js"></script>
+    <script type="text/javascript" src="/ods/common.js"></script>
+    <script type="text/javascript" src="/ods/typeahead.js"></script>
+    <script type="text/javascript" src="/ods/tbl.js"></script>
+    <script type="text/javascript" src="/ods/validate.js"></script>
+    <script type="text/javascript">
+      // OAT
+      var toolkitPath="/ods/oat";
+      var featureList = ["ajax", "json", "tab", "combolist", "calendar", "rdfmini", "grid", "graphsvg", "tagcloud", "map", "timeline", "anchor"];
+    </script>
+    <script type="text/javascript" src="/ods/oat/loader.js"></script>
+  </head>
   <body>
     <form name="page_form" id="page_form" method="post" enctype="<% out.print(($_form.equals("profile") && ($_formTab == 0) && ($_formTab2 == 1))? "multipart/form-data": "application/x-www-form-urlencoded"); %>">
       <input type="hidden" name="mode" id="mode" value="jsp" />
@@ -1090,7 +1123,7 @@
                   <div id="lf_page_0" class="tabContent" >
                 <table class="form" cellspacing="5">
                   <tr>
-                    <th width="30%">
+                        <th width="20%">
                           <label for="lf_uid">User ID</label>
                     </th>
                         <td>
@@ -1110,7 +1143,7 @@
                   <div id="lf_page_1" class="tabContent" style="display: none">
                     <table class="form" cellspacing="5">
                   <tr>
-                        <th width="30%">
+                        <th width="20%">
                           <label for="lf_openId">OpenID URL</label>
                     </th>
                         <td>
@@ -1122,7 +1155,7 @@
                   <div id="lf_page_2" class="tabContent" style="display: none">
                     <table class="form" cellspacing="5">
                   <tr>
-                        <th width="30%">
+                        <th width="20%">
                     </th>
                         <td>
                           <span id="lf_facebookData" style="min-height: 20px;"></span>
@@ -1147,7 +1180,7 @@
                   <div id="lf_page_4" class="tabContent" style="display: none">
                     <table id="lf_table_4" class="form" cellspacing="5">
                       <tr>
-                        <th width="30%">
+                        <th width="20%">
                         </th>
                         <td>
                           <span id="lf_twitter" style="min-height: 20px;"></span>
@@ -1198,7 +1231,7 @@
                   <div id="rf_page_0" class="tabContent" >
                     <table id="rf_table_0" class="form" cellspacing="5">
                       <tr>
-                        <th width="30%">
+                        <th width="20%">
                           <label for="rf_uid_0">Login Name<div style="font-weight: normal; display:inline; color:red;"> *</div></label>
                         </th>
                         <td>
@@ -1234,7 +1267,7 @@
                   <div id="rf_page_1" class="tabContent" style="display: none">
                     <table id="rf_table_1" class="form" cellspacing="5">
                       <tr>
-                        <th width="30%">
+                        <th width="20%">
                           <label for="rf_openId">OpenID</label>
                         </th>
                         <td>
@@ -1246,7 +1279,7 @@
                   <div id="rf_page_2" class="tabContent" style="display: none">
                     <table id="rf_table_2" class="form" cellspacing="5">
                       <tr>
-                        <th width="30%">
+                        <th width="20%">
                         </th>
                         <td>
                           <span id="rf_facebookData" style="min-height: 20px;"></span>
@@ -1271,7 +1304,7 @@
                   <div id="rf_page_4" class="tabContent" style="display: none">
                     <table id="rf_table_4" class="form" cellspacing="5">
                       <tr>
-                        <th width="30%">
+                        <th width="20%">
                         </th>
                         <td>
                           <span id="rf_twitter" style="min-height: 20px;"></span>
@@ -1298,7 +1331,7 @@
                 <div>
                   <table class="form" cellspacing="5">
                     <tr>
-                      <th width="30%">
+                      <th width="20%">
                       </th>
                       <td>
                         <input type="checkbox" name="rf_is_agreed" value="1" id="rf_is_agreed"/><label for="rf_is_agreed">I agree to the <a href="/ods/terms.html" target="_blank">Terms of Service</a>.</label>
@@ -1400,6 +1433,12 @@
                       <div id="pf_page_0_1" class="tabContent" style="display:none;">
                         <table class="form" cellspacing="5">
                           <tr>
+                            <th>Account deactivation</th>
+                            <td>
+                              <input type="button" value="Deactivate" onclick="return userDisable('pf_loginName');" />
+                            </td>
+                          </tr>
+                          <tr>
                             <th>
                               <label for="pf_loginName">Login Name</label>
                             </th>
@@ -2844,7 +2883,7 @@
                       		        </th>
                                   <td>
                                     <input type="text" class="_validate_ _uri_" size="100" value="" id="k_import" name="k_import">
-                                    <input type="button" class="button" onclick="javascript: knowsData(); return false;" value="Download">
+                                    <input type="button" class="button" onclick="javascript: knowsData(); return false;" value="Retrieve">
                                     <img style="display: none;" src="/ods/images/oat/Ajax_throbber.gif" alt="Import knows URIs" id="k_import_image">
                                   </td>
                                 </tr>
@@ -2871,7 +2910,7 @@
                                       <tbody>
                                         <tr id="k_tr_no">
                                            <td colspan="3">
-                                             <b>No downloaded items</b>
+                                             <b>No retrieved items</b>
                                            </td>
                                         </tr>
                                       </tbody>
@@ -3797,7 +3836,7 @@
       <div id="FT_R">
         <a href="/ods/faq.html">FAQ</a> | <a href="/ods/privacy.html">Privacy</a> | <a href="/ods/rabuse.vspx">Report Abuse</a>
         <div>
-          Copyright © 1999-2011 OpenLink Software
+          Copyright © 1999-2012 OpenLink Software
         </div>
       </div>
      </div>
diff --git a/appsrc/ODS-Framework/users/users.php b/appsrc/ODS-Framework/users/users.php
index dfe4930..2a37bed 100644
--- a/appsrc/ODS-Framework/users/users.php
+++ b/appsrc/ODS-Framework/users/users.php
@@ -1,12 +1,12 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
  -
- -  $Id: users.php,v 1.6.2.45 2011/08/03 11:42:30 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2008 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -23,27 +23,6 @@
  -
  -
 -->
-<html>
-  <head>
-    <title>Virtuoso Web Applications</title>
-    <link rel="stylesheet" type="text/css" href="/ods/users/css/users.css" />
-    <link rel="stylesheet" type="text/css" href="/ods/default.css" />
-    <link rel="stylesheet" type="text/css" href="/ods/nav_framework.css" />
-    <link rel="stylesheet" type="text/css" href="/ods/typeahead.css" />
-    <link rel="stylesheet" type="text/css" href="/ods/ods-bar.css" />
-    <link rel="stylesheet" type="text/css" href="/ods/rdfm.css" />
-    <script type="text/javascript" src="/ods/users/js/users.js"></script>
-    <script type="text/javascript" src="/ods/common.js"></script>
-    <script type="text/javascript" src="/ods/typeahead.js"></script>
-    <script type="text/javascript" src="/ods/tbl.js"></script>
-    <script type="text/javascript" src="/ods/validate.js"></script>
-    <script type="text/javascript">
-      // OAT
-      var toolkitPath="/ods/oat";
-      var featureList = ["ajax", "json", "tab", "combolist", "calendar", "rdfmini", "grid", "graphsvg", "tagcloud", "map", "timeline", "anchor"];
-    </script>
-    <script type="text/javascript" src="/ods/oat/loader.js"></script>
-  </head>
   <?php
     function parseUrl($url) {
       // parse the given URL
@@ -151,6 +130,13 @@
       return $pageURL.'/ods/api';
     }
 
+  function hostURL()
+  {
+    $pageURL = $_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://';
+    $pageURL .= $_SERVER['SERVER_PORT'] <> '80' ? $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"] : $_SERVER['SERVER_NAME'];
+    return $pageURL;
+  }
+
     function myUrlencode ($S)
     {
       $S = urlencode($S);
@@ -840,7 +826,60 @@
         $_sid = "";
         $_realm = "";
       }
+  $_hostLinks = str_replace (
+    '[HOST]',
+    hostURL(),
+    '    <link rel="openid.server" title="OpenID Server" href="[HOST]/openid" />' .
+    '    <link rel="openid2.provider" title="OpenID v2 Server" href="[HOST]/openid" />'
+  );
+
+  $_userLinks = '';
+  if ($_userName != "")
+  {
+    $_userLinks =
+      '    <link rel="meta" type="application/rdf+xml" title="SIOC" href="[HOST]/dataspace/[USER]/sioc.rdf" />' .
+      '    <link rel="meta" type="application/rdf+xml" title="FOAF" href="[HOST]/dataspace/person/[USER]/foaf.rdf" />' .
+      '    <link rel="meta" type="text/rdf+n3" title="FOAF" href="[HOST]/dataspace/person/[USER]/foaf.n3" />' .
+      '    <link rel="meta" type="application/json" title="FOAF" href="[HOST]/dataspace/person/[USER]/foaf.json" />' .
+      '    <link rel="http://xmlns.com/foaf/0.1/primaryTopic"  title="About" href="[HOST]/dataspace/person/[USER]#this" />' .
+      '    <link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />' .
+      '    <meta name="dc.language" content="en" scheme="rfc1766" />' .
+      '    <meta name="dc.creator" content="[USER]" />' .
+      '    <meta name="dc.description" content="ODS HTML [USER]\'s page" />' .
+      '    <meta name="dc.title" content="ODS HTML [USER]\'s page" />' .
+      '    <link rev="describedby" title="About" href="[HOST]/dataspace/person/[USER]#this" />' .
+      '    <link rel="schema.geo" href="http://www.w3.org/2003/01/geo/wgs84_pos#" />' .
+      '    <meta http-equiv="X-XRDS-Location" content="[HOST]/dataspace/[USER]/yadis.xrds" />' .
+      '    <meta http-equiv="X-YADIS-Location" content="[HOST]/dataspace/[USER]/yadis.xrds" />' .
+      '    <link rel="meta" type="application/xml+apml" title="APML 0.6" href="[HOST]/dataspace/[USER]/apml.xml" />' .
+      '    <link rel="alternate" type="application/atom+xml" title="OpenSocial Friends" href="[HOST]/feeds/people/[USER]/friends" />';
+    $_userLinks = str_replace ('[HOST]', hostURL(), $_userLinks);
+    $_userLinks = str_replace ('[USER]', $_userName, $_userLinks);
+  }
   ?>
+<html>
+  <head>
+    <title>ODS user's pages</title>
+<?php echo $_hostLinks; ?>
+<?php echo $_userLinks; ?>
+    <link rel="stylesheet" type="text/css" href="/ods/users/css/users.css" />
+    <link rel="stylesheet" type="text/css" href="/ods/default.css" />
+    <link rel="stylesheet" type="text/css" href="/ods/nav_framework.css" />
+    <link rel="stylesheet" type="text/css" href="/ods/typeahead.css" />
+    <link rel="stylesheet" type="text/css" href="/ods/ods-bar.css" />
+    <link rel="stylesheet" type="text/css" href="/ods/rdfm.css" />
+    <script type="text/javascript" src="/ods/users/js/users.js"></script>
+    <script type="text/javascript" src="/ods/common.js"></script>
+    <script type="text/javascript" src="/ods/typeahead.js"></script>
+    <script type="text/javascript" src="/ods/tbl.js"></script>
+    <script type="text/javascript" src="/ods/validate.js"></script>
+    <script type="text/javascript">
+      // OAT
+      var toolkitPath="/ods/oat";
+      var featureList = ["ajax", "json", "tab", "combolist", "calendar", "rdfmini", "grid", "graphsvg", "tagcloud", "map", "timeline", "anchor"];
+    </script>
+    <script type="text/javascript" src="/ods/oat/loader.js"></script>
+  </head>
   <body onunload="myCheckLeave (document.forms['page_form'])">
     <form name="page_form" id="page_form" method="post" enctype="multipart/form-data">
       <input type="hidden" name="mode" id="mode" value="php" />
@@ -915,7 +954,7 @@
                   <div id="lf_page_0" class="tabContent" >
                 <table class="form" cellspacing="5">
                   <tr>
-                    <th width="30%">
+                        <th width="20%">
                           <label for="lf_uid">User ID</label>
                     </th>
                         <td>
@@ -935,7 +974,7 @@
                   <div id="lf_page_1" class="tabContent" style="display: none">
                     <table class="form" cellspacing="5">
                   <tr>
-                        <th width="30%">
+                        <th width="20%">
                           <label for="lf_openId">OpenID URL</label>
                     </th>
                         <td>
@@ -947,7 +986,7 @@
                   <div id="lf_page_2" class="tabContent" style="display: none">
                     <table class="form" cellspacing="5">
                   <tr>
-                        <th width="30%">
+                        <th width="20%">
                     </th>
                         <td>
                           <span id="lf_facebookData" style="min-height: 20px;"></span>
@@ -972,7 +1011,7 @@
                   <div id="lf_page_4" class="tabContent" style="display: none">
                     <table id="lf_table_4" class="form" cellspacing="5">
                       <tr>
-                        <th width="30%">
+                        <th width="20%">
                         </th>
                         <td>
                           <span id="lf_twitter" style="min-height: 20px;"></span>
@@ -1023,7 +1062,7 @@
                   <div id="rf_page_0" class="tabContent" style="display: none">
                     <table id="rf_table_0" class="form" cellspacing="5">
                       <tr>
-                        <th width="30%">
+                        <th width="20%">
                           <label for="rf_uid_0">Login Name<div style="font-weight: normal; display:inline; color:red;"> *</div></label>
                         </th>
                         <td>
@@ -1059,7 +1098,7 @@
                   <div id="rf_page_1" class="tabContent" style="display: none">
                     <table id="rf_table_1" class="form" cellspacing="5">
                       <tr>
-                        <th width="30%">
+                        <th width="20%">
                           <label for="rf_openId">OpenID</label>
                         </th>
                         <td>
@@ -1071,7 +1110,7 @@
                   <div id="rf_page_2" class="tabContent" style="display: none">
                     <table id="rf_table_2" class="form" cellspacing="5">
                       <tr>
-                        <th width="30%">
+                        <th width="20%">
                         </th>
                         <td>
                           <span id="rf_facebookData" style="min-height: 20px;"></span>
@@ -1096,7 +1135,7 @@
                   <div id="rf_page_4" class="tabContent" style="display: none">
                     <table id="rf_table_4" class="form" cellspacing="5">
                       <tr>
-                        <th width="30%">
+                        <th width="20%">
                         </th>
                         <td>
                           <span id="rf_twitter" style="min-height: 20px;"></span>
@@ -1123,7 +1162,7 @@
                 <div>
                   <table class="form" cellspacing="5">
                     <tr>
-                      <th width="30%">
+                      <th width="20%">
                       </th>
                       <td>
                         <input type="checkbox" name="rf_is_agreed" value="1" id="rf_is_agreed"/><label for="rf_is_agreed">I agree to the <a href="/ods/terms.html" target="_blank">Terms of Service</a>.</label>
@@ -1226,11 +1265,18 @@
                       <div id="pf_page_0_1" class="tabContent" style="display:none;">
                         <table class="form" cellspacing="5">
                           <tr>
-                            <th>
+                            <th>Account deactivation</th>
+                            <td>
+                              <input type="button" value="Deactivate" onclick="return userDisable('pf_loginName');" />
+                            </td>
+                          </tr>
+                          <tr>
+                            <th width="30%">
                               <label for="pf_loginName">Login Name</label>
                             </th>
                             <td>
                               <?php print($_xml->name); ?>
+                              <input type="hidden" name="pf_loginName" value="<?php print($_xml->name); ?>" id="pf_loginName" />
                             </td>
                           </tr>
                           <tr>
@@ -1242,7 +1288,7 @@
                             </td>
                           </tr>
                           <tr>
-                            <th width="30%">
+                            <th>
                           <label for="pf_title">Title</label>
                         </th>
                         <td>
@@ -2673,7 +2719,7 @@
                       		        </th>
                                   <td>
                                     <input type="text" class="_validate_ _uri_" size="100" value="" id="k_import" name="k_import">
-                                    <input type="button" class="button" onclick="javascript: knowsData(); return false;" value="Download">
+                                    <input type="button" class="button" onclick="javascript: knowsData(); return false;" value="Retrieve">
                                     <img style="display: none;" src="/ods/images/oat/Ajax_throbber.gif" alt="Import knows URIs" id="k_import_image">
                                   </td>
                                 </tr>
@@ -2700,7 +2746,7 @@
                                       <tbody>
                                         <tr id="k_tr_no">
                                            <td colspan="3">
-                                             <b>No downloaded items</b>
+                                             <b>No retrieved items</b>
                                            </td>
                                         </tr>
                                       </tbody>
@@ -3645,7 +3691,7 @@
       <div id="FT_R">
         <a href="/ods/faq.html">FAQ</a> | <a href="/ods/privacy.html">Privacy</a> | <a href="/ods/rabuse.vspx">Report Abuse</a>
         <div>
-          Copyright © 1999-2011 OpenLink Software
+          Copyright © 1999-2012 OpenLink Software
         </div>
       </div>
      </div>
diff --git a/appsrc/ODS-Framework/users/users.rb b/appsrc/ODS-Framework/users/users.rb
index 93441bf..019beb3 100644
--- a/appsrc/ODS-Framework/users/users.rb
+++ b/appsrc/ODS-Framework/users/users.rb
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2007 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -1012,7 +1012,7 @@ def main()
       <div id="FT_R">
         <a href="/ods/faq.html">FAQ</a> | <a href="/ods/privacy.html">Privacy</a> | <a href="/ods/rabuse.vspx">Report Abuse</a>
         <div>
-          Copyright © 1999-2011 OpenLink Software
+          Copyright © 1999-2012 OpenLink Software
         </div>
       </div>
      </div>
diff --git a/appsrc/ODS-Framework/users/users.vsp b/appsrc/ODS-Framework/users/users.vsp
index 723ac04..c5e4bb8 100644
--- a/appsrc/ODS-Framework/users/users.vsp
+++ b/appsrc/ODS-Framework/users/users.vsp
@@ -1,12 +1,12 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <!--
  -
- -  $Id: users.vsp,v 1.1.2.44 2011/08/03 11:42:30 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2008 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -23,34 +23,15 @@
  -
  -
 -->
-<html>
-  <head>
-    <title>Virtuoso Web Applications</title>
-    <link rel="stylesheet" type="text/css" href="/ods/users/css/users.css" />
-    <link rel="stylesheet" type="text/css" href="/ods/default.css" />
-    <link rel="stylesheet" type="text/css" href="/ods/nav_framework.css" />
-    <link rel="stylesheet" type="text/css" href="/ods/typeahead.css" />
-    <link rel="stylesheet" type="text/css" href="/ods/ods-bar.css" />
-    <link rel="stylesheet" type="text/css" href="/ods/rdfm.css" />
-    <script type="text/javascript" src="/ods/users/js/users.js"></script>
-    <script type="text/javascript" src="/ods/common.js"></script>
-    <script type="text/javascript" src="/ods/typeahead.js"></script>
-    <script type="text/javascript" src="/ods/tbl.js"></script>
-    <script type="text/javascript" src="/ods/validate.js"></script>
-    <script type="text/javascript">
-      // OAT
-      var toolkitPath="/ods/oat";
-      var featureList = ["ajax", "json", "tab", "combolist", "calendar", "rdfmini", "grid", "graphsvg", "tagcloud", "map", "timeline", "anchor"];
-    </script>
-    <script type="text/javascript" src="/ods/oat/loader.js"></script>
-  </head>
   <?vsp
     declare N integer;
-    declare vHostUrl, vUrl, vParams, vResult, vRequest, vRespond any;
+  declare vHost, vHostUrl, vUrl, vParams, vResult, vRequest, vRespond any;
     declare tmp, suffix, vValidate, vSid, vRealm, vUserName, vError, vForm, vFormTab, vFormTab2, vFormTab3, vFormMode, vXml, vAcl, xAcl, vLists, vList, items any;
+  declare vHostLinks, vUserLinks any;
 
-      vHostUrl := http_request_header (http_request_header () , 'Host' , null , sys_connected_server_address ());
-      if (isstring (vHostUrl) and strchr (vHostUrl , ':') is null)
+  vUserLinks := '';
+  vHost := http_request_header (http_request_header () , 'Host' , null , sys_connected_server_address ());
+  if (isstring (vHost) and strchr (vHost , ':') is null)
       {
         declare hp varchar;
         declare hpa any;
@@ -58,17 +39,17 @@
         hp := sys_connected_server_address ();
         hpa := split_and_decode ( hp , 0 , '\0\0:');
         if (hpa [1] <> '80')
-          vHostUrl := vHostUrl || ':' || hpa [1];
+      vHost := vHost || ':' || hpa [1];
       }
     if (is_https_ctx ())
     {
-      if (vHostUrl not like 'https://%')
-        vHostUrl := 'https://' || vHostUrl;
+    if (vHost not like 'https://%')
+      vHost := 'https://' || vHost;
     } else {
-    if (vHostUrl not like 'http://%')
-      vHostUrl := 'http://' || vHostUrl;
+    if (vHost not like 'http://%')
+      vHost := 'http://' || vHost;
     }
-    vHostUrl := vHostUrl || '/ods/api';
+  vHostUrl := vHost || '/ods/api';
     vRequest := null;
     vRespond := null;
 
@@ -974,7 +955,59 @@
       vSid := '';
       vRealm := '';
     }
+  vHostLinks := replace (
+    '    <link rel="openid.server" title="OpenID Server" href="[HOST]/openid" />\n' ||
+    '    <link rel="openid2.provider" title="OpenID v2 Server" href="[HOST]/openid" />',
+    '[HOST]',
+    vHost);
+
+  vUserLinks := '';
+  if (not isnull (vUserName))
+  {
+    vUserLinks :=
+      '\n' ||
+      '    <link rel="meta" type="application/rdf+xml" title="SIOC" href="[HOST]/dataspace/[USER]/sioc.rdf" />\n' ||
+      '    <link rel="meta" type="application/rdf+xml" title="FOAF" href="[HOST]/dataspace/person/[USER]/foaf.rdf" />\n' ||
+      '    <link rel="meta" type="text/rdf+n3" title="FOAF" href="[HOST]/dataspace/person/[USER]/foaf.n3" />\n' ||
+      '    <link rel="meta" type="application/json" title="FOAF" href="[HOST]/dataspace/person/[USER]/foaf.json" />\n' ||
+      '    <link rel="http://xmlns.com/foaf/0.1/primaryTopic"  title="About" href="[HOST]/dataspace/person/[USER]#this" />\n' ||
+      '    <link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />\n' ||
+      '    <meta name="dc.language" content="en" scheme="rfc1766" />\n' ||
+      '    <meta name="dc.creator" content="[USER]" />\n' ||
+      '    <meta name="dc.description" content="ODS HTML [USER]''s page" />\n' ||
+      '    <meta name="dc.title" content="ODS HTML [USER]''s page" />\n' ||
+      '    <link rev="describedby" title="About" href="[HOST]/dataspace/person/[USER]#this" />\n' ||
+      '    <link rel="schema.geo" href="http://www.w3.org/2003/01/geo/wgs84_pos#" />\n' ||
+      '    <meta http-equiv="X-XRDS-Location" content="[HOST]/dataspace/[USER]/yadis.xrds" />\n' ||
+      '    <meta http-equiv="X-YADIS-Location" content="[HOST]/dataspace/[USER]/yadis.xrds" />\n' ||
+      '    <link rel="meta" type="application/xml+apml" title="APML 0.6" href="[HOST]/dataspace/[USER]/apml.xml" />\n' ||
+      '    <link rel="alternate" type="application/atom+xml" title="OpenSocial Friends" href="[HOST]/feeds/people/[USER]/friends" />';
+    vUserLinks := replace (vUserLinks, '[HOST]', vHost);
+    vUserLinks := replace (vUserLinks, '[USER]', vUserName);
+  }
   ?>
+<html>
+  <head>
+    <title>ODS user's pages</title>
+<?vsp http (vHostLinks); ?><?vsp http (vUserLinks); ?>
+    <link rel="stylesheet" type="text/css" href="/ods/users/css/users.css" />
+    <link rel="stylesheet" type="text/css" href="/ods/default.css" />
+    <link rel="stylesheet" type="text/css" href="/ods/nav_framework.css" />
+    <link rel="stylesheet" type="text/css" href="/ods/typeahead.css" />
+    <link rel="stylesheet" type="text/css" href="/ods/ods-bar.css" />
+    <link rel="stylesheet" type="text/css" href="/ods/rdfm.css" />
+    <script type="text/javascript" src="/ods/users/js/users.js"></script>
+    <script type="text/javascript" src="/ods/common.js"></script>
+    <script type="text/javascript" src="/ods/typeahead.js"></script>
+    <script type="text/javascript" src="/ods/tbl.js"></script>
+    <script type="text/javascript" src="/ods/validate.js"></script>
+    <script type="text/javascript">
+      // OAT
+      var toolkitPath="/ods/oat";
+      var featureList = ["ajax", "json", "tab", "combolist", "calendar", "rdfmini", "grid", "graphsvg", "tagcloud", "map", "timeline", "anchor"];
+    </script>
+    <script type="text/javascript" src="/ods/oat/loader.js"></script>
+  </head>
   <body onunload="myCheckLeave (document.forms['page_form'])">
     <form name="page_form" id="page_form" method="post" enctype="multipart/form-data">
       <input type="hidden" name="mode" id="mode" value="vsp" />
@@ -1256,7 +1289,7 @@
                 <div>
                   <table class="form" cellspacing="5">
                     <tr>
-                      <th width="30%">
+                      <th width="20%">
                       </th>
                       <td>
                         <input type="checkbox" name="rf_is_agreed" value="1" id="rf_is_agreed"/><label for="rf_is_agreed">I agree to the <a href="/ods/terms.html" target="_blank">Terms of Service</a>.</label>
@@ -1373,11 +1406,18 @@
                       <div id="pf_page_0_1" class="tabContent" style="display:none;">
                         <table class="form" cellspacing="5">
                           <tr>
-                            <th>
+                            <th>Account deactivation</th>
+                            <td>
+                              <input type="button" value="Deactivate" onclick="return userDisable('pf_loginName');" />
+                            </td>
+                          </tr>
+                          <tr>
+                            <th width="30%">
                               <label for="pf_loginName">Login Name</label>
                             </th>
                             <td>
                               <?V xpath_eval ('string (/user/name)', vXml) ?>
+                              <input type="hidden" name="pf_loginName" value="<?V xpath_eval ('string (/user/name)', vXml) ?>" id="pf_loginName" />
                             </td>
                           </tr>
                           <tr>
@@ -1389,7 +1429,7 @@
                             </td>
                           </tr>
                           <tr>
-                        <th width="30%">
+                            <th>
                           <label for="pf_title">Title</label>
                         </th>
                         <td>
@@ -2824,7 +2864,7 @@
                       		        </th>
                                   <td>
                                     <input type="text" class="_validate_ _uri_" size="100" value="" id="k_import" name="k_import">
-                                    <input type="button" class="button" onclick="javascript: knowsData(); return false;" value="Download">
+                                    <input type="button" class="button" onclick="javascript: knowsData(); return false;" value="Retrieve">
                                     <img style="display: none;" src="/ods/images/oat/Ajax_throbber.gif" alt="Import knows URIs" id="k_import_image">
                                   </td>
                                 </tr>
@@ -2851,7 +2891,7 @@
                                       <tbody>
                                         <tr id="k_tr_no">
                                            <td colspan="3">
-                                             <b>No downloaded items</b>
+                                             <b>No retrieved items</b>
                                            </td>
                                         </tr>
                                       </tbody>
@@ -3788,7 +3828,7 @@
       <div id="FT_R">
         <a href="/ods/faq.html">FAQ</a> | <a href="/ods/privacy.html">Privacy</a> | <a href="/ods/rabuse.vspx">Report Abuse</a>
         <div>
-          Copyright © 1999-2011 OpenLink Software
+          Copyright © 1999-2012 OpenLink Software
         </div>
       </div>
     </div>
diff --git a/appsrc/ODS-Framework/users/users.xsl b/appsrc/ODS-Framework/users/users.xsl
index 40f7364..b66b2a9 100644
--- a/appsrc/ODS-Framework/users/users.xsl
+++ b/appsrc/ODS-Framework/users/users.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
  -
- -  $Id: users.xsl,v 1.1.4.6 2010/12/20 12:27:09 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2009 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -200,11 +200,11 @@
     <tr>
       <th><xsl:value-of select="$label"/></th>
       <td>
-        <image>
+        <img border="0" width="64" class="resize">
           <xsl:attribute name="src">
             <xsl:value-of select="$value"/>
           </xsl:attribute>
-        </image>
+        </img>
       </td>
     </tr>
   </xsl:template>
diff --git a/appsrc/ODS-Framework/users_select.js b/appsrc/ODS-Framework/users_select.js
index f7e1f7b..d466e87 100644
--- a/appsrc/ODS-Framework/users_select.js
+++ b/appsrc/ODS-Framework/users_select.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: users_select.js,v 1.3.2.4 2010/10/13 12:16:49 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/users_select.vspx b/appsrc/ODS-Framework/users_select.vspx
index 8004e63..5098c28 100644
--- a/appsrc/ODS-Framework/users_select.vspx
+++ b/appsrc/ODS-Framework/users_select.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: users_select.vspx,v 1.5.2.8 2011/05/02 14:16:03 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/vad_version b/appsrc/ODS-Framework/vad_version
index af01f23..9380e91 100644
--- a/appsrc/ODS-Framework/vad_version
+++ b/appsrc/ODS-Framework/vad_version
@@ -1 +1 @@
-1.83.49
+1.87.26
diff --git a/appsrc/ODS-Framework/validate.js b/appsrc/ODS-Framework/validate.js
index a886d6a..0432ca0 100644
--- a/appsrc/ODS-Framework/validate.js
+++ b/appsrc/ODS-Framework/validate.js
@@ -3,7 +3,7 @@
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2010 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -29,89 +29,107 @@ function validateError(fld, msg)
 
 function validateInt(fld)
 {
-  var regex = /^[0-9]+$/
-  if (!regex.test(fld.value))
-    return validateError(fld, 'Invalid integer value: ' + fld.value);
+  var v = fld.value.trim();
+  var regex = /^[0-9]+$/;
+  if (!regex.test(v))
+    return validateError(fld, 'Invalid integer value: ' + v);
 
   return true;
 }
 
 function validateFloat(fld)
 {
-  var regex = /^[-+]?([0-9]*\.)?[0-9]+([eE][-+]?[0-9]+)?$/
-  if (!regex.test(fld.value))
-    return validateError(fld, 'Invalid float value: ' + fld.value);
+  var v = fld.value.trim();
+  var regex = /^[-+]?([0-9]*\.)?[0-9]+([eE][-+]?[0-9]+)?$/;
+  if (!regex.test(v))
+    return validateError(fld, 'Invalid float value: ' + v);
 
   return true;
 }
 
 function validateDate(fld)
 {
-  var regex = /^((?:19|20)[0-9][0-9])[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$/
-  if (!regex.test(fld.value))
-    return validateError(fld, 'Invalid date value: ' + fld.value);
+  var v = fld.value.trim();
+  var regex = /^((?:19|20)[0-9][0-9])[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$/;
+  if (!regex.test(v))
+    return validateError(fld, 'Invalid date value: ' + v);
 
   return true;
 }
 
 function validateDateTime(fld)
 {
-  var regex = /^((?:19|20)[0-9][0-9])[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])( ([01]?[0-9]|[2][0-3])(:[0-5][0-9])?)?$/
-  if (!regex.test(fld.value))
-    return validateError(fld, 'Invalid date value: ' + fld.value);
+  var v = fld.value.trim();
+  var regex = /^((?:19|20)[0-9][0-9])[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])( ([01]?[0-9]|[2][0-3])(:[0-5][0-9])?)?$/;
+  if (!regex.test(v))
+    return validateError(fld, 'Invalid date value: ' + v);
 
   return true;
 }
 
 function validateMail(fld)
 {
-  if ((fld.value.length == 0) || (fld.value.length > 40))
+  var v = fld.value.trim();
+  if ((v.length == 0) || (v.length > 40))
     return validateError(fld, 'E-mail address cannot be empty or longer then 40 chars');
 
   var regex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
-  if (!regex.test(fld.value))
-    return validateError(fld, 'Invalid E-mail address');
+  if (!regex.test(v))
+    return validateError(fld, 'Invalid E-mail address: ' + v);
 
   return true;
 }
 
 function validateURL(fld)
 {
-  var regex = /^(ftp|http|https):(\/\/)?(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
-  if (!regex.test(fld.value))
-    return validateError(fld, 'Invalid URL address : ' + fld.value);
+  var v = fld.value.trim();
+  var regex = /^(ftp|http|https):(\/\/)?(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
+  if (!regex.test(v))
+    return validateError(fld, 'Invalid URL address: ' + v);
 
   return true;
 }
 
 function validateURI(fld)
 {
-  var regex = /^([a-z0-9+.-]+):(\/\/)?(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
+  var v = fld.value.trim();
+  var regex = /^([a-z0-9+.-]+):(\/\/)?(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
   var mail = /^acct:([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
-  if (!regex.test(fld.value) && !mail.test(fld.value))
-    return validateError(fld, 'Invalid URI address : ' + fld.value);
+  if (!regex.test(v) && !mail.test(v))
+    return validateError(fld, 'Invalid URI address: ' + v);
 
   return true;
 }
 
 function validateWebID(fld)
 {
-  if (fld.value == 'foaf:Agent')
+  var v = fld.value.trim();
+  if (v == 'foaf:Agent')
     return true;
 
   var regex = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
-  if (regex.test(fld.value))
+  if (regex.test(v))
     return true;
 
   var regex  = /^acct:([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-:])+)+\.?([a-zA-Z0-9]{0,4})+$/;
-  if (regex.test(fld.value))
+  if (regex.test(v))
     return true;
 
   var regex = /^acct:([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
-  if (regex.test(fld.value))
+  if (regex.test(v))
     return true;
 
-  return validateError(fld, 'Invalid URI address');
+  return validateError(fld, 'Invalid URI address: ' + v);
+}
+
+function validateDigest(fld)
+{
+  var v = fld.value.trim();
+  var regex = /^di:[^ <>]+$/;
+  if (regex.test(v))
+    return true;
+
+  return validateError(fld, 'Invalid di: scheme value: ' + v);
 }
 
 function validateField(fld)
@@ -134,6 +152,8 @@ function validateField(fld)
     return validateURI(fld);
   if (OAT.Dom.isClass(fld, '_webid_'))
     return validateWebID(fld);
+  if (OAT.Dom.isClass(fld, '_digest_'))
+    return validateDigest(fld);
   if (fld.value.length == 0)
     return validateError(fld, 'Field cannot be empty');
   return true;
diff --git a/appsrc/ODS-Framework/version.base b/appsrc/ODS-Framework/version.base
deleted file mode 100644
index 7facc89..0000000
--- a/appsrc/ODS-Framework/version.base
+++ /dev/null
@@ -1 +0,0 @@
-36
diff --git a/appsrc/ODS-Framework/version.curr b/appsrc/ODS-Framework/version.curr
deleted file mode 100644
index c24db41..0000000
--- a/appsrc/ODS-Framework/version.curr
+++ /dev/null
@@ -1 +0,0 @@
-8349
diff --git a/appsrc/ODS-Framework/vhost.vspx b/appsrc/ODS-Framework/vhost.vspx
index 0b91419..fdd1b68 100644
--- a/appsrc/ODS-Framework/vhost.vspx
+++ b/appsrc/ODS-Framework/vhost.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: vhost.vspx,v 1.10.2.1 2010/09/20 10:15:31 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/vhost_simple.vspx b/appsrc/ODS-Framework/vhost_simple.vspx
index 3ff94dc..7dd4004 100644
--- a/appsrc/ODS-Framework/vhost_simple.vspx
+++ b/appsrc/ODS-Framework/vhost_simple.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: vhost_simple.vspx,v 1.4.2.1 2010/09/20 10:15:31 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/view.vspx b/appsrc/ODS-Framework/view.vspx
index 994683d..62b6d8a 100644
--- a/appsrc/ODS-Framework/view.vspx
+++ b/appsrc/ODS-Framework/view.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: view.vspx,v 1.5.2.1 2010/09/20 10:15:31 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/view_file.vspx b/appsrc/ODS-Framework/view_file.vspx
index fcf4f6b..5a29c55 100644
--- a/appsrc/ODS-Framework/view_file.vspx
+++ b/appsrc/ODS-Framework/view_file.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: view_file.vspx,v 1.6.2.1 2010/09/20 10:15:31 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/wa_login.vspx b/appsrc/ODS-Framework/wa_login.vspx
index e328fb2..d1d750f 100644
--- a/appsrc/ODS-Framework/wa_login.vspx
+++ b/appsrc/ODS-Framework/wa_login.vspx
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: wa_login.vspx,v 1.4.2.2 2011/03/23 12:18:30 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/wa_maps.sql b/appsrc/ODS-Framework/wa_maps.sql
index d4295da..427d77f 100644
--- a/appsrc/ODS-Framework/wa_maps.sql
+++ b/appsrc/ODS-Framework/wa_maps.sql
@@ -1,12 +1,12 @@
 --
---  $Id: wa_maps.sql,v 1.7.2.3 2010/12/10 16:04:14 source Exp $
+--  $Id$
 --
 --  Procedures to support the WA maps handling.
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/wa_maps.vspx b/appsrc/ODS-Framework/wa_maps.vspx
index 5df9ce8..660c3da 100644
--- a/appsrc/ODS-Framework/wa_maps.vspx
+++ b/appsrc/ODS-Framework/wa_maps.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: wa_maps.vspx,v 1.8.2.1 2010/09/20 10:15:32 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/wa_search_procs.sql b/appsrc/ODS-Framework/wa_search_procs.sql
index 3fbf2f3..b89dbda 100644
--- a/appsrc/ODS-Framework/wa_search_procs.sql
+++ b/appsrc/ODS-Framework/wa_search_procs.sql
@@ -1,12 +1,12 @@
 --
---  $Id: wa_search_procs.sql,v 1.25.2.1 2010/09/20 10:15:32 source Exp $
+--  $Id$
 --
 --  Procedures to support the WA search.
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -1110,30 +1110,26 @@ create function WA_SEARCH_APP (in max_rows integer, in current_user_id integer,
 --exec('
 wa_exec_no_error('
 create function WA_SEARCH_OMAIL_GET_EXCERPT_HTML (
-        in current_user_id integer,
+  in uname varchar,
 	in words any,
         in _MSG_ID integer,
-        in _DOMAIN_ID integer,
         in _TDATA any,
         in _SUBJECT varchar,
         in _FOLDER_ID integer) returns varchar
 {
   declare res varchar;
 
-  declare _U_NAME varchar;
   declare _NAME varchar;
 
-  select U_NAME into _U_NAME from DB.DBA.SYS_USERS where U_ID = current_user_id;
-  select NAME into _NAME from OMAIL.WA.FOLDERS where FOLDER_ID = _FOLDER_ID;
+  select MF_NAME into _NAME from DB.DBA.MAIL_FOLDER where MF_OWN = uname and MF_ID = _FOLDER_ID;
 
   res := sprintf (
     ''<span><img src="%s"/> %s / %s : %s<br />%s</span>'',
        DB.DBA.WA_SEARCH_ADD_APATH (''images/icons/mail_16.png''),
-       _U_NAME,
+       uname,
        _NAME,
        _SUBJECT,
        _TDATA);
-       --search_excerpt (words, subseq (coalesce (_TDATA, ''''), 0, 200000)));
   return res;
 }
 ')
@@ -1168,57 +1164,55 @@ create aggregate WA_SEARCH_OMAIL_AGG (in _val varchar, in words any) returns var
   from WA_SEARCH_OMAIL_AGG_init, WA_SEARCH_OMAIL_AGG_acc, WA_SEARCH_OMAIL_AGG_final;
 
 
-create function WA_SEARCH_OMAIL (in max_rows integer, in current_user_id integer,
-   in str varchar, in _words_vector varchar) returns varchar
+create function WA_SEARCH_OMAIL (
+  in _max integer,
+  in _user_id integer,
+  in _str varchar,
+  in _words_vector varchar) returns varchar
 {
-  declare ret varchar;
+  declare ret, _uname varchar;
 
-  if (str is null)
+  _uname := (select U_NAME from DB.DBA.SYS_USERS where U_ID = _user_id);
+  if (_str is null)
     {
       ret := sprintf (
 	     'select top %d \n' ||
-	     '  DB.DBA.WA_SEARCH_OMAIL_GET_EXCERPT_HTML (q.USER_ID, %s, \n' ||
-	     '     q.MSG_ID, q.DOMAIN_ID, _TDATA, M.SUBJECT, M.FOLDER_ID) AS EXCERPT, \n' ||
+	     '       DB.DBA.WA_SEARCH_OMAIL_GET_EXCERPT_HTML (M.MM_OWN, %s, M.MM_ID, MA._CONTENT, M.MM_SUBJ, M.MM_FLD_ID) AS EXCERPT, \n' ||
 	     '  encode_base64 (serialize (vector (''OMAIL''))) as TAG_TABLE_FK, \n' ||
 	     '  _SCORE, \n' ||
 	     '  M.RCV_DATE as _DATE \n' ||
-	     ' from OMAIL.WA.MESSAGES M, (\n' ||
-	     ' select \n' ||
-	     '   MP.DOMAIN_ID, \n' ||
-	     '   MP.USER_ID, \n' ||
-	     '   MP.MSG_ID, \n' ||
-	     '   DB.DBA.WA_SEARCH_OMAIL_AGG (TDATA, %s) as _TDATA long varchar, \n' ||
+	     '  from DB.DBA.MAIL_MESSAGE M, \n' ||
+	     '       (select MA_M_OWN, \n' ||
+	     '               MA_M_ID, \n' ||
+	     '               DB.DBA.WA_SEARCH_OMAIL_AGG (MA_CONTENT, %s) as _CONTENT long varchar, \n' ||
 	     '   0 as _SCORE \n' ||
-	     ' from OMAIL.WA.MSG_PARTS MP\n' ||
-	     ' where \n' ||
-	     '  MP.USER_ID = %d\n' ||
-	     '  group by MP.DOMAIN_ID, MP.USER_ID, MP.MSG_ID) q \n' ||
-	     ' where M.MSG_ID = q.MSG_ID and M.USER_ID = q.USER_ID and M.DOMAIN_ID = q.DOMAIN_ID',
-	max_rows, _words_vector, _words_vector, current_user_id);
+	     '          from DB.DBA.MAIL_ATTACHMENT \n' ||
+	     '         where MA_M_OWN = ''%s''\n' ||
+	     '         group by MA_M_OWN, MA_M_ID) MA \n' ||
+	     '   where M.MM_OWN = MA.MA_M_OWN \n' ||
+	     '     and M.MM_ID = MA.MA_M_ID ',
+	     _max, _words_vector, _words_vector, _uname);
     }
   else
     {
       ret := sprintf (
 	     'select top %d \n' ||
-	     '  DB.DBA.WA_SEARCH_OMAIL_GET_EXCERPT_HTML (q.USER_ID, %s, \n' ||
-	     '     q.MSG_ID, q.DOMAIN_ID, _TDATA, M.SUBJECT, M.FOLDER_ID) AS EXCERPT, \n' ||
+	     '       DB.DBA.WA_SEARCH_OMAIL_GET_EXCERPT_HTML (M.MM_OWN, %s, M.MM_ID, MA._CONTENT, M.MM_SUBJ, M.MM_FLD_ID) AS EXCERPT, \n' ||
 	     '  encode_base64 (serialize (vector (''OMAIL''))) as TAG_TABLE_FK, \n' ||
 	     '  _SCORE, \n' ||
 	     '  M.RCV_DATE as _DATE \n' ||
-	     ' from OMAIL.WA.MESSAGES M, (\n' ||
-	     ' select \n' ||
-	     '   MP.DOMAIN_ID, \n' ||
-	     '   MP.USER_ID, \n' ||
-	     '   MP.MSG_ID, \n' ||
-	     '   DB.DBA.WA_SEARCH_OMAIL_AGG (TDATA, %s) as _TDATA long varchar, \n' ||
+	     '  from DB.DBA.MAIL_MESSAGE M, \n' ||
+	     '       (select MA_M_OWN, \n' ||
+	     '               MA_M_ID, \n' ||
+	     '               DB.DBA.WA_SEARCH_OMAIL_AGG (MA_CONTENT, %s) as _CONTENT long varchar, \n' ||
 	     '   MAX(SCORE) as _SCORE \n' ||
-	     ' from OMAIL.WA.MSG_PARTS MP\n' ||
-	     ' where \n' ||
-	     '  contains (MP.TDATA, ''[__lang "x-ViDoc" __enc "UTF-8"] %S'') \n' ||
-	     '  and MP.USER_ID = %d\n' ||
-	     '  group by MP.DOMAIN_ID, MP.USER_ID, MP.MSG_ID) q \n' ||
-	     ' where M.MSG_ID = q.MSG_ID and M.USER_ID = q.USER_ID and M.DOMAIN_ID = q.DOMAIN_ID',
-	max_rows, _words_vector, _words_vector, str, current_user_id);
+	     '          from DB.DBA.MAIL_ATTACHMENT \n' ||
+	     '         where MA_M_OWN = ''%s''\n' ||
+	     '           and contains (MA_CONTENT, ''[__lang "x-ViDoc" __enc "UTF-8"] %s'') \n' ||
+	     '         group by MA_M_OWN, MA_M_ID) MA \n' ||
+	     '   where M.MM_OWN = MA.MA_M_OWN \n' ||
+	     '     and M.MM_ID = MA.MA_M_ID ',
+	     _max, _words_vector, _words_vector, _uname, _str);
     }
 
   return ret;
@@ -2160,7 +2154,7 @@ where WAUI_PHOTO_URL is not null and length (WAUI_PHOTO_URL) = 0
 update WA_USER_INFO set
   WAUI_PHOTO_URL =
     DAV_HOME_DIR ((select U_NAME from SYS_USERS where U_ID = WAUI_U_ID))||'/wa/images/'||WAUI_PHOTO_URL
-where WAUI_PHOTO_URL is not null and blob_to_string (WAUI_PHOTO_URL) not like '/%'
+where WAUI_PHOTO_URL is not null and blob_to_string (WAUI_PHOTO_URL) not like '/%' and blob_to_string (WAUI_PHOTO_URL) not like 'http://%'
 ;
 
 create function WA_SEARCH_CHECK_FT_QUERY (in text varchar, in is_tags integer := 0) returns varchar
diff --git a/appsrc/ODS-Framework/wa_template.sql b/appsrc/ODS-Framework/wa_template.sql
index f3764f9..baa1179 100644
--- a/appsrc/ODS-Framework/wa_template.sql
+++ b/appsrc/ODS-Framework/wa_template.sql
@@ -1,10 +1,10 @@
 --
---  $Id: wa_template.sql,v 1.4.2.1 2010/09/20 10:15:32 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/web_header.vspx b/appsrc/ODS-Framework/web_header.vspx
index 8301205..504189c 100644
--- a/appsrc/ODS-Framework/web_header.vspx
+++ b/appsrc/ODS-Framework/web_header.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: web_header.vspx,v 1.5.2.2 2010/09/20 10:15:32 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/web_svc.sql b/appsrc/ODS-Framework/web_svc.sql
index aa8e7ab..ec09966 100644
--- a/appsrc/ODS-Framework/web_svc.sql
+++ b/appsrc/ODS-Framework/web_svc.sql
@@ -1,10 +1,10 @@
 --
---  $Id: web_svc.sql,v 1.7.2.6 2010/11/19 16:50:50 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -453,3 +453,32 @@ insert soft "DB"."DBA"."SYS_SCHEDULED_EVENT" (SE_INTERVAL, SE_LAST_COMPLETED, SE
   values (10, NULL, 'ODS NOTIFICATIONS', 'ODS.DBA.SVC_PROCESS_PINGS()', now());
 
 use DB;
+
+create procedure WA_USER_OAUTH_UPGRADE ()
+{
+  declare params any;
+
+  if (registry_get ('__WA_USER_OAUTH_UPGRADE') = 'done')
+    return;
+
+  declare exit handler for sqlstate '*' {return; };
+
+  params := (select US_KEY from WA_USER_SVC where US_U_ID = 2 and US_SVC = 'FBKey');
+  if (length (params))
+  {
+    params := replace (params, '\r\n', '&');
+    params := replace (params, '\n', '&');
+    params := split_and_decode (params);
+    if (params is not null and length (trim (get_keyword ('key', params))) > 4 and length (trim (get_keyword ('secret', params))) > 4)
+    {
+      insert into OAUTH..APP_REG (A_OWNER, A_NAME, A_KEY, A_SECRET)
+        values (0, 'Facebook API', trim(get_keyword('key', params)), trim (get_keyword ('secret', params)));
+
+      delete from WA_USER_SVC where US_SVC = 'FBKey';
+    }
+  }
+  registry_set ('__WA_USER_OAUTH_UPGRADE', 'done');
+}
+;
+
+DB.DBA.WA_USER_OAUTH_UPGRADE ();
diff --git a/appsrc/ODS-Framework/webfinger.sql b/appsrc/ODS-Framework/webfinger.sql
index 3c09162..e8dc1fe 100644
--- a/appsrc/ODS-Framework/webfinger.sql
+++ b/appsrc/ODS-Framework/webfinger.sql
@@ -1,12 +1,12 @@
 --
---  $Id: webfinger.sql,v 1.1.4.14 2011/06/02 12:34:01 source Exp $
+--  $Id$
 --
 --  Webfinger & fingerpoint protocol support.
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2010 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/webid_check.vsp b/appsrc/ODS-Framework/webid_check.vsp
index 36133b6..cc8ca3d 100644
--- a/appsrc/ODS-Framework/webid_check.vsp
+++ b/appsrc/ODS-Framework/webid_check.vsp
@@ -48,9 +48,24 @@ html:
 <html>
   <head>
    <title>WebId Identity Provider</title>
+   <style type="text/css">
+      #qrcode {
+        float: right;
+        clear: right;
+        margin-right: 20px;
+      }
+    </style>      
   </head>
   <body>
     <h1>WebId Identity Provider</h1>
+    <?vsp declare qrimg, ua any;
+     ua := http_request_header (lines, 'User-Agent');
+     qrimg := ODS.ODS_API.qrcode (sprintf ('http://%{WSHost}s%s', http_path ()));
+     if (qrimg is not null and strcasestr (ua, 'Mobile') is null) {
+    ?>
+    <div id="qrcode"><img alt="QRcode image" src="data:image/jpg;base64,<?V qrimg ?>"/></div>
+    <?vsp
+      } ?>
     <div>
       This will send a redirection to the URL you have specified in the input, including a signed assertion by this service about your WebID.
     </div>
@@ -68,5 +83,8 @@ html:
 	  <li>signature: SHA1 digest over returning URL</li>
 	</ul>
     </div>
+    <div>
+      <a href="http://ods.openlinksw.com/wiki/ODS/ODSWebIDIdpProxy">Help</a>
+    </div>
   </body>
 </html>
diff --git a/appsrc/ODS-Framework/webid_demo.html b/appsrc/ODS-Framework/webid_demo.html
new file mode 100644
index 0000000..3ea0eb9
--- /dev/null
+++ b/appsrc/ODS-Framework/webid_demo.html
@@ -0,0 +1,142 @@
+<html>
+  <head>
+    <title>WebID Verification Demo</title>
+    <style type="text/css">
+      body {
+      	background-color: white;
+      	color: black;
+      	font-size: 10pt;
+      	font-family: Verdana, Helvetica, sans-serif;
+      }
+      ul {
+        font-family: Verdana, Helvetica, sans-serif;
+        list-style-type: none;
+      }
+      #qrcode {
+        float: right;
+        clear: right;
+        margin-right: 20px;
+      }
+    </style>
+    <script type="text/javascript" src="/ods/oat/loader.js"></script>
+    <script type="text/javascript">
+      OAT.Preferences.imagePath = '/ods/images/oat/';
+      OAT.Preferences.stylePath = '/ods/oat/styles/';
+      OAT.Preferences.showAjax = false;
+
+      var featureList=["ajax", "json"];
+      OAT.Loader.load(featureList);
+    </script>
+    <script type="text/javascript">
+      function check() {
+        var x = function (data) {
+	  var expiration = $('expiration').checked ? '&expiration=true' : '';
+          var callback = document.location.protocol + '//' + document.location.host + document.location.pathname;
+          document.location = 'https://' + data + '/ods/webid_verify.vsp?callback=' + encodeURIComponent(callback) + expiration;
+        }
+        OAT.AJAX.GET ('/ods/api/getDefaultHttps', false, x, {async: false});
+      }
+      function getObject(id) {
+        return document.getElementById(id)
+      }
+      function hide(id) {
+        var obj = getObject(id);
+        obj.style.display = "none";
+      }
+      function show(id) {
+        var obj = getObject(id);
+        obj.style.display = "";
+      }
+      function getParam(name)
+      {
+        name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
+        var regexS = "[\\?&]"+name+"=([^&#]*)";
+        var regex = new RegExp( regexS );
+        var results = regex.exec( window.location.href );
+        if( results == null )
+          return "";
+        else
+          return decodeURIComponent(results[1]);
+      }
+      function showQR()
+      {
+        var hostURL = document.location.protocol + '//' + document.location.host + document.location.pathname;
+        var x = function (data) {
+          var img = getObject('qrcodeImg');
+          img.src = 'data:image/jpg;base64,'+data;
+          show(img);
+        }
+        OAT.AJAX.GET ('/ods/api/qrcode?data='+encodeURIComponent(hostURL), false, x, {async: false});
+      }
+    </script>
+  </head>
+  <body>
+    <h1>WebID Verification Demo</h1>
+    <div id="qrcode"><img id="qrcodeImg" alt="QRcode image" src="" /></div>
+    <script type="text/javascript">
+  	  OAT.Loader.load(['ajax'], showQR);
+  	</script>
+    <div>
+      This will check the WebID watermark in your X.509 Certificate.<br/><br/>
+      This service supports WebIDs based on the following URI schemes (more to come):
+      <ul>
+      	<li>* <b>acct</b>, e.g: <span style="font-size: 80%; color: #1DA237;">acct:ExampleUser at id.example.com</span></li>
+      	<li>* <b>http</b>, e.g: <span style="font-size: 80%; color: #1DA237;">http://id.example.com/person/ExampleUser#this</span></li>
+      	<li>* <b>ldap</b>, e.g: <span style="font-size: 80%; color: #1DA237;">ldap://ldap.example.com/o=An%20Example%5C2C%20Inc.,c=US</span></li>
+      	<li>* <b>mailto</b>, e.g: <span style="font-size: 80%; color: #1DA237;">mailto:ExampleUser at id.example.com</span></li>
+      </ul>
+    </div>
+    <div>
+    	<a href="http://ods.openlinksw.com/wiki/ODS/ODSWebIDIdP">Help</a>
+    </div>	
+    <br/>
+    <br/>
+    <div>
+      <form method="get">
+	<input type="checkbox" value="true" name="expiration" id="expiration" />  <label for="expiration">Check Certificate Expiration</label><br /> 
+        <input type="button" name="go" value="Check" id="go" onclick="javascript: return check();" />
+      </form>
+    </div>
+    <div id="result" style="display: none;">
+    	The return values are:
+	    <ul id="result_webid" style="display: none;">
+	      <li>WebID - <script language="javascript" type="text/javascript">
+            document.write('<a href="" id="link"><span id="webid"></span><\/a>')
+          </script></li>
+	      <li>Subject - <span id="subj"></span></li>
+	      <li>MD5 - <span id="md5"></span></li>
+	      <li>SHA1 - <span id="sha1"></span></li>
+	      <li>Timestamp in ISO 8601 format - <span id="ts"></span></li>
+	    </ul>
+	    <ul id="result_error" style="display: none;">
+	      <li>Error - <span id="error"></span></li>
+	    </ul>
+    </div>
+    <script type="text/javascript">
+      var webid = getParam('webid');
+      var error = getParam('error');
+      if ((webid != '') || (error != '')) {
+        show('result');
+        if (webid != '') {
+          show('result_webid');
+          getObject('webid').innerHTML = getParam('webid');
+          getObject('link').href = getParam('webid');
+          getObject('ts').innerHTML = getParam('ts');
+          getObject('md5').innerHTML = getParam('md5');
+          getObject('sha1').innerHTML = getParam('sha1');
+          getObject('subj').innerHTML = getParam('subj');
+        } else {
+          hide('result_webid');
+        }
+        if (error != '') {
+          show('result_error');
+          getObject('error').innerHTML = getParam('error');;
+        } else {
+          hide('result_error');
+        }
+      } else {
+        hide('result');
+      }
+  	</script>
+  </body>
+</html>
diff --git a/appsrc/ODS-Framework/webid_demo.php b/appsrc/ODS-Framework/webid_demo.php
new file mode 100644
index 0000000..47efdfe
--- /dev/null
+++ b/appsrc/ODS-Framework/webid_demo.php
@@ -0,0 +1,168 @@
+<?php
+  function parseUrl($url)
+  {
+    // parse the given URL
+    $url = parse_url($url);
+    if (!isset($url['port'])) {
+      if ($url['scheme'] == 'http') {
+        $url['port'] = 80;
+      }
+      elseif ($url['scheme'] == 'https') {
+        $url['port'] = 443;
+      }
+    }
+    if ($url['scheme'] == 'https')
+      $url['scheme'] = 'ssl';
+
+    elseif ($url['scheme'] == 'http')
+      $url['scheme'] = 'tcp';
+
+    $url['query'] = isset($url['query'])? $url['query']: '';
+    $url['protocol'] = $url['scheme'] . '://';
+
+    return $url;
+  }
+  function makeRequest($url, $headers) {
+    // parse the given URL
+    $content = "";
+    $fp = fsockopen($url['protocol'] . $url['host'], $url['port'], $errno, $errstr, 30);
+    if ($fp) {
+      if (fwrite($fp, $headers)) {
+        while (!feof($fp)) {
+          $result .= fgets($fp, 128);
+        }
+        fclose($fp);
+
+        // split the result header from the content
+        $result = explode("\r\n\r\n", $result, 2);
+
+        $header = isset($result[0]) ? $result[0] : '';
+        $content = isset($result[1]) ? $result[1] : '';
+      } else {
+        fclose($fp);
+      }
+    }
+    return $content;
+  }
+  function getRequest($url)
+  {
+    $url = parseUrl($url);
+    $eol = "\r\n";
+    $headers = "GET " . $url['path'] . "?" . $url['query'] . " HTTP/1.1" . $eol .
+               "Host: " . $url['host'].":".$url['port'] . $eol .
+               "Connection: close"  . $eol . $eol;
+    return makeRequest ($url, $headers);
+  }
+  function apiURL()
+  {
+    $pageURL = $_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://';
+    $pageURL .= $_SERVER['SERVER_PORT'] <> '80' ? $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"] : $_SERVER['SERVER_NAME'];
+    return $pageURL.'/ods/api';
+  }
+  function httpURL()
+  {
+    $pageURL = $_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://';
+    $pageURL .= $_SERVER['SERVER_PORT'] <> '80' ? $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'] : $_SERVER['SERVER_NAME'];
+    return $pageURL . '/ods/webid/webid_demo.php';
+  }
+	$_webid = isset ($_REQUEST['webid']) ? $_REQUEST['webid'] : '';
+	$_error = isset ($_REQUEST['error']) ? $_REQUEST['error'] : '';
+	$_action = isset ($_REQUEST['go']) ? $_REQUEST['go'] : '';
+  if (($_webid == '') && ($_error == ''))
+  {
+    if ($_action <> '')
+    {
+      $_url = getRequest (sprintf ("%s/getDefaultHttps", apiURL()));
+      $_url = sprintf ('https://%s/ods/webid_verify.vsp?callback=%s', $_url, urlencode(httpURL()));
+      $_expiration = isset ($_REQUEST['expiration']) ? $_REQUEST['expiration'] : '';
+      if ($_expiration == 'true')
+        $_url .= '&expiration=true';
+
+      header (sprintf ('Location: %s', $_url));
+      return;
+    }
+  }
+?>
+<html>
+  <head>
+    <title>WebID Verification Demo</title>
+    <style type="text/css">
+      body {
+      	background-color: white;
+      	color: black;
+      	font-size: 10pt;
+      	font-family: Verdana, Helvetica, sans-serif;
+      }
+      ul {
+        font-family: Verdana, Helvetica, sans-serif;
+        list-style-type: none;
+      }
+      #qrcode {
+        float: right;
+        clear: right;
+        margin-right: 20px;
+      }
+    </style>
+  </head>
+  <body>
+    <h1>WebID Verification Demo</h1>
+    <?php
+      $_QR = getRequest (sprintf ("%s/qrcode?data=%s", apiURL(), urlencode(httpURL())));
+      if ($_QR <> '')
+      {
+    ?>
+    <div id="qrcode"><img alt="QRcode image" src="data:image/jpg;base64,<?php print ($_QR); ?>" /></div>
+    <?php
+      }
+    ?>
+    <div>
+      This will check the WebID watermark in your X.509 Certificate.<br/><br/>
+      This service supports WebIDs based on the following URI schemes (more to come):
+      <ul>
+      	<li>* <b>acct</b>, e.g: <span style="font-size: 80%; color: #1DA237;">acct:ExampleUser at id.example.com</span></li>
+      	<li>* <b>http</b>, e.g: <span style="font-size: 80%; color: #1DA237;">http://id.example.com/person/ExampleUser#this</span></li>
+      	<li>* <b>ldap</b>, e.g: <span style="font-size: 80%; color: #1DA237;">ldap://ldap.example.com/o=An%20Example%5C2C%20Inc.,c=US</span></li>
+      	<li>* <b>mailto</b>, e.g: <span style="font-size: 80%; color: #1DA237;">mailto:ExampleUser at id.example.com</span></li>
+      </ul>
+    </div>
+    <div>
+    	<a href="http://ods.openlinksw.com/wiki/ODS/ODSWebIDIdP">Help</a>
+    </div>
+    <br/>
+    <br/>
+    <div>
+      <form method="get">
+	      <input type="checkbox" value="true" name="expiration" id="expiration" />  <label for="expiration">Check Certificate Expiration</label><br />
+        <input type="submit" name="go" value="Check"/>
+      </form>
+    </div>
+    <?php
+      if (($_webid <> '') || ($_error <> ''))
+      {
+    ?>
+      <div>
+      	The return values are:
+  	    <ul>
+          <?php
+            if ($_webid <> '')
+            {
+	            $_proxyIri = getRequest (sprintf ("%s/iri2proxy?iri=%s", apiURL(), urlencode($_webid)));
+          ?>
+  	      <li>WebID -  <?php print (sprintf('<a href="%s">%s</a>', $_proxyIri, $_proxyIri)); ?></li>
+  	      <li>Timestamp in ISO 8601 format - <?php print ($_REQUEST['ts']); ?></li>
+          <?php
+            }
+            else if ($_error <> '')
+            {
+          ?>
+  	      <li>Error - <?php print ($_error); ?></li>
+          <?php
+            }
+          ?>
+  	    </ul>
+      </div>
+    <?php
+      }
+    ?>
+  </body>
+</html>
diff --git a/appsrc/ODS-Framework/webid_demo.vsp b/appsrc/ODS-Framework/webid_demo.vsp
new file mode 100644
index 0000000..eda8913
--- /dev/null
+++ b/appsrc/ODS-Framework/webid_demo.vsp
@@ -0,0 +1,128 @@
+<?vsp
+  declare webid, error, action, hostUrl, httpsUrl, url, callback, certificate any;
+
+	webid := get_keyword ('webid', params);
+	error := get_keyword ('error', params);
+	action := get_keyword ('go', params);
+  if (length (webid) or length (error))
+    goto html;
+
+  if (not length (action))
+    goto html;
+
+  if (is_https_ctx ())
+  {
+    hostUrl := 'https://' || ODS.ODS_API.getDefaultHttps ();
+  }
+  else
+  {
+    hostUrl := cfg_item_value (virtuoso_ini_path (), 'URIQA', 'DefaultHost');
+    if (hostUrl is null)
+    {
+      hostUrl := sys_stat ('st_host_name');
+      if (server_http_port () <> '80')
+        hostUrl := hostUrl || ':' || server_http_port ();
+    }
+    hostUrl := 'http://' || hostUrl;
+  }
+  if (isnull (hostUrl))
+  {
+    error := 'No certificate';
+    goto html;
+  }
+  httpsUrl := ODS.ODS_API.getDefaultHttps();
+  if (isnull (httpsUrl))
+    httpsUrl := 'id.myopenlink.net';
+
+  callback := hostUrl || '/ods/webid/webid_demo.vsp';
+  url := sprintf ('https://%s/ods/webid_verify.vsp?callback=%U', httpsUrl, callback);
+  if (get_keyword ('expiration', params, '') = 'true')
+    url := url || '&expiration=true';
+
+  http_status_set (302);
+  http_header (sprintf ('Location: %s\r\n', url));
+  return;
+
+html:
+?>
+<html>
+  <head>
+    <title>WebID Verification Demo</title>
+    <style type="text/css">
+      body {
+      	background-color: white;
+      	color: black;
+      	font-size: 10pt;
+      	font-family: Verdana, Helvetica, sans-serif;
+      }
+      ul {
+        font-family: Verdana, Helvetica, sans-serif;
+        list-style-type: none;
+      }
+      #qrcode {
+        float: right;
+        clear: right;
+        margin-right: 20px;
+      }
+    </style>
+  </head>
+  <body>
+    <h1>WebID Verification Demo</h1>
+    <?vsp declare qrimg, ua any;
+     ua := http_request_header (lines, 'User-Agent');
+     qrimg := ODS.ODS_API.qrcode (sprintf ('http://%{WSHost}s%s', http_path ()));
+     if (qrimg is not null and strcasestr (ua, 'Mobile') is null) {
+    ?>
+    <div id="qrcode"><img alt="QRcode image" src="data:image/jpg;base64,<?V qrimg ?>"/></div>
+    <?vsp
+      } ?>
+    <div>
+      This will check the WebID watermark in your X.509 Certificate.<br/><br/>
+      This service supports WebIDs based on the following URI schemes (more to come):
+      <ul>
+      	<li>* <b>acct</b>, e.g: <span style="font-size: 80%; color: #1DA237;">acct:ExampleUser at id.example.com</span></li>
+      	<li>* <b>http</b>, e.g: <span style="font-size: 80%; color: #1DA237;">http://id.example.com/person/ExampleUser#this</span></li>
+      	<li>* <b>ldap</b>, e.g: <span style="font-size: 80%; color: #1DA237;">ldap://ldap.example.com/o=An%20Example%5C2C%20Inc.,c=US</span></li>
+      	<li>* <b>mailto</b>, e.g: <span style="font-size: 80%; color: #1DA237;">mailto:ExampleUser at id.example.com</span></li>
+      </ul>
+    </div>
+    <div>
+    	<a href="http://ods.openlinksw.com/wiki/ODS/ODSWebIDIdP">Help</a>
+    </div>
+    <br/>
+    <br/>
+    <div>
+      <form method="get">
+	      <input type="checkbox" value="true" name="expiration" id="expiration" />  <label for="expiration">Check Certificate Expiration</label><br />
+        <input type="submit" name="go" value="Check"/>
+      </form>
+    </div>
+    <?vsp
+      if (length (webid) or length (error))
+      {
+    ?>
+      <div>
+      	The return values are:
+  	    <ul>
+          <?vsp
+            if (length (webid))
+            {
+          ?>
+  	      <li>WebID - <?vsp http(sprintf('<a href="%s">%s</a>', DB.DBA.RDF_PROXY_ENTITY_IRI (rtrim (webid, '#this')), DB.DBA.RDF_PROXY_ENTITY_IRI (rtrim (webid, '#this')) )); ?></li>
+  	      <li>Timestamp in ISO 8601 format - <?V get_keyword ('ts', params) ?></li>
+          <?vsp
+            }
+            if (length (error))
+            {
+          ?>
+  	      <li>Error - <?V error ?></li>
+          <?vsp
+            }
+          ?>
+  	    </ul>
+      </div>
+    <?vsp
+      }
+    ?>
+  </body>
+</html>
diff --git a/appsrc/ODS-Framework/webid_select.vspx b/appsrc/ODS-Framework/webid_select.vspx
index fd7e700..2f1cb96 100644
--- a/appsrc/ODS-Framework/webid_select.vspx
+++ b/appsrc/ODS-Framework/webid_select.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: webid_select.vspx,v 1.1.4.8 2011/05/20 12:02:33 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2009 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Framework/webid_verify.vsp b/appsrc/ODS-Framework/webid_verify.vsp
index 45064f0..f9b79d9 100644
--- a/appsrc/ODS-Framework/webid_verify.vsp
+++ b/appsrc/ODS-Framework/webid_verify.vsp
@@ -1,51 +1,81 @@
 <?vsp
-  declare info, res, cb, mod, exp, webid, ret_url, cert, ctype any;
+  declare info, res, cb, mod, exp, webid, ret_url, cert, ctype, err, dummy, expiry_verify, vtype, md5, sha1, subj, json_out any;
   cb := {?'callback'};
   cert := {?'certificate'};
-  if ((length (cb) = 0) or ((length (cert) = 0) and not is_http_ctx ()))
+  err := '';
+
+  json_out := {?'json'};
+
+  declare acc any;
+  acc := http_request_header (lines, 'Accept', null, '');
+
+  if (json_out = 'yes' or 'application/json' = acc)
+    json_out := 1;
+  else
+    json_out := 0;
+
+  dummy := null;
+  if (not xenc_key_exists ('id_rsa'))
     {
+      err := 'Must configure CA on this host.';
       goto html;
     }
+
+  if (not length(cb)) 
+    {
+      if (json_out) 
+        {
+          http_status_set (400);
+          return;
+    }
+      else goto html;
+    }
+  
+  if ((length (cert) = 0) and not is_http_ctx ())
+      goto html;
+
   ctype := 1;
   if (not length (cert))
     {
       cert := client_attr ('client_certificate');
       ctype := 0;
-    } else {
-  if (strstr (cert, '-----BEGIN CERTIFICATE-----') is null)
+    } 
+  else 
+    {
+      if (strstr (cert, '-----BEGIN CERTIFICATE-----') is null)
     cert := decode_base64 (cert);
   else
     ctype := 0;
     }
+  if ({?'expiration'} = 'true')
+    expiry_verify := 1;
+  else 
+    expiry_verify := 0;
+
   if (strchr (cb, '?') is null)
     cb := cb || '?';
   else
     cb := cb || '&';
   mod := exp := '';
-  if (not is_http_ctx ())
+  md5 := ''; sha1 := ''; subj := '';
+  if (not is_http_ctx () or cert = 0)
     res := 'noCert';
   else
     { 
       info := get_certificate_info (9, cert, ctype);
       if (info is null)
         res := 'noCert';
-      else if (WEBID_AUTH_GEN (cert, ctype, null, 1, 0))
-        {
-          webid := FOAF_SSL_WEBID_GET (cert, ctype);
-	  if (webid is null)
-	    {
-	      webid := FOAF_SSL_WEBFINGER (cert, 0, ctype);
-	      if (webid is null)
-		webid := ODS..FINGERPOINT_WEBID_GET (cert, null, ctype);
-	    }
-	  res := 'success'; 
-        }
+      else if (WEBID_AUTH_GEN_2 (cert, ctype, null, 1, 0, webid, dummy, expiry_verify, vtype))
+	res := 'success';
       else
 	res := 'noVerified';
       if (info is not null)
         { 
       	  mod := info[1];
           exp := bin2hex (info[2]);
+          md5 := get_certificate_info (6, cert, ctype, null, 'md5');
+          sha1 := get_certificate_info (6, cert, ctype, null, 'sha1');
+          subj := get_certificate_info (2, cert, ctype);
 	}
     }
    if (res = 'success')
@@ -56,21 +86,74 @@
      {
        ret_url := sprintf ('%serror=%U', cb, res);
      }
-   ret_url := ret_url || sprintf ('&ts=%U', date_iso8601 (now ()));  
+
+   ret_url := ret_url || sprintf ('&ts=%U&md5=%U&sha1=%U&subj=%U', date_iso8601 (now ()), md5, sha1, subj);
    ret_url := ret_url || sprintf ('&signature=%U', xenc_dsig_sign (ret_url, 'id_rsa', xenc_get_key_algo ('id_rsa')));  
+
+  if (not json_out) 
+    {
    http_status_set (302);
    http_header (sprintf ('Location: %s\r\n', ret_url));
    return;
+    }
+  else 
+    {
+      http_header ('Content-Type: application/json\r\n');
+      http (sprintf ('{"result": "%U","webid":"%U","ts":"%U","md5":"%U","sha1":"%U","subj":"%U","url":"%s", "signature":"%U"}',
+                      res, coalesce(webid,''), date_iso8601 (now ()), 
+                      md5, sha1, subj, ret_url, xenc_dsig_sign (ret_url, 'id_rsa', xenc_get_key_algo ('id_rsa'))));
+      return;
+    }
+
 html:
+
 ?>
 <html>
   <head>
    <title>WebID Verification Service</title>
+    <style type="text/css">
+      body {
+      	background-color: white;
+      	color: black;
+      	font-size: 10pt;
+      	font-family: Verdana, Helvetica, sans-serif;
+      }
+      ul {
+        font-family: Verdana, Helvetica, sans-serif;
+        list-style-type: none;
+      }
+      #qrcode {
+        float: right;
+        clear: right;
+        margin-right: 20px;
+      }
+    </style>
   </head>
   <body>
     <h1>WebID Verification Service</h1>
+    <div class="msg"><?V err ?></div>
+        <?vsp declare qrimg, ua any;
+     ua := http_request_header (lines, 'User-Agent');
+     qrimg := ODS.ODS_API.qrcode (sprintf ('http://%{WSHost}s%s', http_path ()));
+     if (qrimg is not null and strcasestr (ua, 'Mobile') is null) {
+    ?>
+    <div id="qrcode"><img alt="QRcode image" src="data:image/jpg;base64,<?V qrimg ?>"/></div>
+    <?vsp
+      } ?>
+    <div>
+      This will send a redirection to the URL you have specified in the input, including a signed assertion by this service about your X.509 Certificate's WebID watermark.
+      <br/>
+      This service supports WebIDs based on the following URI schemes (more to come):
+      <ul>
+      	<li>* <b>ldap</b>, for e.g: <span style="font-size: 80%; color: #1DA237;">ldap://ldap.example.com/o=An%20Example%5C2C%20Inc.,c=US</span></li>
+      	<li>* <b>http</b>, for e.g: <span style="font-size: 80%; color: #1DA237;">http://id.example.com/person/ExampleUser#this</span></li>
+
+      	<li>* <b>mailto</b>, for e.g: <span style="font-size: 80%; color: #1DA237;">mailto:ExampleUser at id.example.com</span></li>
+      	<li>* <b>acct</b>, for e.g: <span style="font-size: 80%; color: #1DA237;">acct:ExampleUser at id.example.com</span></li>
+      </ul>
+    </div>
     <div>
-This will send a redirection to the URL you have specified in the input, including a signed assertion by this service about your X.509 Certificate's WebID  watermark. <br/>Also note this service supports ldap, http, mailto, acct scheme based WebIDs.
+    	<a href="http://ods.openlinksw.com/wiki/ODS/ODSWebIDIdP">Help</a>
     </div>
     <br/>
     <br/>
@@ -84,6 +167,13 @@ This will send a redirection to the URL you have specified in the input, includi
     </form>
     </div>
     <div>
+	Input parameters:
+	<ul>
+	  <li>callback: return callback URL (mandatory)</li>
+	  <li>certificate: X.509 certificate (optional)</li>
+	</ul>
+    </div>
+    <div>
 	The return values are:
 	<ul>
 	  <li>webid: the webid have been verified</li>
diff --git a/appsrc/ODS-Gallery/Makefile.am b/appsrc/ODS-Gallery/Makefile.am
index 36d2ecb..64311b0 100644
--- a/appsrc/ODS-Gallery/Makefile.am
+++ b/appsrc/ODS-Gallery/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -47,6 +47,7 @@ EXTRA_DIST = \
 	make_vad.sh \
 	sql/*.sql \
 	sql/procedures/*.sql \
+	vad_version \
 	www-root/*.vsp \
 	www-root/*.vspx \
 	www-root/css/*.css \
diff --git a/appsrc/ODS-Gallery/Makefile.in b/appsrc/ODS-Gallery/Makefile.in
index 10a3d10..7d0202e 100644
--- a/appsrc/ODS-Gallery/Makefile.in
+++ b/appsrc/ODS-Gallery/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -38,9 +37,8 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -70,7 +68,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -78,23 +75,9 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(vaddir)"
+nodist_vadDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(nodist_vad_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -184,7 +167,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -268,7 +250,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -289,7 +270,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -310,6 +290,7 @@ EXTRA_DIST = \
 	make_vad.sh \
 	sql/*.sql \
 	sql/procedures/*.sql \
+	vad_version \
 	www-root/*.vsp \
 	www-root/*.vspx \
 	www-root/css/*.css \
@@ -327,14 +308,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu appsrc/ODS-Gallery/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu appsrc/ODS-Gallery/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  appsrc/ODS-Gallery/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  appsrc/ODS-Gallery/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -352,7 +333,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -362,23 +342,20 @@ clean-libtool:
 install-nodist_vadDATA: $(nodist_vad_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(vaddir)" || $(MKDIR_P) "$(DESTDIR)$(vaddir)"
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	for p in $$list; do \
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vaddir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(vaddir)" || exit $$?; \
+	  f=$(am__strip_dir) \
+	  echo " $(nodist_vadDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(vaddir)/$$f'"; \
+	  $(nodist_vadDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(vaddir)/$$f"; \
 	done
 
 uninstall-nodist_vadDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(vaddir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(vaddir)" && rm -f $$files
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(vaddir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(vaddir)/$$f"; \
+	done
 tags: TAGS
 TAGS:
 
@@ -402,17 +379,13 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
@@ -444,7 +417,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -463,8 +435,6 @@ dvi-am:
 
 html: html-am
 
-html-am:
-
 info: info-am
 
 info-am:
@@ -473,28 +443,18 @@ install-data-am: install-nodist_vadDATA
 
 install-dvi: install-dvi-am
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-am
 
-install-html-am:
-
 install-info: install-info-am
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-am
 
-install-pdf-am:
-
 install-ps: install-ps-am
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -535,7 +495,6 @@ ods_gallery_dav.vad: $(EXTRA_DIST)
 
 clean-local:
 	-rm -rf vad
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/appsrc/ODS-Gallery/make_vad.sh b/appsrc/ODS-Gallery/make_vad.sh
index e7a86a4..81989fb 100755
--- a/appsrc/ODS-Gallery/make_vad.sh
+++ b/appsrc/ODS-Gallery/make_vad.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: make_vad.sh,v 1.22.2.10 2011/05/17 22:58:51 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -29,7 +29,7 @@ LC_ALL=POSIX
 export LANG LC_ALL
 
 LOGDIR=`pwd`
-VERSION="0.3.59"
+VERSION="1.0.0"
 LOGFILE="${LOGDIR}/make_vad.log"
 STICKER="make_vad.xml"
 PACKDATE=`date +"%Y-%m-%d %H:%M"`
@@ -58,21 +58,6 @@ else
   LN="ln -fs"
   RM="rm -f"
 fi
-VOS=0
-if [ -f ../../autogen.sh ]
-then
-    VOS=1
-fi
-
-if [ "z$SERVER" = "z" ]  
-then
-    if [ "x$HOST_OS" != "x" ]
-    then
-	SERVER=virtuoso-odbc-t.exe
-    else
-	SERVER=virtuoso
-    fi
-fi
 
 rm -rf vad
 
@@ -85,14 +70,55 @@ else
   myrm=$RM
 fi
 
-VERSION_INIT() 
+
+VOS=0
+if [ -f ../../autogen.sh ]
+then
+    VOS=1
+fi
+
+version_init() 
 {
+  if [ $VOS -eq 1 ]
+  then
+      if [ -f vad_version ]
+      then
+	  VERSION=`cat vad_version`
+      else
+        LOG "The vad_version does not exist, please verify your checkout"
+	exit 1
+      fi
+  else
   rm -f version.tmp
-  for i in `find . -name 'Entries' | grep -v "vad/"`; do
-        cat $i | grep "^[^D].*" | cut -f 3 -d "/" | sed -e "s/1\.//g" >> version.tmp
+      for i in `find . -name 'Entries' | grep -v "vad/" | grep -v "/tests/"`; do
+	  cat "$i" | grep -v "version\."| grep "^[^D].*" | cut -f 3 -d "/" | sed -e "s/1\.//g" >> version.tmp
   done
-  VERSION=`cat version.tmp | awk ' BEGIN { cnt=78 } { cnt = cnt + $1} END { printf "1.%02.02f", cnt/100 + 1}'`
+      LANG=POSIX
+      export LANG
+
+      BASE="0"
+#      echo $BASE
+      if [ -f version.base ] ; then
+	  BASE=`cat version.base`
+      fi
+
+      VERSION=`cat version.tmp | awk ' BEGIN { cnt=10 } { cnt = cnt + $1 } END { print cnt }'`
+
+      VERSION=`expr $BASE + $VERSION`
+      CURR_VERSION=$VERSION
+      if [ -f version.curr ] ; then
+	  CURR_VERSION=`cat version.curr`
+      fi
+      if [ $CURR_VERSION -gt $VERSION ] ; then
+	  BASE=`expr $CURR_VERSION - $VERSION + 1`
+	  echo $BASE > version.base
+	  VERSION=$CURR_VERSION
+      fi
+      echo $VERSION > version.curr
+      VERSION=`echo $VERSION | awk ' { printf "1.%02.02f", $1/100 }'`
   rm -f version.tmp
+      echo "$VERSION" > vad_version
+  fi
 }
 
 virtuoso_start() {
@@ -225,7 +251,7 @@ sticker_init() {
   echo "  <name package=\"Gallery\">" >> $STICKER
   echo "    <prop name=\"Title\" value=\"ODS Gallery\"/>" >> $STICKER
   echo "    <prop name=\"Developer\" value=\"OpenLink Software\"/>" >> $STICKER
-  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2011 OpenLink Software\"/>" >> $STICKER
+  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2012 OpenLink Software\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.com/virtuoso\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.co.uk/virtuoso\"/>" >> $STICKER
   echo "  </name>" >> $STICKER
@@ -400,7 +426,7 @@ echo '----------------------'
 
 STOP_SERVER
 directory_clean
-VERSION_INIT
+version_init
 directory_init
 virtuoso_init
 sticker_init
@@ -408,7 +434,6 @@ vad_create
 virtuoso_shutdown
 STOP_SERVER
 chmod 644 ods_gallery_dav.vad
-directory_clean
 
 CHECK_LOG
 RUN egrep  '"\*\*.*FAILED:|\*\*.*ABORTED:"' "$LOGFILE"
@@ -418,5 +443,7 @@ then
 	exit 1
 fi
 
+directory_clean
+
 BANNER "COMPLETED VAD PACKAGING"
 exit 0
diff --git a/appsrc/ODS-Gallery/sql/create_tables.sql b/appsrc/ODS-Gallery/sql/create_tables.sql
index 653e9dc..851dbb7 100644
--- a/appsrc/ODS-Gallery/sql/create_tables.sql
+++ b/appsrc/ODS-Gallery/sql/create_tables.sql
@@ -1,10 +1,10 @@
 --
---  $Id: create_tables.sql,v 1.9.2.1 2010/09/20 10:15:36 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/sql/create_triggers.sql b/appsrc/ODS-Gallery/sql/create_triggers.sql
index a8baa67..e9abb29 100644
--- a/appsrc/ODS-Gallery/sql/create_triggers.sql
+++ b/appsrc/ODS-Gallery/sql/create_triggers.sql
@@ -1,10 +1,10 @@
 --
---  $Id: create_triggers.sql,v 1.4.2.2 2010/09/20 10:15:36 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/sql/photo-wa-install.sql b/appsrc/ODS-Gallery/sql/photo-wa-install.sql
index 54abba6..85b0781 100644
--- a/appsrc/ODS-Gallery/sql/photo-wa-install.sql
+++ b/appsrc/ODS-Gallery/sql/photo-wa-install.sql
@@ -1,10 +1,10 @@
 --
---  $Id: photo-wa-install.sql,v 1.16.2.3 2011/05/18 21:18:29 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/sql/photo-wa-uninstall.sql b/appsrc/ODS-Gallery/sql/photo-wa-uninstall.sql
index 0cb4ecc..905d2fe 100644
--- a/appsrc/ODS-Gallery/sql/photo-wa-uninstall.sql
+++ b/appsrc/ODS-Gallery/sql/photo-wa-uninstall.sql
@@ -1,10 +1,10 @@
 --
---  $Id: photo-wa-uninstall.sql,v 1.8.2.2 2011/05/18 21:18:29 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/sql/procedures/comments.sql b/appsrc/ODS-Gallery/sql/procedures/comments.sql
index 3953fe6..f5fa503 100644
--- a/appsrc/ODS-Gallery/sql/procedures/comments.sql
+++ b/appsrc/ODS-Gallery/sql/procedures/comments.sql
@@ -1,10 +1,10 @@
 --
---  $Id: comments.sql,v 1.10.2.1 2010/09/20 10:15:37 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/sql/procedures/common.sql b/appsrc/ODS-Gallery/sql/procedures/common.sql
index 3753377..3f19d8f 100644
--- a/appsrc/ODS-Gallery/sql/procedures/common.sql
+++ b/appsrc/ODS-Gallery/sql/procedures/common.sql
@@ -1,10 +1,10 @@
 --
---  $Id: common.sql,v 1.5.2.1 2010/09/20 10:15:37 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/sql/procedures/dav_api.sql b/appsrc/ODS-Gallery/sql/procedures/dav_api.sql
index c9c1353..3269c49 100644
--- a/appsrc/ODS-Gallery/sql/procedures/dav_api.sql
+++ b/appsrc/ODS-Gallery/sql/procedures/dav_api.sql
@@ -1,10 +1,10 @@
 --
---  $Id: dav_api.sql,v 1.13.2.3 2011/05/20 12:02:09 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/sql/procedures/exec_no_error.sql b/appsrc/ODS-Gallery/sql/procedures/exec_no_error.sql
index b425a86..1c8479e 100644
--- a/appsrc/ODS-Gallery/sql/procedures/exec_no_error.sql
+++ b/appsrc/ODS-Gallery/sql/procedures/exec_no_error.sql
@@ -1,10 +1,10 @@
 --
---  $Id: exec_no_error.sql,v 1.5.2.1 2010/09/20 10:15:37 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/sql/procedures/images.sql b/appsrc/ODS-Gallery/sql/procedures/images.sql
index d817496..a57de4c 100644
--- a/appsrc/ODS-Gallery/sql/procedures/images.sql
+++ b/appsrc/ODS-Gallery/sql/procedures/images.sql
@@ -1,10 +1,10 @@
 --
---  $Id: images.sql,v 1.9.2.1 2010/09/20 10:15:37 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/sql/procedures/nntp.sql b/appsrc/ODS-Gallery/sql/procedures/nntp.sql
index cf341b3..926e7da 100644
--- a/appsrc/ODS-Gallery/sql/procedures/nntp.sql
+++ b/appsrc/ODS-Gallery/sql/procedures/nntp.sql
@@ -1,10 +1,10 @@
 --
---  $Id: nntp.sql,v 1.2.2.1 2010/09/20 10:15:37 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2008 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/sql/procedures/photo_api.sql b/appsrc/ODS-Gallery/sql/procedures/photo_api.sql
index 73f992f..a1950f7 100644
--- a/appsrc/ODS-Gallery/sql/procedures/photo_api.sql
+++ b/appsrc/ODS-Gallery/sql/procedures/photo_api.sql
@@ -1,10 +1,10 @@
 --
---  $Id: photo_api.sql,v 1.4.2.4 2011/05/17 22:58:51 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2008 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/sql/procedures/procedures.sql b/appsrc/ODS-Gallery/sql/procedures/procedures.sql
index c92acc7..f11955e 100644
--- a/appsrc/ODS-Gallery/sql/procedures/procedures.sql
+++ b/appsrc/ODS-Gallery/sql/procedures/procedures.sql
@@ -1,10 +1,10 @@
 --
---  $Id: procedures.sql,v 1.14.2.1 2010/09/20 10:15:37 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/sql/procedures/rss.sql b/appsrc/ODS-Gallery/sql/procedures/rss.sql
index df9dd69..9aa40c9 100644
--- a/appsrc/ODS-Gallery/sql/procedures/rss.sql
+++ b/appsrc/ODS-Gallery/sql/procedures/rss.sql
@@ -1,10 +1,10 @@
 --
---  $Id: rss.sql,v 1.3.2.4 2011/05/20 12:02:09 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/sql/procedures/sioc.sql b/appsrc/ODS-Gallery/sql/procedures/sioc.sql
index 2a1eef6..e4fbe7a 100644
--- a/appsrc/ODS-Gallery/sql/procedures/sioc.sql
+++ b/appsrc/ODS-Gallery/sql/procedures/sioc.sql
@@ -1,10 +1,10 @@
 --
---  $Id: sioc.sql,v 1.19.2.6 2011/05/18 21:18:29 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/sql/procedures/types.sql b/appsrc/ODS-Gallery/sql/procedures/types.sql
index 98ba241..f1ae652 100644
--- a/appsrc/ODS-Gallery/sql/procedures/types.sql
+++ b/appsrc/ODS-Gallery/sql/procedures/types.sql
@@ -1,10 +1,10 @@
 --
---  $Id: types.sql,v 1.8.2.2 2010/09/20 10:15:37 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/vad_version b/appsrc/ODS-Gallery/vad_version
new file mode 100644
index 0000000..0604715
--- /dev/null
+++ b/appsrc/ODS-Gallery/vad_version
@@ -0,0 +1 @@
+1.10.65
diff --git a/appsrc/ODS-Gallery/www-root/css/gallery.css b/appsrc/ODS-Gallery/www-root/css/gallery.css
index 93ba432..93861c5 100644
--- a/appsrc/ODS-Gallery/www-root/css/gallery.css
+++ b/appsrc/ODS-Gallery/www-root/css/gallery.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: gallery.css,v 1.13.2.1 2010/09/20 10:15:38 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/www-root/css/timeline.css b/appsrc/ODS-Gallery/www-root/css/timeline.css
index c105a20..b5cd4c1 100644
--- a/appsrc/ODS-Gallery/www-root/css/timeline.css
+++ b/appsrc/ODS-Gallery/www-root/css/timeline.css
@@ -1,9 +1,9 @@
 /*
- *  $Id: timeline.css,v 1.2.2.1 2010/09/20 10:15:38 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Ajax Toolkit (OAT) project.
  *
- *  Copyright (C) 2005-2007 OpenLink Software
+ *  Copyright (C) 2005-2012 OpenLink Software
  *
  *  See LICENSE file for details.
  */
diff --git a/appsrc/ODS-Gallery/www-root/css/upload.css b/appsrc/ODS-Gallery/www-root/css/upload.css
index f9c099e..bc16d21 100644
--- a/appsrc/ODS-Gallery/www-root/css/upload.css
+++ b/appsrc/ODS-Gallery/www-root/css/upload.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: upload.css,v 1.2.2.1 2010/09/20 10:15:38 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/www-root/image.vsp b/appsrc/ODS-Gallery/www-root/image.vsp
index bae7120..e30ff63 100644
--- a/appsrc/ODS-Gallery/www-root/image.vsp
+++ b/appsrc/ODS-Gallery/www-root/image.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: image.vsp,v 1.5.2.1 2010/09/20 10:15:38 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/www-root/index.vspx b/appsrc/ODS-Gallery/www-root/index.vspx
index 21ac1d3..5c64c1c 100644
--- a/appsrc/ODS-Gallery/www-root/index.vspx
+++ b/appsrc/ODS-Gallery/www-root/index.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: index.vspx,v 1.4.2.1 2010/09/20 10:15:38 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/www-root/js/calendar.js b/appsrc/ODS-Gallery/www-root/js/calendar.js
index 7d991fa..8799f3f 100644
--- a/appsrc/ODS-Gallery/www-root/js/calendar.js
+++ b/appsrc/ODS-Gallery/www-root/js/calendar.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: calendar.js,v 1.1.2.3 2010/09/20 10:15:38 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/www-root/js/dataset.js b/appsrc/ODS-Gallery/www-root/js/dataset.js
index a41e1e3..56ec95e 100644
--- a/appsrc/ODS-Gallery/www-root/js/dataset.js
+++ b/appsrc/ODS-Gallery/www-root/js/dataset.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: dataset.js,v 1.6.2.1 2010/09/20 10:15:38 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/www-root/js/gallery.js b/appsrc/ODS-Gallery/www-root/js/gallery.js
index e053c4f..7c6e627 100644
--- a/appsrc/ODS-Gallery/www-root/js/gallery.js
+++ b/appsrc/ODS-Gallery/www-root/js/gallery.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: gallery.js,v 1.23.2.3 2010/09/20 10:15:38 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/www-root/js/map.js b/appsrc/ODS-Gallery/www-root/js/map.js
index 133cc23..668a881 100644
--- a/appsrc/ODS-Gallery/www-root/js/map.js
+++ b/appsrc/ODS-Gallery/www-root/js/map.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: map.js,v 1.3.2.2 2010/09/20 10:15:38 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/www-root/js/slideshow.js b/appsrc/ODS-Gallery/www-root/js/slideshow.js
new file mode 100644
index 0000000..dac9037
--- /dev/null
+++ b/appsrc/ODS-Gallery/www-root/js/slideshow.js
@@ -0,0 +1,124 @@
+/***********************************************
+* Fade-in image slideshow script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
+* This notice MUST stay intact for legal use
+* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
+***********************************************/
+
+var slideshow_width='720' //SET IMAGE WIDTH
+var slideshow_height='540px' //SET IMAGE HEIGHT
+var pause=3000 //SET PAUSE BETWEEN SLIDE (3000=3 seconds)
+
+var fadeimages=new Array()
+//SET 1) IMAGE PATHS, 2) optional link, 3), optional link target:
+//fadeimages[0]=["photo1.jpg", "", ""] //plain image syntax
+//fadeimages[1]=["photo2.jpg", "http://www.google.com", ""] //image with link syntax
+//fadeimages[2]=["photo3.jpg", "http://www.javascriptkit.com", "_new"] //image with link and target syntax
+
+////NO need to edit beyond here/////////////
+
+var preloadedimages=new Array()
+
+
+var ie4=document.all
+var dom=document.getElementById
+
+//if (ie4||dom)
+//document.write('
+//  <div style="position:relative;width:'+slideshow_width+';height:'+slideshow_height+';overflow:hidden">
+//    <div  id="canvas0" style="position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';top:0;left:0;filter:alpha(opacity=10);-moz-opacity:10"></div>
+//    <div id="canvas1" style="position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';top:0;left:0;filter:alpha(opacity=10);-moz-opacity:10;visibility: hidden"></div>
+//  </div>')
+//else
+//document.write('<img name="defaultslide" src="'+fadeimages[0][0]+'">')
+
+var curpos=10
+var degree=10
+var curcanvas="canvas0"
+var curimageindex=0
+var nextimageindex=1
+
+
+//------------------------------------------------------------------------------
+function fadepic(){
+  if (curpos<100){
+    curpos+=10
+    if (tempobj.filters){
+      tempobj.filters.alpha.opacity=curpos
+    }else if (tempobj.style.MozOpacity){
+      tempobj.style.MozOpacity=curpos/101
+    }
+  }
+  else{
+    clearInterval(dropslide)
+    nextcanvas=(curcanvas=="canvas0")? "canvas0" : "canvas1"
+    tempobj=ie4? eval("document.all."+nextcanvas) : document.getElementById(nextcanvas)
+
+    tempobj.innerHTML=insertimage(nextimageindex)
+    nextimageindex=(nextimageindex<fadeimages.length-1)? nextimageindex+1 : 0
+
+    var tempobj2=ie4? eval("document.all."+nextcanvas) : document.getElementById(nextcanvas)
+    tempobj2.style.visibility="hidden"
+    timeOutId = setTimeout("rotateimage()",pause)
+  }
+}
+
+
+//------------------------------------------------------------------------------
+function insertimage(i){
+
+  var tempcontainer=fadeimages[i][1]!=""? '<a href="'+fadeimages[i][1]+'" target="'+fadeimages[i][2]+'">' : ""
+  tempcontainer+='<img src="'+fadeimages[i][0]+'" border="0">'
+  tempcontainer+='<br>'+fadeimages[i][3] + ':' + nextimageindex + ':' + i;
+  tempcontainer=fadeimages[i][1]!=""? tempcontainer+'</a>' : tempcontainer
+  return tempcontainer
+}
+
+//------------------------------------------------------------------------------
+function rotateimage(){
+
+  if (ie4||dom){
+    resetit(curcanvas)
+    var crossobj=tempobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
+    crossobj.style.zIndex++
+    tempobj.style.visibility="visible"
+    var temp='setInterval("fadepic()",50)'
+    dropslide=eval(temp)
+    curcanvas=(curcanvas=="canvas0")? "canvas1" : "canvas0"
+  }
+  else{
+    document.images.defaultslide.src=fadeimages[curimageindex][0]
+  }
+  urimageindex=(curimageindex<fadeimages.length-1)? curimageindex+1 : 0
+}
+
+//------------------------------------------------------------------------------
+function resetit(what){
+  curpos=10
+  var crossobj=ie4? eval("document.all."+what) : document.getElementById(what)
+  if (crossobj.filters)
+    crossobj.filters.alpha.opacity=curpos
+  else if (crossobj.style.MozOpacity)
+    crossobj.style.MozOpacity=curpos/101
+}
+
+//------------------------------------------------------------------------------
+function startit(){
+  var crossobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
+  crossobj.innerHTML= insertimage(curimageindex)
+  rotateimage()
+}
+
+//------------------------------------------------------------------------------
+function slideshow(){
+  curpos=10;
+  degree=10;
+  curcanvas="canvas0";
+  curimageindex=0;
+  nextimageindex=1;
+//alert(fadeimages);
+  if (ie4||dom){
+    startit();
+  }else{
+    setInterval("rotateimage()",pause)
+  }
+}
diff --git a/appsrc/ODS-Gallery/www-root/js/ui.js b/appsrc/ODS-Gallery/www-root/js/ui.js
index 62d3897..0409510 100644
--- a/appsrc/ODS-Gallery/www-root/js/ui.js
+++ b/appsrc/ODS-Gallery/www-root/js/ui.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: ui.js,v 1.10.2.1 2010/09/20 10:15:38 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/www-root/portal/index.vsp b/appsrc/ODS-Gallery/www-root/portal/index.vsp
index fea776d..4dbfad0 100644
--- a/appsrc/ODS-Gallery/www-root/portal/index.vsp
+++ b/appsrc/ODS-Gallery/www-root/portal/index.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: index.vsp,v 1.19.2.3 2011/05/20 12:02:09 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -174,7 +174,7 @@
   http(sprintf('<aplus>%d</aplus>',DB.DBA.WA_USER_APP_ENABLE (current_instance.owner_id)),_xml);
   http(sprintf('<instance>%U</instance>', current_instance.name),_xml);
   http(sprintf('<home_url>%s</home_url>',current_instance.home_url),_xml);
-  http(sprintf('<wa_home_title>%s</wa_home_title>',wa_home_title),_xml);
+  http (sprintf ('<wa_home_title>%V</wa_home_title>', wa_home_title), _xml);
   http(sprintf('<wa_home_link>%s</wa_home_link>',wa_home_link),_xml);
   http(sprintf('<gallery_id>%d</gallery_id>',current_instance.gallery_id),_xml);
   http(sprintf('<instance_owner>%s</instance_owner>',current_instance.owner_name),_xml);
diff --git a/appsrc/ODS-Gallery/www-root/proxy.vsp b/appsrc/ODS-Gallery/www-root/proxy.vsp
index e9d5c4d..9b4103d 100644
--- a/appsrc/ODS-Gallery/www-root/proxy.vsp
+++ b/appsrc/ODS-Gallery/www-root/proxy.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: proxy.vsp,v 1.4.2.1 2010/09/20 10:15:38 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/www-root/upload.vspx b/appsrc/ODS-Gallery/www-root/upload.vspx
index bc28029..d0a0318 100644
--- a/appsrc/ODS-Gallery/www-root/upload.vspx
+++ b/appsrc/ODS-Gallery/www-root/upload.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: upload.vspx,v 1.9.2.2 2010/09/20 10:15:38 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/xslt/index.xsl b/appsrc/ODS-Gallery/xslt/index.xsl
index 5372471..0131608 100644
--- a/appsrc/ODS-Gallery/xslt/index.xsl
+++ b/appsrc/ODS-Gallery/xslt/index.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: index.xsl,v 1.20.2.3 2010/09/20 10:15:39 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/xslt/rss11.xsl b/appsrc/ODS-Gallery/xslt/rss11.xsl
index 001b1cb..f0b732c 100644
--- a/appsrc/ODS-Gallery/xslt/rss11.xsl
+++ b/appsrc/ODS-Gallery/xslt/rss11.xsl
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/xslt/rss2atom.xsl b/appsrc/ODS-Gallery/xslt/rss2atom.xsl
index bb2537d..5b80353 100644
--- a/appsrc/ODS-Gallery/xslt/rss2atom.xsl
+++ b/appsrc/ODS-Gallery/xslt/rss2atom.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom.xsl,v 1.3.2.2 2010/09/20 10:15:39 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/xslt/rss2atom03.xsl b/appsrc/ODS-Gallery/xslt/rss2atom03.xsl
index 831f2e6..bd79434 100644
--- a/appsrc/ODS-Gallery/xslt/rss2atom03.xsl
+++ b/appsrc/ODS-Gallery/xslt/rss2atom03.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom03.xsl,v 1.2.2.2 2010/09/20 10:15:39 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/xslt/rss2mrss.xsl b/appsrc/ODS-Gallery/xslt/rss2mrss.xsl
index b47f42b..191db5e 100644
--- a/appsrc/ODS-Gallery/xslt/rss2mrss.xsl
+++ b/appsrc/ODS-Gallery/xslt/rss2mrss.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2mrss.xsl,v 1.2.2.1 2010/09/20 10:15:39 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/xslt/rss2rdf.xsl b/appsrc/ODS-Gallery/xslt/rss2rdf.xsl
index 217b089..f6b2bb7 100644
--- a/appsrc/ODS-Gallery/xslt/rss2rdf.xsl
+++ b/appsrc/ODS-Gallery/xslt/rss2rdf.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2rdf.xsl,v 1.2.2.1 2010/09/20 10:15:39 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/xslt/rss2wml.xsl b/appsrc/ODS-Gallery/xslt/rss2wml.xsl
index 865d718..28ae8fb 100644
--- a/appsrc/ODS-Gallery/xslt/rss2wml.xsl
+++ b/appsrc/ODS-Gallery/xslt/rss2wml.xsl
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/xslt/rss2xbel.xsl b/appsrc/ODS-Gallery/xslt/rss2xbel.xsl
index 854bfd2..4fc1d71 100644
--- a/appsrc/ODS-Gallery/xslt/rss2xbel.xsl
+++ b/appsrc/ODS-Gallery/xslt/rss2xbel.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2xbel.xsl,v 1.2.2.1 2010/09/20 10:15:39 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/xslt/upload.xsl b/appsrc/ODS-Gallery/xslt/upload.xsl
index 6c7b72a..099a170 100644
--- a/appsrc/ODS-Gallery/xslt/upload.xsl
+++ b/appsrc/ODS-Gallery/xslt/upload.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: upload.xsl,v 1.3.2.1 2010/09/20 10:15:39 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Gallery/xslt/wsdl2js.xsl b/appsrc/ODS-Gallery/xslt/wsdl2js.xsl
index 6cada8a..db7f882 100644
--- a/appsrc/ODS-Gallery/xslt/wsdl2js.xsl
+++ b/appsrc/ODS-Gallery/xslt/wsdl2js.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" ?>
 <!--
  -
- -  $Id: wsdl2js.xsl,v 1.3.2.1 2010/09/20 10:15:39 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Polls/Makefile.am b/appsrc/ODS-Polls/Makefile.am
index 7c68d2e..6266ee0 100644
--- a/appsrc/ODS-Polls/Makefile.am
+++ b/appsrc/ODS-Polls/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2007 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -46,6 +46,7 @@ clean-local:
 EXTRA_DIST = \
 	make_vad.sh \
 	sql/*.sql \
+	vad_version \
 	www/*.vsp \
 	www/*.vspx \
 	www/css/*.css \
diff --git a/appsrc/ODS-Polls/Makefile.in b/appsrc/ODS-Polls/Makefile.in
index 76ce073..af8180a 100644
--- a/appsrc/ODS-Polls/Makefile.in
+++ b/appsrc/ODS-Polls/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2007 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -38,9 +37,8 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -70,7 +68,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -78,23 +75,9 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(vaddir)"
+nodist_vadDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(nodist_vad_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -184,7 +167,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -268,7 +250,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -289,7 +270,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -309,6 +289,7 @@ CLEANFILES = \
 EXTRA_DIST = \
 	make_vad.sh \
 	sql/*.sql \
+	vad_version \
 	www/*.vsp \
 	www/*.vspx \
 	www/css/*.css \
@@ -327,14 +308,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu appsrc/ODS-Polls/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu appsrc/ODS-Polls/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  appsrc/ODS-Polls/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  appsrc/ODS-Polls/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -352,7 +333,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -362,23 +342,20 @@ clean-libtool:
 install-nodist_vadDATA: $(nodist_vad_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(vaddir)" || $(MKDIR_P) "$(DESTDIR)$(vaddir)"
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	for p in $$list; do \
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vaddir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(vaddir)" || exit $$?; \
+	  f=$(am__strip_dir) \
+	  echo " $(nodist_vadDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(vaddir)/$$f'"; \
+	  $(nodist_vadDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(vaddir)/$$f"; \
 	done
 
 uninstall-nodist_vadDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(vaddir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(vaddir)" && rm -f $$files
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(vaddir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(vaddir)/$$f"; \
+	done
 tags: TAGS
 TAGS:
 
@@ -402,17 +379,13 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
@@ -444,7 +417,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -463,8 +435,6 @@ dvi-am:
 
 html: html-am
 
-html-am:
-
 info: info-am
 
 info-am:
@@ -473,28 +443,18 @@ install-data-am: install-nodist_vadDATA
 
 install-dvi: install-dvi-am
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-am
 
-install-html-am:
-
 install-info: install-info-am
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-am
 
-install-pdf-am:
-
 install-ps: install-ps-am
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -535,7 +495,6 @@ ods_polls_dav.vad: $(EXTRA_DIST)
 
 clean-local:
 	-rm -rf vad
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/appsrc/ODS-Polls/make_vad.sh b/appsrc/ODS-Polls/make_vad.sh
index a860ea7..364062e 100755
--- a/appsrc/ODS-Polls/make_vad.sh
+++ b/appsrc/ODS-Polls/make_vad.sh
@@ -3,7 +3,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2007 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -28,7 +28,7 @@ export LANG LC_ALL
 
 MODE=$1
 LOGDIR=`pwd`
-VERSION="1.1.37"
+VERSION="1.0.0"
 LOGFILE="${LOGDIR}/vad_make.log"
 STICKER_DAV="vad_dav.xml"
 STICKER_FS="vad_filesystem.xml"
@@ -62,22 +62,6 @@ else
   RM="rm -f"
 fi
 
-VOS=0
-if [ -f ../../autogen.sh ]
-then
-    VOS=1
-fi
-
-if [ "z$SERVER" = "z" ]  
-then
-    if [ "x$HOST_OS" != "x" ]
-    then
-	SERVER=virtuoso-odbc-t.exe
-    else
-	SERVER=virtuoso
-    fi
-fi
-
 rm -rf vad
 
 . $HOME/binsrc/tests/suite/test_fn.sh
@@ -89,6 +73,57 @@ else
   myrm=$RM
 fi
 
+
+VOS=0
+if [ -f ../../autogen.sh ]
+then
+    VOS=1
+fi
+
+version_init()
+{
+  if [ $VOS -eq 1 ]
+  then
+      if [ -f vad_version ]
+      then
+	  VERSION=`cat vad_version`
+      else
+        LOG "The vad_version does not exist, please verify your checkout"
+	exit 1
+      fi
+  else
+      rm -f version.tmp
+      for i in `find . -name 'Entries' | grep -v "vad/" | grep -v "/tests/"`; do
+	  cat "$i" | grep -v "version\."| grep "^[^D].*" | cut -f 3 -d "/" | sed -e "s/1\.//g" >> version.tmp
+      done
+      LANG=POSIX
+      export LANG
+
+      BASE="0"
+#      echo $BASE
+      if [ -f version.base ] ; then
+	  BASE=`cat version.base`
+      fi
+
+      VERSION=`cat version.tmp | awk ' BEGIN { cnt=10 } { cnt = cnt + $1 } END { print cnt }'`
+
+      VERSION=`expr $BASE + $VERSION`
+      CURR_VERSION=$VERSION
+      if [ -f version.curr ] ; then
+	  CURR_VERSION=`cat version.curr`
+      fi
+      if [ $CURR_VERSION -gt $VERSION ] ; then
+	  BASE=`expr $CURR_VERSION - $VERSION + 1`
+	  echo $BASE > version.base
+	  VERSION=$CURR_VERSION
+      fi
+      echo $VERSION > version.curr
+      VERSION=`echo $VERSION | awk ' { printf "1.%02.02f", $1/100 }'`
+      rm -f version.tmp
+      echo "$VERSION" > vad_version
+fi
+}
+
 virtuoso_start() {
   echo "Starting $SERVER"
   echo $BUILD
@@ -224,7 +259,7 @@ sticker_init() {
   echo "  <name package=\"Polls\">" >> $STICKER
   echo "    <prop name=\"Title\" value=\"ODS Polls Manager\"/>" >> $STICKER
   echo "    <prop name=\"Developer\" value=\"OpenLink Software\"/>" >> $STICKER
-  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2011 OpenLink Software\"/>" >> $STICKER
+  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2012 OpenLink Software\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.com/virtuoso\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.co.uk/virtuoso\"/>" >> $STICKER
   echo "  </name>" >> $STICKER
@@ -236,8 +271,8 @@ sticker_init() {
   echo "<dependencies>" >> $STICKER
   echo "  <require>" >> $STICKER
   echo "    <name package=\"Framework\"/>" >> $STICKER
-  echo "    <versions_later package=\"1.82.42\">" >> $STICKER
-  echo "      <prop name=\"Date\" value=\"2011-06-15 12:00\" />" >> $STICKER
+  echo "    <versions_later package=\"1.86.16\">" >> $STICKER
+  echo "      <prop name=\"Date\" value=\"2012-04-18 12:00\" />" >> $STICKER
   echo "      <prop name=\"Comment\" value=\"An incompatible version of the ODS Framework\" />" >> $STICKER
   echo "    </versions_later>" >> $STICKER
   echo "  </require>" >> $STICKER
@@ -365,6 +400,7 @@ echo '----------------------'
 
 STOP_SERVER
 directory_clean
+version_init
 directory_init
 virtuoso_init
 if [ "$MODE" = "" ] || [ "$MODE" = "1" ]
@@ -381,7 +417,6 @@ virtuoso_shutdown
 STOP_SERVER
 chmod 644 ods_polls_dav.vad
 chmod 644 ods_polls_filesystem.vad
-directory_clean
 
 CHECK_LOG
 RUN egrep  '"\*\*.*FAILED:|\*\*.*ABORTED:"' "$LOGFILE"
@@ -391,5 +426,7 @@ then
 	exit 1
 fi
 
+directory_clean
+
 BANNER "COMPLETED VAD PACKAGING"
 exit 0
diff --git a/appsrc/ODS-Polls/sql/polls-a-api.sql b/appsrc/ODS-Polls/sql/polls-a-api.sql
index 47efcd3..8fd24b1 100644
--- a/appsrc/ODS-Polls/sql/polls-a-api.sql
+++ b/appsrc/ODS-Polls/sql/polls-a-api.sql
@@ -1,10 +1,10 @@
 --
---  $Id: polls-a-api.sql,v 1.8.2.5 2011/06/09 17:43:17 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2008 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Polls/sql/polls-a-code.sql b/appsrc/ODS-Polls/sql/polls-a-code.sql
index df768f3..e02b91c 100644
--- a/appsrc/ODS-Polls/sql/polls-a-code.sql
+++ b/appsrc/ODS-Polls/sql/polls-a-code.sql
@@ -1,10 +1,10 @@
 --
---  $Id: polls-a-code.sql,v 1.20.2.16 2011/05/17 23:00:37 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -2158,9 +2158,10 @@ create procedure POLLS.WA.dt_iso8601 (
 create procedure POLLS.WA.test_clear (
   in S any)
 {
-  declare N integer;
+  S := substring (S, 1, coalesce (strstr (S, '<>'), length (S)));
+  S := substring (S, 1, coalesce (strstr (S, '\nin'), length (S)));
 
-  return substring(S, 1, coalesce(strstr(S, '<>'), length(S)));
+  return S;
 }
 ;
 
@@ -2305,7 +2306,7 @@ create procedure POLLS.WA.validate2 (
     if (isnull(regexp_match('^[^\\\/\?\*\"\'\>\<\:\|]*\$', propertyValue)))
       goto _error;
   } else if ((propertyType = 'uri') or (propertyType = 'anyuri')) {
-    if (isnull(regexp_match('^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_=:]*)?\$', propertyValue)))
+    if (isnull (regexp_match ('^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_=:~]*)?\$', propertyValue)))
       goto _error;
   } else if (propertyType = 'email') {
     if (isnull(regexp_match('^([a-zA-Z0-9_\-])+(\.([a-zA-Z0-9_\-])+)*@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([a-zA-Z0-9])+(([\-])+([a-zA-Z0-9])+)*\.)+([a-zA-Z])+(([\-])+([a-zA-Z0-9])+)*))\$', propertyValue)))
diff --git a/appsrc/ODS-Polls/sql/polls-a-table.sql b/appsrc/ODS-Polls/sql/polls-a-table.sql
index 41fb4a8..20e527b 100644
--- a/appsrc/ODS-Polls/sql/polls-a-table.sql
+++ b/appsrc/ODS-Polls/sql/polls-a-table.sql
@@ -1,10 +1,10 @@
 --
---  $Id: polls-a-table.sql,v 1.5.2.2 2010/09/22 13:57:04 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Polls/sql/polls-a-wa.sql b/appsrc/ODS-Polls/sql/polls-a-wa.sql
index da1713e..771f103 100644
--- a/appsrc/ODS-Polls/sql/polls-a-wa.sql
+++ b/appsrc/ODS-Polls/sql/polls-a-wa.sql
@@ -1,10 +1,10 @@
 --
---  $Id: polls-a-wa.sql,v 1.3.2.4 2010/09/22 13:57:04 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Polls/sql/polls-d.sql b/appsrc/ODS-Polls/sql/polls-d.sql
index 216c2dc..0b913a7 100644
--- a/appsrc/ODS-Polls/sql/polls-d.sql
+++ b/appsrc/ODS-Polls/sql/polls-d.sql
@@ -1,10 +1,10 @@
 --
---  $Id: polls-d.sql,v 1.6.2.4 2011/05/18 21:18:29 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Polls/sql/sioc_polls.sql b/appsrc/ODS-Polls/sql/sioc_polls.sql
index d3584d8..47bfeaf 100644
--- a/appsrc/ODS-Polls/sql/sioc_polls.sql
+++ b/appsrc/ODS-Polls/sql/sioc_polls.sql
@@ -1,10 +1,10 @@
 --
---  $Id: sioc_polls.sql,v 1.9.2.10 2011/05/20 16:24:10 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -58,16 +58,20 @@ create procedure poll_comment_iri (
 
 -------------------------------------------------------------------------------
 --
-create procedure fill_ods_polls_sioc (in graph_iri varchar, in site_iri varchar, in _wai_name varchar := null)
+create procedure fill_ods_polls_sioc (
+  in graph_iri varchar,
+  in site_iri varchar,
+  in _wai_name varchar := null)
 {
   declare id, deadl, cnt integer;
-  declare c_iri, creator_iri varchar;
+  declare acl_graph_iri, c_iri, creator_iri varchar;
 
   {
     -- init services
     SIOC..fill_ods_polls_services ();
 
     for (select WAI_ID,
+                WAI_IS_PUBLIC,
                 WAI_TYPE_NAME,
                 WAI_NAME,
                 WAI_ACL
@@ -75,9 +79,9 @@ create procedure fill_ods_polls_sioc (in graph_iri varchar, in site_iri varchar,
           where ((_wai_name is null) or (WAI_NAME = _wai_name))
             and WAI_TYPE_NAME = 'Polls') do
     {
-      graph_iri := SIOC..acl_graph (WAI_TYPE_NAME, WAI_NAME);
-      exec (sprintf ('sparql clear graph <%s>', graph_iri));
-      SIOC..wa_instance_acl_insert (WAI_TYPE_NAME, WAI_NAME, WAI_ACL);
+      acl_graph_iri := SIOC..acl_graph (WAI_TYPE_NAME, WAI_NAME);
+      exec (sprintf ('sparql clear graph <%s>', acl_graph_iri));
+      SIOC..wa_instance_acl_insert (WAI_IS_PUBLIC, WAI_TYPE_NAME, WAI_NAME, WAI_ACL);
       for (select P_DOMAIN_ID, P_ID, P_ACL
              from POLLS.WA.POLL
             where P_DOMAIN_ID = WAI_ID and P_ACL is not null) do
diff --git a/appsrc/ODS-Polls/vad_version b/appsrc/ODS-Polls/vad_version
new file mode 100644
index 0000000..81fb4f9
--- /dev/null
+++ b/appsrc/ODS-Polls/vad_version
@@ -0,0 +1 @@
+1.5.24
diff --git a/appsrc/ODS-Polls/www/ajax.vsp b/appsrc/ODS-Polls/www/ajax.vsp
index 5a53ec9..ee807ff 100644
--- a/appsrc/ODS-Polls/www/ajax.vsp
+++ b/appsrc/ODS-Polls/www/ajax.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: ajax.vsp,v 1.1.2.1 2010/09/20 10:15:40 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Polls/www/conversation.vspx b/appsrc/ODS-Polls/www/conversation.vspx
index 5352898..fe3e01d 100644
--- a/appsrc/ODS-Polls/www/conversation.vspx
+++ b/appsrc/ODS-Polls/www/conversation.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: conversation.vspx,v 1.3.2.3 2011/05/02 14:16:31 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Polls/www/css/style.css b/appsrc/ODS-Polls/www/css/style.css
index d75a0f8..4d17bab 100644
--- a/appsrc/ODS-Polls/www/css/style.css
+++ b/appsrc/ODS-Polls/www/css/style.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: style.css,v 1.8.2.9 2011/05/17 23:00:37 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -27,11 +27,23 @@ body {
   font-size: 9pt;
 }
 
+pre {
+  white-space: pre-wrap;       /* css-3 */
+  white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
+  white-space: -pre-wrap;      /* Opera 4-6 */
+  white-space: -o-pre-wrap;    /* Opera 7 */
+  word-wrap: break-word;       /* Internet Explorer 5.5+ */
+}
+
 form {
   margin: 0;
   padding: 0;
 }
 
+abbr {
+  border: none;
+}
+
 a {
   text-decoration: none;
 }
@@ -70,43 +82,6 @@ a:hover {
   vertical-align: top;
 }
 
-/* Footer */
-#FT {
-  width: 100%;
-  position: relative;
-  bottom: 0px;
-  font-size: 8pt;
-  float: left;
-  clear: both;
-  text-align: right;
-  border-top: 2px solid #fff;
-  margin-right: 10px;
-  background-color: #fff;
-  background-image: url(../image/ods_main_footer.png);
-}
-
-#FT_L {
-  float: left;
-  clear: left;
-  margin-top: 10px;
-  margin-left: 8px;
-  border: 1px solid #788;
-}
-
-#FT_R {
-  float: right;
-  clear: right;
-  margin-top: 10px;
-  margin-bottom: 10px;
-  margin-right: 5px;
-  color: #788;
-}
-
-#FT_R a {
-  text-decoration: none;
-  color: inherit;
-}
-
 /* Left side within MT */
 .page_head {
   width: 100%;
@@ -116,6 +91,7 @@ a:hover {
 .left_container {
   background-color: #EFEFEF;
   border: 1px solid #7f94a5;
+  border-radius: 5px;
   -moz-border-radius: 5px;
   -webkit-border-radius: 5px;
   padding: 5px;
@@ -323,6 +299,7 @@ input.button {
   border-color: #7f94a5;
   background: #99b3c5;
 	cursor: pointer;
+  border-radius: 3px;
   -moz-border-radius: 3px;
   -webkit-border-radius: 3px;
 }
@@ -588,6 +565,8 @@ div.tab {
   border: 1px solid #000;
   border-bottom-width: 0px;
   border-color: #7f94a5;
+  border-top-left-radius: 3px;
+  border-top-right-radius: 3px;
   -moz-border-radius-topleft: 3px;
   -moz-border-radius-topright: 3px;
   -webkit-border-top-left-radius: 3px;
@@ -795,6 +774,7 @@ td.calendar_selected {
 span.button {
   background: none repeat scroll 0 0 #99B3C5;
   border: 1px solid #7F94A5;
+  border-radius: 5px;
   -moz-border-radius: 5px;
   -webkit-border-radius: 5px;
   color: #FFFFFF;
diff --git a/appsrc/ODS-Polls/www/error.vspx b/appsrc/ODS-Polls/www/error.vspx
index bac2697..9e31c02 100644
--- a/appsrc/ODS-Polls/www/error.vspx
+++ b/appsrc/ODS-Polls/www/error.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
-  -  $Id: error.vspx,v 1.2.2.1 2010/09/20 10:15:40 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Polls/www/export.vspx b/appsrc/ODS-Polls/www/export.vspx
index 9e6ff99..b5a14f9 100644
--- a/appsrc/ODS-Polls/www/export.vspx
+++ b/appsrc/ODS-Polls/www/export.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
-  -  $Id: export.vspx,v 1.4.2.4 2010/10/07 13:22:06 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Polls/www/gems.vsp b/appsrc/ODS-Polls/www/gems.vsp
index 40f55f2..182028f 100644
--- a/appsrc/ODS-Polls/www/gems.vsp
+++ b/appsrc/ODS-Polls/www/gems.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: gems.vsp,v 1.1.2.3 2010/10/07 13:22:06 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2008 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Addressbook/www/image/c.gif b/appsrc/ODS-Polls/www/image/c.gif
similarity index 100%
copy from appsrc/ODS-Addressbook/www/image/c.gif
copy to appsrc/ODS-Polls/www/image/c.gif
diff --git a/appsrc/ODS-Polls/www/image/close_16.png b/appsrc/ODS-Polls/www/image/close_16.png
deleted file mode 100644
index 2610797..0000000
Binary files a/appsrc/ODS-Polls/www/image/close_16.png and /dev/null differ
diff --git a/appsrc/ODS-Polls/www/image/first_16.gif b/appsrc/ODS-Polls/www/image/first_16.gif
deleted file mode 100644
index d870e80..0000000
Binary files a/appsrc/ODS-Polls/www/image/first_16.gif and /dev/null differ
diff --git a/appsrc/ODS-Polls/www/image/last_16.gif b/appsrc/ODS-Polls/www/image/last_16.gif
deleted file mode 100644
index afcc7e8..0000000
Binary files a/appsrc/ODS-Polls/www/image/last_16.gif and /dev/null differ
diff --git a/appsrc/ODS-Polls/www/image/next_16.gif b/appsrc/ODS-Polls/www/image/next_16.gif
deleted file mode 100644
index f7e1621..0000000
Binary files a/appsrc/ODS-Polls/www/image/next_16.gif and /dev/null differ
diff --git a/appsrc/ODS-Polls/www/image/previous_16.gif b/appsrc/ODS-Polls/www/image/previous_16.gif
deleted file mode 100644
index b907b15..0000000
Binary files a/appsrc/ODS-Polls/www/image/previous_16.gif and /dev/null differ
diff --git a/appsrc/ODS-Polls/www/image/virt_power_no_border.png b/appsrc/ODS-Polls/www/image/virt_power_no_border.png
deleted file mode 100644
index 93fcb80..0000000
Binary files a/appsrc/ODS-Polls/www/image/virt_power_no_border.png and /dev/null differ
diff --git a/appsrc/ODS-Polls/www/js/polls.js b/appsrc/ODS-Polls/www/js/polls.js
index 787dcec..3bbee00 100644
--- a/appsrc/ODS-Polls/www/js/polls.js
+++ b/appsrc/ODS-Polls/www/js/polls.js
@@ -3,7 +3,7 @@
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -754,14 +754,10 @@ POLLS.trim = function(sString, sChar) {
 
 POLLS.aboutDialog = function() {
   var aboutDiv = $('aboutDiv');
-	if (aboutDiv) {
+  if (aboutDiv)
 		OAT.Dom.unlink(aboutDiv);
-	}
-  aboutDiv = OAT.Dom.create('div', {
-    width:'430px',
-    height: '170px',
-    overflow: 'hidden'
-  });
+
+  aboutDiv = OAT.Dom.create('div', {height: '160px', overflow: 'hidden'});
   aboutDiv.id = 'aboutDiv';
 	aboutDialog = new OAT.Dialog('About ODS Polls', aboutDiv, {width: 445, buttons: 0, resize: 0, modal: 1});
 	aboutDialog.cancel = aboutDialog.hide;
diff --git a/appsrc/ODS-Polls/www/polls.vspx b/appsrc/ODS-Polls/www/polls.vspx
index a33dd04..4d19e01 100644
--- a/appsrc/ODS-Polls/www/polls.vspx
+++ b/appsrc/ODS-Polls/www/polls.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: polls.vspx,v 1.18.2.8 2011/07/04 10:04:03 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -1057,44 +1057,33 @@
                     <table class="form-body" cellspacing="0">
                       <tr>
                         <td style="width: 90%; background-color: white;">
-                          <table id="s_tbl" width="100%" cellspacing="0">
-                            <thead class="sortHeader">
+                          <table id="s_tbl" class="ODS_grid">
+                            <thead>
                               <tr>
                                 <th width="15%">Type</th>
                                 <th>Value</th>
                                 <th width="1%" nowrap="nowrap">ACL: (R)ead, (W)rite</th>
-                                <th width="50px">Action</th>
+                                <th class="action">Action</th>
                               </tr>
                             </thead>
+                            <tbody id="s_tbody">
+                              <tr id="s_tr_no"><td colspan="4"><b>No Shares</b></td></tr>
                       		  <![CDATA[
                       		    <script type="text/javascript">
                               <?vsp
-                                declare N, L integer;
-                                declare acl, aType, aAccess any;
+                                  declare acl any;
 
-                                L := 0;
+                                  -- inherited
                                 acl := (select WAI_ACL from DB.DBA.WA_INSTANCE where WAI_ID = self.domain_id);
                                 acl := case when isnull (acl) then vector () else deserialize (acl) end;
-                                for (N := 0; N < length (acl); N := N + 1)
-                                {
-                                  L := L + 1;
-                                  http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("s", {fld_1: {mode: 50, value: "%s"}, fld_2: {value: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; white-space: nowrap; text-align: center;"}, fld_4: {value: "Inherited"}});});', acl[N][2], acl[N][1], acl[N][3], acl[N][4], acl[N][5]));
-                                }
+                                  DB.DBA.wa_aci_lines (acl);
+
                                 acl := deserialize (self.v_acl);
-                                for (N := 0; N < length (acl); N := N + 1)
-                                {
-                                  L := L + 1;
-                                  if (self.v_mode <> 'view')
-                                  {
-                                    http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createRow("s", null, {fld_1: {mode: 50, value: "%s", onchange: function(){TBL.changeCell50(this);}}, fld_2: {mode: 51, form: "F1", tdCssText: "white-space: nowrap;", className: "_validate_ _webid_", value: "%s", readOnly: %s, imgCssText: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; text-align: center;"}});});', acl[N][2], acl[N][1], case when acl[N][2] = 'public' then 'true' else 'false' end, case when acl[N][2] = 'public' then 'display: none;' else '' end, acl[N][3], acl[N][4], acl[N][5]));
-                                  } else {
-                                    http (sprintf ('OAT.MSG.attach(OAT, "PAGE_LOADED", function(){TBL.createViewRow("s", {fld_1: {mode: 50, value: "%s"}, fld_2: {value: "%s"}, fld_3: {mode: 52, value: [%d, %d, %d], tdCssText: "width: 1%%; white-space: nowrap; text-align: center;"}});});', acl[N][2], acl[N][1], acl[N][3], acl[N][4], acl[N][5]));
-                                  }
-                                }
+                                  DB.DBA.wa_aci_lines (acl, self.v_mode);
                               ?>
                       		    </script>
                       		  ]]>
-                            <tr id="s_tr_no" style="display: <?V case when L=0 then '' else 'none' end ?>;"><td colspan="<?V case when self.v_mode='view' then 3 else 4 end ?>"><b>No Shares</b></td></tr>
+                            </tbody>
                       		</table>
                       	</td>
                         <vm:if test="self.v_mode <> 'view'">
@@ -1162,7 +1151,7 @@
                         POLLS.WA.set_keyword ('$text', qParams, self.v_name);
                         self.qSet (qParams);
                       }
-                      self.v_acl := serialize (DB.DBA.wa_acl_params (params));
+                      self.v_acl := serialize (DB.DBA.wa_aci_params (params));
                       self.v_step := '2';
                       self.vc_data_bind(e);
                     ]]>
diff --git a/appsrc/ODS-Polls/www/polls_login.vspx b/appsrc/ODS-Polls/www/polls_login.vspx
index 12d6215..4889c41 100644
--- a/appsrc/ODS-Polls/www/polls_login.vspx
+++ b/appsrc/ODS-Polls/www/polls_login.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
-  -  $Id: polls_login.vspx,v 1.2.2.3 2010/10/07 13:22:06 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Polls/www/search.vspx b/appsrc/ODS-Polls/www/search.vspx
index 0b0a397..42af3d0 100644
--- a/appsrc/ODS-Polls/www/search.vspx
+++ b/appsrc/ODS-Polls/www/search.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: search.vspx,v 1.12.2.8 2011/05/02 14:16:31 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Polls/www/settings.vspx b/appsrc/ODS-Polls/www/settings.vspx
index b93450f..b32a901 100644
--- a/appsrc/ODS-Polls/www/settings.vspx
+++ b/appsrc/ODS-Polls/www/settings.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
-  -  $Id: settings.vspx,v 1.6.2.5 2010/10/13 12:15:34 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -215,7 +215,7 @@
             ]]>
           </v:on-post>
         </v:button>
-        <v:button action="simple" value="Clear" xhtml_class="form-button">
+        <v:button action="simple" value="Clear"  xhtml_onclick="javascript: return confirm (\'Do you want to reset settings to default?\');" xhtml_class="form-button">
           <v:on-post>
             <![CDATA[
               delete from POLLS.WA.SETTINGS where S_DOMAIN_ID = self.domain_id;
diff --git a/appsrc/ODS-Polls/www/tags.vspx b/appsrc/ODS-Polls/www/tags.vspx
index c5d2a6b..3e86f48 100644
--- a/appsrc/ODS-Polls/www/tags.vspx
+++ b/appsrc/ODS-Polls/www/tags.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: tags.vspx,v 1.2.2.2 2010/09/20 10:15:40 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Polls/www/template/popup.vspx b/appsrc/ODS-Polls/www/template/popup.vspx
index 05ff91d..4fb412c 100644
--- a/appsrc/ODS-Polls/www/template/popup.vspx
+++ b/appsrc/ODS-Polls/www/template/popup.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: popup.vspx,v 1.4.2.8 2011/07/04 10:04:03 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Polls/www/template/template.vspx b/appsrc/ODS-Polls/www/template/template.vspx
index de710e7..9e15759 100644
--- a/appsrc/ODS-Polls/www/template/template.vspx
+++ b/appsrc/ODS-Polls/www/template/template.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: template.vspx,v 1.17.2.12 2011/07/04 10:04:03 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -68,7 +68,6 @@
       	/* load stylesheets */
       	OAT.Style.include("grid.css");
       	OAT.Style.include("webdav.css");
-      	OAT.Style.include("winms.css");
 
         var featureList=["ajax", "json", "anchor", "dialog", "barchart", "piechart", "calendar"];
         OAT.Loader.load(featureList);
diff --git a/appsrc/ODS-Polls/www/template/template.xsl b/appsrc/ODS-Polls/www/template/template.xsl
index 1056d90..150ac12 100644
--- a/appsrc/ODS-Polls/www/template/template.xsl
+++ b/appsrc/ODS-Polls/www/template/template.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
-  -  $Id: template.xsl,v 1.15.2.7 2011/05/02 14:16:32 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -227,7 +227,7 @@
         <div id="FT" style="display: <?V case when get_keyword ('interface', C, '') = 'js' then 'none' else '' end ?>">
         <div id="FT_L">
           <a href="http://www.openlinksw.com/virtuoso">
-            <img alt="Powered by OpenLink Virtuoso Universal Server" src="image/virt_power_no_border.png" border="0" />
+              <img alt="Powered by OpenLink Virtuoso Universal Server" src="/ods/images/virt_power_no_border.png" border="0" />
           </a>
         </div>
         <div id="FT_R">
diff --git a/appsrc/ODS-Polls/xslt/rss2atom.xsl b/appsrc/ODS-Polls/xslt/rss2atom.xsl
index d23445d..2390919 100644
--- a/appsrc/ODS-Polls/xslt/rss2atom.xsl
+++ b/appsrc/ODS-Polls/xslt/rss2atom.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom.xsl,v 1.2.2.2 2010/09/20 10:15:41 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Polls/xslt/rss2atom03.xsl b/appsrc/ODS-Polls/xslt/rss2atom03.xsl
index 8dfd327..bd79434 100644
--- a/appsrc/ODS-Polls/xslt/rss2atom03.xsl
+++ b/appsrc/ODS-Polls/xslt/rss2atom03.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom03.xsl,v 1.2.2.1 2010/09/20 10:15:41 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Polls/xslt/rss2rdf.xsl b/appsrc/ODS-Polls/xslt/rss2rdf.xsl
index 1620653..a171837 100644
--- a/appsrc/ODS-Polls/xslt/rss2rdf.xsl
+++ b/appsrc/ODS-Polls/xslt/rss2rdf.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
-  -  $Id: rss2rdf.xsl,v 1.2.2.1 2010/09/20 10:15:41 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Polls/xslt/rss2xbel.xsl b/appsrc/ODS-Polls/xslt/rss2xbel.xsl
index 408ccf1..b78984a 100644
--- a/appsrc/ODS-Polls/xslt/rss2xbel.xsl
+++ b/appsrc/ODS-Polls/xslt/rss2xbel.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -  
-  -  $Id: rss2xbel.xsl,v 1.1.2.1 2010/09/20 10:15:41 source Exp $
+  -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/Makefile.am b/appsrc/ODS-WebMail/Makefile.am
index 607b6d4..40a5649 100644
--- a/appsrc/ODS-WebMail/Makefile.am
+++ b/appsrc/ODS-WebMail/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -49,6 +49,7 @@ EXTRA_DIST = \
 	sql/eml/*.sql \
 	sql/res/*.sql \
 	sql/utl/*.sql \
+	vad_version \
 	www-root/*.vsp \
 	www-root/mail/i/*.gif \
 	www-root/mail/i/*.jpg \
diff --git a/appsrc/ODS-WebMail/Makefile.in b/appsrc/ODS-WebMail/Makefile.in
index 771ffc8..0b8088f 100644
--- a/appsrc/ODS-WebMail/Makefile.in
+++ b/appsrc/ODS-WebMail/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -38,9 +37,8 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -70,7 +68,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -78,23 +75,9 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(vaddir)"
+nodist_vadDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(nodist_vad_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -184,7 +167,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -268,7 +250,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -289,7 +270,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -312,6 +292,7 @@ EXTRA_DIST = \
 	sql/eml/*.sql \
 	sql/res/*.sql \
 	sql/utl/*.sql \
+	vad_version \
 	www-root/*.vsp \
 	www-root/mail/i/*.gif \
 	www-root/mail/i/*.jpg \
@@ -334,14 +315,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu appsrc/ODS-WebMail/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu appsrc/ODS-WebMail/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  appsrc/ODS-WebMail/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  appsrc/ODS-WebMail/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -359,7 +340,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -369,23 +349,20 @@ clean-libtool:
 install-nodist_vadDATA: $(nodist_vad_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(vaddir)" || $(MKDIR_P) "$(DESTDIR)$(vaddir)"
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	for p in $$list; do \
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vaddir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(vaddir)" || exit $$?; \
+	  f=$(am__strip_dir) \
+	  echo " $(nodist_vadDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(vaddir)/$$f'"; \
+	  $(nodist_vadDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(vaddir)/$$f"; \
 	done
 
 uninstall-nodist_vadDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(vaddir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(vaddir)" && rm -f $$files
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(vaddir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(vaddir)/$$f"; \
+	done
 tags: TAGS
 TAGS:
 
@@ -409,17 +386,13 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
@@ -451,7 +424,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -470,8 +442,6 @@ dvi-am:
 
 html: html-am
 
-html-am:
-
 info: info-am
 
 info-am:
@@ -480,28 +450,18 @@ install-data-am: install-nodist_vadDATA
 
 install-dvi: install-dvi-am
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-am
 
-install-html-am:
-
 install-info: install-info-am
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-am
 
-install-pdf-am:
-
 install-ps: install-ps-am
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -542,7 +502,6 @@ ods_webmail_dav.vad: $(EXTRA_DIST)
 
 clean-local:
 	-rm -rf vad
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/appsrc/ODS-WebMail/install/odbc_mail.ini b/appsrc/ODS-WebMail/install/odbc_mail.ini
index 1231fbd..9ff46e2 100644
--- a/appsrc/ODS-WebMail/install/odbc_mail.ini
+++ b/appsrc/ODS-WebMail/install/odbc_mail.ini
@@ -3,7 +3,7 @@
 ;
 ;  Configuration file for the ODBC Mail Delivery Agent
 ;
-;  (C)Copyright 2002 OpenLink Software.
+;  Copyright (C) 1998-2012 OpenLink Software.
 ;
 ;  To learn more about this product, or any other product in our
 ;  portfolio, please check out our web site at:
diff --git a/appsrc/ODS-WebMail/make_vad.sh b/appsrc/ODS-WebMail/make_vad.sh
index 7f30865..391032e 100755
--- a/appsrc/ODS-WebMail/make_vad.sh
+++ b/appsrc/ODS-WebMail/make_vad.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: make_vad.sh,v 1.34.2.29 2011/08/01 14:13:35 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -63,11 +63,6 @@ else
   LN="ln -fs"
   RM="rm -f"
 fi
-VOS=0
-if [ -f ../../autogen.sh ]
-then
-    VOS=1
-fi
 
 if [ "z$SERVER" = "z" ]  
 then
@@ -90,6 +85,56 @@ else
   myrm=$RM
 fi
 
+VOS=0
+if [ -f ../../autogen.sh ]
+then
+    VOS=1
+fi
+
+version_init()
+{
+  if [ $VOS -eq 1 ]
+  then
+      if [ -f vad_version ]
+      then
+	  VERSION=`cat vad_version`
+      else
+        LOG "The vad_version does not exist, please verify your checkout"
+	exit 1
+      fi
+  else
+      rm -f version.tmp
+      for i in `find . -name 'Entries' | grep -v "vad/" | grep -v "/tests/"`; do
+	  cat "$i" | grep -v "version\."| grep "^[^D].*" | cut -f 3 -d "/" | sed -e "s/1\.//g" >> version.tmp
+      done
+      LANG=POSIX
+      export LANG
+
+      BASE="0"
+#      echo $BASE
+      if [ -f version.base ] ; then
+	  BASE=`cat version.base`
+      fi
+
+      VERSION=`cat version.tmp | awk ' BEGIN { cnt=10 } { cnt = cnt + $1 } END { print cnt }'`
+
+      VERSION=`expr $BASE + $VERSION`
+      CURR_VERSION=$VERSION
+      if [ -f version.curr ] ; then
+	  CURR_VERSION=`cat version.curr`
+      fi
+      if [ $CURR_VERSION -gt $VERSION ] ; then
+	  BASE=`expr $CURR_VERSION - $VERSION + 1`
+	  echo $BASE > version.base
+	  VERSION=$CURR_VERSION
+      fi
+      echo $VERSION > version.curr
+      VERSION=`echo $VERSION | awk ' { printf "1.%02.02f", $1/100 }'`
+      rm -f version.tmp
+      echo "$VERSION" > vad_version
+  fi
+}
+
 virtuoso_start() {
   echo "Starting $SERVER"
   echo $BUILD
@@ -225,7 +270,7 @@ sticker_init() {
   echo "  <name package=\"Mail\">" >> $STICKER
   echo "    <prop name=\"Title\" value=\"ODS Mail\"/>" >> $STICKER
   echo "    <prop name=\"Developer\" value=\"OpenLink Software\"/>" >> $STICKER
-  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2011 OpenLink Software\"/>" >> $STICKER
+  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2012 OpenLink Software\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.com/virtuoso\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.co.uk/virtuoso\"/>" >> $STICKER
   echo "  </name>" >> $STICKER
@@ -385,6 +430,7 @@ echo '----------------------'
 
 STOP_SERVER
 directory_clean
+version_init
 directory_init
 virtuoso_init
 if [ "$MODE" = "" ] || [ "$MODE" = "1" ]
@@ -401,7 +447,6 @@ virtuoso_shutdown
 STOP_SERVER
 chmod 644 ods_webmail_dav.vad
 chmod 644 ods_webmail_filesystem.vad
-directory_clean
 
 CHECK_LOG
 RUN egrep  '"\*\*.*FAILED:|\*\*.*ABORTED:"' "$LOGFILE"
@@ -411,5 +456,7 @@ then
 	exit 1
 fi
 
+directory_clean
+
 BANNER "COMPLETED VAD PACKAGING"
 exit 0
diff --git a/appsrc/ODS-WebMail/sql/DET_oMail.sql b/appsrc/ODS-WebMail/sql/DET_oMail.sql
index b0c5d1c..26f08f7 100644
--- a/appsrc/ODS-WebMail/sql/DET_oMail.sql
+++ b/appsrc/ODS-WebMail/sql/DET_oMail.sql
@@ -1,10 +1,10 @@
 --
---  $Id: DET_oMail.sql,v 1.6.2.2 2010/09/20 10:15:41 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/sql/eml/eml-create-code.sql b/appsrc/ODS-WebMail/sql/eml/eml-create-code.sql
index a86217d..4afc071 100644
--- a/appsrc/ODS-WebMail/sql/eml/eml-create-code.sql
+++ b/appsrc/ODS-WebMail/sql/eml/eml-create-code.sql
@@ -1,10 +1,10 @@
 --
---  $Id: eml-create-code.sql,v 1.42.2.27 2011/08/01 14:13:35 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/sql/eml/eml-create-tables.sql b/appsrc/ODS-WebMail/sql/eml/eml-create-tables.sql
index e9ea418..b4d4ef8 100644
--- a/appsrc/ODS-WebMail/sql/eml/eml-create-tables.sql
+++ b/appsrc/ODS-WebMail/sql/eml/eml-create-tables.sql
@@ -1,10 +1,10 @@
 --
---  $Id: eml-create-tables.sql,v 1.9.2.6 2011/01/25 14:12:06 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/sql/eml/eml-dev-code.sql b/appsrc/ODS-WebMail/sql/eml/eml-dev-code.sql
index 8bcd3a2..ca73156 100644
--- a/appsrc/ODS-WebMail/sql/eml/eml-dev-code.sql
+++ b/appsrc/ODS-WebMail/sql/eml/eml-dev-code.sql
@@ -1,10 +1,10 @@
 --
---  $Id: eml-dev-code.sql,v 1.2.2.1 2010/09/20 10:15:42 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/sql/omail-api.sql b/appsrc/ODS-WebMail/sql/omail-api.sql
index 12885b7..105e448 100644
--- a/appsrc/ODS-WebMail/sql/omail-api.sql
+++ b/appsrc/ODS-WebMail/sql/omail-api.sql
@@ -1,10 +1,10 @@
 --
---  $Id: omail-api.sql,v 1.2.2.2 2010/09/20 10:15:41 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2008 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/sql/omail-wa-install.sql b/appsrc/ODS-WebMail/sql/omail-wa-install.sql
index a838be2..3183a34 100644
--- a/appsrc/ODS-WebMail/sql/omail-wa-install.sql
+++ b/appsrc/ODS-WebMail/sql/omail-wa-install.sql
@@ -1,10 +1,10 @@
 --
---  $Id: omail-wa-install.sql,v 1.6.2.4 2011/01/25 14:12:05 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/sql/omail-wa-uninstall.sql b/appsrc/ODS-WebMail/sql/omail-wa-uninstall.sql
index c1ea912..829cca1 100644
--- a/appsrc/ODS-WebMail/sql/omail-wa-uninstall.sql
+++ b/appsrc/ODS-WebMail/sql/omail-wa-uninstall.sql
@@ -1,10 +1,10 @@
 --
---  $Id: omail-wa-uninstall.sql,v 1.11.2.5 2011/05/18 21:18:30 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/sql/res/res-create-code-data.sql b/appsrc/ODS-WebMail/sql/res/res-create-code-data.sql
index e5db713..1eb9ef8 100644
--- a/appsrc/ODS-WebMail/sql/res/res-create-code-data.sql
+++ b/appsrc/ODS-WebMail/sql/res/res-create-code-data.sql
@@ -1,10 +1,10 @@
 --
---  $Id: res-create-code-data.sql,v 1.3.2.3 2011/03/08 13:25:12 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/sql/res/res-create-code.sql b/appsrc/ODS-WebMail/sql/res/res-create-code.sql
index 77eb772..7feea37 100644
--- a/appsrc/ODS-WebMail/sql/res/res-create-code.sql
+++ b/appsrc/ODS-WebMail/sql/res/res-create-code.sql
@@ -1,10 +1,10 @@
 --
---  $Id: res-create-code.sql,v 1.3.2.1 2010/09/20 10:15:42 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/sql/res/res-create-tables.sql b/appsrc/ODS-WebMail/sql/res/res-create-tables.sql
index d11393e..1087252 100644
--- a/appsrc/ODS-WebMail/sql/res/res-create-tables.sql
+++ b/appsrc/ODS-WebMail/sql/res/res-create-tables.sql
@@ -1,10 +1,10 @@
 --
---  $Id: res-create-tables.sql,v 1.2.2.1 2010/09/20 10:15:42 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/sql/sioc_mail.sql b/appsrc/ODS-WebMail/sql/sioc_mail.sql
index aff79cf..56843f6 100644
--- a/appsrc/ODS-WebMail/sql/sioc_mail.sql
+++ b/appsrc/ODS-WebMail/sql/sioc_mail.sql
@@ -1,10 +1,10 @@
 --
---  $Id: sioc_mail.sql,v 1.7.2.4 2011/05/18 21:18:30 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/sql/utl/utl-create-code.sql b/appsrc/ODS-WebMail/sql/utl/utl-create-code.sql
index 0ae703c..b29d76f 100644
--- a/appsrc/ODS-WebMail/sql/utl/utl-create-code.sql
+++ b/appsrc/ODS-WebMail/sql/utl/utl-create-code.sql
@@ -1,10 +1,10 @@
 --
---  $Id: utl-create-code.sql,v 1.4.2.4 2010/09/20 10:15:42 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/sql/wa_search_mail.sql b/appsrc/ODS-WebMail/sql/wa_search_mail.sql
index 982217e..bc985a3 100644
--- a/appsrc/ODS-WebMail/sql/wa_search_mail.sql
+++ b/appsrc/ODS-WebMail/sql/wa_search_mail.sql
@@ -1,10 +1,10 @@
 --
---  $Id: wa_search_mail.sql,v 1.3.2.1 2010/09/20 10:15:42 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/vad_version b/appsrc/ODS-WebMail/vad_version
new file mode 100644
index 0000000..295fd07
--- /dev/null
+++ b/appsrc/ODS-WebMail/vad_version
@@ -0,0 +1 @@
+1.5.122
diff --git a/appsrc/ODS-WebMail/www-root/mail/i/css/print.css b/appsrc/ODS-WebMail/www-root/mail/i/css/print.css
index 44e59a9..f6ce414 100644
--- a/appsrc/ODS-WebMail/www-root/mail/i/css/print.css
+++ b/appsrc/ODS-WebMail/www-root/mail/i/css/print.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: print.css,v 1.2.2.1 2010/09/20 10:15:43 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/www-root/mail/i/css/styles.css b/appsrc/ODS-WebMail/www-root/mail/i/css/styles.css
index e582e43..c70b96c 100644
--- a/appsrc/ODS-WebMail/www-root/mail/i/css/styles.css
+++ b/appsrc/ODS-WebMail/www-root/mail/i/css/styles.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: styles.css,v 1.9.2.5 2010/09/20 10:15:43 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/www-root/mail/i/js/script.js b/appsrc/ODS-WebMail/www-root/mail/i/js/script.js
index bad649b..68aefa8 100644
--- a/appsrc/ODS-WebMail/www-root/mail/i/js/script.js
+++ b/appsrc/ODS-WebMail/www-root/mail/i/js/script.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: script.js,v 1.11.2.14 2011/08/01 14:13:35 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/www-root/mail/i/js/tbl.js b/appsrc/ODS-WebMail/www-root/mail/i/js/tbl.js
index fab74bf..db321c4 100644
--- a/appsrc/ODS-WebMail/www-root/mail/i/js/tbl.js
+++ b/appsrc/ODS-WebMail/www-root/mail/i/js/tbl.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: tbl.js,v 1.1.4.3 2010/09/20 10:15:43 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2010 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/www-root/mail/p/p.vsp b/appsrc/ODS-WebMail/www-root/mail/p/p.vsp
index 93889ab..bf1f5fb 100644
--- a/appsrc/ODS-WebMail/www-root/mail/p/p.vsp
+++ b/appsrc/ODS-WebMail/www-root/mail/p/p.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: p.vsp,v 1.3.2.1 2010/09/20 10:15:43 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/www-root/mail/p/tags.xml b/appsrc/ODS-WebMail/www-root/mail/p/tags.xml
index e6c1ad0..72e2c1e 100644
--- a/appsrc/ODS-WebMail/www-root/mail/p/tags.xml
+++ b/appsrc/ODS-WebMail/www-root/mail/p/tags.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: tags.xml,v 1.2.2.1 2010/09/20 10:15:43 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/www-root/mail/p/tags.xsl b/appsrc/ODS-WebMail/www-root/mail/p/tags.xsl
index ef13f96..aa466cc 100644
--- a/appsrc/ODS-WebMail/www-root/mail/p/tags.xsl
+++ b/appsrc/ODS-WebMail/www-root/mail/p/tags.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: tags.xsl,v 1.2.2.1 2010/09/20 10:15:43 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/www-root/portal.vsp b/appsrc/ODS-WebMail/www-root/portal.vsp
index 9a538af..5cd6bbe 100644
--- a/appsrc/ODS-WebMail/www-root/portal.vsp
+++ b/appsrc/ODS-WebMail/www-root/portal.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: portal.vsp,v 1.21.2.3 2011/07/04 10:03:31 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/www-root/res/export.vsp b/appsrc/ODS-WebMail/www-root/res/export.vsp
index f28bfd2..1c14b03 100644
--- a/appsrc/ODS-WebMail/www-root/res/export.vsp
+++ b/appsrc/ODS-WebMail/www-root/res/export.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: export.vsp,v 1.5.2.1 2010/09/20 10:15:43 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/www-root/res/flush.vsp b/appsrc/ODS-WebMail/www-root/res/flush.vsp
index 5073770..ca6ce45 100644
--- a/appsrc/ODS-WebMail/www-root/res/flush.vsp
+++ b/appsrc/ODS-WebMail/www-root/res/flush.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: flush.vsp,v 1.5.2.1 2010/09/20 10:15:43 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/www-root/res/image.vsp b/appsrc/ODS-WebMail/www-root/res/image.vsp
index f68e30a..31d8dc7 100644
--- a/appsrc/ODS-WebMail/www-root/res/image.vsp
+++ b/appsrc/ODS-WebMail/www-root/res/image.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: image.vsp,v 1.3.2.1 2010/09/20 10:15:43 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/addr.xsl b/appsrc/ODS-WebMail/xslt/addr.xsl
index b412fb9..bb5ca1b 100644
--- a/appsrc/ODS-WebMail/xslt/addr.xsl
+++ b/appsrc/ODS-WebMail/xslt/addr.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: addr.xsl,v 1.2.2.2 2010/09/20 10:15:43 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/attach.xsl b/appsrc/ODS-WebMail/xslt/attach.xsl
index eae0295..80dbef6 100644
--- a/appsrc/ODS-WebMail/xslt/attach.xsl
+++ b/appsrc/ODS-WebMail/xslt/attach.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: attach.xsl,v 1.3.2.4 2011/05/17 23:01:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/base.xsl b/appsrc/ODS-WebMail/xslt/base.xsl
index 3513e92..151a59d 100644
--- a/appsrc/ODS-WebMail/xslt/base.xsl
+++ b/appsrc/ODS-WebMail/xslt/base.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: base.xsl,v 1.3.2.5 2011/05/02 14:15:25 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/box.xsl b/appsrc/ODS-WebMail/xslt/box.xsl
index bb544d5..d7e7b6c 100644
--- a/appsrc/ODS-WebMail/xslt/box.xsl
+++ b/appsrc/ODS-WebMail/xslt/box.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: box.xsl,v 1.5.2.8 2011/02/14 13:03:14 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/ch_pop3.xsl b/appsrc/ODS-WebMail/xslt/ch_pop3.xsl
index 433a732..28f2052 100644
--- a/appsrc/ODS-WebMail/xslt/ch_pop3.xsl
+++ b/appsrc/ODS-WebMail/xslt/ch_pop3.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: ch_pop3.xsl,v 1.6.2.6 2011/01/25 14:12:06 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/common.xsl b/appsrc/ODS-WebMail/xslt/common.xsl
index 18594f3..4d0ceb6 100644
--- a/appsrc/ODS-WebMail/xslt/common.xsl
+++ b/appsrc/ODS-WebMail/xslt/common.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
  -
- -  $Id: common.xsl,v 1.25.2.14 2011/08/01 14:13:35 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/common_folders.xsl b/appsrc/ODS-WebMail/xslt/common_folders.xsl
index c173996..9453caf 100644
--- a/appsrc/ODS-WebMail/xslt/common_folders.xsl
+++ b/appsrc/ODS-WebMail/xslt/common_folders.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: common_folders.xsl,v 1.3.2.6 2011/01/25 14:12:06 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/construct_body.xsl b/appsrc/ODS-WebMail/xslt/construct_body.xsl
index 581694b..edbdeef 100644
--- a/appsrc/ODS-WebMail/xslt/construct_body.xsl
+++ b/appsrc/ODS-WebMail/xslt/construct_body.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: construct_body.xsl,v 1.1.4.2 2010/11/09 20:12:59 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2009 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/construct_mail.xsl b/appsrc/ODS-WebMail/xslt/construct_mail.xsl
index 2cd0957..20f9770 100644
--- a/appsrc/ODS-WebMail/xslt/construct_mail.xsl
+++ b/appsrc/ODS-WebMail/xslt/construct_mail.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: construct_mail.xsl,v 1.2.2.2 2010/11/09 20:12:59 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/construct_mail_pop3.xsl b/appsrc/ODS-WebMail/xslt/construct_mail_pop3.xsl
index 06ce1f1..26845a5 100644
--- a/appsrc/ODS-WebMail/xslt/construct_mail_pop3.xsl
+++ b/appsrc/ODS-WebMail/xslt/construct_mail_pop3.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: construct_mail_pop3.xsl,v 1.2.2.1 2010/09/20 10:15:44 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/construct_recip.xsl b/appsrc/ODS-WebMail/xslt/construct_recip.xsl
index 1ca1e61..727c12b 100644
--- a/appsrc/ODS-WebMail/xslt/construct_recip.xsl
+++ b/appsrc/ODS-WebMail/xslt/construct_recip.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: construct_recip.xsl,v 1.2.2.1 2010/09/20 10:15:44 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/date_time.xsl b/appsrc/ODS-WebMail/xslt/date_time.xsl
index 60f5448..33e8cba 100644
--- a/appsrc/ODS-WebMail/xslt/date_time.xsl
+++ b/appsrc/ODS-WebMail/xslt/date_time.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: date_time.xsl,v 1.2.2.1 2010/09/20 10:15:44 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/err.xsl b/appsrc/ODS-WebMail/xslt/err.xsl
index 6fb8b16..f714052 100644
--- a/appsrc/ODS-WebMail/xslt/err.xsl
+++ b/appsrc/ODS-WebMail/xslt/err.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: err.xsl,v 1.3.2.1 2010/09/20 10:15:44 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/errors.xml b/appsrc/ODS-WebMail/xslt/errors.xml
index e7b419b..4092228 100644
--- a/appsrc/ODS-WebMail/xslt/errors.xml
+++ b/appsrc/ODS-WebMail/xslt/errors.xml
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: errors.xml,v 1.5.2.3 2011/07/04 10:03:32 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/export/rss2atom.xsl b/appsrc/ODS-WebMail/xslt/export/rss2atom.xsl
index f70655f..2390919 100644
--- a/appsrc/ODS-WebMail/xslt/export/rss2atom.xsl
+++ b/appsrc/ODS-WebMail/xslt/export/rss2atom.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom.xsl,v 1.3.2.2 2010/09/20 10:15:46 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/export/rss2atom03.xsl b/appsrc/ODS-WebMail/xslt/export/rss2atom03.xsl
index 9c19759..bd79434 100644
--- a/appsrc/ODS-WebMail/xslt/export/rss2atom03.xsl
+++ b/appsrc/ODS-WebMail/xslt/export/rss2atom03.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2atom03.xsl,v 1.3.2.1 2010/09/20 10:15:46 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/export/rss2rdf.xsl b/appsrc/ODS-WebMail/xslt/export/rss2rdf.xsl
index 1120bf7..5276e3b 100644
--- a/appsrc/ODS-WebMail/xslt/export/rss2rdf.xsl
+++ b/appsrc/ODS-WebMail/xslt/export/rss2rdf.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2rdf.xsl,v 1.5.2.1 2010/09/20 10:15:46 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/export/rss2xbel.xsl b/appsrc/ODS-WebMail/xslt/export/rss2xbel.xsl
index b3ae4c6..4fc1d71 100644
--- a/appsrc/ODS-WebMail/xslt/export/rss2xbel.xsl
+++ b/appsrc/ODS-WebMail/xslt/export/rss2xbel.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rss2xbel.xsl,v 1.2.2.1 2010/09/20 10:15:46 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/filters.xsl b/appsrc/ODS-WebMail/xslt/filters.xsl
index e4e1c0b..9626623 100644
--- a/appsrc/ODS-WebMail/xslt/filters.xsl
+++ b/appsrc/ODS-WebMail/xslt/filters.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: filters.xsl,v 1.1.2.5 2010/09/20 10:15:44 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/folders.xsl b/appsrc/ODS-WebMail/xslt/folders.xsl
index 01dd3b4..ba13698 100644
--- a/appsrc/ODS-WebMail/xslt/folders.xsl
+++ b/appsrc/ODS-WebMail/xslt/folders.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: folders.xsl,v 1.3.2.5 2010/09/20 10:15:44 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/handlers.xsl b/appsrc/ODS-WebMail/xslt/handlers.xsl
index 0c8bf0e..b3482f1 100644
--- a/appsrc/ODS-WebMail/xslt/handlers.xsl
+++ b/appsrc/ODS-WebMail/xslt/handlers.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: handlers.xsl,v 1.2.2.2 2011/05/02 14:15:25 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/html_parse.xsl b/appsrc/ODS-WebMail/xslt/html_parse.xsl
index 55811a7..75d846a 100644
--- a/appsrc/ODS-WebMail/xslt/html_parse.xsl
+++ b/appsrc/ODS-WebMail/xslt/html_parse.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: html_parse.xsl,v 1.3.2.2 2011/03/08 13:25:12 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/html_parse2.xsl b/appsrc/ODS-WebMail/xslt/html_parse2.xsl
index 11a03f6..2666252 100644
--- a/appsrc/ODS-WebMail/xslt/html_parse2.xsl
+++ b/appsrc/ODS-WebMail/xslt/html_parse2.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: html_parse2.xsl,v 1.2.2.2 2011/03/08 13:25:12 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/mails.xsl b/appsrc/ODS-WebMail/xslt/mails.xsl
index d658edf..0441d20 100644
--- a/appsrc/ODS-WebMail/xslt/mails.xsl
+++ b/appsrc/ODS-WebMail/xslt/mails.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: mails.xsl,v 1.1.2.2 2011/08/01 14:13:35 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/open.xsl b/appsrc/ODS-WebMail/xslt/open.xsl
index edab24d..bd34dc4 100644
--- a/appsrc/ODS-WebMail/xslt/open.xsl
+++ b/appsrc/ODS-WebMail/xslt/open.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: open.xsl,v 1.11.2.6 2011/01/25 14:12:06 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/search.xsl b/appsrc/ODS-WebMail/xslt/search.xsl
index 6cc2018..9fbf511 100644
--- a/appsrc/ODS-WebMail/xslt/search.xsl
+++ b/appsrc/ODS-WebMail/xslt/search.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: search.xsl,v 1.6.2.7 2010/09/20 10:15:45 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/sendok.xsl b/appsrc/ODS-WebMail/xslt/sendok.xsl
index fcd36dd..5cd62a5 100644
--- a/appsrc/ODS-WebMail/xslt/sendok.xsl
+++ b/appsrc/ODS-WebMail/xslt/sendok.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: sendok.xsl,v 1.2.2.1 2010/09/20 10:15:45 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/set_mail.xsl b/appsrc/ODS-WebMail/xslt/set_mail.xsl
index 90a8830..d83ba53 100644
--- a/appsrc/ODS-WebMail/xslt/set_mail.xsl
+++ b/appsrc/ODS-WebMail/xslt/set_mail.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: set_mail.xsl,v 1.9.2.6 2011/08/01 14:13:35 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/tools.xsl b/appsrc/ODS-WebMail/xslt/tools.xsl
index 8b888ba..58fe61b 100644
--- a/appsrc/ODS-WebMail/xslt/tools.xsl
+++ b/appsrc/ODS-WebMail/xslt/tools.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: tools.xsl,v 1.2.2.3 2010/09/20 10:15:45 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-WebMail/xslt/write.xsl b/appsrc/ODS-WebMail/xslt/write.xsl
index c065fac..f0cf512 100644
--- a/appsrc/ODS-WebMail/xslt/write.xsl
+++ b/appsrc/ODS-WebMail/xslt/write.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: write.xsl,v 1.8.2.7 2011/08/01 14:13:35 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/Makefile.am b/appsrc/ODS-Wiki/Makefile.am
index a491046..b962fd6 100644
--- a/appsrc/ODS-Wiki/Makefile.am
+++ b/appsrc/ODS-Wiki/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -55,6 +55,7 @@ clean-local:
 #
 # ----------------------------------------------------------------------
 EXTRA_DIST =  \
+	*.dox \
 	*.sql \
 	generate_drop_proc.sh \
 	http/*.css \
@@ -77,6 +78,4 @@ EXTRA_DIST =  \
 	Skins/default/*.png \
 	Skins/default/*.xslt \
 	Template/*.txt \
-	version.base \
-	version.curr \
 	vad_version
diff --git a/appsrc/ODS-Wiki/Makefile.in b/appsrc/ODS-Wiki/Makefile.in
index 1407247..57fe636 100644
--- a/appsrc/ODS-Wiki/Makefile.in
+++ b/appsrc/ODS-Wiki/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -38,9 +37,8 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -70,7 +68,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -85,58 +82,16 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(vaddir)"
+nodist_vadDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(nodist_vad_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-	distdir
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-am__relativize = \
-  dir0=`pwd`; \
-  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
-  sed_rest='s,^[^/]*/*,,'; \
-  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
-  sed_butlast='s,/*[^/]*$$,,'; \
-  while test -n "$$dir1"; do \
-    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
-    if test "$$first" != "."; then \
-      if test "$$first" = ".."; then \
-        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
-        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
-      else \
-        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
-        if test "$$first2" = "$$first"; then \
-          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
-        else \
-          dir2="../$$dir2"; \
-        fi; \
-        dir0="$$dir0"/"$$first"; \
-      fi; \
-    fi; \
-    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
-  done; \
-  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
 AM_LDFLAGS = @AM_LDFLAGS@
@@ -224,7 +179,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -308,7 +262,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -329,7 +282,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -357,6 +309,7 @@ CLEANFILES = \
 #
 # ----------------------------------------------------------------------
 EXTRA_DIST = \
+	*.dox \
 	*.sql \
 	generate_drop_proc.sh \
 	http/*.css \
@@ -379,8 +332,6 @@ EXTRA_DIST = \
 	Skins/default/*.png \
 	Skins/default/*.xslt \
 	Template/*.txt \
-	version.base \
-	version.curr \
 	vad_version
 
 all: all-recursive
@@ -390,14 +341,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu appsrc/ODS-Wiki/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu appsrc/ODS-Wiki/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  appsrc/ODS-Wiki/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  appsrc/ODS-Wiki/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -415,7 +366,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -425,23 +375,20 @@ clean-libtool:
 install-nodist_vadDATA: $(nodist_vad_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(vaddir)" || $(MKDIR_P) "$(DESTDIR)$(vaddir)"
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	for p in $$list; do \
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vaddir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(vaddir)" || exit $$?; \
+	  f=$(am__strip_dir) \
+	  echo " $(nodist_vadDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(vaddir)/$$f'"; \
+	  $(nodist_vadDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(vaddir)/$$f"; \
 	done
 
 uninstall-nodist_vadDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(vaddir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(vaddir)" && rm -f $$files
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(vaddir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(vaddir)/$$f"; \
+	done
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -450,7 +397,7 @@ uninstall-nodist_vadDATA:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
+	@failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -467,7 +414,7 @@ $(RECURSIVE_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done; \
 	if test "$$dot_seen" = "no"; then \
@@ -475,7 +422,7 @@ $(RECURSIVE_TARGETS):
 	fi; test -z "$$fail"
 
 $(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
+	@failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -501,16 +448,16 @@ $(RECURSIVE_CLEAN_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 	done
 ctags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 	done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -518,14 +465,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	set x; \
+	tags=; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
 	  include_option=--etags-include; \
@@ -537,43 +484,39 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test ! -f $$subdir/TAGS || \
-	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
 	fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
+	     $$tags $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -594,44 +537,29 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d "$(distdir)/$$subdir" \
 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
 	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
-	    $(am__relativize); \
-	    new_distdir=$$reldir; \
-	    dir1=$$subdir; dir2="$(top_distdir)"; \
-	    $(am__relativize); \
-	    new_top_distdir=$$reldir; \
-	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
-	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
-	    ($(am__cd) $$subdir && \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
 	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$new_top_distdir" \
-	        distdir="$$new_distdir" \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
 		am__remove_distdir=: \
 		am__skip_length_check=: \
-		am__skip_mode_fix=: \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
@@ -665,7 +593,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -684,8 +611,6 @@ dvi-am:
 
 html: html-recursive
 
-html-am:
-
 info: info-recursive
 
 info-am:
@@ -694,28 +619,18 @@ install-data-am: install-nodist_vadDATA
 
 install-dvi: install-dvi-recursive
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-recursive
 
-install-html-am:
-
 install-info: install-info-recursive
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-recursive
 
-install-pdf-am:
-
 install-ps: install-ps-recursive
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -736,8 +651,8 @@ ps-am:
 
 uninstall-am: uninstall-nodist_vadDATA
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+	install-strip
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am check check-am clean clean-generic clean-libtool \
@@ -760,7 +675,6 @@ ods_wiki_dav.vad: $(EXTRA_DIST)
 
 clean-local:
 	-rm -rf vad
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/appsrc/ODS-Wiki/ODS-Wiki.dox b/appsrc/ODS-Wiki/ODS-Wiki.dox
new file mode 100644
index 0000000..ebdd151
--- /dev/null
+++ b/appsrc/ODS-Wiki/ODS-Wiki.dox
@@ -0,0 +1,3 @@
+/**
+\defgroup ods_module_wiki ODS Wiki
+*/
diff --git a/appsrc/ODS-Wiki/Skins/default/PostProcess.xslt b/appsrc/ODS-Wiki/Skins/default/PostProcess.xslt
index 5dcc925..44ec66f 100644
--- a/appsrc/ODS-Wiki/Skins/default/PostProcess.xslt
+++ b/appsrc/ODS-Wiki/Skins/default/PostProcess.xslt
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -28,7 +28,7 @@
                 xmlns:wv="http://www.openlinksw.com/Virtuoso/WikiV/"
                 xmlns:fn2="http://www.w3.org/2004/07/xpath-functions">
 
-<!-- $Id: PostProcess.xslt,v 1.20.2.2 2011/08/01 14:12:53 source Exp $ -->
+<!-- $Id$ -->
 
   <xsl:output
     method="html"
diff --git a/appsrc/ODS-Wiki/Skins/default/default.css b/appsrc/ODS-Wiki/Skins/default/default.css
index fb5ce7d..0852258 100644
--- a/appsrc/ODS-Wiki/Skins/default/default.css
+++ b/appsrc/ODS-Wiki/Skins/default/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.9.2.7 2011/03/26 14:21:52 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -943,6 +943,7 @@ div.working-area
   height: 500px;
   margin-bottom: 5px;
   width: 100%;
+  font-family: monospace;
 }
 #page_help_ctr
 {
diff --git a/appsrc/ODS-Wiki/atom.sql b/appsrc/ODS-Wiki/atom.sql
index a5d5be6..cb82c28 100644
--- a/appsrc/ODS-Wiki/atom.sql
+++ b/appsrc/ODS-Wiki/atom.sql
@@ -1,14 +1,14 @@
 --
 --  atom.sql
 --
---  $Id: atom.sql,v 1.9.2.7 2011/03/26 14:21:51 source Exp $
+--  $Id$
 --
 --  Atom publishing protocol support.
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/conv.sql b/appsrc/ODS-Wiki/conv.sql
index 068f4c1..985b7f3 100644
--- a/appsrc/ODS-Wiki/conv.sql
+++ b/appsrc/ODS-Wiki/conv.sql
@@ -1,10 +1,10 @@
 --
---  $Id: conv.sql,v 1.10.2.1 2010/09/20 10:15:46 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/drop.sql b/appsrc/ODS-Wiki/drop.sql
index 8f7c0dd..a6b9199 100644
--- a/appsrc/ODS-Wiki/drop.sql
+++ b/appsrc/ODS-Wiki/drop.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: drop.sql,v 1.16.2.4 2011/08/01 14:12:53 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/export.sql b/appsrc/ODS-Wiki/export.sql
index febd8c6..65ae135 100644
--- a/appsrc/ODS-Wiki/export.sql
+++ b/appsrc/ODS-Wiki/export.sql
@@ -1,10 +1,10 @@
 --
---  $Id: export.sql,v 1.8.2.1 2010/09/20 10:15:46 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/generate_drop_proc.sh b/appsrc/ODS-Wiki/generate_drop_proc.sh
index 8110367..d2016b8 100755
--- a/appsrc/ODS-Wiki/generate_drop_proc.sh
+++ b/appsrc/ODS-Wiki/generate_drop_proc.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: generate_drop_proc.sh,v 1.3.2.2 2010/09/20 10:15:46 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2009 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/HTMLtoWiki.xslt b/appsrc/ODS-Wiki/http/HTMLtoWiki.xslt
index 2912633..9e61570 100644
--- a/appsrc/ODS-Wiki/http/HTMLtoWiki.xslt
+++ b/appsrc/ODS-Wiki/http/HTMLtoWiki.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: HTMLtoWiki.xslt,v 1.2.2.1 2010/09/20 10:15:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/VspAttachmentDeleteConfirm.xslt b/appsrc/ODS-Wiki/http/VspAttachmentDeleteConfirm.xslt
index 804cf8e..312b361 100644
--- a/appsrc/ODS-Wiki/http/VspAttachmentDeleteConfirm.xslt
+++ b/appsrc/ODS-Wiki/http/VspAttachmentDeleteConfirm.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: VspAttachmentDeleteConfirm.xslt,v 1.2.2.1 2010/09/20 10:15:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/VspChangeLog.xslt b/appsrc/ODS-Wiki/http/VspChangeLog.xslt
index f31f80f..ff054a0 100644
--- a/appsrc/ODS-Wiki/http/VspChangeLog.xslt
+++ b/appsrc/ODS-Wiki/http/VspChangeLog.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: VspChangeLog.xslt,v 1.3.2.1 2010/09/20 10:15:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/VspMail.xslt b/appsrc/ODS-Wiki/http/VspMail.xslt
index b2a0cc2..4ffacea 100644
--- a/appsrc/ODS-Wiki/http/VspMail.xslt
+++ b/appsrc/ODS-Wiki/http/VspMail.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: VspMail.xslt,v 1.2.2.1 2010/09/20 10:15:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/VspNoteCompile.xslt b/appsrc/ODS-Wiki/http/VspNoteCompile.xslt
index a3e0aaa..4106b79 100644
--- a/appsrc/ODS-Wiki/http/VspNoteCompile.xslt
+++ b/appsrc/ODS-Wiki/http/VspNoteCompile.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: VspNoteCompile.xslt,v 1.2.2.1 2010/09/20 10:15:48 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/VspReportError.xslt b/appsrc/ODS-Wiki/http/VspReportError.xslt
index faf37ed..a4b27bf 100644
--- a/appsrc/ODS-Wiki/http/VspReportError.xslt
+++ b/appsrc/ODS-Wiki/http/VspReportError.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: VspReportError.xslt,v 1.4.2.1 2010/09/20 10:15:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/VspSearch.xslt b/appsrc/ODS-Wiki/http/VspSearch.xslt
index f1e050a..cd54fe0 100644
--- a/appsrc/ODS-Wiki/http/VspSearch.xslt
+++ b/appsrc/ODS-Wiki/http/VspSearch.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: VspSearch.xslt,v 1.2.2.1 2010/09/20 10:15:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/VspTopicAttach.xslt b/appsrc/ODS-Wiki/http/VspTopicAttach.xslt
index 986ecbf..8b6eed6 100644
--- a/appsrc/ODS-Wiki/http/VspTopicAttach.xslt
+++ b/appsrc/ODS-Wiki/http/VspTopicAttach.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: VspTopicAttach.xslt,v 1.2.2.1 2010/09/20 10:15:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/VspTopicAttachManage.xslt b/appsrc/ODS-Wiki/http/VspTopicAttachManage.xslt
index 9fb4b00..d2baee5 100644
--- a/appsrc/ODS-Wiki/http/VspTopicAttachManage.xslt
+++ b/appsrc/ODS-Wiki/http/VspTopicAttachManage.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: VspTopicAttachManage.xslt,v 1.2.2.1 2010/09/20 10:15:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/VspTopicCreate.xslt b/appsrc/ODS-Wiki/http/VspTopicCreate.xslt
index 272023e..8dbec29 100644
--- a/appsrc/ODS-Wiki/http/VspTopicCreate.xslt
+++ b/appsrc/ODS-Wiki/http/VspTopicCreate.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: VspTopicCreate.xslt,v 1.3.2.2 2010/09/20 10:15:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/VspTopicDelete.xslt b/appsrc/ODS-Wiki/http/VspTopicDelete.xslt
index 7866055..f95b136 100644
--- a/appsrc/ODS-Wiki/http/VspTopicDelete.xslt
+++ b/appsrc/ODS-Wiki/http/VspTopicDelete.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: VspTopicDelete.xslt,v 1.2.2.1 2010/09/20 10:15:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/VspTopicEdit.xslt b/appsrc/ODS-Wiki/http/VspTopicEdit.xslt
index 2c10952..91c800c 100644
--- a/appsrc/ODS-Wiki/http/VspTopicEdit.xslt
+++ b/appsrc/ODS-Wiki/http/VspTopicEdit.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: VspTopicEdit.xslt,v 1.2.2.2 2010/09/20 10:15:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/VspTopicHistory.xslt b/appsrc/ODS-Wiki/http/VspTopicHistory.xslt
index 79ed5a8..86b462f 100644
--- a/appsrc/ODS-Wiki/http/VspTopicHistory.xslt
+++ b/appsrc/ODS-Wiki/http/VspTopicHistory.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: VspTopicHistory.xslt,v 1.2.2.1 2010/09/20 10:15:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/VspTopicMoreOps.xslt b/appsrc/ODS-Wiki/http/VspTopicMoreOps.xslt
index f75e558..abd6d37 100644
--- a/appsrc/ODS-Wiki/http/VspTopicMoreOps.xslt
+++ b/appsrc/ODS-Wiki/http/VspTopicMoreOps.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: VspTopicMoreOps.xslt,v 1.2.2.1 2010/09/20 10:15:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/VspTopicRename.xslt b/appsrc/ODS-Wiki/http/VspTopicRename.xslt
index 3ed769f..58d15b1 100644
--- a/appsrc/ODS-Wiki/http/VspTopicRename.xslt
+++ b/appsrc/ODS-Wiki/http/VspTopicRename.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: VspTopicRename.xslt,v 1.2.2.1 2010/09/20 10:15:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/VspTopicReports.xslt b/appsrc/ODS-Wiki/http/VspTopicReports.xslt
index 752229e..97f33fa 100644
--- a/appsrc/ODS-Wiki/http/VspTopicReports.xslt
+++ b/appsrc/ODS-Wiki/http/VspTopicReports.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: VspTopicReports.xslt,v 1.3.2.4 2011/01/05 14:01:13 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/VspTopicView.xslt b/appsrc/ODS-Wiki/http/VspTopicView.xslt
index 4c7d184..af055cb 100644
--- a/appsrc/ODS-Wiki/http/VspTopicView.xslt
+++ b/appsrc/ODS-Wiki/http/VspTopicView.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: VspTopicView.xslt,v 1.21.2.2 2010/09/20 10:15:49 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/XmlAtomFeed.xslt b/appsrc/ODS-Wiki/http/XmlAtomFeed.xslt
index b6eeee7..dc06804 100644
--- a/appsrc/ODS-Wiki/http/XmlAtomFeed.xslt
+++ b/appsrc/ODS-Wiki/http/XmlAtomFeed.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: XmlAtomFeed.xslt,v 1.3.2.3 2011/02/03 10:26:17 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -41,7 +41,7 @@
      <title >oWiki <xsl:value-of select="@cluster"/> Weblog</title>
     </xsl:if>
     <link  rel="alternate"><xsl:value-of select="@home"/></link>
-    <copyright >Copyright (c) 1998-2011, OpenLink Software</copyright>
+    <copyright >Copyright (c) 1998-2012, OpenLink Software</copyright>
     <author >
       <name><xsl:value-of select="@name"/></name>
       <email><xsl:value-of select="@email"/></email>
diff --git a/appsrc/ODS-Wiki/http/XmlRDFFeed.xslt b/appsrc/ODS-Wiki/http/XmlRDFFeed.xslt
index bff9695..b4c7999 100644
--- a/appsrc/ODS-Wiki/http/XmlRDFFeed.xslt
+++ b/appsrc/ODS-Wiki/http/XmlRDFFeed.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: XmlRDFFeed.xslt,v 1.2.2.1 2010/09/20 10:15:50 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/XmlRssFeed.xslt b/appsrc/ODS-Wiki/http/XmlRssFeed.xslt
index 7544d48..5eee941 100644
--- a/appsrc/ODS-Wiki/http/XmlRssFeed.xslt
+++ b/appsrc/ODS-Wiki/http/XmlRssFeed.xslt
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: XmlRssFeed.xslt,v 1.2.2.1 2010/09/20 10:15:50 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/advanced_search.vspx b/appsrc/ODS-Wiki/http/advanced_search.vspx
index d93a170..9ac19b6 100644
--- a/appsrc/ODS-Wiki/http/advanced_search.vspx
+++ b/appsrc/ODS-Wiki/http/advanced_search.vspx
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -23,7 +23,7 @@
 <?vsp WV.WIKI.VSPHEADER (path,params,lines, 'Advanced Search');
 
 ?>
-<!-- $Id: advanced_search.vspx,v 1.15.2.2 2010/09/20 10:15:50 source Exp $ -->
+<!-- $Id$ -->
  <v:page name="main" 
 	style="comp.xsl" 
 	on-error-redirect="../main/" 
diff --git a/appsrc/ODS-Wiki/http/attachment.vsp b/appsrc/ODS-Wiki/http/attachment.vsp
index 3ffe8e8..c0452e3 100644
--- a/appsrc/ODS-Wiki/http/attachment.vsp
+++ b/appsrc/ODS-Wiki/http/attachment.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: attachment.vsp,v 1.1.2.1 2010/09/20 10:15:50 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/common.css b/appsrc/ODS-Wiki/http/common.css
index a6a3bd5..874b3d8 100644
--- a/appsrc/ODS-Wiki/http/common.css
+++ b/appsrc/ODS-Wiki/http/common.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: common.css,v 1.6.2.1 2010/09/20 10:15:50 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/common.xsl b/appsrc/ODS-Wiki/http/common.xsl
index d6869e9..b944bfd 100644
--- a/appsrc/ODS-Wiki/http/common.xsl
+++ b/appsrc/ODS-Wiki/http/common.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
  -
- -  $Id: common.xsl,v 1.14.2.3 2011/01/25 14:13:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/comp.xsl b/appsrc/ODS-Wiki/http/comp.xsl
index ac7792a..0ca3881 100644
--- a/appsrc/ODS-Wiki/http/comp.xsl
+++ b/appsrc/ODS-Wiki/http/comp.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: comp.xsl,v 1.14.2.1 2010/09/20 10:15:50 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/conversation.vspx b/appsrc/ODS-Wiki/http/conversation.vspx
index 7b0c977..c406ccb 100644
--- a/appsrc/ODS-Wiki/http/conversation.vspx
+++ b/appsrc/ODS-Wiki/http/conversation.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?> 
 <!--  
  -
- -  $Id: conversation.vspx,v 1.10.2.1 2010/09/20 10:15:50 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/default.css b/appsrc/ODS-Wiki/http/default.css
index e385e95..6625312 100644
--- a/appsrc/ODS-Wiki/http/default.css
+++ b/appsrc/ODS-Wiki/http/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.2.2.1 2010/09/20 10:15:50 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/export.vspx b/appsrc/ODS-Wiki/http/export.vspx
index c7e5b7b..4b11620 100644
--- a/appsrc/ODS-Wiki/http/export.vspx
+++ b/appsrc/ODS-Wiki/http/export.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: export.vspx,v 1.7.2.1 2010/09/20 10:15:51 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/export.xsl b/appsrc/ODS-Wiki/http/export.xsl
index ae6efc8..b1e2731 100644
--- a/appsrc/ODS-Wiki/http/export.xsl
+++ b/appsrc/ODS-Wiki/http/export.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: export.xsl,v 1.2.2.1 2010/09/20 10:15:51 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/fault.vspx b/appsrc/ODS-Wiki/http/fault.vspx
index a66a7dd..fc2b57d 100644
--- a/appsrc/ODS-Wiki/http/fault.vspx
+++ b/appsrc/ODS-Wiki/http/fault.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -  
- -  $Id: fault.vspx,v 1.1.2.1 2010/09/20 10:15:51 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/gems.vsp b/appsrc/ODS-Wiki/http/gems.vsp
index 40714c4..c640b79 100644
--- a/appsrc/ODS-Wiki/http/gems.vsp
+++ b/appsrc/ODS-Wiki/http/gems.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: gems.vsp,v 1.10.2.1 2010/09/20 10:15:51 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/history.vspx b/appsrc/ODS-Wiki/http/history.vspx
index 32b9189..e60a196 100644
--- a/appsrc/ODS-Wiki/http/history.vspx
+++ b/appsrc/ODS-Wiki/http/history.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: history.vspx,v 1.6.2.2 2010/09/20 10:15:51 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/html2docbook.xsl b/appsrc/ODS-Wiki/http/html2docbook.xsl
index a16b641..2b6507f 100644
--- a/appsrc/ODS-Wiki/http/html2docbook.xsl
+++ b/appsrc/ODS-Wiki/http/html2docbook.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?> 
 <!--  
  -
- -  $Id: html2docbook.xsl,v 1.6.2.1 2010/09/20 10:15:51 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/login.vsp b/appsrc/ODS-Wiki/http/login.vsp
index 53de825..6e0a2ff 100644
--- a/appsrc/ODS-Wiki/http/login.vsp
+++ b/appsrc/ODS-Wiki/http/login.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: login.vsp,v 1.5.2.1 2010/09/20 10:15:51 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/login.vspx b/appsrc/ODS-Wiki/http/login.vspx
index 0a7977c..da8014a 100644
--- a/appsrc/ODS-Wiki/http/login.vspx
+++ b/appsrc/ODS-Wiki/http/login.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: login.vspx,v 1.4.2.1 2010/09/20 10:15:51 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/macros.xml b/appsrc/ODS-Wiki/http/macros.xml
index 3b032c1..272d1c8 100644
--- a/appsrc/ODS-Wiki/http/macros.xml
+++ b/appsrc/ODS-Wiki/http/macros.xml
@@ -1,11 +1,11 @@
 <!--
  -
- -  $Id: macros.xml,v 1.2.2.1 2010/09/20 10:15:51 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2007 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/main.vsp b/appsrc/ODS-Wiki/http/main.vsp
index 0bcf149..95f7659 100644
--- a/appsrc/ODS-Wiki/http/main.vsp
+++ b/appsrc/ODS-Wiki/http/main.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: main.vsp,v 1.26.2.8 2011/08/01 14:12:53 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -27,6 +27,7 @@
   declare _sid, _realm, _user varchar;
   declare cookie_vec any;
   declare _parent varchar;
+  declare _filename varchar;
 
   _parent := get_keyword ('parent', params, '');
   if (_parent <> '')
@@ -315,11 +316,12 @@ cont:
         return;
       };
 
-      declare _filename, _retval any;
+      declare _retval any;
+
       _text := coalesce(_text, '');
-      if (length (_text) > 0)
-        if (_text[length (_text)-1] = ascii('\n'))
+      if ((length (_text) > 0) and (_text[length (_text)-1] = ascii('\n')))
           _text := subseq(_text, 0, length (_text)- 2);
+
       _text := WV.WIKI.DELETE_SYSINFO_FOR (_text, NULL);      
       _topic.ti_text := _text;
       _filename := coalesce ((select RES_NAME from WS.WS.SYS_DAV_RES where RES_ID = _topic.ti_res_id), concat (_topic.ti_local_name,'.txt'));
@@ -408,7 +410,9 @@ content:
   if (_attachment is not null)
     {
       if (_cmd = 'manage')
+        {
         WV.WIKI.VSPATTACHMENTMANAGE (path, lines, _topic,_attachment, WV.WIKI.MAKE_PARAMS (_user, _uid, params, _base_adjust));
+        }
       else if (_cmd = 'delete')
 	{
 	  if ({?'submit'} = 'Yes')
@@ -459,17 +463,17 @@ content:
 --        http_header (http_header_get() || sprintf('Location: %s/login.vspx?URL=%U\r\n',  WV..ODS_LINK(lines), 'http://' || DB.DBA.WA_GET_HOST() || http_path() || '?command=edit&' || _parent));
         return;
       };
-      declare _filename varchar;
       _topic.ti_text := _text;
       _filename := coalesce ((select RES_NAME from WS.WS.SYS_DAV_RES where RES_ID = _topic.ti_res_id), concat (_topic.ti_local_name,'.txt'));
       WV.WIKI.CHECKWRITEACCESS (_uid, _topic.ti_res_id, _topic.ti_cluster_id, _topic.ti_col_id, 'Edit is not allowed by owner of this cluster.');
 
-      declare _lock_uid int;
       if (_topic.ti_id = 0)
+        {
         WV.WIKI.VSPTOPICCREATE (path, lines, _cluster, _topic.ti_raw_title, WV.WIKI.MAKE_PARAMS (_user, _uid, params, _base_adjust));
+        }
       else
 	{
-	  if (0 = (_lock_uid := WV.WIKI.GETLOCK (WS.WS.COL_PATH(_topic.ti_col_id) || _filename, _user)))
+          if (0 = WV.WIKI.GETLOCK (WS.WS.COL_PATH(_topic.ti_col_id) || _filename, _user))
             WV.WIKI.VSPTOPICEDIT (path, lines, _topic, WV.WIKI.MAKE_PARAMS (_user, _uid, params, _base_adjust));
 	  else
 		WV.WIKI.APPSIGNAL (11001, 'The resource &path; is locked', vector ('path', WS.WS.COL_PATH(_topic.ti_col_id) || _filename));
@@ -488,25 +492,27 @@ content:
       WV.WIKI.redirect (sprintf('%s/login.vspx?URL=%U', WV..ODS_LINK(lines), 'http://' || DB.DBA.WA_GET_HOST() || http_path() || '?command=upstream_now&' || _parent));
       return;
     };
-    declare _filename varchar;
-
     _filename := coalesce ((select RES_NAME from WS.WS.SYS_DAV_RES where RES_ID = _topic.ti_res_id), concat (_topic.ti_local_name,'.txt'));
     WV.WIKI.CHECKWRITEACCESS (_uid, _topic.ti_res_id, _topic.ti_cluster_id, _topic.ti_col_id, 'Upstream is not allowed by owner of this cluster.');
-    declare _lock_uid int;
     if (_topic.ti_id <> 0)
       {
-        if (0 = (_lock_uid := WV.WIKI.GETLOCK (WS.WS.COL_PATH(_topic.ti_col_id) || _filename, _user)))
+          if (0 = WV.WIKI.GETLOCK (WS.WS.COL_PATH(_topic.ti_col_id) || _filename, _user))
         {
           if (WV.WIKI.VSPTOPICVIEW (path, lines, _topic, WV.WIKI.MAKE_PARAMS (_user, _uid, params, _base_adjust)))
             WV.WIKI.VSPFOOTER (path, params, lines);
+
           http_flush();
+              commit work;
+
           WV.WIKI.UPSTREAM_TOPIC_NOW (_topic.ti_id);
           WV.WIKI.RELEASELOCK (WS.WS.COL_PATH(_topic.ti_col_id) || _filename, _user);
           return;
         }
         else
+            {
           WV.WIKI.APPSIGNAL (11001, 'The resource &path; is locked', vector ('path', WS.WS.COL_PATH(_topic.ti_col_id) || _filename));
       }
+        }
       goto make_footer;
     }
 
diff --git a/appsrc/ODS-Wiki/http/ops.vspx b/appsrc/ODS-Wiki/http/ops.vspx
index 2e279ad..dd974f0 100644
--- a/appsrc/ODS-Wiki/http/ops.vspx
+++ b/appsrc/ODS-Wiki/http/ops.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: ops.vspx,v 1.12.2.3 2011/01/25 14:13:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/owiki.css b/appsrc/ODS-Wiki/http/owiki.css
index ba7647d..773332b 100644
--- a/appsrc/ODS-Wiki/http/owiki.css
+++ b/appsrc/ODS-Wiki/http/owiki.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: owiki.css,v 1.3.2.1 2010/09/20 10:15:52 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/permissions.vspx b/appsrc/ODS-Wiki/http/permissions.vspx
index bbf0ad9..d91b46d 100644
--- a/appsrc/ODS-Wiki/http/permissions.vspx
+++ b/appsrc/ODS-Wiki/http/permissions.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: permissions.vspx,v 1.4.2.1 2010/09/20 10:15:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/redirect.vsp b/appsrc/ODS-Wiki/http/redirect.vsp
index ac8516a..93febeb 100644
--- a/appsrc/ODS-Wiki/http/redirect.vsp
+++ b/appsrc/ODS-Wiki/http/redirect.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: redirect.vsp,v 1.4.2.1 2010/09/20 10:15:52 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/remove_tag.vspx b/appsrc/ODS-Wiki/http/remove_tag.vspx
index f2c8eae..e17d1da 100644
--- a/appsrc/ODS-Wiki/http/remove_tag.vspx
+++ b/appsrc/ODS-Wiki/http/remove_tag.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -  
- -  $Id: remove_tag.vspx,v 1.1.2.1 2010/09/20 10:15:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/revision_delete.vspx b/appsrc/ODS-Wiki/http/revision_delete.vspx
index 6dc649a..b6ffe7e 100644
--- a/appsrc/ODS-Wiki/http/revision_delete.vspx
+++ b/appsrc/ODS-Wiki/http/revision_delete.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: revision_delete.vspx,v 1.5.2.1 2010/09/20 10:15:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/revision_rollback.vspx b/appsrc/ODS-Wiki/http/revision_rollback.vspx
index 6f51a7f..4404253 100644
--- a/appsrc/ODS-Wiki/http/revision_rollback.vspx
+++ b/appsrc/ODS-Wiki/http/revision_rollback.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: revision_rollback.vspx,v 1.6.2.1 2010/09/20 10:15:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/search.vsp b/appsrc/ODS-Wiki/http/search.vsp
index 36b67ed..5d5260f 100644
--- a/appsrc/ODS-Wiki/http/search.vsp
+++ b/appsrc/ODS-Wiki/http/search.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: search.vsp,v 1.3.2.1 2010/09/20 10:15:52 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/search.vspx b/appsrc/ODS-Wiki/http/search.vspx
index dadbc63..2f7271c 100644
--- a/appsrc/ODS-Wiki/http/search.vspx
+++ b/appsrc/ODS-Wiki/http/search.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: search.vspx,v 1.3.2.1 2010/09/20 10:15:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/settings.vspx b/appsrc/ODS-Wiki/http/settings.vspx
index 611d79a..2edf69d 100644
--- a/appsrc/ODS-Wiki/http/settings.vspx
+++ b/appsrc/ODS-Wiki/http/settings.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: settings.vspx,v 1.17.2.3 2011/03/26 14:21:52 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/tag.vspx b/appsrc/ODS-Wiki/http/tag.vspx
index aef31cc..1db73a1 100644
--- a/appsrc/ODS-Wiki/http/tag.vspx
+++ b/appsrc/ODS-Wiki/http/tag.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: tag.vspx,v 1.6.2.1 2010/09/20 10:15:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/tags.vspx b/appsrc/ODS-Wiki/http/tags.vspx
index a53b5d4..de32b8a 100644
--- a/appsrc/ODS-Wiki/http/tags.vspx
+++ b/appsrc/ODS-Wiki/http/tags.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: tags.vspx,v 1.7.2.1 2010/09/20 10:15:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -22,7 +22,7 @@
  -  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  -
 -->
-<!-- $Id: tags.vspx,v 1.7.2.1 2010/09/20 10:15:53 source Exp $ -->
+<!-- $Id$ -->
     <v:page 
 	  name="main" 
 	  style="comp.xsl"
diff --git a/appsrc/ODS-Wiki/http/template.xsl b/appsrc/ODS-Wiki/http/template.xsl
index 42fcbc8..107859b 100644
--- a/appsrc/ODS-Wiki/http/template.xsl
+++ b/appsrc/ODS-Wiki/http/template.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
  -
- -  $Id: template.xsl,v 1.3.2.1 2010/09/20 10:15:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/toolbar.vspx b/appsrc/ODS-Wiki/http/toolbar.vspx
index 79bc1d5..b38e477 100644
--- a/appsrc/ODS-Wiki/http/toolbar.vspx
+++ b/appsrc/ODS-Wiki/http/toolbar.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: toolbar.vspx,v 1.3.2.1 2010/09/20 10:15:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/wiki_decor.vspx b/appsrc/ODS-Wiki/http/wiki_decor.vspx
index fcf5e1f..e8e7725 100644
--- a/appsrc/ODS-Wiki/http/wiki_decor.vspx
+++ b/appsrc/ODS-Wiki/http/wiki_decor.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: wiki_decor.vspx,v 1.3.2.1 2010/09/20 10:15:53 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/http/wiki_style.xsl b/appsrc/ODS-Wiki/http/wiki_style.xsl
index 64b8ef5..651b4d7 100644
--- a/appsrc/ODS-Wiki/http/wiki_style.xsl
+++ b/appsrc/ODS-Wiki/http/wiki_style.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!--
  -
- -  $Id: wiki_style.xsl,v 1.2.2.4 2011/02/03 10:26:17 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -107,7 +107,7 @@
                  </tr>
               </table>
          </table>
-	 <div class="copyright">Copyright &copy; 1998-2011 OpenLink Software</div>-->
+	 <div class="copyright">Copyright &copy; 1998-2012 OpenLink Software</div>-->
 	 <xsl:processing-instruction name="vsp">
 		declare ht_stat varchar;
 		ht_stat := http_request_status_get ();
diff --git a/appsrc/ODS-Wiki/http/wikiview.vsp b/appsrc/ODS-Wiki/http/wikiview.vsp
index 2f593a5..99112cf 100644
--- a/appsrc/ODS-Wiki/http/wikiview.vsp
+++ b/appsrc/ODS-Wiki/http/wikiview.vsp
@@ -1,11 +1,11 @@
 <?vsp
 --
---  $Id: wikiview.vsp,v 1.3.2.1 2010/09/20 10:15:53 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/make_vad.sh b/appsrc/ODS-Wiki/make_vad.sh
index 5d37a7c..9529747 100755
--- a/appsrc/ODS-Wiki/make_vad.sh
+++ b/appsrc/ODS-Wiki/make_vad.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: make_vad.sh,v 1.30.2.8 2011/08/01 14:12:53 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -68,13 +68,6 @@ then
     fi
 fi
 
-
-VOS=0
-if [ -f ../../autogen.sh ]
-then
-    VOS=1
-fi
-
 . $HOME/binsrc/tests/suite/test_fn.sh
 
 if [ -f /usr/xpg4/bin/rm ]
@@ -85,8 +78,14 @@ else
 fi
 
 
+VOS=0
+if [ -f ../../autogen.sh ]
+then
+    VOS=1
+fi
 
-version_init() {
+version_init()
+{
   if [ $VOS -eq 1 ]
   then
       if [ -f vad_version ]
@@ -98,32 +97,34 @@ version_init() {
       fi
   else
       rm -f version.tmp
-      file_list=`find ./ -name Entries`
-      for i in $file_list; do
-	  cat $i | grep -v "version\." | grep '^/' | cut -d '/' -f 3 | sed -e 's/1\.//g' >> version.tmp
-	    echo $i
+      for i in `find . -name 'Entries' | grep -v "vad/" | grep -v "/tests/"`; do
+	  cat "$i" | grep -v "version\."| grep "^[^D].*" | cut -f 3 -d "/" | sed -e "s/1\.//g" >> version.tmp
       done
+      LANG=POSIX
+      export LANG
+
       BASE="0"
+#      echo $BASE
       if [ -f version.base ] ; then
 	  BASE=`cat version.base`
       fi
-      VERSION=`cat version.tmp | awk ' BEGIN { cnt=0 } { cnt = cnt + $1 } END { print cnt }'`
-      CALC_VERSION=$VERSION
+
+      VERSION=`cat version.tmp | awk ' BEGIN { cnt=10 } { cnt = cnt + $1 } END { print cnt }'`
+
       VERSION=`expr $BASE + $VERSION`
       CURR_VERSION=$VERSION
       if [ -f version.curr ] ; then
 	  CURR_VERSION=`cat version.curr`
       fi
       if [ $CURR_VERSION -gt $VERSION ] ; then
-	  BASE=`expr $CURR_VERSION - $CALC_VERSION + 1`
-	  echo "new base: " $BASE
+	  BASE=`expr $CURR_VERSION - $VERSION + 1`
 	  echo $BASE > version.base
 	  VERSION=$CURR_VERSION
       fi
       echo $VERSION > version.curr
-      VERSION="1.05.$VERSION"
-      echo $VERSION > vad_version
-      # rm -f version.tmp
+      VERSION=`echo $VERSION | awk ' { printf "1.%02.02f", $1/100 }'`
+      rm -f version.tmp
+      echo "$VERSION" > vad_version
   fi
 }
 
@@ -255,7 +256,7 @@ sticker_init() {
   echo "  <name package=\"Wiki\">" >> $STICKER
   echo "    <prop name=\"Title\" value=\"ODS Wiki\"/>" >> $STICKER
   echo "    <prop name=\"Developer\" value=\"OpenLink Software\"/>" >> $STICKER
-  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2011 OpenLink Software\"/>" >> $STICKER
+  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2012 OpenLink Software\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.com/\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.co.uk/\"/>" >> $STICKER
   echo "  </name>" >> $STICKER
@@ -504,15 +505,14 @@ vad_check() {
 
 virtuoso_shutdown
 directory_clean
+version_init
 directory_init
 virtuoso_init
-version_init
 sticker_init
 vad_create
 virtuoso_shutdown
 echo `pwd`
 chmod 644 ods_wiki_dav.vad
-directory_clean
 
 CHECK_LOG
 RUN egrep  '"\*\*.*FAILED:|\*\*.*ABORTED:"' "$LOGFILE"
@@ -522,5 +522,7 @@ then
 	exit 1
 fi
 
+directory_clean
+
 BANNER "COMPLETED VAD PACKAGING"
 exit 0
diff --git a/appsrc/ODS-Wiki/plugin/Makefile.am b/appsrc/ODS-Wiki/plugin/Makefile.am
index 9b79c90..6b03504 100644
--- a/appsrc/ODS-Wiki/plugin/Makefile.am
+++ b/appsrc/ODS-Wiki/plugin/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/plugin/Makefile.in b/appsrc/ODS-Wiki/plugin/Makefile.in
index a8bb96a..add24b1 100644
--- a/appsrc/ODS-Wiki/plugin/Makefile.in
+++ b/appsrc/ODS-Wiki/plugin/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -38,9 +37,8 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -70,29 +68,14 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(hostingdir)"
+hostingLTLIBRARIES_INSTALL = $(INSTALL)
 LTLIBRARIES = $(hosting_LTLIBRARIES)
 creolewiki_la_LIBADD =
 am_creolewiki_la_OBJECTS = creolewiki_la-creolewiki.lo \
@@ -120,10 +103,9 @@ wikiv_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(wikiv_la_CFLAGS) $(CFLAGS) \
 	$(wikiv_la_LDFLAGS) $(LDFLAGS) -o $@
 @WITH_ODS_VAD_TRUE at am_wikiv_la_rpath = -rpath $(hostingdir)
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)/libsrc/Dk
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/libsrc/Dk at am__isrc@
 depcomp = $(SHELL) $(top_srcdir)/binsrc/config/depcomp
 am__depfiles_maybe = depfiles
-am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -227,7 +209,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -311,7 +292,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -332,7 +312,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -408,14 +387,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu appsrc/ODS-Wiki/plugin/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu appsrc/ODS-Wiki/plugin/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  appsrc/ODS-Wiki/plugin/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  appsrc/ODS-Wiki/plugin/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -433,28 +412,23 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 install-hostingLTLIBRARIES: $(hosting_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	test -z "$(hostingdir)" || $(MKDIR_P) "$(DESTDIR)$(hostingdir)"
-	@list='$(hosting_LTLIBRARIES)'; test -n "$(hostingdir)" || list=; \
-	list2=; for p in $$list; do \
+	@list='$(hosting_LTLIBRARIES)'; for p in $$list; do \
 	  if test -f $$p; then \
-	    list2="$$list2 $$p"; \
+	    f=$(am__strip_dir) \
+	    echo " $(LIBTOOL) --mode=install $(hostingLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(hostingdir)/$$f'"; \
+	    $(LIBTOOL) --mode=install $(hostingLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(hostingdir)/$$f"; \
 	  else :; fi; \
-	done; \
-	test -z "$$list2" || { \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(hostingdir)'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(hostingdir)"; \
-	}
+	done
 
 uninstall-hostingLTLIBRARIES:
 	@$(NORMAL_UNINSTALL)
-	@list='$(hosting_LTLIBRARIES)'; test -n "$(hostingdir)" || list=; \
-	for p in $$list; do \
-	  $(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(hostingdir)/$$f'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(hostingdir)/$$f"; \
+	@list='$(hosting_LTLIBRARIES)'; for p in $$list; do \
+	  p=$(am__strip_dir) \
+	  echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(hostingdir)/$$p'"; \
+	  $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(hostingdir)/$$p"; \
 	done
 
 clean-hostingLTLIBRARIES:
@@ -493,108 +467,108 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
 
 creolewiki_la-creolewiki.lo: creolewiki.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(creolewiki_la_CFLAGS) $(CFLAGS) -MT creolewiki_la-creolewiki.lo -MD -MP -MF $(DEPDIR)/creolewiki_la-creolewiki.Tpo -c -o creolewiki_la-creolewiki.lo `test -f 'creolewiki.c' || echo '$(srcdir)/'`creolewiki.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/creolewiki_la-creolewiki.Tpo $(DEPDIR)/creolewiki_la-creolewiki.Plo
+ at am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(creolewiki_la_CFLAGS) $(CFLAGS) -MT creolewiki_la-creolewiki.lo -MD -MP -MF $(DEPDIR)/creolewiki_la-creolewiki.Tpo -c -o creolewiki_la-creolewiki.lo `test -f 'creolewiki.c' || echo '$(srcdir)/'`creolewiki.c
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/creolewiki_la-creolewiki.Tpo $(DEPDIR)/creolewiki_la-creolewiki.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='creolewiki.c' object='creolewiki_la-creolewiki.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(creolewiki_la_CFLAGS) $(CFLAGS) -c -o creolewiki_la-creolewiki.lo `test -f 'creolewiki.c' || echo '$(srcdir)/'`creolewiki.c
+ at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(creolewiki_la_CFLAGS) $(CFLAGS) -c -o creolewiki_la-creolewiki.lo `test -f 'creolewiki.c' || echo '$(srcdir)/'`creolewiki.c
 
 creolewiki_la-creole_maclex.lo: creole_maclex.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(creolewiki_la_CFLAGS) $(CFLAGS) -MT creolewiki_la-creole_maclex.lo -MD -MP -MF $(DEPDIR)/creolewiki_la-creole_maclex.Tpo -c -o creolewiki_la-creole_maclex.lo `test -f 'creole_maclex.c' || echo '$(srcdir)/'`creole_maclex.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/creolewiki_la-creole_maclex.Tpo $(DEPDIR)/creolewiki_la-creole_maclex.Plo
+ at am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(creolewiki_la_CFLAGS) $(CFLAGS) -MT creolewiki_la-creole_maclex.lo -MD -MP -MF $(DEPDIR)/creolewiki_la-creole_maclex.Tpo -c -o creolewiki_la-creole_maclex.lo `test -f 'creole_maclex.c' || echo '$(srcdir)/'`creole_maclex.c
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/creolewiki_la-creole_maclex.Tpo $(DEPDIR)/creolewiki_la-creole_maclex.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='creole_maclex.c' object='creolewiki_la-creole_maclex.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(creolewiki_la_CFLAGS) $(CFLAGS) -c -o creolewiki_la-creole_maclex.lo `test -f 'creole_maclex.c' || echo '$(srcdir)/'`creole_maclex.c
+ at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(creolewiki_la_CFLAGS) $(CFLAGS) -c -o creolewiki_la-creole_maclex.lo `test -f 'creole_maclex.c' || echo '$(srcdir)/'`creole_maclex.c
 
 creolewiki_la-creole_wikilex.lo: creole_wikilex.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(creolewiki_la_CFLAGS) $(CFLAGS) -MT creolewiki_la-creole_wikilex.lo -MD -MP -MF $(DEPDIR)/creolewiki_la-creole_wikilex.Tpo -c -o creolewiki_la-creole_wikilex.lo `test -f 'creole_wikilex.c' || echo '$(srcdir)/'`creole_wikilex.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/creolewiki_la-creole_wikilex.Tpo $(DEPDIR)/creolewiki_la-creole_wikilex.Plo
+ at am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(creolewiki_la_CFLAGS) $(CFLAGS) -MT creolewiki_la-creole_wikilex.lo -MD -MP -MF $(DEPDIR)/creolewiki_la-creole_wikilex.Tpo -c -o creolewiki_la-creole_wikilex.lo `test -f 'creole_wikilex.c' || echo '$(srcdir)/'`creole_wikilex.c
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/creolewiki_la-creole_wikilex.Tpo $(DEPDIR)/creolewiki_la-creole_wikilex.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='creole_wikilex.c' object='creolewiki_la-creole_wikilex.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(creolewiki_la_CFLAGS) $(CFLAGS) -c -o creolewiki_la-creole_wikilex.lo `test -f 'creole_wikilex.c' || echo '$(srcdir)/'`creole_wikilex.c
+ at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(creolewiki_la_CFLAGS) $(CFLAGS) -c -o creolewiki_la-creole_wikilex.lo `test -f 'creole_wikilex.c' || echo '$(srcdir)/'`creole_wikilex.c
 
 creolewiki_la-import_gate_virtuoso.lo: $(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(creolewiki_la_CFLAGS) $(CFLAGS) -MT creolewiki_la-import_gate_virtuoso.lo -MD -MP -MF $(DEPDIR)/creolewiki_la-import_gate_virtuoso.Tpo -c -o creolewiki_la-import_gate_virtuoso.lo `test -f '$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c' || echo '$(srcdir)/'`$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/creolewiki_la-import_gate_virtuoso.Tpo $(DEPDIR)/creolewiki_la-import_gate_virtuoso.Plo
+ at am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(creolewiki_la_CFLAGS) $(CFLAGS) -MT creolewiki_la-import_gate_virtuoso.lo -MD -MP -MF $(DEPDIR)/creolewiki_la-import_gate_virtuoso.Tpo -c -o creolewiki_la-import_gate_virtuoso.lo `test -f '$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c' || echo '$(srcdir)/'`$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/creolewiki_la-import_gate_virtuoso.Tpo $(DEPDIR)/creolewiki_la-import_gate_virtuoso.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c' object='creolewiki_la-import_gate_virtuoso.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(creolewiki_la_CFLAGS) $(CFLAGS) -c -o creolewiki_la-import_gate_virtuoso.lo `test -f '$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c' || echo '$(srcdir)/'`$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c
+ at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(creolewiki_la_CFLAGS) $(CFLAGS) -c -o creolewiki_la-import_gate_virtuoso.lo `test -f '$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c' || echo '$(srcdir)/'`$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c
 
 mediawiki_la-mediawiki.lo: mediawiki.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mediawiki_la_CFLAGS) $(CFLAGS) -MT mediawiki_la-mediawiki.lo -MD -MP -MF $(DEPDIR)/mediawiki_la-mediawiki.Tpo -c -o mediawiki_la-mediawiki.lo `test -f 'mediawiki.c' || echo '$(srcdir)/'`mediawiki.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/mediawiki_la-mediawiki.Tpo $(DEPDIR)/mediawiki_la-mediawiki.Plo
+ at am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mediawiki_la_CFLAGS) $(CFLAGS) -MT mediawiki_la-mediawiki.lo -MD -MP -MF $(DEPDIR)/mediawiki_la-mediawiki.Tpo -c -o mediawiki_la-mediawiki.lo `test -f 'mediawiki.c' || echo '$(srcdir)/'`mediawiki.c
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/mediawiki_la-mediawiki.Tpo $(DEPDIR)/mediawiki_la-mediawiki.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mediawiki.c' object='mediawiki_la-mediawiki.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mediawiki_la_CFLAGS) $(CFLAGS) -c -o mediawiki_la-mediawiki.lo `test -f 'mediawiki.c' || echo '$(srcdir)/'`mediawiki.c
+ at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mediawiki_la_CFLAGS) $(CFLAGS) -c -o mediawiki_la-mediawiki.lo `test -f 'mediawiki.c' || echo '$(srcdir)/'`mediawiki.c
 
 mediawiki_la-media_maclex.lo: media_maclex.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mediawiki_la_CFLAGS) $(CFLAGS) -MT mediawiki_la-media_maclex.lo -MD -MP -MF $(DEPDIR)/mediawiki_la-media_maclex.Tpo -c -o mediawiki_la-media_maclex.lo `test -f 'media_maclex.c' || echo '$(srcdir)/'`media_maclex.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/mediawiki_la-media_maclex.Tpo $(DEPDIR)/mediawiki_la-media_maclex.Plo
+ at am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mediawiki_la_CFLAGS) $(CFLAGS) -MT mediawiki_la-media_maclex.lo -MD -MP -MF $(DEPDIR)/mediawiki_la-media_maclex.Tpo -c -o mediawiki_la-media_maclex.lo `test -f 'media_maclex.c' || echo '$(srcdir)/'`media_maclex.c
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/mediawiki_la-media_maclex.Tpo $(DEPDIR)/mediawiki_la-media_maclex.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='media_maclex.c' object='mediawiki_la-media_maclex.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mediawiki_la_CFLAGS) $(CFLAGS) -c -o mediawiki_la-media_maclex.lo `test -f 'media_maclex.c' || echo '$(srcdir)/'`media_maclex.c
+ at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mediawiki_la_CFLAGS) $(CFLAGS) -c -o mediawiki_la-media_maclex.lo `test -f 'media_maclex.c' || echo '$(srcdir)/'`media_maclex.c
 
 mediawiki_la-media_wikilex.lo: media_wikilex.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mediawiki_la_CFLAGS) $(CFLAGS) -MT mediawiki_la-media_wikilex.lo -MD -MP -MF $(DEPDIR)/mediawiki_la-media_wikilex.Tpo -c -o mediawiki_la-media_wikilex.lo `test -f 'media_wikilex.c' || echo '$(srcdir)/'`media_wikilex.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/mediawiki_la-media_wikilex.Tpo $(DEPDIR)/mediawiki_la-media_wikilex.Plo
+ at am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mediawiki_la_CFLAGS) $(CFLAGS) -MT mediawiki_la-media_wikilex.lo -MD -MP -MF $(DEPDIR)/mediawiki_la-media_wikilex.Tpo -c -o mediawiki_la-media_wikilex.lo `test -f 'media_wikilex.c' || echo '$(srcdir)/'`media_wikilex.c
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/mediawiki_la-media_wikilex.Tpo $(DEPDIR)/mediawiki_la-media_wikilex.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='media_wikilex.c' object='mediawiki_la-media_wikilex.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mediawiki_la_CFLAGS) $(CFLAGS) -c -o mediawiki_la-media_wikilex.lo `test -f 'media_wikilex.c' || echo '$(srcdir)/'`media_wikilex.c
+ at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mediawiki_la_CFLAGS) $(CFLAGS) -c -o mediawiki_la-media_wikilex.lo `test -f 'media_wikilex.c' || echo '$(srcdir)/'`media_wikilex.c
 
 mediawiki_la-import_gate_virtuoso.lo: $(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mediawiki_la_CFLAGS) $(CFLAGS) -MT mediawiki_la-import_gate_virtuoso.lo -MD -MP -MF $(DEPDIR)/mediawiki_la-import_gate_virtuoso.Tpo -c -o mediawiki_la-import_gate_virtuoso.lo `test -f '$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c' || echo '$(srcdir)/'`$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/mediawiki_la-import_gate_virtuoso.Tpo $(DEPDIR)/mediawiki_la-import_gate_virtuoso.Plo
+ at am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mediawiki_la_CFLAGS) $(CFLAGS) -MT mediawiki_la-import_gate_virtuoso.lo -MD -MP -MF $(DEPDIR)/mediawiki_la-import_gate_virtuoso.Tpo -c -o mediawiki_la-import_gate_virtuoso.lo `test -f '$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c' || echo '$(srcdir)/'`$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/mediawiki_la-import_gate_virtuoso.Tpo $(DEPDIR)/mediawiki_la-import_gate_virtuoso.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c' object='mediawiki_la-import_gate_virtuoso.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mediawiki_la_CFLAGS) $(CFLAGS) -c -o mediawiki_la-import_gate_virtuoso.lo `test -f '$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c' || echo '$(srcdir)/'`$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c
+ at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mediawiki_la_CFLAGS) $(CFLAGS) -c -o mediawiki_la-import_gate_virtuoso.lo `test -f '$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c' || echo '$(srcdir)/'`$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c
 
 wikiv_la-wikiv.lo: wikiv.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(wikiv_la_CFLAGS) $(CFLAGS) -MT wikiv_la-wikiv.lo -MD -MP -MF $(DEPDIR)/wikiv_la-wikiv.Tpo -c -o wikiv_la-wikiv.lo `test -f 'wikiv.c' || echo '$(srcdir)/'`wikiv.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/wikiv_la-wikiv.Tpo $(DEPDIR)/wikiv_la-wikiv.Plo
+ at am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(wikiv_la_CFLAGS) $(CFLAGS) -MT wikiv_la-wikiv.lo -MD -MP -MF $(DEPDIR)/wikiv_la-wikiv.Tpo -c -o wikiv_la-wikiv.lo `test -f 'wikiv.c' || echo '$(srcdir)/'`wikiv.c
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/wikiv_la-wikiv.Tpo $(DEPDIR)/wikiv_la-wikiv.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='wikiv.c' object='wikiv_la-wikiv.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(wikiv_la_CFLAGS) $(CFLAGS) -c -o wikiv_la-wikiv.lo `test -f 'wikiv.c' || echo '$(srcdir)/'`wikiv.c
+ at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(wikiv_la_CFLAGS) $(CFLAGS) -c -o wikiv_la-wikiv.lo `test -f 'wikiv.c' || echo '$(srcdir)/'`wikiv.c
 
 wikiv_la-maclex.lo: maclex.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(wikiv_la_CFLAGS) $(CFLAGS) -MT wikiv_la-maclex.lo -MD -MP -MF $(DEPDIR)/wikiv_la-maclex.Tpo -c -o wikiv_la-maclex.lo `test -f 'maclex.c' || echo '$(srcdir)/'`maclex.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/wikiv_la-maclex.Tpo $(DEPDIR)/wikiv_la-maclex.Plo
+ at am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(wikiv_la_CFLAGS) $(CFLAGS) -MT wikiv_la-maclex.lo -MD -MP -MF $(DEPDIR)/wikiv_la-maclex.Tpo -c -o wikiv_la-maclex.lo `test -f 'maclex.c' || echo '$(srcdir)/'`maclex.c
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/wikiv_la-maclex.Tpo $(DEPDIR)/wikiv_la-maclex.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='maclex.c' object='wikiv_la-maclex.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(wikiv_la_CFLAGS) $(CFLAGS) -c -o wikiv_la-maclex.lo `test -f 'maclex.c' || echo '$(srcdir)/'`maclex.c
+ at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(wikiv_la_CFLAGS) $(CFLAGS) -c -o wikiv_la-maclex.lo `test -f 'maclex.c' || echo '$(srcdir)/'`maclex.c
 
 wikiv_la-wikilex.lo: wikilex.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(wikiv_la_CFLAGS) $(CFLAGS) -MT wikiv_la-wikilex.lo -MD -MP -MF $(DEPDIR)/wikiv_la-wikilex.Tpo -c -o wikiv_la-wikilex.lo `test -f 'wikilex.c' || echo '$(srcdir)/'`wikilex.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/wikiv_la-wikilex.Tpo $(DEPDIR)/wikiv_la-wikilex.Plo
+ at am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(wikiv_la_CFLAGS) $(CFLAGS) -MT wikiv_la-wikilex.lo -MD -MP -MF $(DEPDIR)/wikiv_la-wikilex.Tpo -c -o wikiv_la-wikilex.lo `test -f 'wikilex.c' || echo '$(srcdir)/'`wikilex.c
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/wikiv_la-wikilex.Tpo $(DEPDIR)/wikiv_la-wikilex.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='wikilex.c' object='wikiv_la-wikilex.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(wikiv_la_CFLAGS) $(CFLAGS) -c -o wikiv_la-wikilex.lo `test -f 'wikilex.c' || echo '$(srcdir)/'`wikilex.c
+ at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(wikiv_la_CFLAGS) $(CFLAGS) -c -o wikiv_la-wikilex.lo `test -f 'wikilex.c' || echo '$(srcdir)/'`wikilex.c
 
 wikiv_la-import_gate_virtuoso.lo: $(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c
- at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(wikiv_la_CFLAGS) $(CFLAGS) -MT wikiv_la-import_gate_virtuoso.lo -MD -MP -MF $(DEPDIR)/wikiv_la-import_gate_virtuoso.Tpo -c -o wikiv_la-import_gate_virtuoso.lo `test -f '$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c' || echo '$(srcdir)/'`$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/wikiv_la-import_gate_virtuoso.Tpo $(DEPDIR)/wikiv_la-import_gate_virtuoso.Plo
+ at am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(wikiv_la_CFLAGS) $(CFLAGS) -MT wikiv_la-import_gate_virtuoso.lo -MD -MP -MF $(DEPDIR)/wikiv_la-import_gate_virtuoso.Tpo -c -o wikiv_la-import_gate_virtuoso.lo `test -f '$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c' || echo '$(srcdir)/'`$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/wikiv_la-import_gate_virtuoso.Tpo $(DEPDIR)/wikiv_la-import_gate_virtuoso.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c' object='wikiv_la-import_gate_virtuoso.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(wikiv_la_CFLAGS) $(CFLAGS) -c -o wikiv_la-import_gate_virtuoso.lo `test -f '$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c' || echo '$(srcdir)/'`$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c
+ at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(wikiv_la_CFLAGS) $(CFLAGS) -c -o wikiv_la-import_gate_virtuoso.lo `test -f '$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c' || echo '$(srcdir)/'`$(top_srcdir)/libsrc/plugin/import_gate_virtuoso.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -607,49 +581,45 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	set x; \
+	tags=; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
+	     $$tags $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -670,17 +640,13 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
@@ -713,7 +679,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -736,8 +701,6 @@ dvi-am:
 
 html: html-am
 
-html-am:
-
 info: info-am
 
 info-am:
@@ -746,28 +709,18 @@ install-data-am: install-hostingLTLIBRARIES
 
 install-dvi: install-dvi-am
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-am
 
-install-html-am:
-
 install-info: install-info-am
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-am
 
-install-pdf-am:
-
 install-ps: install-ps-am
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -790,7 +743,7 @@ ps-am:
 
 uninstall-am: uninstall-hostingLTLIBRARIES
 
-.MAKE: all check install install-am install-strip
+.MAKE: install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
 	clean-hostingLTLIBRARIES clean-libtool ctags distclean \
@@ -824,7 +777,6 @@ creole_maclex.c: creole_maclex.l
 
 creole_wikilex.c: creole_wikilex.l
 	@$(GEN) $(FLEX) -o creole_wikilex.c -8 -Pcreolewikiyy $(srcdir)/creole_wikilex.l
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/appsrc/ODS-Wiki/plugin/creole_maclex.c b/appsrc/ODS-Wiki/plugin/creole_maclex.c
index 0834c38..15b059a 100644
--- a/appsrc/ODS-Wiki/plugin/creole_maclex.c
+++ b/appsrc/ODS-Wiki/plugin/creole_maclex.c
@@ -503,12 +503,12 @@ char *creolemacyytext;
 #line 1 "./creole_maclex.l"
 #line 2 "./creole_maclex.l"
 /*
- *  $Id: creole_maclex.l,v 1.2.2.1 2010/09/20 10:15:53 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -698,7 +698,7 @@ static int input (void );
 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 		{ \
 		int c = '*'; \
-		int n; \
+		yy_size_t n; \
 		for ( n = 0; n < max_size && \
 			     (c = getc( creolemacyyin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
diff --git a/appsrc/ODS-Wiki/plugin/creole_maclex.l b/appsrc/ODS-Wiki/plugin/creole_maclex.l
index b03d622..21fe857 100644
--- a/appsrc/ODS-Wiki/plugin/creole_maclex.l
+++ b/appsrc/ODS-Wiki/plugin/creole_maclex.l
@@ -1,11 +1,11 @@
 %{
 /*
- *  $Id: creole_maclex.l,v 1.2.2.1 2010/09/20 10:15:53 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/plugin/creole_wikilex.c b/appsrc/ODS-Wiki/plugin/creole_wikilex.c
index 25772b8..0c16778 100644
--- a/appsrc/ODS-Wiki/plugin/creole_wikilex.c
+++ b/appsrc/ODS-Wiki/plugin/creole_wikilex.c
@@ -11459,12 +11459,12 @@ char *creolewikiyytext;
 #line 1 "./creole_wikilex.l"
 #line 2 "./creole_wikilex.l"
 /*
- *  $Id: creole_wikilex.l,v 1.4.2.2 2010/09/20 10:15:53 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -12269,7 +12269,7 @@ static int input (void );
 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 		{ \
 		int c = '*'; \
-		int n; \
+		yy_size_t n; \
 		for ( n = 0; n < max_size && \
 			     (c = getc( creolewikiyyin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
@@ -12428,6 +12428,7 @@ yy_match:
 yy_find_action:
 		yy_current_state = *--(yy_state_ptr);
 		(yy_lp) = yy_accept[yy_current_state];
+goto find_rule; /* Shut up GCC warning -Wall */
 find_rule: /* we branch to this label when backing up */
 		for ( ; ; ) /* until we find what rule we matched */
 			{
@@ -13107,7 +13108,7 @@ YY_RULE_SETUP
 #line 953 "./creole_wikilex.l"
 ECHO;
 	YY_BREAK
-#line 13111 "creole_wikilex.c"
+#line 13112 "creole_wikilex.c"
 
 	case YY_END_OF_BUFFER:
 		{
diff --git a/appsrc/ODS-Wiki/plugin/creole_wikilex.l b/appsrc/ODS-Wiki/plugin/creole_wikilex.l
index ff7fad9..de9b6c4 100644
--- a/appsrc/ODS-Wiki/plugin/creole_wikilex.l
+++ b/appsrc/ODS-Wiki/plugin/creole_wikilex.l
@@ -1,11 +1,11 @@
 %{
 /*
- *  $Id: creole_wikilex.l,v 1.4.2.2 2010/09/20 10:15:53 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/plugin/creolewiki.c b/appsrc/ODS-Wiki/plugin/creolewiki.c
index d5dff6e..29cb55a 100644
--- a/appsrc/ODS-Wiki/plugin/creolewiki.c
+++ b/appsrc/ODS-Wiki/plugin/creolewiki.c
@@ -3,7 +3,7 @@
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/plugin/maclex.c b/appsrc/ODS-Wiki/plugin/maclex.c
index ba5abcb..9161c2d 100644
--- a/appsrc/ODS-Wiki/plugin/maclex.c
+++ b/appsrc/ODS-Wiki/plugin/maclex.c
@@ -503,12 +503,12 @@ char *macyytext;
 #line 1 "./maclex.l"
 #line 2 "./maclex.l"
 /*
- *  $Id: maclex.l,v 1.4.2.1 2010/09/20 10:15:53 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -698,7 +698,7 @@ static int input (void );
 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 		{ \
 		int c = '*'; \
-		int n; \
+		yy_size_t n; \
 		for ( n = 0; n < max_size && \
 			     (c = getc( macyyin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
diff --git a/appsrc/ODS-Wiki/plugin/maclex.l b/appsrc/ODS-Wiki/plugin/maclex.l
index 8128586..2553e6a 100644
--- a/appsrc/ODS-Wiki/plugin/maclex.l
+++ b/appsrc/ODS-Wiki/plugin/maclex.l
@@ -1,11 +1,11 @@
 %{
 /*
- *  $Id: maclex.l,v 1.4.2.1 2010/09/20 10:15:53 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/plugin/media_maclex.c b/appsrc/ODS-Wiki/plugin/media_maclex.c
index ce79773..ae73d69 100644
--- a/appsrc/ODS-Wiki/plugin/media_maclex.c
+++ b/appsrc/ODS-Wiki/plugin/media_maclex.c
@@ -503,12 +503,12 @@ char *mediamacyytext;
 #line 1 "./media_maclex.l"
 #line 2 "./media_maclex.l"
 /*
- *  $Id: media_maclex.l,v 1.3.2.1 2010/09/20 10:15:53 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -698,7 +698,7 @@ static int input (void );
 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 		{ \
 		int c = '*'; \
-		int n; \
+		yy_size_t n; \
 		for ( n = 0; n < max_size && \
 			     (c = getc( mediamacyyin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
diff --git a/appsrc/ODS-Wiki/plugin/media_maclex.l b/appsrc/ODS-Wiki/plugin/media_maclex.l
index 0d1591a2..7a7701e 100644
--- a/appsrc/ODS-Wiki/plugin/media_maclex.l
+++ b/appsrc/ODS-Wiki/plugin/media_maclex.l
@@ -1,11 +1,11 @@
 %{
 /*
- *  $Id: media_maclex.l,v 1.3.2.1 2010/09/20 10:15:53 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/plugin/media_wikilex.c b/appsrc/ODS-Wiki/plugin/media_wikilex.c
index 22d4ada..305e40e 100644
--- a/appsrc/ODS-Wiki/plugin/media_wikilex.c
+++ b/appsrc/ODS-Wiki/plugin/media_wikilex.c
@@ -14450,12 +14450,12 @@ char *mediawikiyytext;
 #line 1 "./media_wikilex.l"
 #line 2 "./media_wikilex.l"
 /*
- *  $Id: media_wikilex.l,v 1.7.2.2 2010/09/20 10:15:54 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -15189,7 +15189,7 @@ static int input (void );
 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 		{ \
 		int c = '*'; \
-		int n; \
+		yy_size_t n; \
 		for ( n = 0; n < max_size && \
 			     (c = getc( mediawikiyyin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
@@ -15348,6 +15348,7 @@ yy_match:
 yy_find_action:
 		yy_current_state = *--(yy_state_ptr);
 		(yy_lp) = yy_accept[yy_current_state];
+goto find_rule; /* Shut up GCC warning -Wall */
 find_rule: /* we branch to this label when backing up */
 		for ( ; ; ) /* until we find what rule we matched */
 			{
@@ -16085,7 +16086,7 @@ YY_RULE_SETUP
 #line 908 "./media_wikilex.l"
 ECHO;
 	YY_BREAK
-#line 16089 "media_wikilex.c"
+#line 16090 "media_wikilex.c"
 
 	case YY_END_OF_BUFFER:
 		{
diff --git a/appsrc/ODS-Wiki/plugin/media_wikilex.l b/appsrc/ODS-Wiki/plugin/media_wikilex.l
index 6139eee..639cd79 100644
--- a/appsrc/ODS-Wiki/plugin/media_wikilex.l
+++ b/appsrc/ODS-Wiki/plugin/media_wikilex.l
@@ -1,11 +1,11 @@
 %{
 /*
- *  $Id: media_wikilex.l,v 1.7.2.2 2010/09/20 10:15:54 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/plugin/mediawiki.c b/appsrc/ODS-Wiki/plugin/mediawiki.c
index 640271d..82a91cf 100644
--- a/appsrc/ODS-Wiki/plugin/mediawiki.c
+++ b/appsrc/ODS-Wiki/plugin/mediawiki.c
@@ -1,10 +1,10 @@
 /*
- *  $Id: mediawiki.c,v 1.5.2.1 2010/09/20 10:15:54 source Exp $
+ *  $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/plugin/wikilex.c b/appsrc/ODS-Wiki/plugin/wikilex.c
index e863e1c..faf0bb4 100644
--- a/appsrc/ODS-Wiki/plugin/wikilex.c
+++ b/appsrc/ODS-Wiki/plugin/wikilex.c
@@ -11348,12 +11348,12 @@ char *wikiyytext;
 #line 1 "./wikilex.l"
 #line 2 "./wikilex.l"
 /*
- *  $Id: wikilex.l,v 1.15.2.2 2010/09/20 10:15:54 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -11367,7 +11367,6 @@ char *wikiyytext;
  *  You should have received a copy of the GNU General Public License along
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
  */
 
 #include <ctype.h>
@@ -11931,7 +11930,7 @@ int wlex_count_header_level (char * line)
 
 
 /* Wiktology */
-#line 11935 "wikilex.c"
+#line 11934 "wikilex.c"
 
 #define INITIAL 0
 #define VERBATIM 1
@@ -12036,7 +12035,7 @@ static int input (void );
 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 		{ \
 		int c = '*'; \
-		int n; \
+		yy_size_t n; \
 		for ( n = 0; n < max_size && \
 			     (c = getc( wikiyyin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
@@ -12121,11 +12120,11 @@ YY_DECL
 	register char *yy_cp, *yy_bp;
 	register int yy_act;
     
-#line 650 "./wikilex.l"
+#line 649 "./wikilex.l"
 
 
 	/* Verbatim */
-#line 12129 "wikilex.c"
+#line 12128 "wikilex.c"
 
 	if ( !(yy_init) )
 		{
@@ -12196,6 +12195,7 @@ yy_match:
 yy_find_action:
 		yy_current_state = *--(yy_state_ptr);
 		(yy_lp) = yy_accept[yy_current_state];
+goto find_rule; /* Shut up GCC warning -Wall */
 find_rule: /* we branch to this label when backing up */
 		for ( ; ; ) /* until we find what rule we matched */
 			{
@@ -12241,346 +12241,346 @@ do_action:	/* This label is used only to access EOF actions. */
 case 1:
 /* rule 1 can match eol */
 YY_RULE_SETUP
-#line 653 "./wikilex.l"
+#line 652 "./wikilex.l"
 { BEGIN(VERBATIM); wlex_verbatim(1); }
 	YY_BREAK
 case 2:
 /* rule 2 can match eol */
 YY_RULE_SETUP
-#line 654 "./wikilex.l"
+#line 653 "./wikilex.l"
 { BEGIN(INITIAL); wlex_verbatim(0); }
 	YY_BREAK
 case 3:
 /* rule 3 can match eol */
 YY_RULE_SETUP
-#line 655 "./wikilex.l"
+#line 654 "./wikilex.l"
 { BEGIN(INITIAL); wlex_verbatim(0); }
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 656 "./wikilex.l"
+#line 655 "./wikilex.l"
 { PRINT ("<"); }
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 657 "./wikilex.l"
+#line 656 "./wikilex.l"
 { PRINT (">"); }
 	YY_BREAK
 case 6:
 /* rule 6 can match eol */
 YY_RULE_SETUP
-#line 658 "./wikilex.l"
+#line 657 "./wikilex.l"
 { PRINT (wikiyytext); }
 	YY_BREAK
 case 7:
 /* rule 7 can match eol */
 YY_RULE_SETUP
-#line 659 "./wikilex.l"
+#line 658 "./wikilex.l"
 { PRINT (wikiyytext); }
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 660 "./wikilex.l"
+#line 659 "./wikilex.l"
 { PRINT (wikiyytext); }
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 661 "./wikilex.l"
+#line 660 "./wikilex.l"
 { PRINT ("<?"); }
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 662 "./wikilex.l"
+#line 661 "./wikilex.l"
 { PRINT(wikiyytext); }
 	YY_BREAK
 /* Wiktology */
 case 11:
 /* rule 11 can match eol */
 YY_RULE_SETUP
-#line 665 "./wikilex.l"
+#line 664 "./wikilex.l"
 { PRINT("<p><b>Wikitology detected:</b><br><div id='wiktology'>"); BEGIN(WIKTOLOGY); wlex_verbatim(1); }
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 666 "./wikilex.l"
+#line 665 "./wikilex.l"
 { PRINT ("<"); }
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 667 "./wikilex.l"
+#line 666 "./wikilex.l"
 { PRINT (">"); }
 	YY_BREAK
 case 14:
 /* rule 14 can match eol */
 YY_RULE_SETUP
-#line 668 "./wikilex.l"
+#line 667 "./wikilex.l"
 { PRINT (wikiyytext); }
 	YY_BREAK
 case 15:
 /* rule 15 can match eol */
 YY_RULE_SETUP
-#line 669 "./wikilex.l"
+#line 668 "./wikilex.l"
 { PRINT (wikiyytext); }
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 670 "./wikilex.l"
+#line 669 "./wikilex.l"
 { PRINT (wikiyytext); }
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 671 "./wikilex.l"
+#line 670 "./wikilex.l"
 { PRINT ("<?"); }
 	YY_BREAK
 case 18:
 /* rule 18 can match eol */
 YY_RULE_SETUP
-#line 672 "./wikilex.l"
+#line 671 "./wikilex.l"
 { PRINT("</div></p><b>End of Wikitology</b><br>"); BEGIN(INITIAL); wlex_verbatim(0); }
 	YY_BREAK
 /* WikiLinks. This is the core :) They are of highest possible priority */
 case 19:
 YY_RULE_SETUP
-#line 676 "./wikilex.l"
+#line 675 "./wikilex.l"
 { if (STATE(wlex_noautolink)) COPYTEXT; else wlex_ahref (wlex_wikiwordnorm (STATEPTR, wikiyytext), "wikiword", wikiyytext); }
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 677 "./wikilex.l"
+#line 676 "./wikilex.l"
 { if (STATE(wlex_noautolink)) COPYTEXT; else wlex_ahref (wlex_wikiwordnorm (STATEPTR, wikiyytext), "qwikiword", strchr (wikiyytext, '.') + 1); }
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 678 "./wikilex.l"
+#line 677 "./wikilex.l"
 { if (STATE(wlex_noautolink)) COPYTEXT; else wlex_ahref (wlex_wikiwordnorm (STATEPTR, wikiyytext), "interwiki", wikiyytext); }
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 679 "./wikilex.l"
+#line 678 "./wikilex.l"
 { PRINT("<NOP />"); PRINTTEXT(strchr(wikiyytext,'>')+1); }
 	YY_BREAK
 /* xmlns must be removed for <html tag. this is workaround and must be replaced by proper handling XHTML */
 case 23:
 YY_RULE_SETUP
-#line 682 "./wikilex.l"
+#line 681 "./wikilex.l"
 { PRINT ("<html>"); BEGIN(PLAINHTML); }
 	YY_BREAK
 case 24:
 /* rule 24 can match eol */
 YY_RULE_SETUP
-#line 683 "./wikilex.l"
+#line 682 "./wikilex.l"
 { ; }
 	YY_BREAK
 /* PlainHtml */
 case 25:
 /* rule 25 can match eol */
 YY_RULE_SETUP
-#line 688 "./wikilex.l"
+#line 687 "./wikilex.l"
 { BEGIN(PLAINHTML); }
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 689 "./wikilex.l"
+#line 688 "./wikilex.l"
 { BEGIN(PLAINHTML); STATE(wlex_noautolink) = 1; STATE(wlex_nowiki) = 1;  STATE(wlex_in_any_text) = 1; STATE(wlex_prevst) = INITIAL; }
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 690 "./wikilex.l"
+#line 689 "./wikilex.l"
 { BEGIN(PLAINHTML); STATE(wlex_noautolink) = 1; STATE(wlex_nowiki) = 1;  STATE(wlex_in_any_text) = 1; STATE(wlex_prevst) = TABLELINE; }
 	YY_BREAK
 case 28:
 /* rule 28 can match eol */
 YY_RULE_SETUP
-#line 691 "./wikilex.l"
+#line 690 "./wikilex.l"
 { BEGIN(INITIAL); }
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 692 "./wikilex.l"
+#line 691 "./wikilex.l"
 { if ((STATE(wlex_prevst)) == TABLELINE) { BEGIN(TABLELINE);} else { BEGIN(INITIAL);} STATE(wlex_noautolink) = 0; STATE (wlex_nowiki) = 0; }
 	YY_BREAK
 case 30:
 /* rule 30 can match eol */
 YY_RULE_SETUP
-#line 693 "./wikilex.l"
+#line 692 "./wikilex.l"
 { BEGIN(INITIAL); }
 	YY_BREAK
 case 31:
 /* rule 31 can match eol */
 YY_RULE_SETUP
-#line 694 "./wikilex.l"
+#line 693 "./wikilex.l"
 { if (STATE(wlex_nowiki)) PRINT ("<BR/>"); }
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 695 "./wikilex.l"
+#line 694 "./wikilex.l"
 { PRINT (wikiyytext); }
 	YY_BREAK
 case 33:
 /* rule 33 can match eol */
 YY_RULE_SETUP
-#line 697 "./wikilex.l"
+#line 696 "./wikilex.l"
 { STATE(wlex_noautolink) = 1; }
 	YY_BREAK
 case 34:
 /* rule 34 can match eol */
 YY_RULE_SETUP
-#line 698 "./wikilex.l"
+#line 697 "./wikilex.l"
 { STATE(wlex_noautolink) = 0; }
 	YY_BREAK
 /* Other links. Their priorities are higher than anything else except <verbatim> */
 case 35:
 YY_RULE_SETUP
-#line 701 "./wikilex.l"
+#line 700 "./wikilex.l"
 { if (WLEX_FONT_DEFAULT == STATE(wlex_font)) wlex_ahref (wikiyytext, "mailto", wikiyytext+7); else COPYTEXT; }
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 702 "./wikilex.l"
+#line 701 "./wikilex.l"
 { if (WLEX_FONT_DEFAULT == STATE(wlex_font)) wlex_ahref (wikiyytext, "mailto", wikiyytext); else COPYTEXT; }
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 703 "./wikilex.l"
+#line 702 "./wikilex.l"
 { if (WLEX_FONT_DEFAULT == STATE(wlex_font)) wlex_ahref (wikiyytext, "absuri", wikiyytext); else COPYTEXT; }
 	YY_BREAK
 case 38:
 /* rule 38 can match eol */
 YY_RULE_SETUP
-#line 704 "./wikilex.l"
+#line 703 "./wikilex.l"
 { wlex_forced_link (STATEPTR, wikiyytext, NULL, 1, "forcedwikiword");  }
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 705 "./wikilex.l"
+#line 704 "./wikilex.l"
 { wlex_forced_link_with_pred (STATEPTR, wikiyytext, "::", NULL, "forcedwikiword");  }
 	YY_BREAK
 case 40:
 /* rule 40 can match eol */
 YY_RULE_SETUP
-#line 706 "./wikilex.l"
+#line 705 "./wikilex.l"
 { wlex_forced_link (STATEPTR, wikiyytext, " ", 0, "mailto"); }
 	YY_BREAK
 case 41:
 /* rule 41 can match eol */
 YY_RULE_SETUP
-#line 707 "./wikilex.l"
+#line 706 "./wikilex.l"
 { wlex_forced_link (STATEPTR, wikiyytext, "][", 0, "mailto");  }
 	YY_BREAK
 case 42:
 /* rule 42 can match eol */
 YY_RULE_SETUP
-#line 708 "./wikilex.l"
+#line 707 "./wikilex.l"
 { wlex_forced_link (STATEPTR, wikiyytext, " ", 0, "wikiword"); }
 	YY_BREAK
 case 43:
 /* rule 43 can match eol */
 YY_RULE_SETUP
-#line 709 "./wikilex.l"
+#line 708 "./wikilex.l"
 { wlex_forced_link (STATEPTR, wikiyytext, "][", 0, "wikiword");  }
 	YY_BREAK
 case 44:
 /* rule 44 can match eol */
 YY_RULE_SETUP
-#line 710 "./wikilex.l"
+#line 709 "./wikilex.l"
 { wlex_forced_link (STATEPTR, wikiyytext, " ", 0, "qwikiword");  }
 	YY_BREAK
 case 45:
 /* rule 45 can match eol */
 YY_RULE_SETUP
-#line 711 "./wikilex.l"
+#line 710 "./wikilex.l"
 { wlex_forced_link (STATEPTR, wikiyytext, "][", 0, "qwikiword");  }
 	YY_BREAK
 case 46:
 /* rule 46 can match eol */
 YY_RULE_SETUP
-#line 712 "./wikilex.l"
+#line 711 "./wikilex.l"
 { wlex_forced_link (STATEPTR, wikiyytext, " ", 0, "interwiki");  }
 	YY_BREAK
 case 47:
 /* rule 47 can match eol */
 YY_RULE_SETUP
-#line 713 "./wikilex.l"
+#line 712 "./wikilex.l"
 { wlex_forced_link (STATEPTR, wikiyytext, "][", 0, "interwiki");  }
 	YY_BREAK
 case 48:
 /* rule 48 can match eol */
 YY_RULE_SETUP
-#line 714 "./wikilex.l"
+#line 713 "./wikilex.l"
 { wlex_forced_link (STATEPTR, wikiyytext, " ", 0, "absuri"); }
 	YY_BREAK
 case 49:
 /* rule 49 can match eol */
 YY_RULE_SETUP
-#line 715 "./wikilex.l"
+#line 714 "./wikilex.l"
 { wlex_forced_link (STATEPTR, wikiyytext, "][", 0, "absuri"); }
 	YY_BREAK
 case 50:
 /* rule 50 can match eol */
 YY_RULE_SETUP
-#line 716 "./wikilex.l"
+#line 715 "./wikilex.l"
 { wlex_forced_link (STATEPTR, wikiyytext, " ", 0, "anchorhere"); }
 	YY_BREAK
 case 51:
 /* rule 51 can match eol */
 YY_RULE_SETUP
-#line 717 "./wikilex.l"
+#line 716 "./wikilex.l"
 { wlex_forced_link (STATEPTR, wikiyytext, "][", 0, "anchorhere");  }
 	YY_BREAK
 case 52:
 /* rule 52 can match eol */
 YY_RULE_SETUP
-#line 718 "./wikilex.l"
+#line 717 "./wikilex.l"
 { wlex_forced_link (STATEPTR, wikiyytext, NULL, 1, "forcedwikiword");  }
 	YY_BREAK
 case 53:
 /* rule 53 can match eol */
 YY_RULE_SETUP
-#line 719 "./wikilex.l"
+#line 718 "./wikilex.l"
 { wlex_forced_link (STATEPTR, wikiyytext, "][", 1, "forcedwikiword");  }
 	YY_BREAK
 case 54:
 /* rule 54 can match eol */
 YY_RULE_SETUP
-#line 720 "./wikilex.l"
+#line 719 "./wikilex.l"
 { wlex_forced_link (STATEPTR, wikiyytext, "][", 0, "reluri");  }
 	YY_BREAK
 case 55:
 /* rule 55 can match eol */
 YY_RULE_SETUP
-#line 721 "./wikilex.l"
+#line 720 "./wikilex.l"
 { wlex_forced_link_with_pred (STATEPTR, wikiyytext, "::", "|", "forcedwikiword");  }
 	YY_BREAK
 case 56:
 /* rule 56 can match eol */
 YY_RULE_SETUP
-#line 722 "./wikilex.l"
+#line 721 "./wikilex.l"
 { wlex_div_with_pred (STATEPTR, wikiyytext, ":=", "|", "semanticvalue");  }
 	YY_BREAK
 /* HTML tags */
 case 57:
 YY_RULE_SETUP
-#line 725 "./wikilex.l"
+#line 724 "./wikilex.l"
 { if (!STATE(wlex_xmp_depth)) STATE(wlex_format_lock) += 1; PRINT(wikiyytext); }
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 726 "./wikilex.l"
+#line 725 "./wikilex.l"
 { if (!STATE(wlex_xmp_depth) && (0 < STATE(wlex_format_lock))) STATE(wlex_format_lock) -= 1; PRINT(wikiyytext); }
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 727 "./wikilex.l"
+#line 726 "./wikilex.l"
 { STATE(wlex_xmp_depth) += 1; STATE(wlex_format_lock) += 1; PRINT(wikiyytext); }
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 728 "./wikilex.l"
+#line 727 "./wikilex.l"
 { if (0 < STATE(wlex_xmp_depth)) { STATE(wlex_xmp_depth) -= 1; STATE(wlex_format_lock) -= 1; } PRINT(wikiyytext); }
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 729 "./wikilex.l"
+#line 728 "./wikilex.l"
 {
         if (!STATE(wlex_in_para) && !STATE(wlex_in_any_text))
 	  STATE(wlex_in_para) = STATE(wlex_in_any_text) = STATE(wlex_para_depressed) = 1;
@@ -12589,25 +12589,25 @@ YY_RULE_SETUP
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 734 "./wikilex.l"
+#line 733 "./wikilex.l"
 { PRINT(wikiyytext); }
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 735 "./wikilex.l"
+#line 734 "./wikilex.l"
 { PRINT("<!-- nop -->"); }
 	YY_BREAK
 /* Ends of lines and ends of paragraphs */
 case 64:
 /* rule 64 can match eol */
 YY_RULE_SETUP
-#line 738 "./wikilex.l"
+#line 737 "./wikilex.l"
 { if (0 < STATE(wlex_format_lock)) PRINT(wikiyytext); else PRINTTEXT("."); wlex_reset (~0); }
 	YY_BREAK
 case 65:
 /* rule 65 can match eol */
 YY_RULE_SETUP
-#line 739 "./wikilex.l"
+#line 738 "./wikilex.l"
 { if (0 < STATE(wlex_format_lock)) PRINT(wikiyytext); else PRINTTEXT(".\n"); }
 	YY_BREAK
 case 66:
@@ -12616,7 +12616,7 @@ case 66:
 (yy_c_buf_p) = yy_cp = yy_bp + 2;
 YY_DO_BEFORE_ACTION; /* set up wikiyytext again */
 YY_RULE_SETUP
-#line 740 "./wikilex.l"
+#line 739 "./wikilex.l"
 { if (0 < STATE(wlex_format_lock)) PRINT(wikiyytext); else PRINTTEXT(".\n"); }
 	YY_BREAK
 case 67:
@@ -12625,24 +12625,24 @@ case 67:
 (yy_c_buf_p) = yy_cp = yy_bp + 1;
 YY_DO_BEFORE_ACTION; /* set up wikiyytext again */
 YY_RULE_SETUP
-#line 741 "./wikilex.l"
+#line 740 "./wikilex.l"
 { if (0 < STATE(wlex_format_lock)) PRINT(wikiyytext); else PRINTTEXT(".\n"); }
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 742 "./wikilex.l"
+#line 741 "./wikilex.l"
 { if (0 < STATE(wlex_format_lock)) PRINT(wikiyytext); else COPYTEXT; }
 	YY_BREAK
 case 69:
 /* rule 69 can match eol */
 YY_RULE_SETUP
-#line 743 "./wikilex.l"
+#line 742 "./wikilex.l"
 { if (0 < STATE(wlex_format_lock)) PRINT(wikiyytext); else wlex_reset (~0); }
 	YY_BREAK
 case 70:
 /* rule 70 can match eol */
 YY_RULE_SETUP
-#line 744 "./wikilex.l"
+#line 743 "./wikilex.l"
 { if (0 < STATE(wlex_format_lock))
  				    PRINT(wikiyytext);
 				  else
@@ -12656,157 +12656,157 @@ YY_RULE_SETUP
 /* Titles */
 case 71:
 YY_RULE_SETUP
-#line 755 "./wikilex.l"
+#line 754 "./wikilex.l"
 { BEGIN(INITIAL); wlex_headerlevel (wlex_count_header_level(wikiyytext)); }
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 756 "./wikilex.l"
+#line 755 "./wikilex.l"
 { BEGIN(INITIAL); wlex_headerlevel (1); }
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 757 "./wikilex.l"
+#line 756 "./wikilex.l"
 { BEGIN(INITIAL); wlex_headerlevel (wlex_count_header_level(wikiyytext)); }
 	YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 758 "./wikilex.l"
+#line 757 "./wikilex.l"
 { BEGIN(INITIAL); wlex_headerlevel (1); }
 	YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 759 "./wikilex.l"
+#line 758 "./wikilex.l"
 { BEGIN(INITIAL); wlex_headerlevel (wlex_count_header_level(wikiyytext)); }
 	YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 760 "./wikilex.l"
+#line 759 "./wikilex.l"
 { BEGIN(INITIAL); wlex_headerlevel (1); }
 	YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 761 "./wikilex.l"
+#line 760 "./wikilex.l"
 { if (STATE(wlex_headerlevel)) PRINT("<NOTOC />"); else PRINT(wikiyytext); }
 	YY_BREAK
 /* Lists */
 case 78:
 YY_RULE_SETUP
-#line 764 "./wikilex.l"
+#line 763 "./wikilex.l"
 { BEGIN(INITIAL); wlex_list ((strchr(wikiyytext, '*') - wikiyytext) / 3, WLEX_LIST_UL, NULL); }
 	YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 765 "./wikilex.l"
+#line 764 "./wikilex.l"
 { BEGIN(INITIAL); wlex_list ((strdigit(wikiyytext) - wikiyytext) / 3, WLEX_LIST_OL, NULL); }
 	YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 766 "./wikilex.l"
+#line 765 "./wikilex.l"
 { BEGIN(INITIAL); wlex_list ((strnonws(wikiyytext) - wikiyytext) / 3, WLEX_LIST_DL, wikiyytext); }
 	YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 767 "./wikilex.l"
+#line 766 "./wikilex.l"
 { BEGIN(INITIAL); wlex_list (strchr(wikiyytext, '*') - wikiyytext, WLEX_LIST_UL, NULL); }
 	YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 768 "./wikilex.l"
+#line 767 "./wikilex.l"
 { BEGIN(INITIAL); wlex_list (strdigit(wikiyytext) - wikiyytext, WLEX_LIST_OL, NULL); }
 	YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 769 "./wikilex.l"
+#line 768 "./wikilex.l"
 { BEGIN(INITIAL); wlex_list (strnonws(wikiyytext) - wikiyytext, WLEX_LIST_DL, wikiyytext); }
 	YY_BREAK
 /* Font processing */
 case 84:
 YY_RULE_SETUP
-#line 772 "./wikilex.l"
+#line 771 "./wikilex.l"
 { COPYTEXT; }
 	YY_BREAK
 case 85:
 /* rule 85 can match eol */
 YY_RULE_SETUP
-#line 774 "./wikilex.l"
+#line 773 "./wikilex.l"
 { if (WLEX_FONT_BU == STATE(wlex_font)) wlex_font (WLEX_FONT_DEFAULT); else COPYTEXT;}
 	YY_BREAK
 case 86:
 /* rule 86 can match eol */
 YY_RULE_SETUP
-#line 775 "./wikilex.l"
+#line 774 "./wikilex.l"
 { if (WLEX_FONT_B == STATE(wlex_font)) wlex_font (WLEX_FONT_DEFAULT); else COPYTEXT;}
 	YY_BREAK
 case 87:
 /* rule 87 can match eol */
 YY_RULE_SETUP
-#line 776 "./wikilex.l"
+#line 775 "./wikilex.l"
 { if (WLEX_FONT_U == STATE(wlex_font)) wlex_font (WLEX_FONT_DEFAULT); else COPYTEXT;}
 	YY_BREAK
 case 88:
 /* rule 88 can match eol */
 YY_RULE_SETUP
-#line 777 "./wikilex.l"
+#line 776 "./wikilex.l"
 { if (WLEX_FONT_BTT == STATE(wlex_font)) wlex_font (WLEX_FONT_DEFAULT); else COPYTEXT;}
 	YY_BREAK
 case 89:
 /* rule 89 can match eol */
 YY_RULE_SETUP
-#line 778 "./wikilex.l"
+#line 777 "./wikilex.l"
 { if (WLEX_FONT_TT == STATE(wlex_font)) wlex_font (WLEX_FONT_DEFAULT); else COPYTEXT;}
 	YY_BREAK
 case 90:
 /* rule 90 can match eol */
 YY_RULE_SETUP
-#line 779 "./wikilex.l"
+#line 778 "./wikilex.l"
 { if (WLEX_FONT_I == STATE(wlex_font)) wlex_font (WLEX_FONT_DEFAULT); else COPYTEXT;}
 	YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 781 "./wikilex.l"
+#line 780 "./wikilex.l"
 { if (WLEX_FONT_DEFAULT == STATE(wlex_font)) { PRINT(" "); wlex_font (WLEX_FONT_BU); } else COPYTEXT; }
 	YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 782 "./wikilex.l"
+#line 781 "./wikilex.l"
 { if (WLEX_FONT_DEFAULT == STATE(wlex_font)) { PRINT(" "); wlex_font (WLEX_FONT_B); } else COPYTEXT; }
 	YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 783 "./wikilex.l"
+#line 782 "./wikilex.l"
 { if (WLEX_FONT_DEFAULT == STATE(wlex_font)) { PRINT(" "); wlex_font (WLEX_FONT_U); } else COPYTEXT; }
 	YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 784 "./wikilex.l"
+#line 783 "./wikilex.l"
 { if (WLEX_FONT_DEFAULT == STATE(wlex_font)) { PRINT(" "); wlex_font (WLEX_FONT_BTT); } else COPYTEXT; }
 	YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 785 "./wikilex.l"
+#line 784 "./wikilex.l"
 { if (WLEX_FONT_DEFAULT == STATE(wlex_font)) { PRINT(" "); wlex_font (WLEX_FONT_TT); } else COPYTEXT; }
 	YY_BREAK
 case 96:
 /* rule 96 can match eol */
 YY_RULE_SETUP
-#line 786 "./wikilex.l"
+#line 785 "./wikilex.l"
 { if (WLEX_FONT_DEFAULT == STATE(wlex_font)) { PRINT(" "); wlex_font (WLEX_FONT_I); } else COPYTEXT; }
 	YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 788 "./wikilex.l"
+#line 787 "./wikilex.l"
 { STATE(wlex_in_any_text) = 1; }
 	YY_BREAK
 /* Other formatting */
 case 98:
 YY_RULE_SETUP
-#line 791 "./wikilex.l"
+#line 790 "./wikilex.l"
 { PRINT("<HR />"); }
 	YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 792 "./wikilex.l"
+#line 791 "./wikilex.l"
 {
 	PRINT("<A NAME=\"");
 	PRINT(strchr (wikiyytext, '#')+1);
@@ -12816,13 +12816,13 @@ YY_RULE_SETUP
 /* Variables and macro calls */
 case 100:
 YY_RULE_SETUP
-#line 799 "./wikilex.l"
+#line 798 "./wikilex.l"
 { PRINT("<?"); NPRINT(wikiyytext+1,strlen(wikiyytext)-2); PRINT("?>"); }
 	YY_BREAK
 case 101:
 /* rule 101 can match eol */
 YY_RULE_SETUP
-#line 800 "./wikilex.l"
+#line 799 "./wikilex.l"
 {
 	char *lbrace = strchr (wikiyytext, '{');
 	char *rbrace = strchr (wikiyytext, '}');
@@ -12833,7 +12833,7 @@ YY_RULE_SETUP
 case 102:
 /* rule 102 can match eol */
 YY_RULE_SETUP
-#line 806 "./wikilex.l"
+#line 805 "./wikilex.l"
 {
 	char *lbrace = strchr (wikiyytext, '{');
 	char *rbrace = strchr (wikiyytext, '}');
@@ -12844,31 +12844,31 @@ YY_RULE_SETUP
 case 103:
 /* rule 103 can match eol */
 YY_RULE_SETUP
-#line 812 "./wikilex.l"
+#line 811 "./wikilex.l"
 { COPYTEXT; }
 	YY_BREAK
 /* Tables */
 case 104:
 /* rule 104 can match eol */
 YY_RULE_SETUP
-#line 816 "./wikilex.l"
+#line 815 "./wikilex.l"
 { wlex_reset(~WLEX_RESET_LIST); BEGIN(TABLEHEADER);  STATE(wlex_in_any_text) = 1; PRINT("\n<TABLE class=\"wikitable\">"); }
 	YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 817 "./wikilex.l"
+#line 816 "./wikilex.l"
 { PRINT("\n<TR><TH"); wlex_id_print (STATEPTR); PRINT (">"); }
 	YY_BREAK
 case 106:
 /* rule 106 can match eol */
 YY_RULE_SETUP
-#line 818 "./wikilex.l"
+#line 817 "./wikilex.l"
 { PRINT("</TH></TR>"); BEGIN(TABLELINE); }
 	YY_BREAK
 case 107:
 /* rule 107 can match eol */
 YY_RULE_SETUP
-#line 819 "./wikilex.l"
+#line 818 "./wikilex.l"
 { PRINT("</TH></TR>"); }
 	YY_BREAK
 case 108:
@@ -12877,33 +12877,33 @@ case 108:
 (yy_c_buf_p) = yy_cp = yy_bp + 1;
 YY_DO_BEFORE_ACTION; /* set up wikiyytext again */
 YY_RULE_SETUP
-#line 820 "./wikilex.l"
+#line 819 "./wikilex.l"
 { PRINT("</TH></TR>\n</TABLE>\n"); BEGIN(INITIAL); wlex_reset(~WLEX_RESET_LIST); }
 	YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 821 "./wikilex.l"
+#line 820 "./wikilex.l"
 { PRINT("</TH><TH"); wlex_id_print (STATEPTR); PRINT (">"); }
 	YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 822 "./wikilex.l"
+#line 821 "./wikilex.l"
 { PRINT("<"); }
 	YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 823 "./wikilex.l"
+#line 822 "./wikilex.l"
 { ; }
 	YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 824 "./wikilex.l"
+#line 823 "./wikilex.l"
 { PRINT(wikiyytext); }
 	YY_BREAK
 case 113:
 /* rule 113 can match eol */
 YY_RULE_SETUP
-#line 827 "./wikilex.l"
+#line 826 "./wikilex.l"
 { wlex_reset(~WLEX_RESET_LIST); BEGIN(TABLELINE); STATE(wlex_in_any_text) = 1; PRINT("\n<TABLE class=\"wikitable\">"); }
 	YY_BREAK
 case 114:
@@ -12911,18 +12911,18 @@ case 114:
 (yy_c_buf_p) = yy_cp -= 2;
 YY_DO_BEFORE_ACTION; /* set up wikiyytext again */
 YY_RULE_SETUP
-#line 828 "./wikilex.l"
+#line 827 "./wikilex.l"
 { PRINT("\n<TR><TD ALIGN=\"center\">"); }
 	YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 829 "./wikilex.l"
+#line 828 "./wikilex.l"
 { PRINT("\n<TR><TD>"); }
 	YY_BREAK
 case 116:
 /* rule 116 can match eol */
 YY_RULE_SETUP
-#line 830 "./wikilex.l"
+#line 829 "./wikilex.l"
 { PRINT("</TD></TR>"); }
 	YY_BREAK
 case 117:
@@ -12931,7 +12931,7 @@ case 117:
 (yy_c_buf_p) = yy_cp = yy_bp + 1;
 YY_DO_BEFORE_ACTION; /* set up wikiyytext again */
 YY_RULE_SETUP
-#line 831 "./wikilex.l"
+#line 830 "./wikilex.l"
 { PRINT("</TD></TR>\n</TABLE>\n"); BEGIN(INITIAL); wlex_reset(~WLEX_RESET_LIST); }
 	YY_BREAK
 case 118:
@@ -12939,7 +12939,7 @@ case 118:
 (yy_c_buf_p) = yy_cp = yy_bp + 1;
 YY_DO_BEFORE_ACTION; /* set up wikiyytext again */
 YY_RULE_SETUP
-#line 832 "./wikilex.l"
+#line 831 "./wikilex.l"
 { PRINT("</TD><TD ALIGN=\"center\">"); }
 	YY_BREAK
 case 119:
@@ -12947,33 +12947,33 @@ case 119:
 (yy_c_buf_p) = yy_cp = yy_bp + 1;
 YY_DO_BEFORE_ACTION; /* set up wikiyytext again */
 YY_RULE_SETUP
-#line 833 "./wikilex.l"
+#line 832 "./wikilex.l"
 { PRINT("</TD><TD STYLE=\"colspanstub\">"); }
 	YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 834 "./wikilex.l"
+#line 833 "./wikilex.l"
 { PRINT("</TD><TD>"); }
 	YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 835 "./wikilex.l"
+#line 834 "./wikilex.l"
 { PRINT("</TD><TD>"); }
 	YY_BREAK
 case 122:
 /* rule 122 can match eol */
 YY_RULE_SETUP
-#line 836 "./wikilex.l"
+#line 835 "./wikilex.l"
 { ; }
 	YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 837 "./wikilex.l"
+#line 836 "./wikilex.l"
 { PRINT("<"); }
 	YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 838 "./wikilex.l"
+#line 837 "./wikilex.l"
 { PRINT(wikiyytext); }
 	YY_BREAK
 /* Inlined verbatims
@@ -12984,22 +12984,22 @@ YY_RULE_SETUP
 /* Others */
 case 125:
 YY_RULE_SETUP
-#line 848 "./wikilex.l"
+#line 847 "./wikilex.l"
 { COPYTEXT; }
 	YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 849 "./wikilex.l"
+#line 848 "./wikilex.l"
 { COPYTEXT; }
 	YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 850 "./wikilex.l"
+#line 849 "./wikilex.l"
 { PRINTTEXT("<"); }
 	YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 851 "./wikilex.l"
+#line 850 "./wikilex.l"
 { COPYTEXT; }
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
@@ -13008,12 +13008,12 @@ case YY_STATE_EOF(PLAINHTML):
 case YY_STATE_EOF(TABLELINE):
 case YY_STATE_EOF(TABLEHEADER):
 case YY_STATE_EOF(WIKTOLOGY):
-#line 852 "./wikilex.l"
+#line 851 "./wikilex.l"
 { wlex_reset (~0); return 0; }
 	YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 854 "./wikilex.l"
+#line 853 "./wikilex.l"
 ECHO;
 	YY_BREAK
 #line 13020 "wikilex.c"
@@ -13989,7 +13989,7 @@ void wikiyyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 854 "./wikilex.l"
+#line 853 "./wikilex.l"
 
 
 /*<INITIAL>.([^ \t\r\n\[\]#*_=<A-Z1-9-]*)	{ COPYTEXT; }*/
diff --git a/appsrc/ODS-Wiki/plugin/wikilex.l b/appsrc/ODS-Wiki/plugin/wikilex.l
index 2a34ab9..f3ca917 100644
--- a/appsrc/ODS-Wiki/plugin/wikilex.l
+++ b/appsrc/ODS-Wiki/plugin/wikilex.l
@@ -1,11 +1,11 @@
 %{
 /*
- *  $Id: wikilex.l,v 1.15.2.2 2010/09/20 10:15:54 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,6 @@
  *  You should have received a copy of the GNU General Public License along
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
  */
 
 #include <ctype.h>
diff --git a/appsrc/ODS-Wiki/plugin/wikiv.c b/appsrc/ODS-Wiki/plugin/wikiv.c
index 3a64f6e..2b89adf 100644
--- a/appsrc/ODS-Wiki/plugin/wikiv.c
+++ b/appsrc/ODS-Wiki/plugin/wikiv.c
@@ -1,10 +1,10 @@
 /*
- * $Id: wikiv.c,v 1.6.2.1 2010/09/20 10:15:54 source Exp $
+ * $Id$
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/plugins.sql b/appsrc/ODS-Wiki/plugins.sql
index bf8b6e0..73cb651 100644
--- a/appsrc/ODS-Wiki/plugins.sql
+++ b/appsrc/ODS-Wiki/plugins.sql
@@ -1,12 +1,12 @@
 --
---  $Id: plugins.sql,v 1.4.2.1 2010/09/20 10:15:46 source Exp $
+--  $Id$
 --
 --  Atom publishing protocol support.
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/postinstall.sql b/appsrc/ODS-Wiki/postinstall.sql
index f8fd51b..6494619 100644
--- a/appsrc/ODS-Wiki/postinstall.sql
+++ b/appsrc/ODS-Wiki/postinstall.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: postinstall.sql,v 1.15.2.2 2011/05/18 21:17:43 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -42,7 +42,7 @@ WV.WIKI.SET_WIKI_MAIN();
 WV.WIKI.SANITY_CHECK();
 WV.WIKI.CREATEINSTANCE('Main', http_dav_uid(), WV.Wiki.WikiAdminGId(), 0);
 WV.WIKI.CREATEINSTANCE('Doc', http_dav_uid(), WV.Wiki.WikiAdminGId(), 0);
-sioc..fill_comments();
+SIOC..fill_comments();
 WV.WIKI.PUT_NEW_FILES('Main');
 WV.WIKI.PUT_NEW_FILES('Doc',1);
 WV.WIKI.PUT_NEW_FILES('Main',1,'WikiUsers');
@@ -57,7 +57,8 @@ create procedure WV.WIKI.temp ()
   declare _content, _type any;
 
   _topic_id := (select TopicId from WV.Wiki.CLUSTERS a, WV.Wiki.TOPIC b where a.ClusterId = b.ClusterId and a.ClusterName = 'Main' and b.LocalName = 'WMacros');
-  if (not isnull (_topic_id)) {
+  if (not isnull (_topic_id))
+  {
   DB.DBA.DAV_RES_CONTENT_INT (DAV_SEARCH_ID ('/DAV/VAD/wiki/Main/Attachments/WikiMacroSources.sql', 'R'), _content, _type, 0, 0);
   WV.WIKI.ATTACH2 (http_dav_uid(), 'WikiMacroSources.sql', _type, _topic_id, _content, '');
 }
@@ -75,8 +76,24 @@ create procedure WV.WIKI.temp ()
   registry_set ('wiki_services_update', '1');
 }
 ;
-
 WV.WIKI.temp ();
 
+create procedure WV.WIKI.temp ()
+{
+  if (registry_get ('wiki_acl_update') = '1')
+    return;
+
+  for (select ClusterId as _ClusterId, ClusterName as _ClusterName, ColId as _ColId from WV.WIKI.CLUSTERS) do
+  {
+    for (select TopicId as _TopicId, ResId as _ResId from WV.WIKI.TOPIC where ClusterId = _ClusterId) do
+    {
+      WV.WIKI.UPDATEGRANTS_FOR_RES_OR_COL (_ClusterName, _ResId, 'R', 0);
+    }
+    WV.WIKI.UPDATEGRANTS_FOR_RES_OR_COL (_ClusterName, _ColId, 'C', 0);
+  }
+  registry_set ('wiki_acl_update', '1');
+}
+;
+WV.WIKI.temp ();
 
 drop procedure WV.WIKI.temp;
diff --git a/appsrc/ODS-Wiki/proc_on.sql b/appsrc/ODS-Wiki/proc_on.sql
index d15eef1..e56d100 100644
--- a/appsrc/ODS-Wiki/proc_on.sql
+++ b/appsrc/ODS-Wiki/proc_on.sql
@@ -1,10 +1,10 @@
 --
---  $Id: proc_on.sql,v 1.44.2.15 2011/05/20 12:02:09 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -1065,7 +1065,8 @@ wiki_exec_no_error ('drop trigger WS.WS.Wiki_AttachmentDelete')
 -- new triggers
 wiki_exec_no_error ('drop trigger WS.WS.WIKI_SYS_DAV_RES_AI')
 ;
-create trigger "WIKI_SYS_DAV_RES_AI" after insert on WS.WS.SYS_DAV_RES order 1 referencing new as N
+
+create trigger "WIKI_SYS_DAV_RES_AI" after insert on WS.WS.SYS_DAV_RES order 10 referencing new as N
 {
   declare _id any;
   declare _cluster_name varchar;
@@ -1108,9 +1109,9 @@ create trigger "WIKI_SYS_DAV_RES_AI" after insert on WS.WS.SYS_DAV_RES order 1 r
       }
 
       -- Topic Update Permissions
-  SET TRIGGERS OFF;
-  WV.WIKI.UPDATEGRANTS_FOR_RES_OR_COL ( _cluster_name, N.RES_ID, 'R');
-  SET TRIGGERS ON;
+      -- SET TRIGGERS OFF;
+      -- WV.WIKI.UPDATEGRANTS_FOR_RES_OR_COL ( _cluster_name, N.RES_ID, 'R');
+      -- SET TRIGGERS ON;
 
       -- Topic Sparql
       if (N.RES_TYPE = 'application/sparql-query')
@@ -1136,12 +1137,29 @@ create trigger "WIKI_SYS_DAV_RES_AI" after insert on WS.WS.SYS_DAV_RES order 1 r
 }
 ;
 
+wiki_exec_no_error ('drop trigger WS.WS.WIKI_SYS_DAV_RES_BU')
+;
+
+create trigger "WIKI_SYS_DAV_RES_BU" before update on WS.WS.SYS_DAV_RES order 1 referencing old as O, new as N
+{
+  declare exit handler for sqlstate '*'
+  {
+    --dbg_obj_princ (__SQL_STATE, __SQL_MESSAGE);
+    resignal;
+  };
+  if (O.RES_NAME like '%.txt' and O.RES_CONTENT is not null)
+    connection_set ('DAV_RES_CONTENT_MD5', md5 (cast (O.RES_CONTENT as varchar)));
+}
+;
+
+
 wiki_exec_no_error ('drop trigger WS.WS.WIKI_SYS_DAV_RES_AU')
 ;
-create trigger "WIKI_SYS_DAV_RES_AU" after update on WS.WS.SYS_DAV_RES order 1 referencing old as O, new as N
+
+create trigger "WIKI_SYS_DAV_RES_AU" after update on WS.WS.SYS_DAV_RES order 10 referencing old as O, new as N
 {
   declare _id integer;
-  declare _cluster_name, _local_name varchar;
+  declare _o_res_content_md5, _cluster_name, _local_name varchar;
   declare _topic WV.WIKI.TOPICINFO;
   declare exit handler for sqlstate '*'
   {
@@ -1157,7 +1175,8 @@ create trigger "WIKI_SYS_DAV_RES_AU" after update on WS.WS.SYS_DAV_RES order 1 r
     _cluster_name := (select ClusterName from WV.WIKI.CLUSTERS where ColId = N.RES_COL);
     if (not isnull (_cluster_name))
 {
-      if (O.RES_CONTENT <> N.RES_CONTENT)
+      _o_res_content_md5 := connection_get ('DAV_RES_CONTENT_MD5');
+      if (_o_res_content_md5 <> md5 (cast (N.RES_CONTENT as varchar)))
     {
       _topic := WV.WIKI.TOPICINFO();
         _topic.ti_cluster_name := _cluster_name;
@@ -1184,9 +1203,9 @@ create trigger "WIKI_SYS_DAV_RES_AU" after update on WS.WS.SYS_DAV_RES order 1 r
 }
 
       -- Topic Update Permissions
-  SET TRIGGERS OFF;
-  WV.WIKI.UPDATEGRANTS_FOR_RES_OR_COL ( _cluster_name, N.RES_ID, 'R');
-  SET TRIGGERS ON;
+      -- SET TRIGGERS OFF;
+      -- WV.WIKI.UPDATEGRANTS_FOR_RES_OR_COL ( _cluster_name, N.RES_ID, 'R');
+      -- SET TRIGGERS ON;
 
       -- Topic Sparql
       if (N.RES_TYPE = 'application/sparql-query')
@@ -1770,97 +1789,102 @@ create procedure WV.WIKI.CREATEROLES (in _cname varchar)
 }
 ;
 
-create procedure WV.WIKI.UPDATEACL (in _article varchar, in _gid integer, in _bitmask integer, in _auth_name varchar, in _auth_pwd varchar)
+create procedure WV.WIKI.UPDATEACL (
+  in _path varchar,
+  in _type varchar,
+  in _gid integer,
+  in _bitmask integer,
+  in _auth_name varchar,
+  in _auth_pwd varchar)
 {
-  --dbg_obj_princ ('UPDATEACL: ', _article, ' ', _gid, ' ', '_bitmask', ' ');
   declare _acl any;
-  _acl := DB.DBA.DAV_PROP_GET(_article, ':virtacl', _auth_name, _auth_pwd);
+  declare _res integer;
+  declare _new_acl any;
+
+  _acl := DB.DBA.DAV_PROP_GET_INT (DB.DBA.DAV_SEARCH_ID (_path, _type), _type, ':virtacl', 0);
   if (not isinteger (_acl))
     {
-      declare _res integer;
-      declare _new_acl, _old_acl any;
       _acl := cast (_acl as varbinary);
-      _old_acl := _acl;
-      _new_acl := WS.WS.ACL_ADD_ENTRY(_old_acl, _gid, _bitmask, 1);
-      --dbg_obj_print (ws.ws.ACL_PARSE(_acl), ws.ws.acl_parse(_new_acl));
+    _new_acl := _acl;
+    WS.WS.ACL_REMOVE_ENTRY(_new_acl, _gid, _bitmask, 0);
+    if (_type = 'C')
+      WS.WS.ACL_ADD_ENTRY(_new_acl, _gid, _bitmask, 1, 1);
       if (1 or _acl <> _new_acl)
         {
-	  _acl := _new_acl;
-	  --dbg_obj_princ (_article, _gid, _auth_name, _auth_pwd, _acl);
-      	  _res := DB.DBA.DAV_PROP_SET_INT(_article, ':virtacl',  _acl, null, null, 0, 0, 0, http_dav_uid ());
+      _res := DB.DBA.DAV_PROP_SET_INT (_path, ':virtacl', _new_acl, null, null, 0, 0, 0, http_dav_uid ());
       	  if (_res < 0)
-        	signal ('WIKI00', sprintf ('Can not update ACL: %d %d',_res,coalesce ((select top 1 RES_OWNER from WS.WS.SYS_DAV_RES where RES_ID = (select RES_ID from WS.WS.SYS_DAV_RES where RES_FULL_PATH = _article)), 0))); 
+        signal ('WIKI00', sprintf ('Can not update ACL: %d %d', _res, coalesce ((select top 1 RES_OWNER from WS.WS.SYS_DAV_RES where RES_ID = (select RES_ID from WS.WS.SYS_DAV_RES where RES_FULL_PATH = _path)), 0)));
 	}
     }
-  else
-    signal ('WIKI01', ':virtacl property retrieval failed: ' || DAV_PERROR (_acl));
 }
 ;
 
-create procedure WV.WIKI.UPDATEGRANTS (in _cname varchar, in signalerror int:=0)
+create procedure WV.WIKI.UPDATEGRANTS (
+  in _cname varchar,
+  in _signal integer := 0)
 {
   declare _readers, _writers integer;
-  _readers := ( select U_ID from DB.DBA.SYS_USERS where U_NAME = _cname || 'Readers'
-  			and U_IS_ROLE = 1 );
-  _writers := ( select U_ID from DB.DBA.SYS_USERS where U_NAME = _cname || 'Writers'
-  			and U_IS_ROLE = 1 );
+
+  _readers := (select U_ID from DB.DBA.SYS_USERS where U_NAME = _cname || 'Readers' and U_IS_ROLE = 1);
+  _writers := (select U_ID from DB.DBA.SYS_USERS where U_NAME = _cname || 'Writers' and U_IS_ROLE = 1);
   if ( (_readers is null) or (_writers is null) )
     {
-      if (signalerror)
+    if (_signal)
     signal ('WK002', 'No readers or writers group for ' || _cname);
-      else
+
 	 return;
     }
-  for select DAV_HIDE_ERROR (DB.DBA.DAV_SEARCH_PATH (ResId, 'R')) as _path
-    from WV.WIKI.TOPIC natural inner join WV.WIKI.CLUSTERS
-    where clustername = _cname
-  do {
+  for (select DAV_HIDE_ERROR (DB.DBA.DAV_SEARCH_PATH (ResId, 'R')) as _path
+         from WV.WIKI.TOPIC natural
+                inner join WV.WIKI.CLUSTERS
+        where clustername = _cname) do
+  {
     if (_path is not null) 
       {
     declare _owner, _pwd varchar;
+
         _owner := WV.WIKI.CLUSTERPARAM (_cname, 'creator', 'dav');
-    select U_NAME, pwd_magic_calc (U_NAME, U_PASSWORD, 1) into _owner, _pwd
-            from DB.DBA.SYS_USERS 
-	    where U_NAME = _owner;
+      select U_NAME, pwd_magic_calc (U_NAME, U_PASSWORD, 1) into _owner, _pwd from DB.DBA.SYS_USERS where U_NAME = _owner;
 
-    WV.WIKI.UPDATEACL (_path, _writers, 6, _owner, _pwd);
-    WV.WIKI.UPDATEACL (_path, _readers, 4, _owner, _pwd);
+      WV.WIKI.UPDATEACL (_path, 'R', _writers, 6, _owner, _pwd);
+      WV.WIKI.UPDATEACL (_path, 'R', _readers, 4, _owner, _pwd);
   }
   }
 }
 ;
 
-create procedure WV.WIKI.UPDATEGRANTS_FOR_RES_OR_COL (in _cname varchar, in _res_id integer, in _type varchar(1):='R')
+create procedure WV.WIKI.UPDATEGRANTS_FOR_RES_OR_COL (
+  in _cname varchar,
+  in _id integer,
+  in _type varchar(1) := 'R',
+  in _signal integer := 1)
 {
   declare _readers, _writers integer;
   declare _path varchar;
   declare _owner, _pwd varchar;
   
-  _readers := ( select U_ID from DB.DBA.SYS_USERS where U_NAME = _cname || 'Readers'
-  			and U_IS_ROLE = 1 );
-  _writers := ( select U_ID from DB.DBA.SYS_USERS where U_NAME = _cname || 'Writers'
-  			and U_IS_ROLE = 1 );
+  _readers := ( select U_ID from DB.DBA.SYS_USERS where U_NAME = _cname || 'Readers' and U_IS_ROLE = 1 );
+  _writers := ( select U_ID from DB.DBA.SYS_USERS where U_NAME = _cname || 'Writers' and U_IS_ROLE = 1 );
   if ( (_readers is null) or (_writers is null) )
+  {
+    if (_signal)
     signal ('XXXXX', 'No readers or writers group for ' || _cname);
-  _path := DB.DBA.DAV_SEARCH_PATH (_res_id, _type);
-  --dbg_obj_princ (':::' , _path);
-  if (not isinteger (_path))
+    return;
+  }
+
+  _path := DB.DBA.DAV_SEARCH_PATH (_id, _type);
+  if (isinteger (_path))
     {
-      _owner := WV.WIKI.CLUSTERPARAM (_cname, 'creator', 'dav');
-      select U_NAME, pwd_magic_calc (U_NAME, U_PASSWORD, 1) into _owner, _pwd
-        from DB.DBA.SYS_USERS 
-	where U_NAME = _owner;
-
-
---      declare _cluster_id integer;
---      _cluster_id := (select ClusterId from WV.WIKI.CLUSTERS where ClusterName = _cname);
---     update WS.WS.SYS_DAV_COL set COL_PERMS = WV.WIKI.GETDEFAULTPERMS (_cluster_id)
---      	where COL_ID = _res_id;
-      WV.WIKI.UPDATEACL (_path, _writers, 6, _owner, _pwd);
-      WV.WIKI.UPDATEACL (_path, _readers, 4, _owner, _pwd);
-    }
-  else
-    signal ('XXXX', 'path is unknown');
+    if (_signal)
+      signal ('XXXXX', 'path is unknown');
+    return;
+  }
+
+  _owner := WV.WIKI.CLUSTERPARAM (_cname, 'creator', 'dav');
+  select U_NAME, pwd_magic_calc (U_NAME, U_PASSWORD, 1) into _owner, _pwd from DB.DBA.SYS_USERS where U_NAME = _owner;
+
+  WV.WIKI.UPDATEACL (_path, _type, _writers, 6, _owner, _pwd);
+  WV.WIKI.UPDATEACL (_path, _type, _readers, 4, _owner, _pwd);
 }
 ;
   
@@ -1868,14 +1892,14 @@ create procedure WV.WIKI.UPDATEGRANTS_FOR_RES_OR_COL (in _cname varchar, in _res
 -- create all parent collections
 create procedure WV.WIKI.ENSURE_DIR_REC (in _paths any, in _last_index integer)
 {
-  --dbg_obj_princ ('WV.WIKI.ENSURE_DIR_REC ', _paths, _last_index);
   if (_last_index <= 2) -- /DAV
     return 1;
+
   declare _col_id integer;
   declare _full_path varchar;
+
   _full_path := WV.WIKI.STRJOIN ('/', subseq (_paths, 0, _last_index)) || '/';
   _col_id := DAV_SEARCH_ID (_full_path, 'C');
-  --dbg_obj_princ ('col_id: ', _col_id, _full_path);
   if (DAV_HIDE_ERROR(_col_id) is null)
     {
       if (WV.WIKI.ENSURE_DIR_REC (_paths, _last_index - 1) < 0)
@@ -1886,8 +1910,6 @@ create procedure WV.WIKI.ENSURE_DIR_REC (in _paths any, in _last_index integer)
 }
 ;
       
-  
-
 create procedure WV.WIKI.DAV_HOME_CREATE(in user_name varchar) returns varchar
 {
   declare user_id varchar;
@@ -1936,9 +1958,7 @@ error:
 
 create procedure WV.WIKI.CREATECLUSTER (in _cname varchar, in _src_col integer, in _owner integer, in _group integer, in signal_err int:=1)
 {
-  --dbg_obj_print ('1');
   declare exit handler for sqlstate '42WV9' {
-  --dbg_obj_print ('1err');
 	if (signal_err = 1)
 	   resignal;
 	return;
@@ -1950,33 +1970,27 @@ create procedure WV.WIKI.CREATECLUSTER (in _cname varchar, in _src_col integer,
 -- Preparing user name
   _uname := coalesce ((select U_NAME from DB.DBA.SYS_USERS where U_ID = _owner and U_IS_ROLE = 0), NULL);
   if (_uname is null)
-    WV.WIKI.APPSIGNAL (11001, 'User ID "&UId;" is invalid; can not create cluster "&ClusterName;"',
-      vector ('UId', _owner, 'ClusterName', _cname) );
-  --dbg_obj_print ('2');
+    WV.WIKI.APPSIGNAL (11001, 'User ID "&UId;" is invalid; can not create cluster "&ClusterName;"', vector ('UId', _owner, 'ClusterName', _cname) );
 
   if (exists (select 1 from DB.DBA.SYS_USERS where U_ID = _owner and U_ACCOUNT_DISABLED <> 0))
-    WV.WIKI.APPSIGNAL (11001, 'Account "&UName;" is disabled; can not create cluster "&ClusterName;"',
-      vector ('UName', _uname, 'ClusterName', _cname) );
-  --dbg_obj_print ('4');
+    WV.WIKI.APPSIGNAL (11001, 'Account "&UName;" is disabled; can not create cluster "&ClusterName;"', vector ('UName', _uname, 'ClusterName', _cname) );
 
   if (exists (select 1 from DB.DBA.SYS_USERS where U_ID = _owner and U_DAV_ENABLE = 0))
-    WV.WIKI.APPSIGNAL (11001, 'Account "&UName;" has no right to use DAV; can not create cluster "&ClusterName;"',
-      vector ('UName', _uname, 'ClusterName', _cname) );	
+    WV.WIKI.APPSIGNAL (11001, 'Account "&UName;" has no right to use DAV; can not create cluster "&ClusterName;"', vector ('UName', _uname, 'ClusterName', _cname) );
+
   _wikiuname := coalesce ((select UserName from WV.WIKI.USERS where UserId = _owner), NULL);
   if (_wikiuname is null)
-    WV.WIKI.APPSIGNAL (11001, 'User "&UserName;" is not a registered Wiki user; can not create cluster "&ClusterName;"',
-      vector ('UserName', _uname, 'ClusterName', _cname) );
+    WV.WIKI.APPSIGNAL (11001, 'User "&UserName;" is not a registered Wiki user; can not create cluster "&ClusterName;"', vector ('UserName', _uname, 'ClusterName', _cname) );
+
 -- Preparing group name
   _gname := coalesce ((select U_NAME from DB.DBA.SYS_USERS where U_ID = _group and U_IS_ROLE = 1), NULL);
   if (_gname is null)
-    WV.WIKI.APPSIGNAL (11001, 'Group ID "&GId;" is invalid; can not create cluster "&ClusterName;"',
-      vector ('GId', _group, 'ClusterName', _cname) );
-  --dbg_obj_print ('5');
+    WV.WIKI.APPSIGNAL (11001, 'Group ID "&GId;" is invalid; can not create cluster "&ClusterName;"', vector ('GId', _group, 'ClusterName', _cname) );
 
   _wikigname := coalesce ((select GroupName from WV.WIKI.GROUPS where GroupId = _group), NULL);
   if (_wikigname is null)
-    WV.WIKI.APPSIGNAL (11001, 'Group "&UserName;" is not a valid Wiki group; can not create cluster "&ClusterName;"',
-      vector ('GName', _gname, 'ClusterName', _cname) );
+    WV.WIKI.APPSIGNAL (11001, 'Group "&UserName;" is not a valid Wiki group; can not create cluster "&ClusterName;"', vector ('GName', _gname, 'ClusterName', _cname) );
+
 -- Preparing parent for internal files
   _home := (select U_HOME from DB.DBA.SYS_USERS where U_ID = _owner and U_IS_ROLE = 0);
   if (_home is not null)
@@ -1992,11 +2006,8 @@ create procedure WV.WIKI.CREATECLUSTER (in _cname varchar, in _src_col integer,
 -- Check if a cluster is already registered.
   if (exists (select * from WV.WIKI.CLUSTERS where ClusterName = _cname))
     {
-  --dbg_obj_print ('7');
-
       if (signal_err = 1)
-	WV.WIKI.APPSIGNAL (11001, 'Cluster "&ClusterName;" already exists',
-				 vector ('ClusterName', _cname) );
+        WV.WIKI.APPSIGNAL (11001, 'Cluster "&ClusterName;" already exists', vector ('ClusterName', _cname) );
       else
 	return;
     }
@@ -2004,27 +2015,23 @@ create procedure WV.WIKI.CREATECLUSTER (in _cname varchar, in _src_col integer,
   if (_src_col <> 0)
     {
       if (DB.DBA.DAV_SEARCH_PATH (_src_col, 'C') < 0)
-	WV.WIKI.APPSIGNAL (11001, 'Invalid DAV collection ID "&ColId;"; can not create cluster "&ClusterName;"',
-	  vector ('ColId', _src_col, 'ClusterName', _cname) );
+        WV.WIKI.APPSIGNAL (11001, 'Invalid DAV collection ID "&ColId;"; can not create cluster "&ClusterName;"', vector ('ColId', _src_col, 'ClusterName', _cname) );
       _main := _src_col;
     }
   else
     {
       _main := WV.WIKI.CREATEDAVCOLLECTION (_parent, _cname, _owner, _group);
     }
-  --dbg_obj_print ('8');
 
   if (__proc_exists('DB.DBA.Versioning_DAV_SEARCH_ID'))
     {
       _histcol := WV.WIKI.CREATEDAVCOLLECTION (_main, 'VVC', _owner, _group);
       DB.DBA.DAV_SET_VERSIONING_CONTROL (DAV_SEARCH_PATH (_main, 'C'), NULL, 'A', 'dav', (select pwd_magic_calc (U_NAME, U_PWD, 1) from WS.WS.SYS_DAV_USER where U_ID = http_dav_uid() ));
     }
-next:
-    --dbg_obj_print ('9');
 
-  -- _xmlcol := WV.WIKI.CREATEDAVCOLLECTION (_main, 'xml', _owner, _group);
-  -- _attachcol := WV.WIKI.CREATEDAVCOLLECTION (_main, 'attach', _owner, _group);
+next:
   declare _cluster_id integer;
+
   _cluster_id := WV.WIKI.NEWCLUSTERID();
   insert into WV.WIKI.CLUSTERS (ClusterId, ClusterName, ColId, ColHistoryId, ColXmlId, ColAttachId, AdminId, C_NEWS_ID)
     values (_cluster_id, _cname, _main, _histcol, _xmlcol, _attachcol, _owner, 'oWiki-' || _cname);
@@ -2044,21 +2051,15 @@ next:
 	NULL,
 	NULL);
     WV.WIKI.GETLOCK (_full_path, 'dav');
-    _res := WV.WIKI.UPLOADPAGE (_col_id, _name, blob_to_string (_content) || ' ',
-       _uname, _cluster_id, 'dav');
---    DB.DBA.DAV_CHECKIN_INT (_full_path, null, null, 0);
+    _res := WV.WIKI.UPLOADPAGE (_col_id, _name, blob_to_string (_content) || ' ', _uname, _cluster_id, 'dav');
     WV.WIKI.RELEASELOCK (_full_path, 'dav');
   }
   WV.WIKI.CREATEROLES (_cname);
-  --dbg_obj_print ('11');
 
-  if ( (_cname <> 'Main') and
-       (_cname <> 'Doc'))
+  if ((_cname <> 'Main') and (_cname <> 'Doc'))
     {
       WV.WIKI.UPDATEGRANTS_FOR_RES_OR_COL (_cname, _main, 'C');
       WV.WIKI.IMPORT(_cname, '/DAV/VAD/wiki/Template/', '/DAV/VAD/wiki/Template/', 'dav');
---      WV.WIKI.CREATEINITIALPAGE ('ClusterSummary.txt', _main, _owner, 'Template');
---      WV.WIKI.CREATEINITIALPAGE ('WelcomeVisitors.txt', _main, _owner, 'Template');
     }
   else
     {
@@ -2070,8 +2071,6 @@ next:
     }
 	  
   WV.WIKI.SETCLUSTERPARAM (_cname, 'creator', _uname);
-  --dbg_obj_print ('12');
-
 }
 ;
 
@@ -2109,15 +2108,16 @@ create procedure WV.WIKI.UPLOADPAGE (
   connection_set ('oWiki_cluster_id', null);
   declare wiki_user varchar;
   declare user_id integer;
+
   user_id := (select U_ID from DB.DBA.SYS_USERS where U_NAME = _user);
   wiki_user := WV.WIKI.USER_WIKI_NAME_2 (user_id);
-  update WV.WIKI.TOPIC set AuthorName = 'Main.' || wiki_user 
-  	, AuthorId = user_id
+  update WV.WIKI.TOPIC
+     set AuthorName = 'Main.' || wiki_user,
+         AuthorId = user_id
      where ResId = _res_id;
      
   if (_res_id < 0)
     WV.WIKI.APPSIGNAL (11001, 'Cannot upload content at &path;', vector ('path', _path));
-   --dbg_obj_princ ('perms=', _perms, ' res= ', _res_id);
   return _res_id;
 }
 ;
@@ -2138,19 +2138,15 @@ create procedure WV.WIKI.CREATEINITIALPAGE (in _page varchar,
     {
       declare _fullpath varchar;
       _fullpath := DB.DBA.DAV_SEARCH_PATH (_main, 'C') || _page;
---      WV.WIKI.GETLOCK (_fullpath, 'dav');
       WV.WIKI.UPLOADPAGE (_main, _page, _content, _owner, 0, 'dav', _overwrite);
---      DB.DBA.DAV_CHECKIN_INT (_fullpath, null, null, 0);
---      WV.WIKI.RELEASELOCK (_fullpath, 'dav');
     }
-fin:
-	;
+fin:;
 }
 ;
 
+
 create procedure WV.WIKI.DELETETOPIC (in _id integer)
 {
-  --dbg_obj_princ ('DELETETOPIC: ', _id);
   delete from WV.WIKI.TOPIC where TopicId = _id;
   if (__proc_exists ('DB.DBA.WA_NEW_WIKI_RM'))
      WA_NEW_WIKI_RM (_id);
diff --git a/appsrc/ODS-Wiki/proc_on_api.sql b/appsrc/ODS-Wiki/proc_on_api.sql
index 96b4afc..dbb9fd1 100644
--- a/appsrc/ODS-Wiki/proc_on_api.sql
+++ b/appsrc/ODS-Wiki/proc_on_api.sql
@@ -1,10 +1,10 @@
 --
---  $Id: proc_on_api.sql,v 1.1.2.6 2011/03/26 14:21:51 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/proc_on_macro.sql b/appsrc/ODS-Wiki/proc_on_macro.sql
index 9344a03..bfcbb8c 100644
--- a/appsrc/ODS-Wiki/proc_on_macro.sql
+++ b/appsrc/ODS-Wiki/proc_on_macro.sql
@@ -1,10 +1,10 @@
 --
---  $Id: proc_on_macro.sql,v 1.22.2.5 2011/01/31 11:17:53 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -914,7 +914,7 @@ create function WV.WIKI.MACRO_COMMUNITYTABS (inout _data varchar, inout _context
 };
 
 create function WV.WIKI.MACRO_BLOGNAV (inout _data varchar, inout _context any, inout _env any) {
-  return '<div style="width: 100%; clear: both; float: none; margin-top:  5em"><hr /></div><div id="blognav" style="width: 100%; padding: 3px;  background: #2CBCEF; color: white; font-family: helvetica; font-size:  10pt; text-align: left; float:none; clear:both">Copyright (C) 1998-2010 [[http://www.openlinksw.com/][OpenLink Software]]</div>';
+  return '<div style="width: 100%; clear: both; float: none; margin-top:  5em"><hr /></div><div id="blognav" style="width: 100%; padding: 3px;  background: #2CBCEF; color: white; font-family: helvetica; font-size:  10pt; text-align: left; float:none; clear:both">Copyright (C) 1998-2012 [[http://www.openlinksw.com/][OpenLink Software]]</div>';
 };
 
 create function WV.WIKI.MACRO_VSREALM (inout _data varchar, inout _context any, inout _env any) {
diff --git a/appsrc/ODS-Wiki/proc_on_vsp.sql b/appsrc/ODS-Wiki/proc_on_vsp.sql
index daa7a6d..f00f768 100644
--- a/appsrc/ODS-Wiki/proc_on_vsp.sql
+++ b/appsrc/ODS-Wiki/proc_on_vsp.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: proc_on_vsp.sql,v 1.44.2.12 2011/08/01 14:12:53 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/proc_tmp.sql b/appsrc/ODS-Wiki/proc_tmp.sql
index 6fc975c..d1f16cf 100644
--- a/appsrc/ODS-Wiki/proc_tmp.sql
+++ b/appsrc/ODS-Wiki/proc_tmp.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: proc_tmp.sql,v 1.6.2.1 2010/09/20 10:15:47 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/retry.sh b/appsrc/ODS-Wiki/retry.sh
index 26c89f1..749272b 100755
--- a/appsrc/ODS-Wiki/retry.sh
+++ b/appsrc/ODS-Wiki/retry.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: retry.sh,v 1.2.2.1 2010/09/20 10:15:47 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/schema_on.sql b/appsrc/ODS-Wiki/schema_on.sql
index 3303402..1204df6 100644
--- a/appsrc/ODS-Wiki/schema_on.sql
+++ b/appsrc/ODS-Wiki/schema_on.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: schema_on.sql,v 1.16.2.2 2011/01/31 11:17:53 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/semantics.sql b/appsrc/ODS-Wiki/semantics.sql
index 02a33ff..4f671b0 100644
--- a/appsrc/ODS-Wiki/semantics.sql
+++ b/appsrc/ODS-Wiki/semantics.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: semantics.sql,v 1.3.2.1 2010/09/20 10:15:47 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/setup.isql b/appsrc/ODS-Wiki/setup.isql
index c76a689..9e5071e 100644
--- a/appsrc/ODS-Wiki/setup.isql
+++ b/appsrc/ODS-Wiki/setup.isql
@@ -1,10 +1,10 @@
 --  
---  $Id: setup.isql,v 1.2.2.1 2010/09/20 10:15:47 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/setup_vad.sql b/appsrc/ODS-Wiki/setup_vad.sql
index a01e19d..3f5291d 100644
--- a/appsrc/ODS-Wiki/setup_vad.sql
+++ b/appsrc/ODS-Wiki/setup_vad.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: setup_vad.sql,v 1.7.2.3 2011/05/20 12:02:10 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/sioc.sql b/appsrc/ODS-Wiki/sioc.sql
index f53348f..75d318e 100644
--- a/appsrc/ODS-Wiki/sioc.sql
+++ b/appsrc/ODS-Wiki/sioc.sql
@@ -1,10 +1,10 @@
 --
---  $Id: sioc.sql,v 1.14.2.4 2011/05/18 21:17:43 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -148,7 +148,7 @@ create procedure fill_ods_wiki_sioc (in graph_iri varchar, in site_iri varchar,
           order by WAI_ID) do
     {
       w_iri := wiki_iri (WAI_NAME);
-      iri := sprintf ('http://%s/dataspace/%s/wiki/%s/atom-pub/', get_cname(), U_NAME, WAI_NAME);
+      iri := sprintf ('http://%s/dataspace/doc/%s/wiki/%s/atom-pub/', get_cname(), U_NAME, WAI_NAME);
       ods_sioc_service (graph_iri, iri, w_iri, null, null, null, iri, 'Atom');
       cnt := cnt + 1;
       if (mod (cnt, 500) = 0)
diff --git a/appsrc/ODS-Wiki/upstream.sql b/appsrc/ODS-Wiki/upstream.sql
index 618f98a..d8126f3 100644
--- a/appsrc/ODS-Wiki/upstream.sql
+++ b/appsrc/ODS-Wiki/upstream.sql
@@ -1,14 +1,14 @@
 --
 --  upstream.sql
 --
---  $Id: upstream.sql,v 1.9.2.8 2011/01/31 11:17:53 source Exp $
+--  $Id$
 --
 --  Atom publishing protocol support.
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/vad_version b/appsrc/ODS-Wiki/vad_version
index dcdf900..d03b9b9 100644
--- a/appsrc/ODS-Wiki/vad_version
+++ b/appsrc/ODS-Wiki/vad_version
@@ -1 +1 @@
-1.05.4531
+1.05.4550
diff --git a/appsrc/ODS-Wiki/version.base b/appsrc/ODS-Wiki/version.base
deleted file mode 100644
index b9e5dd7..0000000
--- a/appsrc/ODS-Wiki/version.base
+++ /dev/null
@@ -1 +0,0 @@
-540
diff --git a/appsrc/ODS-Wiki/version.curr b/appsrc/ODS-Wiki/version.curr
deleted file mode 100644
index 2850d73..0000000
--- a/appsrc/ODS-Wiki/version.curr
+++ /dev/null
@@ -1 +0,0 @@
-4531
diff --git a/appsrc/ODS-Wiki/wa_integration.sql b/appsrc/ODS-Wiki/wa_integration.sql
index 97a69b6..cdebd33 100644
--- a/appsrc/ODS-Wiki/wa_integration.sql
+++ b/appsrc/ODS-Wiki/wa_integration.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: wa_integration.sql,v 1.26.2.2 2010/09/20 10:15:48 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -278,7 +278,7 @@ create method wa_new_inst (in login varchar) for wa_wikiv {
   --  SIOC service
   declare  graph_iri, iri, w_iri varchar;
   graph_iri := SIOC..get_graph ();
-  iri := sprintf ('http://%s/dataspace/%s/wiki/%s/atom-pub/', SIOC..get_cname(), login, inst_name);
+  iri := sprintf ('http://%s/dataspace/doc/%s/wiki/%s/atom-pub/', SIOC..get_cname(), login, inst_name);
   w_iri := SIOC..wiki_iri (inst_name);
   SIOC..ods_sioc_service (graph_iri, iri, w_iri, null, null, null, iri, 'Atom');
 
diff --git a/appsrc/ODS-Wiki/wa_search_wiki.sql b/appsrc/ODS-Wiki/wa_search_wiki.sql
index 7456cef..29db399 100644
--- a/appsrc/ODS-Wiki/wa_search_wiki.sql
+++ b/appsrc/ODS-Wiki/wa_search_wiki.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: wa_search_wiki.sql,v 1.4.2.1 2010/09/20 10:15:48 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/appsrc/ODS-Wiki/webmail.sql b/appsrc/ODS-Wiki/webmail.sql
index 0b7fd24..32d29fb 100644
--- a/appsrc/ODS-Wiki/webmail.sql
+++ b/appsrc/ODS-Wiki/webmail.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: webmail.sql,v 1.5.2.1 2010/09/20 10:15:48 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/autogen.sh b/autogen.sh
index 4512168..46f83df 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -8,7 +8,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2008 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
diff --git a/bin/generate b/bin/generate
index 805b493..b3a74d8 100755
--- a/bin/generate
+++ b/bin/generate
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: generate,v 1.3 2008/09/17 08:35:51 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
diff --git a/bin/makever b/bin/makever
index 920d799..ece4326 100755
--- a/bin/makever
+++ b/bin/makever
@@ -5,7 +5,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -93,7 +93,7 @@ then
 	OpenLink Version Information
 	Version $PRODUCT_VERSION as of $DATE.
 	Compiled for $UNAME_SYSTEM $UNAME_RELEASE
-	Copyright (C) OpenLink Software.
+	Copyright (C) 1998-2012 OpenLink Software.
 
 	Usage: makever [OPTIONS]
 
@@ -118,7 +118,7 @@ cat >$OUTPUT_FILE <<-EOF_VERSION
 	$PRODUCT_NAME\\n\\
 	Version $PRODUCT_VERSION as of $DATE.\\n\\
 	Compiled for $UNAME_SYSTEM $UNAME_RELEASE\\n\\
-	Copyright (C) OpenLink Software.\\n";
+	Copyright (C) 1998-2012 OpenLink Software.\\n";
 EOF_VERSION
 
 exit 0
diff --git a/binsrc/Makefile.am b/binsrc/Makefile.am
index 275c481..aa0a2eb 100644
--- a/binsrc/Makefile.am
+++ b/binsrc/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 #  
 #  
 
-SUBDIRS = dav mono virtuoso tests rdf_mappers driver maildrop sqldoc hosting bpel b3s tutorial yacutia samples vsp ws sync vspx vad cached_resources virtodbc virtoledb virtuoso_sink xddl VirtuosoClient.Net oat isparql jena sesame sesame2 sesame3 redland hibernate
+SUBDIRS = dav mono virtuoso tests rdf_mappers driver maildrop sqldoc hosting bpel b3s tutorial yacutia samples vsp ws sync vspx vad cached_resources virtodbc virtoledb virtuoso_sink xddl VirtuosoClient.Net oat isparql jena sesame sesame2 sesame3 redland hibernate dbpedia rdb2rdf
 
 
 # ----------------------------------------------------------------------
diff --git a/binsrc/Makefile.in b/binsrc/Makefile.in
index 98c4828..cac9a6f 100644
--- a/binsrc/Makefile.in
+++ b/binsrc/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -37,9 +36,8 @@
 #  
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -69,7 +67,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -81,38 +78,10 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	ps-recursive uninstall-recursive
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-	distdir
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-am__relativize = \
-  dir0=`pwd`; \
-  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
-  sed_rest='s,^[^/]*/*,,'; \
-  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
-  sed_butlast='s,/*[^/]*$$,,'; \
-  while test -n "$$dir1"; do \
-    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
-    if test "$$first" != "."; then \
-      if test "$$first" = ".."; then \
-        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
-        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
-      else \
-        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
-        if test "$$first2" = "$$first"; then \
-          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
-        else \
-          dir2="../$$dir2"; \
-        fi; \
-        dir0="$$dir0"/"$$first"; \
-      fi; \
-    fi; \
-    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
-  done; \
-  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
 AM_LDFLAGS = @AM_LDFLAGS@
@@ -200,7 +169,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -284,7 +252,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -305,11 +272,10 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
-SUBDIRS = dav mono virtuoso tests rdf_mappers driver maildrop sqldoc hosting bpel b3s tutorial yacutia samples vsp ws sync vspx vad cached_resources virtodbc virtoledb virtuoso_sink xddl VirtuosoClient.Net oat isparql jena sesame sesame2 sesame3 redland hibernate
+SUBDIRS = dav mono virtuoso tests rdf_mappers driver maildrop sqldoc hosting bpel b3s tutorial yacutia samples vsp ws sync vspx vad cached_resources virtodbc virtoledb virtuoso_sink xddl VirtuosoClient.Net oat isparql jena sesame sesame2 sesame3 redland hibernate dbpedia rdb2rdf
 
 # ----------------------------------------------------------------------
 #
@@ -324,14 +290,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu binsrc/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu binsrc/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  binsrc/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  binsrc/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -349,7 +315,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -364,7 +329,7 @@ clean-libtool:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
+	@failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -381,7 +346,7 @@ $(RECURSIVE_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done; \
 	if test "$$dot_seen" = "no"; then \
@@ -389,7 +354,7 @@ $(RECURSIVE_TARGETS):
 	fi; test -z "$$fail"
 
 $(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
+	@failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -415,16 +380,16 @@ $(RECURSIVE_CLEAN_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 	done
 ctags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 	done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -432,14 +397,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	set x; \
+	tags=; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
 	  include_option=--etags-include; \
@@ -451,43 +416,39 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test ! -f $$subdir/TAGS || \
-	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
 	fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
+	     $$tags $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -508,44 +469,29 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d "$(distdir)/$$subdir" \
 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
 	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
-	    $(am__relativize); \
-	    new_distdir=$$reldir; \
-	    dir1=$$subdir; dir2="$(top_distdir)"; \
-	    $(am__relativize); \
-	    new_top_distdir=$$reldir; \
-	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
-	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
-	    ($(am__cd) $$subdir && \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
 	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$new_top_distdir" \
-	        distdir="$$new_distdir" \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
 		am__remove_distdir=: \
 		am__skip_length_check=: \
-		am__skip_mode_fix=: \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
@@ -575,7 +521,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -594,8 +539,6 @@ dvi-am:
 
 html: html-recursive
 
-html-am:
-
 info: info-recursive
 
 info-am:
@@ -604,28 +547,18 @@ install-data-am:
 
 install-dvi: install-dvi-recursive
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-recursive
 
-install-html-am:
-
 install-info: install-info-recursive
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-recursive
 
-install-pdf-am:
-
 install-ps: install-ps-recursive
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -646,8 +579,8 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+	install-strip
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am check check-am clean clean-generic clean-libtool \
@@ -663,7 +596,6 @@ uninstall-am:
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
 	uninstall uninstall-am
 
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/binsrc/VirtuosoClient.Net/ArrayOfLongPacked.cs b/binsrc/VirtuosoClient.Net/ArrayOfLongPacked.cs
index d1335cb..2097b68 100644
--- a/binsrc/VirtuosoClient.Net/ArrayOfLongPacked.cs
+++ b/binsrc/VirtuosoClient.Net/ArrayOfLongPacked.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: ArrayOfLongPacked.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/AssemblyInfo.cs b/binsrc/VirtuosoClient.Net/AssemblyInfo.cs
index 57489bc..44a16f0 100644
--- a/binsrc/VirtuosoClient.Net/AssemblyInfo.cs
+++ b/binsrc/VirtuosoClient.Net/AssemblyInfo.cs
@@ -1,5 +1,5 @@
 // 
-// $Id: AssemblyInfo.cs,v 1.3 2007/05/29 12:13:12 source Exp $
+// $Id$
 //
 
 using System.Reflection;
@@ -25,7 +25,7 @@ using System.Runtime.CompilerServices;
 #endif
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyCompany("OpenLink Software")]
-[assembly: AssemblyCopyright("Copyright (C) OpenLink Software 2007. All rights reserved.")]
+[assembly: AssemblyCopyright("Copyright (C) 1998-2012 OpenLink Software. All rights reserved.")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]		
 
diff --git a/binsrc/VirtuosoClient.Net/BlobHandle.cs b/binsrc/VirtuosoClient.Net/BlobHandle.cs
index 2328d0d..263d0ca 100644
--- a/binsrc/VirtuosoClient.Net/BlobHandle.cs
+++ b/binsrc/VirtuosoClient.Net/BlobHandle.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: BlobHandle.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/BufferType.cs b/binsrc/VirtuosoClient.Net/BufferType.cs
index 9e49898..3b03d18 100644
--- a/binsrc/VirtuosoClient.Net/BufferType.cs
+++ b/binsrc/VirtuosoClient.Net/BufferType.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: BufferType.cs,v 1.3.2.3 2011/10/17 09:48:25 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/CLI.cs b/binsrc/VirtuosoClient.Net/CLI.cs
index 65872e6..4fafae7 100644
--- a/binsrc/VirtuosoClient.Net/CLI.cs
+++ b/binsrc/VirtuosoClient.Net/CLI.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 // 
-// $Id: CLI.cs,v 1.3.2.1 2009/06/15 13:24:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/ConnectionOptions.cs b/binsrc/VirtuosoClient.Net/ConnectionOptions.cs
index d2b5700..f91a659 100644
--- a/binsrc/VirtuosoClient.Net/ConnectionOptions.cs
+++ b/binsrc/VirtuosoClient.Net/ConnectionOptions.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: ConnectionOptions.cs,v 1.3.2.4 2010/12/21 12:29:58 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/ConnectionPool.cs b/binsrc/VirtuosoClient.Net/ConnectionPool.cs
index 8762237..7f51427 100644
--- a/binsrc/VirtuosoClient.Net/ConnectionPool.cs
+++ b/binsrc/VirtuosoClient.Net/ConnectionPool.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: ConnectionPool.cs,v 1.2 2007/02/01 12:11:57 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/ConnectionStringParser.cs b/binsrc/VirtuosoClient.Net/ConnectionStringParser.cs
index 400f4eb..5b2a2b0 100644
--- a/binsrc/VirtuosoClient.Net/ConnectionStringParser.cs
+++ b/binsrc/VirtuosoClient.Net/ConnectionStringParser.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 // 
-// $Id: ConnectionStringParser.cs,v 1.2 2008/12/15 10:10:45 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/DTC.cs b/binsrc/VirtuosoClient.Net/DTC.cs
index 00ee69d..8bed76e 100644
--- a/binsrc/VirtuosoClient.Net/DTC.cs
+++ b/binsrc/VirtuosoClient.Net/DTC.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: DTC.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/DataType.cs b/binsrc/VirtuosoClient.Net/DataType.cs
index 98dc078..958cdf8 100644
--- a/binsrc/VirtuosoClient.Net/DataType.cs
+++ b/binsrc/VirtuosoClient.Net/DataType.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: DataType.cs,v 1.3.2.1 2009/06/15 13:24:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/DateTimeMarshaler.cs b/binsrc/VirtuosoClient.Net/DateTimeMarshaler.cs
index 8c03f5a..968e38e 100644
--- a/binsrc/VirtuosoClient.Net/DateTimeMarshaler.cs
+++ b/binsrc/VirtuosoClient.Net/DateTimeMarshaler.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: DateTimeMarshaler.cs,v 1.3.2.3 2011/10/28 21:41:48 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/Diagnostics.cs b/binsrc/VirtuosoClient.Net/Diagnostics.cs
index c16c0fe..89eb732 100644
--- a/binsrc/VirtuosoClient.Net/Diagnostics.cs
+++ b/binsrc/VirtuosoClient.Net/Diagnostics.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: Diagnostics.cs,v 1.3 2007/05/21 15:45:43 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/ExplicitString.cs b/binsrc/VirtuosoClient.Net/ExplicitString.cs
index 468ab10..04c8abe 100644
--- a/binsrc/VirtuosoClient.Net/ExplicitString.cs
+++ b/binsrc/VirtuosoClient.Net/ExplicitString.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: ExplicitString.cs,v 1.1.1.1.2.2 2010/02/11 16:25:01 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/Future.cs b/binsrc/VirtuosoClient.Net/Future.cs
index 70222ff..a0a403e 100644
--- a/binsrc/VirtuosoClient.Net/Future.cs
+++ b/binsrc/VirtuosoClient.Net/Future.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: Future.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/FutureList.cs b/binsrc/VirtuosoClient.Net/FutureList.cs
index 6fbf2ce..4eef9fa 100644
--- a/binsrc/VirtuosoClient.Net/FutureList.cs
+++ b/binsrc/VirtuosoClient.Net/FutureList.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: FutureList.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/IConvertData.cs b/binsrc/VirtuosoClient.Net/IConvertData.cs
index d92dbde..ed84f12 100644
--- a/binsrc/VirtuosoClient.Net/IConvertData.cs
+++ b/binsrc/VirtuosoClient.Net/IConvertData.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: IConvertData.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/ICreateErrors.cs b/binsrc/VirtuosoClient.Net/ICreateErrors.cs
index edf1b46..7b3edf6 100644
--- a/binsrc/VirtuosoClient.Net/ICreateErrors.cs
+++ b/binsrc/VirtuosoClient.Net/ICreateErrors.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: ICreateErrors.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/IInnerCommand.cs b/binsrc/VirtuosoClient.Net/IInnerCommand.cs
index 5f4a95e..b9cbb0f 100644
--- a/binsrc/VirtuosoClient.Net/IInnerCommand.cs
+++ b/binsrc/VirtuosoClient.Net/IInnerCommand.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: IInnerCommand.cs,v 1.2 2007/02/01 12:11:57 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/IInnerConnection.cs b/binsrc/VirtuosoClient.Net/IInnerConnection.cs
index 01a02ad..c1f57fc 100644
--- a/binsrc/VirtuosoClient.Net/IInnerConnection.cs
+++ b/binsrc/VirtuosoClient.Net/IInnerConnection.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: IInnerConnection.cs,v 1.3.2.2 2010/12/17 17:40:44 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/IMarshal.cs b/binsrc/VirtuosoClient.Net/IMarshal.cs
index f2e92cd..71f18a1 100644
--- a/binsrc/VirtuosoClient.Net/IMarshal.cs
+++ b/binsrc/VirtuosoClient.Net/IMarshal.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: IMarshal.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/ISession.cs b/binsrc/VirtuosoClient.Net/ISession.cs
index 7ffd605..aca6135 100644
--- a/binsrc/VirtuosoClient.Net/ISession.cs
+++ b/binsrc/VirtuosoClient.Net/ISession.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: ISession.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/IVirtuosoError.cs b/binsrc/VirtuosoClient.Net/IVirtuosoError.cs
index 881c3d5..a4261c7 100644
--- a/binsrc/VirtuosoClient.Net/IVirtuosoError.cs
+++ b/binsrc/VirtuosoClient.Net/IVirtuosoError.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: IVirtuosoError.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/InnerConnectionBase.cs b/binsrc/VirtuosoClient.Net/InnerConnectionBase.cs
index 80f2314..7f506f0 100644
--- a/binsrc/VirtuosoClient.Net/InnerConnectionBase.cs
+++ b/binsrc/VirtuosoClient.Net/InnerConnectionBase.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: InnerConnectionBase.cs,v 1.3.2.2 2010/12/17 17:40:44 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/MD5.cs b/binsrc/VirtuosoClient.Net/MD5.cs
index ae1fe8e..e5c84be 100644
--- a/binsrc/VirtuosoClient.Net/MD5.cs
+++ b/binsrc/VirtuosoClient.Net/MD5.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: MD5.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/Makefile.am b/binsrc/VirtuosoClient.Net/Makefile.am
index 3bbcd36..ad2c69a 100644
--- a/binsrc/VirtuosoClient.Net/Makefile.am
+++ b/binsrc/VirtuosoClient.Net/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/VirtuosoClient.Net/Makefile.in b/binsrc/VirtuosoClient.Net/Makefile.in
index abe6297..1eb629d 100644
--- a/binsrc/VirtuosoClient.Net/Makefile.in
+++ b/binsrc/VirtuosoClient.Net/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -37,9 +36,8 @@
 #  
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -69,7 +67,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -160,7 +157,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -244,7 +240,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -265,7 +260,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -292,14 +286,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu binsrc/VirtuosoClient.Net/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu binsrc/VirtuosoClient.Net/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  binsrc/VirtuosoClient.Net/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  binsrc/VirtuosoClient.Net/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -317,7 +311,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -347,17 +340,13 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
@@ -385,7 +374,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -404,8 +392,6 @@ dvi-am:
 
 html: html-am
 
-html-am:
-
 info: info-am
 
 info-am:
@@ -414,28 +400,18 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-am
 
-install-html-am:
-
 install-info: install-info-am
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-am
 
-install-pdf-am:
-
 install-ps: install-ps-am
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -469,7 +445,6 @@ uninstall-am:
 	maintainer-clean-generic mostlyclean mostlyclean-generic \
 	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
 
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/binsrc/VirtuosoClient.Net/Makefile.mono b/binsrc/VirtuosoClient.Net/Makefile.mono
index 89ec514..4569f2e 100644
--- a/binsrc/VirtuosoClient.Net/Makefile.mono
+++ b/binsrc/VirtuosoClient.Net/Makefile.mono
@@ -1,5 +1,5 @@
 #
-# $Id: Makefile.mono,v 1.5.2.1 2011/10/13 18:26:27 source Exp $
+# $Id$
 #
 
 ADONETVERSION=ADONET2
diff --git a/binsrc/VirtuosoClient.Net/ManagedCommand.cs b/binsrc/VirtuosoClient.Net/ManagedCommand.cs
index 545ac65..7e0e74b 100644
--- a/binsrc/VirtuosoClient.Net/ManagedCommand.cs
+++ b/binsrc/VirtuosoClient.Net/ManagedCommand.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: ManagedCommand.cs,v 1.3.2.5 2011/10/13 18:26:27 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/ManagedConnection.cs b/binsrc/VirtuosoClient.Net/ManagedConnection.cs
index 7e7b36a..6d8c1ca 100644
--- a/binsrc/VirtuosoClient.Net/ManagedConnection.cs
+++ b/binsrc/VirtuosoClient.Net/ManagedConnection.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: ManagedConnection.cs,v 1.5.2.3 2010/12/17 17:40:44 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/ManagedErrors.cs b/binsrc/VirtuosoClient.Net/ManagedErrors.cs
index 3238dff..378b8e4 100644
--- a/binsrc/VirtuosoClient.Net/ManagedErrors.cs
+++ b/binsrc/VirtuosoClient.Net/ManagedErrors.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: ManagedErrors.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/Marshaler.cs b/binsrc/VirtuosoClient.Net/Marshaler.cs
index dff9bd2..eef24cd 100644
--- a/binsrc/VirtuosoClient.Net/Marshaler.cs
+++ b/binsrc/VirtuosoClient.Net/Marshaler.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: Marshaler.cs,v 1.5.2.6 2011/10/17 15:51:19 source Exp $
+// $Id$
 //
 
 //#define IGNORE_ENCODING
diff --git a/binsrc/VirtuosoClient.Net/MemoryHandle.cs b/binsrc/VirtuosoClient.Net/MemoryHandle.cs
index 9f71f6b..ee3fd1c 100644
--- a/binsrc/VirtuosoClient.Net/MemoryHandle.cs
+++ b/binsrc/VirtuosoClient.Net/MemoryHandle.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 // 
-// $Id: MemoryHandle.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/OdbcCommand.cs b/binsrc/VirtuosoClient.Net/OdbcCommand.cs
index ed620d6..6357a3e 100644
--- a/binsrc/VirtuosoClient.Net/OdbcCommand.cs
+++ b/binsrc/VirtuosoClient.Net/OdbcCommand.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: OdbcCommand.cs,v 1.2 2007/02/01 12:11:57 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/OdbcConnection.cs b/binsrc/VirtuosoClient.Net/OdbcConnection.cs
index a68550c..8886a16 100644
--- a/binsrc/VirtuosoClient.Net/OdbcConnection.cs
+++ b/binsrc/VirtuosoClient.Net/OdbcConnection.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: OdbcConnection.cs,v 1.3.2.1 2011/10/13 18:26:27 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/OdbcErrors.cs b/binsrc/VirtuosoClient.Net/OdbcErrors.cs
index 170c5e3..78beba4 100644
--- a/binsrc/VirtuosoClient.Net/OdbcErrors.cs
+++ b/binsrc/VirtuosoClient.Net/OdbcErrors.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: OdbcErrors.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/ParameterData.cs b/binsrc/VirtuosoClient.Net/ParameterData.cs
index 120745c..7d3c211 100644
--- a/binsrc/VirtuosoClient.Net/ParameterData.cs
+++ b/binsrc/VirtuosoClient.Net/ParameterData.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: ParameterData.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/Platform.cs b/binsrc/VirtuosoClient.Net/Platform.cs
index 01382f3..d1ae098 100644
--- a/binsrc/VirtuosoClient.Net/Platform.cs
+++ b/binsrc/VirtuosoClient.Net/Platform.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: Platform.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/RPC.cs b/binsrc/VirtuosoClient.Net/RPC.cs
index efb8a4a..70f5879 100644
--- a/binsrc/VirtuosoClient.Net/RPC.cs
+++ b/binsrc/VirtuosoClient.Net/RPC.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: RPC.cs,v 1.5.2.1 2011/02/16 20:44:36 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/Service.cs b/binsrc/VirtuosoClient.Net/Service.cs
index 5dd9106..b8a4051 100644
--- a/binsrc/VirtuosoClient.Net/Service.cs
+++ b/binsrc/VirtuosoClient.Net/Service.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: Service.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/SqlExtendedString.cs b/binsrc/VirtuosoClient.Net/SqlExtendedString.cs
index 0521389..16006ce 100644
--- a/binsrc/VirtuosoClient.Net/SqlExtendedString.cs
+++ b/binsrc/VirtuosoClient.Net/SqlExtendedString.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: SqlExtendedString.cs,v 1.1 2009/02/06 15:37:37 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/SqlRdfBox.cs b/binsrc/VirtuosoClient.Net/SqlRdfBox.cs
index 3d436dc..a5feaeb 100644
--- a/binsrc/VirtuosoClient.Net/SqlRdfBox.cs
+++ b/binsrc/VirtuosoClient.Net/SqlRdfBox.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: SqlRdfBox.cs,v 1.1 2009/02/06 15:37:37 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/SqlXml.cs b/binsrc/VirtuosoClient.Net/SqlXml.cs
index 23f1228..2e9d6fe 100644
--- a/binsrc/VirtuosoClient.Net/SqlXml.cs
+++ b/binsrc/VirtuosoClient.Net/SqlXml.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: SqlXml.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/StatementList.cs b/binsrc/VirtuosoClient.Net/StatementList.cs
index b184e3f..3702ae6 100644
--- a/binsrc/VirtuosoClient.Net/StatementList.cs
+++ b/binsrc/VirtuosoClient.Net/StatementList.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: StatementList.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 #if false
diff --git a/binsrc/VirtuosoClient.Net/TcpConnection.cs b/binsrc/VirtuosoClient.Net/TcpConnection.cs
index 727fc58..7d68a7f 100644
--- a/binsrc/VirtuosoClient.Net/TcpConnection.cs
+++ b/binsrc/VirtuosoClient.Net/TcpConnection.cs
@@ -1,10 +1,10 @@
 //  
-// $Id: TcpConnection.cs,v 1.2.2.4 2011/10/13 18:26:27 source Exp $
+// $Id$
 //
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -21,7 +21,7 @@
 //  
 //  
 //
-// $Id: TcpConnection.cs,v 1.2.2.4 2011/10/13 18:26:27 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/TcpSession.cs b/binsrc/VirtuosoClient.Net/TcpSession.cs
index c061fce..4849420 100644
--- a/binsrc/VirtuosoClient.Net/TcpSession.cs
+++ b/binsrc/VirtuosoClient.Net/TcpSession.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: TcpSession.cs,v 1.2.2.1 2011/10/13 18:26:27 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/Unix.cs b/binsrc/VirtuosoClient.Net/Unix.cs
index f262d77..1434c65 100644
--- a/binsrc/VirtuosoClient.Net/Unix.cs
+++ b/binsrc/VirtuosoClient.Net/Unix.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: Unix.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtDbType.cs b/binsrc/VirtuosoClient.Net/VirtDbType.cs
index 6c6cf04..18aae3c 100644
--- a/binsrc/VirtuosoClient.Net/VirtDbType.cs
+++ b/binsrc/VirtuosoClient.Net/VirtDbType.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: VirtDbType.cs,v 1.1.1.1.2.1 2009/06/15 13:24:12 source Exp $
+// $Id$
 //
 
 #if ODBC_CLIENT
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoClient.NET.vc2005.csproj b/binsrc/VirtuosoClient.Net/VirtuosoClient.NET.vc2005.csproj
index b934564..e4f9a2b 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoClient.NET.vc2005.csproj
+++ b/binsrc/VirtuosoClient.Net/VirtuosoClient.NET.vc2005.csproj
@@ -1,7 +1,8 @@
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
   <PropertyGroup>
     <ProjectType>Local</ProjectType>
-    <ProductVersion>8.0.50727</ProductVersion>
+    <ProductVersion>9.0.21022</ProductVersion>
     <SchemaVersion>2.0</SchemaVersion>
     <ProjectGuid>{50E2DD3F-5B5E-4E62-9206-A41824905CD7}</ProjectGuid>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -25,7 +26,8 @@
     </FileUpgradeFlags>
     <UpgradeBackupLocation>
     </UpgradeBackupLocation>
-    <OldToolsVersion>2.0</OldToolsVersion>
+    <OldToolsVersion>3.5</OldToolsVersion>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <OutputPath>.\</OutputPath>
@@ -51,13 +53,13 @@
     <ErrorReport>prompt</ErrorReport>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <OutputPath>.\</OutputPath>
+    <OutputPath>..\..\win64\Release\</OutputPath>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
     <BaseAddress>285212672</BaseAddress>
     <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
     <ConfigurationOverrideFile>
     </ConfigurationOverrideFile>
-    <DefineConstants>FROMIDE</DefineConstants>
+    <DefineConstants>FROMIDE;ADONET2;ADONET3</DefineConstants>
     <DocumentationFile>
     </DocumentationFile>
     <DebugSymbols>false</DebugSymbols>
@@ -84,7 +86,7 @@
     <ErrorReport>prompt</ErrorReport>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
-    <OutputPath>bin\x64\Release\</OutputPath>
+    <OutputPath>..\..\win64\Release\</OutputPath>
     <DefineConstants>FROMIDE</DefineConstants>
     <BaseAddress>285212672</BaseAddress>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
@@ -106,7 +108,7 @@
     <ErrorReport>prompt</ErrorReport>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
-    <OutputPath>bin\x86\Release\</OutputPath>
+    <OutputPath>..\..\win64\Release\</OutputPath>
     <DefineConstants>FROMIDE</DefineConstants>
     <BaseAddress>285212672</BaseAddress>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
@@ -122,6 +124,9 @@
       <Name>System</Name>
     </Reference>
     <Reference Include="System.configuration" />
+    <Reference Include="System.Core">
+      <RequiredTargetFramework>3.5</RequiredTargetFramework>
+    </Reference>
     <Reference Include="System.Data">
       <Name>System.Data</Name>
     </Reference>
@@ -264,6 +269,8 @@
     <Compile Include="VirtuosoDataReader.cs">
       <SubType>Code</SubType>
     </Compile>
+    <Compile Include="VirtuosoDateTime.cs" />
+    <Compile Include="VirtuosoDateTimeOffset.cs" />
     <Compile Include="VirtuosoError.cs">
       <SubType>Code</SubType>
     </Compile>
@@ -288,6 +295,7 @@
     <Compile Include="VirtuosoPermissionAttribute.cs">
       <SubType>Code</SubType>
     </Compile>
+    <Compile Include="VirtuosoTimeSpan.cs" />
     <Compile Include="VirtuosoTransaction.cs">
       <SubType>Code</SubType>
     </Compile>
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoClientFactory.cs b/binsrc/VirtuosoClient.Net/VirtuosoClientFactory.cs
index d39cbab..8cfa33c 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoClientFactory.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoClientFactory.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: VirtuosoClientFactory.cs,v 1.2.2.1 2011/10/28 21:41:48 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoCodeAccessPermission.cs b/binsrc/VirtuosoClient.Net/VirtuosoCodeAccessPermission.cs
index 497112f..69aa17c 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoCodeAccessPermission.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoCodeAccessPermission.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: VirtuosoCodeAccessPermission.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoCommand.cs b/binsrc/VirtuosoClient.Net/VirtuosoCommand.cs
index 1e9772d..33a164e 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoCommand.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoCommand.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: VirtuosoCommand.cs,v 1.7.2.4 2011/10/17 09:48:25 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoCommandBuilder.cs b/binsrc/VirtuosoClient.Net/VirtuosoCommandBuilder.cs
index f01304d..d0ccf1e 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoCommandBuilder.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoCommandBuilder.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: VirtuosoCommandBuilder.cs,v 1.2 2007/02/01 12:11:57 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoConnection.cs b/binsrc/VirtuosoClient.Net/VirtuosoConnection.cs
index 51d083b..769ec21 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoConnection.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoConnection.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: VirtuosoConnection.cs,v 1.10.2.6 2011/10/14 12:54:20 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoConnectionStringBuilder.cs b/binsrc/VirtuosoClient.Net/VirtuosoConnectionStringBuilder.cs
index 20de9b9..0a4ac95 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoConnectionStringBuilder.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoConnectionStringBuilder.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: VirtuosoConnectionStringBuilder.cs,v 1.3.2.2 2010/12/17 17:40:44 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoDataAdapter.cs b/binsrc/VirtuosoClient.Net/VirtuosoDataAdapter.cs
index e20de4f..f9d9d0e 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoDataAdapter.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoDataAdapter.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 // 
-// $Id: VirtuosoDataAdapter.cs,v 1.4.2.1 2010/12/07 11:31:19 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoDataReader.cs b/binsrc/VirtuosoClient.Net/VirtuosoDataReader.cs
index f8b8df4..a318dba 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoDataReader.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoDataReader.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: VirtuosoDataReader.cs,v 1.7.2.5 2011/10/13 18:26:27 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoDateTime.cs b/binsrc/VirtuosoClient.Net/VirtuosoDateTime.cs
index d8968b8..bdbd8bb 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoDateTime.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoDateTime.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2011 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: VirtuosoDateTime.cs,v 1.1.4.3 2011/10/17 09:48:25 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoDateTimeOffset.cs b/binsrc/VirtuosoClient.Net/VirtuosoDateTimeOffset.cs
index 593e55d..f591880 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoDateTimeOffset.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoDateTimeOffset.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2011 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: VirtuosoDateTimeOffset.cs,v 1.1.4.3 2011/10/17 09:48:25 source Exp $
+// $Id$
 //
 
 #if ADONET3
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoError.cs b/binsrc/VirtuosoClient.Net/VirtuosoError.cs
index 316b6fe..fecb7fc 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoError.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoError.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: VirtuosoError.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoErrorCollection.cs b/binsrc/VirtuosoClient.Net/VirtuosoErrorCollection.cs
index 419fe07..48f42c9 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoErrorCollection.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoErrorCollection.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 // 
-// $Id: VirtuosoErrorCollection.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoException.cs b/binsrc/VirtuosoClient.Net/VirtuosoException.cs
index e8dccf4..190da6e 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoException.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoException.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: VirtuosoException.cs,v 1.2 2007/02/01 12:11:57 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoInfoMessage.cs b/binsrc/VirtuosoClient.Net/VirtuosoInfoMessage.cs
index 677db91..f85f7a2 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoInfoMessage.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoInfoMessage.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: VirtuosoInfoMessage.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoParameter.cs b/binsrc/VirtuosoClient.Net/VirtuosoParameter.cs
index 8874dd2..3dada8d 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoParameter.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoParameter.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 // 
-// $Id: VirtuosoParameter.cs,v 1.3 2008/09/30 16:30:56 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoParameterCollection.cs b/binsrc/VirtuosoClient.Net/VirtuosoParameterCollection.cs
index 236eb22..a7f534e 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoParameterCollection.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoParameterCollection.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 // 
-// $Id: VirtuosoParameterCollection.cs,v 1.3 2008/09/30 16:30:56 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoPermission.cs b/binsrc/VirtuosoClient.Net/VirtuosoPermission.cs
index 460f66a..ba592dd 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoPermission.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoPermission.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: VirtuosoPermission.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoPermissionAttribute.cs b/binsrc/VirtuosoClient.Net/VirtuosoPermissionAttribute.cs
index e624ef3..6804233 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoPermissionAttribute.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoPermissionAttribute.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: VirtuosoPermissionAttribute.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoTimeSpan.cs b/binsrc/VirtuosoClient.Net/VirtuosoTimeSpan.cs
index f906a64..343f106 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoTimeSpan.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoTimeSpan.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2011 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: VirtuosoTimeSpan.cs,v 1.1.4.3 2011/10/17 09:48:25 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoTransaction.cs b/binsrc/VirtuosoClient.Net/VirtuosoTransaction.cs
index f75a694..6e7a51b 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoTransaction.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoTransaction.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: VirtuosoTransaction.cs,v 1.3.2.4 2011/10/14 00:32:32 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/VirtuosoWarning.cs b/binsrc/VirtuosoClient.Net/VirtuosoWarning.cs
index 0ba8b8d..ce2856c 100644
--- a/binsrc/VirtuosoClient.Net/VirtuosoWarning.cs
+++ b/binsrc/VirtuosoClient.Net/VirtuosoWarning.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: VirtuosoWarning.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/Win32.cs b/binsrc/VirtuosoClient.Net/Win32.cs
index c596cf3..c531ee0 100644
--- a/binsrc/VirtuosoClient.Net/Win32.cs
+++ b/binsrc/VirtuosoClient.Net/Win32.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 //
-// $Id: Win32.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/VirtuosoClient.Net/design/AssemblyInfo.cs b/binsrc/VirtuosoClient.Net/design/AssemblyInfo.cs
index 9fbac19..d56a145 100644
--- a/binsrc/VirtuosoClient.Net/design/AssemblyInfo.cs
+++ b/binsrc/VirtuosoClient.Net/design/AssemblyInfo.cs
@@ -1,5 +1,5 @@
 // 
-// $Id: AssemblyInfo.cs,v 1.2 2007/05/29 12:13:12 source Exp $
+// $Id$
 //
 
 using System.Reflection;
@@ -25,7 +25,7 @@ using System.Runtime.CompilerServices;
 #endif
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyCompany("OpenLink Software")]
-[assembly: AssemblyCopyright("Copyright (C) OpenLink Software 2007. All rights reserved.")]
+[assembly: AssemblyCopyright("Copyright (C) 1998-2012 OpenLink Software. All rights reserved.")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]		
 
diff --git a/binsrc/VirtuosoClient.Net/design/VirtuosoConnectionStringEditor.cs b/binsrc/VirtuosoClient.Net/design/VirtuosoConnectionStringEditor.cs
index 5b62014..fc1ce87 100644
--- a/binsrc/VirtuosoClient.Net/design/VirtuosoConnectionStringEditor.cs
+++ b/binsrc/VirtuosoClient.Net/design/VirtuosoConnectionStringEditor.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 // 
-// $Id: VirtuosoConnectionStringEditor.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 #if (!MONO)
diff --git a/binsrc/VirtuosoClient.Net/design/VirtuosoDataAdapterDesigner.cs b/binsrc/VirtuosoClient.Net/design/VirtuosoDataAdapterDesigner.cs
index 01601a2..ae4fb0c 100644
--- a/binsrc/VirtuosoClient.Net/design/VirtuosoDataAdapterDesigner.cs
+++ b/binsrc/VirtuosoClient.Net/design/VirtuosoDataAdapterDesigner.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 // 
-// $Id: VirtuosoDataAdapterDesigner.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 #if (!MONO)
diff --git a/binsrc/VirtuosoClient.Net/design/VirtuosoDotNetDSNForm.cs b/binsrc/VirtuosoClient.Net/design/VirtuosoDotNetDSNForm.cs
index 8785d44..dc50f1e 100644
--- a/binsrc/VirtuosoClient.Net/design/VirtuosoDotNetDSNForm.cs
+++ b/binsrc/VirtuosoClient.Net/design/VirtuosoDotNetDSNForm.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/VirtuosoClient.Net/design/VirtuosoGenerateDataSet.cs b/binsrc/VirtuosoClient.Net/design/VirtuosoGenerateDataSet.cs
index a9d4fff..866fff3 100644
--- a/binsrc/VirtuosoClient.Net/design/VirtuosoGenerateDataSet.cs
+++ b/binsrc/VirtuosoClient.Net/design/VirtuosoGenerateDataSet.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
@@ -19,7 +19,7 @@
 //  
 //  
 // 
-// $Id: VirtuosoGenerateDataSet.cs,v 1.1.1.1 2006/04/11 17:56:12 source Exp $
+// $Id$
 //
 
 using System;
diff --git a/binsrc/b3s/Makefile.am b/binsrc/b3s/Makefile.am
index eadad28..b6f03e3 100644
--- a/binsrc/b3s/Makefile.am
+++ b/binsrc/b3s/Makefile.am
@@ -1,10 +1,10 @@
 #
-#  $Id: Makefile.am,v 1.1.2.4 2009/07/09 13:24:35 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/b3s/Makefile.in b/binsrc/b3s/Makefile.in
index 72dbf57..4b8829e 100644
--- a/binsrc/b3s/Makefile.in
+++ b/binsrc/b3s/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,12 +15,12 @@
 @SET_MAKE@
 
 #
-#  $Id: Makefile.am,v 1.1.2.4 2009/07/09 13:24:35 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -40,9 +39,8 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -72,7 +70,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -80,23 +77,9 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(vaddir)"
+nodist_vadDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(nodist_vad_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -186,7 +169,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -270,7 +252,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -291,7 +272,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -347,14 +327,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu binsrc/b3s/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu binsrc/b3s/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  binsrc/b3s/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  binsrc/b3s/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -372,7 +352,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -382,23 +361,20 @@ clean-libtool:
 install-nodist_vadDATA: $(nodist_vad_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(vaddir)" || $(MKDIR_P) "$(DESTDIR)$(vaddir)"
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	for p in $$list; do \
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vaddir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(vaddir)" || exit $$?; \
+	  f=$(am__strip_dir) \
+	  echo " $(nodist_vadDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(vaddir)/$$f'"; \
+	  $(nodist_vadDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(vaddir)/$$f"; \
 	done
 
 uninstall-nodist_vadDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(vaddir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(vaddir)" && rm -f $$files
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(vaddir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(vaddir)/$$f"; \
+	done
 tags: TAGS
 TAGS:
 
@@ -422,17 +398,13 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
@@ -464,7 +436,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -483,8 +454,6 @@ dvi-am:
 
 html: html-am
 
-html-am:
-
 info: info-am
 
 info-am:
@@ -493,28 +462,18 @@ install-data-am: install-nodist_vadDATA
 
 install-dvi: install-dvi-am
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-am
 
-install-html-am:
-
 install-info: install-info-am
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-am
 
-install-pdf-am:
-
 install-ps: install-ps-am
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -555,7 +514,6 @@ fct_dav.vad: $(EXTRA_DIST)
 
 clean-local:
 	-rm -rf vad
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/binsrc/b3s/VirtTripleLoader/.classpath b/binsrc/b3s/VirtTripleLoader/.classpath
index c35fe25..2afad2e 100644
--- a/binsrc/b3s/VirtTripleLoader/.classpath
+++ b/binsrc/b3s/VirtTripleLoader/.classpath
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 --
---  $Id: .classpath,v 1.1.2.1 2009/04/17 11:07:29 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/b3s/VirtTripleLoader/.project b/binsrc/b3s/VirtTripleLoader/.project
index 3cdd176..58a7b81 100644
--- a/binsrc/b3s/VirtTripleLoader/.project
+++ b/binsrc/b3s/VirtTripleLoader/.project
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 --
---  $Id: .project,v 1.1.2.1 2009/04/17 11:07:29 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/b3s/VirtTripleLoader/src/virtTripleLoaderInit/Logger.java b/binsrc/b3s/VirtTripleLoader/src/virtTripleLoaderInit/Logger.java
index adab9cf..422452e 100644
--- a/binsrc/b3s/VirtTripleLoader/src/virtTripleLoaderInit/Logger.java
+++ b/binsrc/b3s/VirtTripleLoader/src/virtTripleLoaderInit/Logger.java
@@ -1,10 +1,10 @@
 /*
- *  $Id: Logger.java,v 1.1.2.1 2009/04/17 11:07:29 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2009 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/b3s/VirtTripleLoader/src/virtTripleLoaderInit/VirtTripleLoaderInit.java b/binsrc/b3s/VirtTripleLoader/src/virtTripleLoaderInit/VirtTripleLoaderInit.java
index c0b2426..996d024 100644
--- a/binsrc/b3s/VirtTripleLoader/src/virtTripleLoaderInit/VirtTripleLoaderInit.java
+++ b/binsrc/b3s/VirtTripleLoader/src/virtTripleLoaderInit/VirtTripleLoaderInit.java
@@ -1,10 +1,10 @@
 /*
- *  $Id: VirtTripleLoaderInit.java,v 1.1.2.3 2011/03/08 15:43:44 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2009 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -84,7 +84,7 @@ public class VirtTripleLoaderInit {
 	private static final Integer myMajorVer = 0;
 	private static final Integer myMinorVer = 1;
 	private static final Integer myBuild = 0;
-	private static final String myCopyright = "Copyright (c) 2008-2011 OpenLink Software";
+	private static final String myCopyright = "Copyright (c) 2008-2012 OpenLink Software";
 
 	private static final String virtConnectUrlDef = "jdbc:virtuoso://neo:1111";
 	private static final String virtUserDef = "dba";
@@ -126,7 +126,7 @@ public class VirtTripleLoaderInit {
 			while ((c = _block.read()) != -1) {
 
 				bytesInFile ++;
-				outStream.write(c); 
+				outStream.write(c);
 
 			}
 
diff --git a/binsrc/b3s/b3s_cl_rexec.sql b/binsrc/b3s/b3s_cl_rexec.sql
index 75cb776..84758e0 100644
--- a/binsrc/b3s/b3s_cl_rexec.sql
+++ b/binsrc/b3s/b3s_cl_rexec.sql
@@ -1,12 +1,12 @@
 --
---  $Id: b3s_cl_rexec.sql,v 1.1.2.1 2009/04/17 11:07:29 source Exp $
+--  $Id$
 --
 --  Executes query on b3s cluster and returns serialized array
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/b3s/b3sq.sql b/binsrc/b3s/b3sq.sql
index 562dd25..a82159d 100644
--- a/binsrc/b3s/b3sq.sql
+++ b/binsrc/b3s/b3sq.sql
@@ -1,10 +1,10 @@
 --
---  $Id: b3sq.sql,v 1.1.2.3 2009/08/27 22:15:49 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -760,7 +760,7 @@ where
 
 
 
-select "path", xmlelement ('path', xmlagg (xmlelement ('step', "via"))) from 
+select "path", xmlelement ('path', xmlagg (xmlelement ('step', "via"))) from
 (sparql select ?o ?via ?dist ?path where
   {
     {select ?s ?o
diff --git a/binsrc/b3s/bbc_demo_queries.vsp b/binsrc/b3s/bbc_demo_queries.vsp
index 60eff72..0517ac4 100644
--- a/binsrc/b3s/bbc_demo_queries.vsp
+++ b/binsrc/b3s/bbc_demo_queries.vsp
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE html PUBLIC
-  "-//W3C//DTD XHTML 1.0 Strict//EN"	
+  "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
@@ -33,7 +33,7 @@ function get_and_encode_query (q_elm)
 
 </script>
 </head>
-<body>  
+<body>
   <div id="PG">
     <div id="HD">
       <a class="logo" href="/fct/facet.vsp">
@@ -43,7 +43,7 @@ function get_and_encode_query (q_elm)
     <div id="MD">
       <div id="demo_queries_ctr">
         <h1>BBC Dataset Sample Queries</h1>
-        <p>These queries demonstrate some of the types of queries that can be done over the BBC dataset</p> 
+        <p>These queries demonstrate some of the types of queries that can be done over the BBC dataset</p>
         <ul class="demo_qry_list">
           <li>
             <h2>EastEnders episodes</h2>
@@ -52,18 +52,18 @@ function get_and_encode_query (q_elm)
               <pre id="q1">
 PREFIX po: <http://purl.org/ontology/po/>
 PREFIX dc: <http://purl.org/dc/elements/1.1/>
-              
-select distinct ?title ?short_syn 
-where { 
-  <http://www.bbc.co.uk/programmes/b006m86d#programme> po:episode ?e .  
-  ?e a po:Episode .  
+
+select distinct ?title ?short_syn
+where {
+  <http://www.bbc.co.uk/programmes/b006m86d#programme> po:episode ?e .
+  ?e a po:Episode .
   ?e po:short_synopsis ?short_syn .
   ?e dc:title ?title
 }
               </pre>
             </div>
             <div class="actions">
-              <a onclick="javascript:sparql_qry('q1');" href="#">Run in SPARQL endpoint</a> 
+              <a onclick="javascript:sparql_qry('q1');" href="#">Run in SPARQL endpoint</a>
               <a onclick="javascript:isparql_qry('q1');" href="#">Open in iSPARQL</a>
             </div>
           </li>
@@ -92,7 +92,7 @@ where {
               </pre>
             </div>
             <div class="actions">
-              <a onclick="javascript:sparql_qry('q2');" href="#">Run in SPARQL endpoint</a> 
+              <a onclick="javascript:sparql_qry('q2');" href="#">Run in SPARQL endpoint</a>
               <a onclick="javascript:isparql_qry('q2');" href="#">Open in iSPARQL</a>
             </div>
           </li>
@@ -108,8 +108,8 @@ PREFIX rev:  <http://purl.org/stuff/rev#>
 PREFIX po:   <http://purl.org/ontology/po/>
 
 select distinct ?r_name, ?rev
-where {  
-        {    
+where {
+        {
           <http://www.bbc.co.uk/music/artists/4490113a-3880-4f5b-a39b-105bfceaed04#artist> foaf:made ?r1 .
           ?r1 a mo:Record .
           ?r1 dc:title ?r_name .
@@ -121,11 +121,11 @@ where {
           ?r1 dc:title ?r_name .
           ?r1 rev:hasReview ?rev
         }
-      }  
+      }
               </pre>
             </div>
             <div class="actions">
-              <a onclick="javascript:sparql_qry('q3');" href="#">Run in SPARQL endpoint</a> 
+              <a onclick="javascript:sparql_qry('q3');" href="#">Run in SPARQL endpoint</a>
               <a onclick="javascript:isparql_qry('q3');" href="#">Open in iSPARQL</a>
             </div>
           </li>
@@ -140,7 +140,7 @@ where {
         <img alt="Linked Data" src="/fct/images/LoDLogo.gif"/>
       </a>
       <br/>
-      <span class="copyright">Copyright © 2009-2011 OpenLink Software</span>
+      <span class="copyright">Copyright © 2009-2012 OpenLink Software</span>
       <div id="FT_L"/>
       <div id="FT_R"/>
     </div> <!-- #FT -->
diff --git a/binsrc/b3s/cl_prx.sql b/binsrc/b3s/cl_prx.sql
index 862675b..6ef4136 100644
--- a/binsrc/b3s/cl_prx.sql
+++ b/binsrc/b3s/cl_prx.sql
@@ -1,10 +1,10 @@
 --
---  $Id: cl_prx.sql,v 1.1.2.5 2010/09/20 09:51:10 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -242,10 +242,10 @@ DB.DBA.URLREWRITE_CREATE_REGEX_RULE ('ext_fctabout_http_proxy_rule_5', 1,
     '/describe/\\?uri=([^\&]*)\&graph=([^\&]*)', vector ('g', 'graph'), 2,
     '/fct/rdfdesc/description.vsp?g=%s&graph=%s', vector ('g', 'graph'), null, null, 2);
 
-DB.DBA.URLREWRITE_CREATE_RULELIST ('ext_fctabout_http_proxy_rule_list1', 1, 
-    vector ('ext_fctabout_http_proxy_rule_1', 
-      	    'ext_fctabout_http_proxy_rule_2', 
-	    'ext_fctabout_http_proxy_rule_3', 
+DB.DBA.URLREWRITE_CREATE_RULELIST ('ext_fctabout_http_proxy_rule_list1', 1,
+    vector ('ext_fctabout_http_proxy_rule_1',
+      	    'ext_fctabout_http_proxy_rule_2',
+	    'ext_fctabout_http_proxy_rule_3',
 	    'ext_fctabout_http_proxy_rule_4',
 	    'ext_fctabout_http_proxy_rule_5'
 	    ));
diff --git a/binsrc/b3s/complete.sql b/binsrc/b3s/complete.sql
index 639b37d..3a94d99 100644
--- a/binsrc/b3s/complete.sql
+++ b/binsrc/b3s/complete.sql
@@ -1,10 +1,10 @@
 --
---  $Id: complete.sql,v 1.1.2.9 2011/09/23 19:22:35 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -20,9 +20,9 @@
 --  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 --
 
--- URI completion 
+-- URI completion
 
-create procedure 
+create procedure
 num_str (in n int)
 {
   declare s varchar;
@@ -38,7 +38,7 @@ num_str (in n int)
 }
 ;
 
-create procedure 
+create procedure
 str_inc (in str varchar, in pref int := 0)
 {
   -- increment by one for range cmp
@@ -66,7 +66,7 @@ str_inc (in str varchar, in pref int := 0)
 --}
 
 
-create procedure 
+create procedure
 cmp_find_iri (in str varchar, in no_name int := 0)
 {
   /* We look for iris, assuming the full ns is in the name  */
@@ -80,11 +80,11 @@ cmp_find_iri (in str varchar, in no_name int := 0)
       pref := str;
       name := '1111';
     }
-  else 
+  else
     pref := iri_split (str, name, 1);
 
-  id := (select rp_id 
-           from rdf_prefix 
+  id := (select rp_id
+           from rdf_prefix
            where rp_name = pref);
 
   if (id is null)
@@ -98,34 +98,34 @@ cmp_find_iri (in str varchar, in no_name int := 0)
 
   if (no_name)
     {
-      iris :=  (select vector_agg (ri_name) 
-                from (select top 20 ri_name 
-                        from rdf_iri 
-                        where ri_name >= name and 
+      iris :=  (select vector_agg (ri_name)
+                from (select top 20 ri_name
+                        from rdf_iri
+                        where ri_name >= name and
                               ri_name < num_str (id + 1)) ir);
 
       if (length (iris) < 20 and length (iris) > 1)
-        iris := (select vector_agg (ri_name) 
-                 from (select ri_name 
-                         from rdf_iri 
-                         where ri_name >= name and 
+        iris := (select vector_agg (ri_name)
+                 from (select ri_name
+                         from rdf_iri
+                         where ri_name >= name and
                                ri_name < num_str (id + 1)
                          order by iri_rank (ri_id) desc) ir);
     }
-  else 
+  else
     {
-      iris :=  (select vector_agg (ri_name) 
-                  from (select top 20 ri_name 
-                          from rdf_iri 
-                          where ri_name >= name and 
+      iris :=  (select vector_agg (ri_name)
+                  from (select top 20 ri_name
+                          from rdf_iri
+                          where ri_name >= name and
                                 ri_name < str_inc (name, 4)) ir);
 
       if (length (iris) < 20 and length (iris) > 1)
-        iris := (select vector_agg (ri_name) 
-                 from (select ri_name 
-                         from rdf_iri 
-                         where ri_name >= name and 
-                               ri_name < str_inc (name, 4) 
+        iris := (select vector_agg (ri_name)
+                 from (select ri_name
+                         from rdf_iri
+                         where ri_name >= name and
+                               ri_name < str_inc (name, 4)
                          order by iri_rank (ri_id) desc) ir);
     }
 
@@ -138,15 +138,14 @@ cmp_find_iri (in str varchar, in no_name int := 0)
 }
 ;
 
-create procedure 
+create procedure
 cmp_find_ns (in str varchar)
 {
   declare nss any;
-
-  nss := (select vector_agg (rp_name) 
-            from (select top 20 rp_name 
-                    from rdf_prefix 
-                    where rp_name >= str and 
+  nss := (select vector_agg (rp_name)
+            from (select top 20 rp_name
+                    from rdf_prefix
+                    where rp_name >= str and
                           rp_name < str_inc (str)) ns);
 
   return nss;
@@ -154,7 +153,7 @@ cmp_find_ns (in str varchar)
 ;
 
 
-create procedure 
+create procedure
 cmp_with_ns (in str varchar)
 {
   declare pref_str varchar;
@@ -165,8 +164,8 @@ cmp_with_ns (in str varchar)
   if (col = 0)
     return null;
 
-  pref_str := (select ns_url 
-                 from SYS_XML_PERSISTENT_NS_DECL 
+  pref_str := (select ns_url
+                 from SYS_XML_PERSISTENT_NS_DECL
                  where ns_prefix = subseq (str, 0, col - 1));
   if (pref_str is null)
     return null;
@@ -177,7 +176,7 @@ cmp_with_ns (in str varchar)
 ;
 
 
-create procedure 
+create procedure
 cmp_uri (in str varchar)
 {
   declare with_ns varchar;
@@ -218,7 +217,7 @@ cmp_uri (in str varchar)
 }
 ;
 
-create procedure 
+create procedure
 urilbl_ac_ruin_label (in lbl varchar)
 {
   declare tmp any;
@@ -230,7 +229,7 @@ urilbl_ac_ruin_label (in lbl varchar)
 }
 ;
 
-create procedure 
+create procedure
 urilbl_ac_init_log (in msg varchar)
 {
 --  dbg_printf(msg);
@@ -242,7 +241,7 @@ urilbl_ac_init_log (in msg varchar)
 -- Originally from rdf_mappers/rdfdesc.sql
 -- Determine q of given lang based on value of Accept-Language hdr
 
-create procedure 
+create procedure
 cmp_get_lang_by_q (in accept varchar, in lang varchar)
 {
   declare format, itm, q varchar;
diff --git a/binsrc/b3s/complete_cl.sql b/binsrc/b3s/complete_cl.sql
index e678ce2..b54f76e 100644
--- a/binsrc/b3s/complete_cl.sql
+++ b/binsrc/b3s/complete_cl.sql
@@ -1,6 +1,6 @@
 
 create procedure
-urilbl_ac_init_db () 
+urilbl_ac_init_db ()
 {
   --pl_debug+
   declare n, n_ins, n_strange integer;
@@ -21,24 +21,24 @@ urilbl_ac_init_db ()
 -- XXX check if the unresolved literal problem still needs a workaround
 
   daq := daq (1);
-  for (sparql 
-        define output:valmode 'LONG' 
-        define input:inference 'facets' 
-        select ?s ?o where { ?s virtrdf:label ?o }) do 
+  for (sparql
+        define output:valmode 'LONG'
+        define input:inference 'facets'
+        select ?s ?o where { ?s virtrdf:label ?o }) do
     {
       declare lng, id int;
       lng := 257;
-      if (__tag of rdf_box = __tag(o)) 
-	{ 
+      if (__tag of rdf_box = __tag(o))
+        {
 	  o_str := cast (o as varchar);
 	  lng := rdf_box_lang (o);
 	  id := rdf_box_ro_id (o);
-        }
+	}
       else
 	{
           n_strange := n_strange + 1;
 	  goto cont;
-        } 
+        }
 
       n_ins := n_ins + 1;
 
@@ -48,15 +48,15 @@ urilbl_ac_init_db ()
 	--insert into rdf_label option (into daq) (rl_o, rl_ro_id, rl_text, rl_lang) values (o, id, urilbl_ac_ruin_label (o_str), lng);
       insert soft rdf_label (rl_o, rl_ro_id, rl_text, rl_lang) values (o, id, urilbl_ac_ruin_label (o_str), lng);
 
-     cont:;
+      cont:;
       n := n + 1;
-      if (mod (n, 1000000) = 0) 
-        urilbl_ac_init_log (sprintf ('urilbl_ac_init_db: %d rows, %d ins, %d strange...\n', 
-                                      n, n_ins, n_strange));
+      if (mod (n, 1000000) = 0)
+	urilbl_ac_init_log (sprintf ('urilbl_ac_init_db: %d rows, %d ins, %d strange...\n',
+	      n, n_ins, n_strange));
       if (0 = mod (n, 10000))
 	{
 	  daq_results (daq);
-	daq := daq (1);
+	  daq := daq (1);
 	  commit work;
 	}
     }
@@ -85,11 +85,11 @@ cmp_label (in lbl_str varchar, in langs varchar)
   best_q := 0;
 
   {
-    declare exit handler for sqlstate 'S1TAT' { 
+    declare exit handler for sqlstate 'S1TAT' {
       goto done;
     };
 
-    for (select rl_lang, s as ull_iid, __ro2sq (o) as ull_label from rdf_label, rdf_quad  
+    for (select rl_lang, s as ull_iid, __ro2sq (o) as ull_label from rdf_label, rdf_quad
 	where rl_text like urilbl_ac_ruin_label (lbl_str) || '%' and rl_o = o) do
       {
 	declare ull_label_lang varchar;
@@ -107,7 +107,7 @@ cmp_label (in lbl_str varchar, in langs varchar)
         cur_iid := ull_iid;
         q := cmp_get_lang_by_q (langs, ull_label_lang);
 
-        if (q >= best_q) 
+        if (q >= best_q)
           {
             best_q := q;
 	    if (__tag (ull_label) = 246)
diff --git a/binsrc/b3s/complete_ddl.sql b/binsrc/b3s/complete_ddl.sql
index ab15032..0c08d0d 100644
--- a/binsrc/b3s/complete_ddl.sql
+++ b/binsrc/b3s/complete_ddl.sql
@@ -1,10 +1,10 @@
 --
---  $Id: complete_ddl.sql,v 1.1.2.5 2009/10/07 10:27:20 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -34,7 +34,7 @@ urilbl_complete_lookup_2 (
 EXEC_STMT ('alter index urilbl_complete_lookup_2 on urilbl_complete_lookup_2 partition (ull_label_ruined varchar (6,0hexffff))', 0);
 
 EXEC_STMT (
-'create table 
+'create table
 urilbl_cpl_log (
   ullog_ts timestamp,
   ullog_msg varchar,
diff --git a/binsrc/b3s/complete_single.sql b/binsrc/b3s/complete_single.sql
index 34c9649..7d7f623 100644
--- a/binsrc/b3s/complete_single.sql
+++ b/binsrc/b3s/complete_single.sql
@@ -1,6 +1,6 @@
 
 create procedure
-urilbl_ac_init_db () 
+urilbl_ac_init_db ()
 {
   declare n, n_ins, n_strange integer;
   declare o_str varchar;
@@ -18,35 +18,35 @@ urilbl_ac_init_db ()
 -- XXX test that this inference graph exists a priori
 -- XXX check if the unresolved literal problem still needs a workaround
 
-  for (sparql 
-        define output:valmode 'LONG' 
-        define input:inference 'facets' 
-        select ?s ?o (lang(?o)) as ?lng where { ?s virtrdf:label ?o }) do 
+  for (sparql
+        define output:valmode 'LONG'
+        define input:inference 'facets'
+        select ?s ?o (lang(?o)) as ?lng where { ?s virtrdf:label ?o }) do
     {
-      if (__tag of rdf_box = __tag(o)) 
+      if (__tag of rdf_box = __tag(o))
 	o_str := cast (o as varchar);
       else if (isstring(o) and o not like 'Unresolved literal for ID%')
-	{ 
+	{
 	  o_str := o;
         }
       else
 	{
           n_strange := n_strange + 1;
 	  goto cont;
-        } 
+        }
 
       n_ins := n_ins + 1;
 
       o_str := "LEFT"(o_str, 512);
 
-      insert soft urilbl_complete_lookup_2 
-           (ull_label_lang, ull_label_ruined, ull_iid, ull_label) 
+      insert soft urilbl_complete_lookup_2
+           (ull_label_lang, ull_label_ruined, ull_iid, ull_label)
           values (lng, urilbl_ac_ruin_label (o_str), s, o_str);
 
      cont:;
       n := n + 1;
-      if (mod (n, 1000000) = 0) 
-        urilbl_ac_init_log (sprintf ('urilbl_ac_init_db: %d rows, %d ins, %d strange...\n', 
+      if (mod (n, 1000000) = 0)
+        urilbl_ac_init_log (sprintf ('urilbl_ac_init_db: %d rows, %d ins, %d strange...\n',
                                       n, n_ins, n_strange));
       if (0 = mod (n, 10000))
 	{
@@ -77,12 +77,12 @@ cmp_label (in lbl_str varchar, in langs varchar)
   best_q := 0;
 
   {
-    declare exit handler for sqlstate 'S1TAT' { 
+    declare exit handler for sqlstate 'S1TAT' {
       goto done;
     };
 
     for (select ull_label_lang, ull_label, ull_iid
-         from urilbl_complete_lookup_2 
+         from urilbl_complete_lookup_2
          where ull_label_ruined like urilbl_ac_ruin_label (lbl_str) || '%') do
       {
         if (cur_iid is not null and ull_iid <> cur_iid)
@@ -96,7 +96,7 @@ cmp_label (in lbl_str varchar, in langs varchar)
         cur_iid := ull_iid;
         q := cmp_get_lang_by_q (langs, ull_label_lang);
 
-        if (q >= best_q) 
+        if (q >= best_q)
           {
             best_q := q;
             cur_lbl := ull_label;
diff --git a/binsrc/b3s/complete_svc.sql b/binsrc/b3s/complete_svc.sql
index bf318e7..b36e378 100644
--- a/binsrc/b3s/complete_svc.sql
+++ b/binsrc/b3s/complete_svc.sql
@@ -1,10 +1,10 @@
 --
---  $Id: complete_svc.sql,v 1.1.2.5 2010/05/16 18:56:48 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -20,7 +20,7 @@
 --  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 --
 
-create procedure 
+create procedure
 isvector (in x any)
 {
   if (x is null) return null;
@@ -42,19 +42,19 @@ json_out_vec_tst (in v any)
 }
 ;
 
-create procedure 
+create procedure
 json_esc_str (in s any)
 {
   return sprintf ('"%s"', replace (replace (replace (s, '\\', '\\\\'), '"', '\\"'), '\n', '\\n'));
 }
 ;
 
-create procedure 
+create procedure
 json_out_vec (in v any, inout ses any)
 {
   declare s varchar;
   s := string_output();
-	
+
   http ('[', s);
 
 --  dbg_obj_print (v[0]);
@@ -80,10 +80,10 @@ json_out_vec (in v any, inout ses any)
 ;
 
 DB.DBA.VHOST_REMOVE (lpath=>'/services/rdf/iriautocomplete.get');
-DB.DBA.VHOST_DEFINE (lpath=>'/services/rdf/iriautocomplete.get', 
+DB.DBA.VHOST_DEFINE (lpath=>'/services/rdf/iriautocomplete.get',
                      ppath=>'/SOAP/Http/IRI_AUTOCOMPLETE', soap_user=>'PROXY');
 
-create procedure 
+create procedure
 DB.DBA.IRI_AUTOCOMPLETE () __SOAP_HTTP 'text/json'
 {
   declare params any;
@@ -92,7 +92,7 @@ DB.DBA.IRI_AUTOCOMPLETE () __SOAP_HTTP 'text/json'
   declare len int;
   declare iri_str, lbl_str varchar;
   declare langs varchar;
-  
+
   iri_str := lbl_str := null;
 
   ses := string_output();
@@ -129,11 +129,11 @@ DB.DBA.IRI_AUTOCOMPLETE () __SOAP_HTTP 'text/json'
     }
 
   {
-    declare exit handler for sqlstate '*' 
+    declare exit handler for sqlstate '*'
     {
-      http ('{"error": {"sqlstate" : ' || 
-            json_esc_str(__SQL_STATE) || 
-            ',"sqlmessage":' || 
+      http ('{"error": {"sqlstate" : ' ||
+            json_esc_str(__SQL_STATE) ||
+            ',"sqlmessage":' ||
             json_esc_str(__SQL_MESSAGE) || '},"results":[]}', ses);
       return ses;
     };
@@ -142,7 +142,7 @@ DB.DBA.IRI_AUTOCOMPLETE () __SOAP_HTTP 'text/json'
       res := DB.DBA.cmp_uri (iri_str);
     else if (lbl_str is not null)
       res := DB.DBA.cmp_label (lbl_str, langs);
-    else 
+    else
       goto empty;
 
 --  dbg_obj_print (res);
@@ -153,7 +153,7 @@ DB.DBA.IRI_AUTOCOMPLETE () __SOAP_HTTP 'text/json'
 
           if (isvector (res[0]))
             http ('"restype":"multiple",', ses);
-          else 
+          else
             http ('"restype":"single",', ses);
 
           if (iri_str)
diff --git a/binsrc/b3s/demo_queries.vsp b/binsrc/b3s/demo_queries.vsp
index 416548e..2d4cf33 100644
--- a/binsrc/b3s/demo_queries.vsp
+++ b/binsrc/b3s/demo_queries.vsp
@@ -1,12 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE html PUBLIC
-  "-//W3C//DTD XHTML 1.0 Strict//EN"	
+  "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
 <title>BBC demo queries</title>
 <link rel="stylesheet" type="text/css" href="styles/default.css"/>
-<script type="text/javascript" src="s/main.js"></script>
 <script type="text/javascript" src="oat/toolkit/loader.js"></script>
 
 <!--
@@ -15,13 +14,13 @@ FACET DEMO PAGE CUSTOMIZATION:
 
 Registry keys:
 
-'fct_demo_uri' controls generation of "Demo Queries" link on Facet Browser's front page. If not set, this page is used. 
+'fct_demo_uri' controls generation of "Demo Queries" link on Facet Browser's front page. If not set, this page is used.
 See facet_view.sql.
 
-'sparql_demo_query_path' should point to a DAV collection with .isparql files to display. If not set, 
+'sparql_demo_query_path' should point to a DAV collection with .isparql files to display. If not set,
 '/DAV/home/dav/sparql_demo_queries' will be used.
 
-'sparql_demo_xsl_uri' should point to XSL used to extract information and display entries in the list of queries. 
+'sparql_demo_xsl_uri' should point to XSL used to extract information and display entries in the list of queries.
 If not set, '/fct/isparql_describe.xsl' is used.
 
 -->
@@ -77,32 +76,40 @@ function get_and_encode_query (q_elm)
 
 </script>
 </head>
-<body>  
+<body>
   <div id="PG">
     <div id="HD">
       <a class="logo" href="/fct/facet.vsp">
         <img id="opl_logo" alt="OpenLink Software" src="/fct/images/openlink_site_logo.png"/>
       </a>
+      <h2>Demo SPARQL Queries</h2>
     </div> <!-- #HD -->
     <div id="MD">
       <div id="demo_queries_ctr">
-        <ul class="demo_qry_list">
+        <table class="demo_qry_list">
 <?vsp
   declare ct_tree,xst any;
+  declare num_r int;
+  num_r := 0;
 
-  for select res_content, res_name, res_full_path 
-        from WS.WS.SYS_DAV_RES 
+  for select res_content, res_name, res_full_path
+        from WS.WS.SYS_DAV_RES
         where RES_FULL_PATH like demo_dav_path || '%.isparql' do
     {
-	
+
 	ct_tree := xml_tree_doc (xml_tree (res_content));
 	http_value (xslt (demo_xsl_uri,
 		    	  ct_tree,
                      	  vector ('name', res_name, 'full_path', 'http://' || uriqa_str || res_full_path)));
 
+        num_r := num_r + 1;
+    }
+  if (0 = num_r)
+    {
+      http ('<tr><td colspan="3"><span class="advisory">No demo queries available on this server.</span></td></tr>');
     }
 ?>
-        </ul>
+        </table>
       </div> <!-- #demo_queries_ctr -->
     </div> <!-- #MD -->
     <div id="FT">
@@ -113,7 +120,7 @@ function get_and_encode_query (q_elm)
         <img alt="Linked Data" src="/fct/images/LoDLogo.gif"/>
       </a>
       <br/>
-      <span class="copyright">Copyright © 2009-2011 OpenLink Software</span>
+      <span class="copyright">Copyright © 2009-2012 OpenLink Software</span>
       <div id="FT_L"/>
       <div id="FT_R"/>
     </div> <!-- #FT -->
diff --git a/binsrc/b3s/facet.js b/binsrc/b3s/facet.js
index 74e5a01..20d40fa 100644
--- a/binsrc/b3s/facet.js
+++ b/binsrc/b3s/facet.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: facet.js,v 1.1.2.13 2011/10/26 15:38:11 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2009 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -33,6 +33,26 @@ function fct_nav_to (url)
   document.location = url;
 }
 
+function fct_pager_next (form_pfx)
+{
+    if ($(form_pfx+'_goto').value == '')
+      $(form_pfx + '_cmd').value = 'next';
+    $(form_pfx).submit();
+}
+
+function fct_pager_prev (form_pfx)
+{
+    if ($(form_pfx+'_goto').value == '')
+      $(form_pfx + '_cmd').value = 'prev';
+    $(form_pfx).submit();
+}
+
+function fct_pager_go_to (form_pfx)
+{
+    $(form_pfx + '_cmd').value = 'go_to';
+    $(form_pfx).submit();
+}
+
 var c_thr;
 
 function fct_uri_ac_get_matches (ac_ctl)
@@ -44,8 +64,8 @@ function fct_uri_ac_get_matches (ac_ctl)
 
     c_thr = $('new_uri_txt');
 
-    OAT.AJAX.GET("/services/rdf/iriautocomplete.get?uri" + "=" + escape (val), 
-                 false, 
+    OAT.AJAX.GET("/services/rdf/iriautocomplete.get?uri" + "=" + escape (val),
+                 false,
                  fct_uri_ac_ajax_handler,{});
 }
 
@@ -58,8 +78,8 @@ function fct_lbl_ac_get_matches (ac_ctl)
 
     c_thr = $('new_lbl_txt');
 
-    OAT.AJAX.GET("/services/rdf/iriautocomplete.get?lbl" + "=" + escape (val), 
-                 false, 
+    OAT.AJAX.GET("/services/rdf/iriautocomplete.get?lbl" + "=" + escape (val),
+                 false,
                  fct_lbl_ac_ajax_handler,{});
 }
 
@@ -80,7 +100,7 @@ function fct_uri_ac_ajax_handler (resp)
 
       if (resp_obj.restype == "single")
 	uri_ac.set_uri_opts (resp_obj.results);
-      else 
+      else
 	uri_ac.set_uri_opts (resp_obj.results[0].concat(resp_obj.results[1]));
 
     uri_ac.show_popup ();
@@ -102,18 +122,18 @@ function fct_lbl_ac_ajax_handler (resp)
 
       if (resp_obj.restype == "single")
 	lbl_ac.set_opts (resp_obj.results);
-      else 
+      else
 	lbl_ac.set_opts (resp_obj.results[0].concat(resp_obj.results[1]));
 
     lbl_ac.show_popup ();
 }
 
-function ac_show_thr () 
+function ac_show_thr ()
 {
   OAT.Dom.addClass (c_thr, 'thr');
 }
 
-function ac_hide_thr () 
+function ac_hide_thr ()
 {
   OAT.Dom.removeClass (c_thr, 'thr');
 }
@@ -129,7 +149,7 @@ function resize_handler ()
 {
     var wp_width = OAT.Dom.getViewport ()[0];
 
-    if ($('res')) 
+    if ($('res'))
       {
         var _w = (wp_width-230)+'px';
         $('res').style.width = _w;
@@ -223,7 +243,7 @@ function prop_val_dt_sel_init () {
 
 	if (v in dt_s)
 	    dt_s[v]++;
-	else 
+	else
 	    dt_s[v]=1;
     }
 
@@ -241,8 +261,8 @@ function prop_val_dt_sel_init () {
 	opts_a.push(new Option(shorten_dt (dt_a[i][0]), dt_a[i][0], false));
     }
 
-    var num_opt  = new Option ('Numeric', '##numeric', false);
-    var none_opt = new Option ('No datatype', '##none', false);
+    var num_opt  = new Option ('Numeric',     '##numeric', false);
+    var none_opt = new Option ('No datatype', '##none',    false);
 
     if (is_numeric_dt (dt_a[0][0])) {
 	opts_a.unshift (num_opt);
@@ -260,7 +280,6 @@ function prop_val_dt_sel_init () {
 
     OAT.Event.attach ('set_cond', 'click', function (e) {
 	var ct = $v('cond_type');
-
 	var v_l = $v('cond_lo');
 	var v_h = $v('cond_hi');
 
@@ -268,18 +287,35 @@ function prop_val_dt_sel_init () {
 
 	if ((ct == 'range' || ct == 'neg_range') && (v_h == '' || v_l == '')) return;
 
-
 	if ($('cond_dt').value != '##numeric' && $('cond_dt').value != '##none' && ct != 'contains') {
-	    v_h = '"' + v_h + '"^^<' + $v('cond_dt') + '>';
-	    v_l = '"' + v_l + '"^^<' + $v('cond_dt') + '>';
+	    if ($v('out_lang') == '') {
+		if (v_h != '' && v_h.match (/\".*\"\^\^\<.*\>/) === null) {
+                    if ($v('cond_dt') == '' || $v('cond_dt') == 'http://www.openlinksw.com/schemas/facets/dtp/plainstring')
+			v_h = '"'+ v_h +'"';
+                    else
+  			v_h = '"' + v_h + '"^^<' + $v('cond_dt') + '>';
+		}
+		if (v_l != '' && v_l.match (/\".*\"\^\^\<.*\>/) === null) {
+		    if ($v('cond_dt') == '' || $v('cond_dt') == 'http://www.openlinksw.com/schemas/facets/dtp/plainstring')
+			v_l = '"'+ v_l +'"';
+		    else
+  			v_l = '"' + v_l + '"^^<' + $v('cond_dt') + '>';
+		}
+	    } else {
+		if (v_l != '')
+		    v_l = '"""' + v_l + '"""@' + $v('out_lang');
+
+		if (v_h != '')
+		    v_h = '"""' + v_h + '"""@' + $v('out_lang');
+	    }
 	}
 
-	if (ct == 'gt' || 
-            ct == 'lt' || 
-            ct == 'gte' || 
-            ct == 'lte' || 
-            ct == 'eq' || 
-            ct == 'neq' || 
+	if (ct == 'gt' ||
+            ct == 'lt' ||
+            ct == 'gte' ||
+            ct == 'lte' ||
+            ct == 'eq' ||
+            ct == 'neq' ||
             ct == 'contains') {
 	    $('out_hi').value = '';
 	}
@@ -287,24 +323,45 @@ function prop_val_dt_sel_init () {
         if (ct == 'range' || ct == 'neg_range') {
           $("out_hi").value = v_h;
 	  $("out_lo").value = v_l;
-        } else 
+        } else
           $("out_val").value = v_l;
 
         $('out_dtp').value = '';
         $('out_lang').value = '';
-        
+
 	$('cond_form').submit();
     });
 
     OAT.Dom.show ('cond_form');
 }
 
+
+function fct_add_loc_marker () {
+    var loc_lat = $$('loc_lat');
+    var loc_lon = $$('loc_lon');
+
+    if (loc_lat.length && loc_lon.length) {
+	var lat = parseFloat (loc_lat[0].innerHTML);
+	var lon = parseFloat (loc_lon[0].innerHTML);
+
+
+	window.loc_marker = window.cMap.addMarker (lat,
+	  					   lon,
+						   false,
+						   {image: 'oat/images/markers/house.png',
+						    imageSize: [18,41],
+						    title: 'Origin',
+						    custData: {__fct_bubble_content: ["Current Location"]}});
+    }
+}
+
 Geo_ui = function (form) {
     var self=this;
 
     this.form = $(form);
-
     this.lc = new OAT.LocationCache (5, [], false);
+    this.update = false;
+
 
     this.refresh = function () {
 	return;
@@ -312,6 +369,7 @@ Geo_ui = function (form) {
 
     this.loc_marker = null;
 
+
     this.loc_acq_h = function (s,m,l) {
 	OAT.Dom.hide (self.loc_acq_thr_i);
 	OAT.Dom.hide (self.loc_ctr);
@@ -321,24 +379,23 @@ Geo_ui = function (form) {
 	OAT.Dom.hide (self.loc_ctr);
         OAT.Dom.show (self.coord_ctr);
         OAT.Dom.show (self.loc_use_b);
-	if (self.loc_marker != null)
-	    window.cMap.removeMarker (self.loc_marker);
-	self.loc_marker = window.cMap.addMarker (l.getLat(), 
-                                                 l.getLon(), 
-                                                 false, 
-                                                 {image: 'oat/images/markers/house.png',
-                                                  imageSize: [18,41],
-                                                  custData: {__fct_bubble_content: ["Current Location"]}});
+
+        if (self.update !== false) {
+	    self.cmd_i.value = 'set_loc';
+            self.cno_i.value = self.update;
+	    self.update = false;
+	    self.form.submit();
+        }
     }
 
     this.loc_to_h = function () {
 	OAT.Dom.hide (self.loc_acq_thr_i);
-        alert ('Timeout while acquiring location');
+        alert ('Timeout while acquiring location.');
     }
 
     this.loc_err_h = function () {
 	OAT.Dom.hide (self.loc_acq_thr_i);
-	alert ('Failed to acquire location');
+	alert ('Failed to acquire location.\nDid you allow the client to locate you?\nYou also may have geolocation, or WiFi disabled - \nif so, try enabling them and reload.');
     }
 
     this.acq_b_h = function (e) {
@@ -349,25 +406,51 @@ Geo_ui = function (form) {
 
     this.loc_use_h = function (e) {
 	OAT.Event.prevent(e);
-        if (self.lat_i.value == '' ||
-            self.lon_i.value == '' ||
-            $(cond_dist).value == '') return;
+        if ((self.lat_i.value == '' || self.lon_i.value == '') && self.loc_trig_sel.selectedIndex == 0)
+	    return;
+        if ($('cond_dist').value == '')
+            return;
+	if (self.loc_trig_sel.selectedIndex == 1) {
+	    self.lat_i.value='';
+	    self.lon_i.value='';
+	}
         self.form.submit();
     }
 
+    this.loc_update = function (cno) {
+	self.update = cno;
+	self.lc.acquireCurrent();
+    }
+
+    this.loc_trig_sel_h = function (e) {
+	if (e.target.selectedIndex == 1) {
+            OAT.Dom.hide (self.coord_ctr);
+	    OAT.Dom.hide (self.acq_b);
+        } else {
+	    OAT.Dom.show (self.coord_ctr);
+            OAT.Dom.show (self.acq_b);
+	}
+    }
+
     this.init = function () {
 	self.loc_acq_thr_i = $('loc_acq_thr_i');
 	self.loc_i = $('cond_loc');
 	self.lat_i = $('cond_lat');
 	self.lon_i = $('cond_lon');
 	self.acc_i = $('cond_acc');
-
+	self.cmd_i = $('cmd');
+	self.cno_i = $('cno');
 	self.acq_b = $('cond_loc_acq_b');
+        self.coord_ctr = $('coord_ctr');
+
 	OAT.Event.attach (self.acq_b, 'click', self.acq_b_h);
 
 	self.loc_use_b = $('cond_loc_use_b')
 	OAT.Event.attach (self.loc_use_b, 'click', self.loc_use_h);
 
+	self.loc_trig_sel = $('loc_trig_sel');
+        OAT.Event.attach (self.loc_trig_sel, 'change', self.loc_trig_sel_h);
+
         OAT.MSG.attach (self.lc, "LOCATION_ACQUIRED", self.loc_acq_h);
         OAT.MSG.attach (self.lc, "LOCATION_ERROR", self.loc_err_h);
         OAT.MSG.attach (self.lc, "LOCATION_TIMEOUT", self.loc_to_h);
@@ -429,13 +512,13 @@ In_ui = function (dom_ctr, form) {
 
         if (isNaN (parseInt(_val)) && (isNaN (parseFloat(_val))))
             _val = '"'+_val+'"';
-	
+
 	self.add_val (_val, _dt, _lang);
-    } 
+    }
 
     this.val_change_h = function (e) {
 
-	}
+    }
 
     this.make_val_row = function (d, i) {
 	var new_r = OAT.Dom.create ('tr');
@@ -446,19 +529,19 @@ In_ui = function (dom_ctr, form) {
 
 	new_val_col.innerHTML  = d.val;
 	new_dt_col.innerHTML   = d.dt;
-	new_lang_col.innerHTML = d.lang;	
+	new_lang_col.innerHTML = d.lang;
 
         var del_a = OAT.Dom.create ('a', {}, 'in_del');
 	del_a.innerHTML = 'Delete';
 
 	OAT.Event.attach (del_a, 'click', function () {
 	    self.del_val (i);
-    });
+	});
 
 	OAT.Dom.append ([new_cmd_col, del_a]);
 	OAT.Dom.append ([new_r, new_val_col, new_dt_col, new_lang_col, new_cmd_col]);
         return new_r;
-    } 
+    }
 
     this.sort_fun = function (a,b) {
 	return (a.val > b.val);
@@ -489,10 +572,10 @@ In_ui = function (dom_ctr, form) {
 
     this.mk_cond_parm = function (d) {
 	var elm = '<cond-parm ' +
-	    self.mk_attr ('datatype', d.dt) + 
-	    ' ' + 
+	    self.mk_attr ('datatype', d.dt) +
+	    ' ' +
 	    self.mk_attr ('lang', d.lang) + '>';
-	
+
 	return (elm.concat(OAT.Dom.toSafeXML(d.val),'</cond-parm>'));
     }
 
@@ -500,11 +583,11 @@ In_ui = function (dom_ctr, form) {
 	OAT.Event.prevent(e);
 	var val_s = '';
         if (!self.data.length) return;
-        
+
         for (var i=0;i < self.data.length;i++) {
 	    val_s = val_s.concat(self.mk_cond_parm (self.data[i]));
-	}	    
-	
+	}
+
         self.cond_parms.value = val_s;
         self.form.submit();
     }
@@ -527,7 +610,7 @@ In_ui = function (dom_ctr, form) {
 	OAT.Dom.append ([new_dt_c, self.new_dt_i]);
 	OAT.Dom.append ([new_lang_c, self.new_lang_i]);
 	OAT.Dom.append ([new_val_add_c, new_add_btn]);
-     
+
 	OAT.Dom.append ([self.manual_r, new_val_c, new_dt_c, new_lang_c, new_val_add_c]);
 
  	OAT.Event.attach (new_add_btn, 'click', self.val_add_h);
@@ -550,12 +633,12 @@ In_ui = function (dom_ctr, form) {
  	OAT.Event.attach (self.new_add_btn, 'click', self.val_add_h);
  	OAT.Event.attach (self.set_cond_btn, 'click', self.submit);
 
-        OAT.Dom.append ([self.val_list_t, 
-			 self.val_list_thead, 
+        OAT.Dom.append ([self.val_list_t,
+			 self.val_list_thead,
 			 self.val_list_tbody]);
 
-        OAT.Dom.append ([self.dom_ctr, 
-			 self.val_list_t, 
+        OAT.Dom.append ([self.dom_ctr,
+			 self.val_list_t,
 			 self.set_cond_btn]);
 
 	self.refresh();
@@ -588,7 +671,7 @@ function handle_val_anchor_click (e) {
     case "eq":
     case "neq":
     case "contains":
-	OAT.Event.prevent(e);
+        OAT.Event.prevent(e);
 	$('cond_lo').value = val;
 	break;
     case "range":
@@ -596,15 +679,27 @@ function handle_val_anchor_click (e) {
         OAT.Event.prevent(e);
 	if ($v('cond_lo') != '')
 	    $('cond_hi').value = val;
-	else 
+	else
 	    $('cond_lo').value = val;
 	break;
     case "in":
+    case "not_in":
 	OAT.Event.prevent(e);
         in_ui.add_val (val, dtp, lang);
         break;
     }
+    // XXX should warn user if setting range option with values of different dtp
+
     $('out_dtp').value = dtp;
+
+    for (i=0;i<$('cond_dt').options.length;i++) {
+	var opt = $('cond_dt').options[i];
+	if (opt.value == dtp)
+	    opt.selected = true;
+        else
+	    opt.selected = false;
+    }
+
     $('out_lang').value = lang;
 }
 
@@ -623,43 +718,47 @@ function prop_cond_sel_init () {
 var in_ui = false;
 var geo_ui = false;
 
-function init()
+function init () {
+    fct_init_ui (); // Yes, the xsl sheet overrides ini, but this hack needs to be here in order for the main query page to work.
+}
+
+function fct_init_ui ()
 {
     resize_handler ();
     OAT.Event.attach (window, 'resize', resize_handler);
 
     if ($('main_srch')) {
-    uri_ac = new OAT.Autocomplete('new_uri_txt',
-			          'new_uri_val',
-                                  'new_uri_btn', 
-                                  'new_uri_fm', 
-                                  {get_ac_matches: fct_uri_ac_get_matches});
+	uri_ac = new OAT.Autocomplete('new_uri_txt',
+			              'new_uri_val',
+                                      'new_uri_btn',
+                                      'new_uri_fm',
+                                      {get_ac_matches: fct_uri_ac_get_matches});
 
-    lbl_ac = new OAT.Autocomplete('new_lbl_txt',
-				  'new_lbl_val',
-				  'new_lbl_btn',
-				  'new_lbl_fm',
-                                  {get_ac_matches: fct_lbl_ac_get_matches});
-				  
+	lbl_ac = new OAT.Autocomplete('new_lbl_txt',
+				      'new_lbl_val',
+				      'new_lbl_btn',
+				      'new_lbl_fm',
+                                      {get_ac_matches: fct_lbl_ac_get_matches});
 
-    var tabs = new OAT.Tab ('TAB_CTR', {dockMode: false});
 
-    tabs.add ('TAB_TXT', 'TAB_PAGE_TXT');
-    tabs.add ('TAB_URI', 'TAB_PAGE_URI');
-    tabs.add ('TAB_URILBL', 'TAB_PAGE_URILBL');
+	var tabs = new OAT.Tab ('TAB_CTR', {dockMode: false});
 
-    tabs.go (0);
+	tabs.add ('TAB_TXT', 'TAB_PAGE_TXT');
+	tabs.add ('TAB_URI', 'TAB_PAGE_URI');
+	tabs.add ('TAB_URILBL', 'TAB_PAGE_URILBL');
+
+	tabs.go (0);
 
 	OAT.MSG.attach ('*', 'AJAX_START', function () { ac_show_thr () });
 
-    OAT.Dom.show ('main_srch');  
-	
-        if ((typeof window.external =="object") && 
-            ((typeof window.external.AddSearchProvider == "unknown") || 
-             (typeof window.external.AddSearchProvider == "function"))) 
+	OAT.Dom.show ('main_srch');
+
+        if ((typeof window.external =="object") &&
+            ((typeof window.external.AddSearchProvider == "unknown") ||
+             (typeof window.external.AddSearchProvider == "function")))
           {
-              OAT.Event.attach ('opensearch_link', 
-                                'click', 
+              OAT.Event.attach ('opensearch_link',
+                                'click',
                                 function () { window.external.AddSearchProvider(location.protocol+'//'+location.host+'/fct/opensearchdescription.vsp'); });
           }
     }
@@ -677,9 +776,11 @@ function init()
 	prop_val_anchors_init();
         prop_cond_sel_init();
 
-	if (!in_ui) 
+	if (!in_ui)
 	    in_ui = new In_ui ('in_ctr','cond_form');
 
+
+
 	OAT.Dom.hide('cond_hi_ctr');
 
 	OAT.Event.attach('cond_type', 'change', function (e) {
@@ -694,22 +795,30 @@ function init()
             case "gte":
             case "eq":
             case "neq":
+                in_ui.hide ();
+		OAT.Dom.show ('cond_inp_ctr');
+		OAT.Dom.show ('cond_dt');
+		OAT.Dom.hide ('cond_hi_ctr');
+                break;
             case "contains":
                 in_ui.hide ();
 		OAT.Dom.show ('cond_inp_ctr');
 		OAT.Dom.hide ('cond_hi_ctr');
+                OAT.Dom.hide ('cond_dt');
 		break;
 	    case "range":
             case "neg_range":
                 in_ui.hide();
 		OAT.Dom.show ('cond_inp_ctr');
 		OAT.Dom.show ('cond_hi_ctr');
+		OAT.Dom.show ('cond_dt');
 		break;
             case "in":
+	    case "not_in":
                 OAT.Dom.hide ('cond_inp_ctr');
-		OAT.Dom.hide ('cond_hi_ctr');
+                OAT.Dom.hide ('cond_hi_ctr');
                 in_ui.show();
-		break;
+                break;
 /*            case "near":
                 in_ui.hide();
                 OAT.Dom.hide ('cond_inp_ctr');
@@ -720,6 +829,7 @@ function init()
     }
 }
 
+
 // opts = { loader: function  - function gets called when user hits tab or stops entering text
 //          timer_interval: timer interval in msec };
 //
@@ -728,7 +838,7 @@ function init()
 
 OAT.Autocomplete = function (_input, _value_input, _button, _form, optObj) {
     var self = this;
-    
+
     this.timer = 0;
     this.value = 0;
 
@@ -737,17 +847,17 @@ OAT.Autocomplete = function (_input, _value_input, _button, _form, optObj) {
 	timer_interval:1000,
 	onchange:function() {}
     }
-	
+
     for (var p in optObj) { self.options[p] = optObj[p]; }
-    
+
     this.div = OAT.Dom.create("div", {}, "autocomplete");
-    
+
     this.list = OAT.Dom.create("div",
 			       {position:"absolute",left:"0px",top:"0px",zIndex:1001},
 			       "autocomplete_list");
-    
+
     self.instant = new OAT.Instant (self.list);
-    
+
     this.submit_form = function() {
 	if (self.value) {
 	    self.val_inp.value = self.value;
@@ -777,7 +887,7 @@ OAT.Autocomplete = function (_input, _value_input, _button, _form, optObj) {
 
     this.keydown_handler = function (e)
     {
-	if ((e.keyCode && e.keyCode == 13) || 
+	if ((e.keyCode && e.keyCode == 13) ||
             (e.which && e.which == 13)) {
 	    self.val_inp.value = '';
 	    if (self.timer)
@@ -789,7 +899,7 @@ OAT.Autocomplete = function (_input, _value_input, _button, _form, optObj) {
 	}
     }
 
-    this.blur_handler = function (e) 
+    this.blur_handler = function (e)
     {
 	if (self.timer) {
 	    window.clearTimeout (self.timer);
@@ -797,18 +907,18 @@ OAT.Autocomplete = function (_input, _value_input, _button, _form, optObj) {
 	}
     }
 
-    this.btn_handler = function(e) 
+    this.btn_handler = function(e)
     {
 	self.submit_form();
     }
 
-    
-    this.clear_opts = function() 
+
+    this.clear_opts = function()
     {
 	OAT.Dom.clear(self.list);
     }
-	
-    this.add_option = function(name, value) 
+
+    this.add_option = function(name, value)
     {
 	var n = name;
 	var v = name;
@@ -820,7 +930,7 @@ OAT.Autocomplete = function (_input, _value_input, _button, _form, optObj) {
 	var opt_lbl = OAT.Dom.create ("span", {}, "opt_lbl");
         opt_lbl.innerHTML = n;
 
-	var opt_iri = OAT.Dom.create ("span", {}, "opt_iri"); 
+	var opt_iri = OAT.Dom.create ("span", {}, "opt_iri");
 	opt_iri.innerHTML = v;
 
 	opt.value = v;
@@ -831,7 +941,7 @@ OAT.Autocomplete = function (_input, _value_input, _button, _form, optObj) {
 	self.list.appendChild(opt);
     }
 
-    this.attach = function(option) 
+    this.attach = function(option)
     {
 	var ref = function(event) {
 	    self.value       = option.value;
@@ -846,7 +956,7 @@ OAT.Autocomplete = function (_input, _value_input, _button, _form, optObj) {
     }
 
     this.set_opts = function (opt_list)
-    {	
+    {
 	if (opt_list.length) {
 	    for (var i=0;i<opt_list.length;i=i+2) {
 		this.add_option(opt_list[i], opt_list[i+1]);
@@ -856,9 +966,9 @@ OAT.Autocomplete = function (_input, _value_input, _button, _form, optObj) {
 	else
 	    self.btn.disabled = true;
     }
-	
+
     this.set_uri_opts = function (opt_list)
-    {	
+    {
 	if (opt_list.length) {
 	    for (var i=0;i<opt_list.length;i=i+1) {
 		this.add_option(opt_list[i]);
@@ -868,7 +978,7 @@ OAT.Autocomplete = function (_input, _value_input, _button, _form, optObj) {
 	else
 	    self.btn.disabled = true;
     }
-	
+
     this.show_popup = function ()
     {
 	self.instant.show();
@@ -878,8 +988,8 @@ OAT.Autocomplete = function (_input, _value_input, _button, _form, optObj) {
     {
 	self.instant.hide();
     }
-	
-    self.instant.options.showCallback = function() 
+
+    self.instant.options.showCallback = function()
     {
 	var coords = OAT.Dom.position(self.input);
 	var dims = OAT.Dom.getWH(self.input);
@@ -961,3 +1071,4 @@ function fct_set_pivot_href_opt()
   href = href.replace(/CXML_redir_for_hrefs=[^&]*&/, 'CXML_redir_for_hrefs='+opt+'&');
   a.setAttribute("href", href);
 }
+
diff --git a/binsrc/b3s/facet.sql b/binsrc/b3s/facet.sql
index 1646206..c5dbbba 100644
--- a/binsrc/b3s/facet.sql
+++ b/binsrc/b3s/facet.sql
@@ -1,10 +1,10 @@
 --
---  $Id: facet.sql,v 1.1.2.27 2011/10/26 15:38:11 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -23,15 +23,58 @@
 -- Facet web service
 
 
-create procedure 
-fct_dbg_msg (in str varchar)
+create procedure
+fct_dbg_msg (in str varchar, in lvl int := 666)
 {
   declare d_lvl int;
+  declare d_mode varchar;
+
+  d_lvl := connection_get ('fct_dbg_lvl');
+  d_mode := connection_get ('fct_dbg_mode');
 
-  d_lvl := registry_get ('fct_dbg_lvl');
-  if (isstring (d_lvl)) d_lvl := atoi (d_lvl);
+  if (lvl < d_lvl) return;
 
-  if (d_lvl > 0) dbg_printf ('%s', str);
+  if (d_lvl)
+    {
+      if (d_mode = 'stderr')
+        {
+          dbg_printf ('%s', str);
+	  return;
+        }
+      if (d_mode = 'page')
+        {
+          declare d_out_s any;
+          d_out_s := connection_get ('__fct_dbg_out');
+          if (d_out_s)
+            http (str || '\n', d_out_s);
+        }
+    }
+}
+;
+
+create procedure
+fct_render_dbg_out ()
+{
+  declare d_lvl int;
+  declare d_out varchar;
+
+  d_lvl := connection_get ('fct_dbg_lvl');
+  d_out := connection_get ('fct_dbg_out');
+
+  if (not d_lvl) return;
+  if (not d_out) { dbg_printf ('fct_render_dbg_out: no d_out'); return; }
+
+  declare d_ses any;
+  d_ses := connection_get ('__fct_dbg_out');
+
+  if (d_ses)
+    {
+      http('<div id="dbg_output"><pre>');
+      http_value (d_ses);
+      http('</pre></div>');
+    }
+  else
+    dbg_printf ('fct_render_dbg_out: no string session to write to!');
 }
 ;
 
@@ -167,8 +210,8 @@ FCT_LABEL (in x any, in g_id iri_id_8, in ctx varchar)
   label_iri := iri_id_from_num (atoi (registry_get ('fct_label_iri')));
   best_str := null;
   best_l := 0;
-  for select o, p 
-    from rdf_quad table option (index primary key) 
+  for select o, p
+    from rdf_quad table option (index primary key)
     where s = x and p in (rdf_super_sub_list (ctx, label_iri, 3)) do
     {
       if (is_rdf_box (o) or isstring (o))
@@ -179,8 +222,8 @@ FCT_LABEL (in x any, in g_id iri_id_8, in ctx varchar)
 	    l := length (o);
 	  if (l > best_l)
 	    {
-	    best_str := o;
-	    best_l := l;
+	      best_str := o;
+	      best_l := l;
 	    }
 	}
     }
@@ -220,7 +263,7 @@ FCT_LABEL_DP_L (in x any, in g_id iri_id_8, in ctx varchar, in lng varchar)
 	  str_lang := (select RL_ID from RDF_LANGUAGE where RL_TWOBYTE = lng_pref);
 	}
       else
-        str_lang := 'en';	
+        str_lang := 'en';
       q := cmp_get_lang_by_q (lng, str_lang);
 
       if (is_rdf_box (o) or isstring (o))
@@ -240,8 +283,8 @@ FCT_LABEL_DP_L (in x any, in g_id iri_id_8, in ctx varchar, in lng varchar)
 	    l := length (o);
 	  if (l > best_l)
 	    {
-	    best_str := o;
-	    best_l := l;
+	      best_str := o;
+	      best_l := l;
 	    }
 	}
     }
@@ -267,15 +310,16 @@ FCT_LABEL_NP (in x any, in g_id iri_id_8, in ctx varchar, in lng varchar := 'en'
   best_str := '';
   best_l := 0;
   best_q := 0;
-  for select __ro2sq (o) as o
+  for select o
         from rdf_quad table option (index rdf_quad)
-        where s = x and p in (rdf_super_sub_list (ctx, label_iri, 3)) do
+        where s = x and p in (rdf_super_sub_list (ctx, label_iri, 3)) order by cast (b3s_lbl_order (P) as int) do
     {
+      o := __ro2sq (o);
       lang_id := rdf_box_lang (o);
       if (lang_id > 257)
 	str_lang := (select RL_ID from RDF_LANGUAGE where RL_TWOBYTE = lang_id);
       else
-        str_lang := 'en';	
+        str_lang := 'en';
       q := cmp_get_lang_by_q (lng, str_lang);
       if (is_rdf_box (o) or isstring (o))
 	{
@@ -316,7 +360,7 @@ FCT_LABEL_S (in x any, in g_id iri_id_8, in ctx varchar, in lng varchar)
 	  str_lang := (select RL_ID from RDF_LANGUAGE where RL_TWOBYTE = lng_pref);
 	}
       else
-        str_lang := 'en';	
+        str_lang := 'en';
       q := cmp_get_lang_by_q (lng, str_lang);
 
       if (is_rdf_box (o) or isstring (o))
@@ -415,6 +459,8 @@ og:longitude rdfs:subPropertyOf geo:long .
 <http://poolparty.punkt.at/demozone/ont#title> rdfs:subPropertyOf virtrdf:label .
 <http://purl.uniprot.org/core/scientificName> rdfs:subPropertyOf virtrdf:label .
 <http://www.openlinksw.com/schemas/googleplus#activity_title> rdfs:subPropertyOf virtrdf:label .
+<http://linkedopencommerce.com/schemas/icecat/v1/hasShortSummaryDescription> rdfs:subPropertyOf virtrdf:label .
+<http://yago-knowledge.org/resource/hasPreferredName> rdfs:subPropertyOf virtrdf:label .
 ', 'xx', 'facets');
 
 rdfs_rule_set ('facets', 'facets');
@@ -426,11 +472,11 @@ fct_inf_val (in tree any)
 {
   declare i varchar;
 
- i := cast (xpath_eval ('/query/@inference', tree) as varchar);
+  i := cast (xpath_eval ('/query/@inference', tree) as varchar);
 
   if (i is null or '' = i)
     return null;
-  return i;  
+  return i;
 }
 ;
 
@@ -443,7 +489,7 @@ fct_inf_clause (in tree any)
 
   if (i is not null)
     return sprintf (' define input:inference "%s" ', i);
-    return '';
+  return '';
 }
 ;
 
@@ -452,7 +498,7 @@ fct_sas_val (in tree any)
 {
   declare i varchar;
 
- i := cast (xpath_eval ('/query/@same-as', tree) as varchar);
+  i := cast (xpath_eval ('/query/@same-as', tree) as varchar);
 
   if (i is null or '' = i)
     return null;
@@ -469,7 +515,7 @@ fct_sas_clause (in tree any)
 
   if (i is not null)
     return sprintf (' define input:same-as "%s" ', i);
-    return '';
+  return '';
 }
 ;
 
@@ -503,11 +549,10 @@ fct_dtp (in x any)
   declare dtp any;
 
   dtp := rdf_datatype_of_long (x, UNAME'http://www.openlinksw.com/schemas/facets/dtp/plainstring');
-  return (id_to_iri (dtp)); 
+  return (id_to_iri (dtp));
 }
 ;
 
-
 --
 -- Handle any DTs which need special serialization in FILTER, etc.
 --
@@ -521,7 +566,7 @@ fct_sparql_ser (in x any)
   return '';
 }
 ;
-	
+
 create procedure
 fct_lang (in x any)
 {
@@ -533,14 +578,16 @@ fct_lang (in x any)
 }
 ;
 
-create procedure 
+create procedure
 fct_get_mode (in tree any, in xp any)
 {
   declare view_type varchar;
   view_type := cast (xpath_eval (xp, tree, 1) as varchar);
+
   if (0 and sys_stat ('cl_run_local_only') and view_type = 'text-d')
     view_type := 'text';
-  return view_type;  
+
+  return view_type;
 }
 ;
 
@@ -550,7 +597,7 @@ fct_xml_wrap (in tree any, in txt any)
   declare view_type varchar;
   view_type := fct_get_mode (tree, '//view/@type');
 
-  declare ntxt, texp any;
+  declare ntxt any; -- , texp any;
   ntxt := string_output ();
 
   declare n_cols int;
@@ -559,8 +606,6 @@ fct_xml_wrap (in tree any, in txt any)
   fct_dbg_msg (sprintf ('fct_xml_wrap: view_type: %s', view_type));
   fct_dbg_msg (sprintf ('              n_cols   : %d', n_cols));
 
---  dbg_obj_print (xpath_eval ('//query/text', tree, 1));
- 
   if (n_cols = 2)
     {
       if (view_type = 'text')
@@ -568,14 +613,14 @@ fct_xml_wrap (in tree any, in txt any)
 	  http (sprintf ('select xmlelement ("result", xmlattributes (''%s'' as "type"),
                               xmlagg (xmlelement ("row",
                                                   xmlelement ("column",
-                                                              xmlattributes (''trank'' as "datatype"),
+                                                              xmlattributes (''trank'' as "trank"),
                                                               "sc"),
                                                   xmlelement ("column",
-                                                              xmlattributes (''erank'' as "datatype"),
+                                                              xmlattributes (''erank'' as "erank"),
                                                               "rank"),
---                                                  xmlelement ("column",
---                                                              xmlattributes (''g'' as "datatype"),
---                                                              __ro2sq ("g")),
+                                                  xmlelement ("column",
+                                                              xmlattributes (''g'' as "graph"),
+                                                              __ro2sq ("g")),
                                                   xmlelement ("column",
                                                               xmlattributes (fct_lang ("c1") as "xml:lang",
                                                                              fct_dtp ("c1") as "datatype",
@@ -589,10 +634,10 @@ fct_xml_wrap (in tree any, in txt any)
 	}
       else if (view_type = 'text-d')
 	{
-	  texp := cast (xpath_eval ('string (//query/text)', tree, 1) as varchar);
-	  http ('select  xmlelement (\'result\', 
-	  			     xmlattributes (\'text-d\' as "type"), 
-				     "res") 
+--	  texp := cast (xpath_eval ('string (//query/text)', tree, 1) as varchar);
+	  http ('select  xmlelement (\'result\',
+	  			     xmlattributes (\'text-d\' as "type"),
+				     "res")
 				     from (sparql ', ntxt);
 	}
       else if (view_type = 'entities-list' or view_type = 'list' or view_type = 'propval-list')
@@ -635,9 +680,9 @@ fct_xml_wrap (in tree any, in txt any)
                                                                fct_sparql_ser ("c1") as "sparql_ser"),
 							       __ro2sq ("c1")),
 				xmlelement ("column", fct_label_np ("c1", 0, ''facets'' )))))
-	     from (sparql define output:valmode "LONG"', view_type), ntxt);
+	     from (sparql define output:valmode "LONG" ', view_type), ntxt);
   if (n_cols = 3)
-    http ('select xmlelement ("result", xmlattributes ('''' as "type"),
+    http (sprintf ('select xmlelement ("result", xmlattributes (''%s'' as "type"),
                               xmlagg (xmlelement ("row",
                                                   xmlelement ("column",
                                                               xmlattributes (fct_lang ("c1") as "xml:lang",
@@ -649,7 +694,7 @@ fct_xml_wrap (in tree any, in txt any)
                                                   xmlelement ("column", __ro2sq ("c2")),
                                                   xmlelement ("column", __ro2sq ("c3"))
 						  	)))
-             from (sparql define output:valmode "LONG" ', ntxt);
+             from (sparql define output:valmode "LONG" ', view_type), ntxt);
 
 
   http (txt, ntxt);
@@ -681,7 +726,6 @@ element_split (in val any)
   declare k integer;
   declare sall any;
 
-
   --srch_split := '';
   --k := 0;
   --sall := split_and_decode(val, 0, '\0\0 ');
@@ -731,14 +775,14 @@ fct_view (in tree any, in this_s int, in txt any, in pre any, in post any, in fu
   declare geo_conds any;
   geo_conds := xpath_eval ('//cond/@cond_t = ''near''', full_tree);
 
-  if (0 <> geo_conds and mode <> 'geo') 
+  if (0 <> geo_conds and mode <> 'geo')
     mode := 'geo-list';
 
   fct_dbg_msg (sprintf('fct_view: view mode: %s', mode));
 
   if ('list' = mode or 'propval-list' = mode)
     {
-      http (sprintf ('select distinct ?s%d as ?c1 ', this_s), pre);
+      http (sprintf ('select distinct ?s%d as ?c1 ?g', this_s), pre);
       http (sprintf (' order by desc (<LONG::IRI_RANK> (?s%d)) ', this_s), post);
     }
 
@@ -747,17 +791,20 @@ fct_view (in tree any, in this_s int, in txt any, in pre any, in post any, in fu
       http (sprintf ('select ?s%d as ?c1 count (*) as ?c2 ', this_s), pre);
       http (sprintf (' group by ?s%d order by desc 2', this_s), post);
     }
+
   if ('entities-list' = mode)
     {
       http (sprintf ('select distinct ?s%d as ?c1 ', this_s), pre);
       http (sprintf (' order by desc (<LONG::IRI_RANK> (?s%d)) ', this_s), post);
     }
+
   if ('properties' = mode)
     {
       if (length (fct_inf_clause (tree)) > 0)
 	http (sprintf ('select ?s%dp as ?c1 count (distinct (?s%d)) as ?c2 ', this_s, this_s), pre);
       else
 	http (sprintf ('select ?s%dp as ?c1 count (*) as ?c2 ', this_s), pre);
+
       http (sprintf (' ?s%d ?s%dp ?s%do .', this_s, this_s, this_s), txt);
       http (sprintf (' group by ?s%dp order by desc 2', this_s), post);
     }
@@ -784,13 +831,14 @@ fct_view (in tree any, in this_s int, in txt any, in pre any, in post any, in fu
       http (sprintf (' ?s%d a ?s%dc .', this_s, this_s), txt);
       http (sprintf (' group by ?s%dc order by desc 2', this_s), post);
     }
+
   if ('text' = mode or ('text-d' = mode and plain = 1))
     {
       declare exp any;
 
       exp := cast (xpath_eval ('//text', tree) as varchar);
 
-      http (sprintf ('select ?s%d as ?c1, (bif:search_excerpt (bif:vector (%s), ?o%d)) as ?c2, ?sc, ?rank where {{{ select ?s%d, (?sc * 3e-1) as ?sc, ?o%d, (sql:rnk_scale (<LONG::IRI_RANK> (?s%d))) as ?rank ',
+      http (sprintf ('select ?s%d as ?c1, (bif:search_excerpt (bif:vector (%s), ?o%d)) as ?c2, ?sc, ?rank, ?g where {{{ select ?s%d, (?sc * 3e-1) as ?sc, ?o%d, (sql:rnk_scale (<LONG::IRI_RANK> (?s%d))) as ?rank, ?g',
             this_s,
    	    element_split (exp),
 		     this_s, this_s, this_s, this_s), pre);
@@ -803,18 +851,21 @@ fct_view (in tree any, in this_s int, in txt any, in pre any, in post any, in fu
   if ('text-d' = mode)
     {
       declare exp any;
+
       exp := charset_recode (xpath_eval ('string (//text)', tree), '_WIDE_', 'UTF-8');
-      http (sprintf ('select 
-		  	(<sql:s_sum_page> (<sql:vector_agg> (<bif:vector> (?c1, ?sm)), <bif:vector> (%s)))  as ?res where { { 
-      select (<SHORT_OR_LONG::>(?s%d)) as ?c1,  (<sql:S_SUM> ( <SHORT_OR_LONG::IRI_RANK> (?s%d), <SHORT_OR_LONG::>(?s%dtextp), <SHORT_OR_LONG::>(?o%d), ?sc ) ) as ?sm ', element_split (exp), this_s, this_s, this_s, this_s), pre);
 
-      http (sprintf ('order by desc (<sql:sum_rank> ((<sql:S_SUM> ( <SHORT_OR_LONG::IRI_RANK> (?s%d), <SHORT_OR_LONG::>(?s%dtextp), <SHORT_OR_LONG::>(?o%d), ?sc ) ) ) )', this_s, this_s, this_s), post);	    
+--      dbg_obj_print (exp);
+--      dbg_obj_print (element_split(exp));
+
+      http (sprintf ('select
+		  	(<sql:s_sum_page> (<sql:vector_agg> (<bif:vector> (?c1, ?sm, ?g1)), <bif:vector> (%s))) as ?res where { { 
+      select (<SHORT_OR_LONG::>(?s%d)) as ?c1,  (<sql:S_SUM> ( <SHORT_OR_LONG::IRI_RANK> (?s%d), <SHORT_OR_LONG::>(?s%dtextp), <SHORT_OR_LONG::>(?o%d), ?sc ) ) as ?sm, <SHORT_OR_LONG::>(?g) as ?g1', element_split (exp), this_s, this_s, this_s, this_s), pre);
+
+      http (sprintf ('order by desc (<sql:sum_rank> ((<sql:S_SUM> ( <SHORT_OR_LONG::IRI_RANK> (?s%d), <SHORT_OR_LONG::>(?s%dtextp), <SHORT_OR_LONG::>(?o%d), ?sc ) ) ) )', this_s, this_s, this_s), post);
       fct_post (tree, post, lim, offs);
       http ('}}', post);
       return;
     }
-
-
   if ('graphs' = mode)
     {
       http ('select ?g as ?c1, count(*) as ?c2 ', pre);
@@ -824,22 +875,26 @@ fct_view (in tree any, in this_s int, in txt any, in pre any, in post any, in fu
     {
       declare loc any;
       loc := xpath_eval ('@location-prop', tree);
+
       if (loc = 'any')
 	{
 	  loc := '?anyloc';
-	  http (sprintf ('select distinct ?location as ?c1 ?lat%d as ?c2 ?lng%d as ?c3 ', this_s, this_s, this_s), pre);
+	  http (sprintf ('select distinct ?location as ?c1 ?lat%d as ?c2 ?lng%d as ?c3 ', 
+                         this_s, this_s, this_s), pre);
 	}
       else
-        http (sprintf ('select distinct ?s%d as ?c1 ?lat%d as ?c2 ?lng%d as ?c3 ', this_s, this_s, this_s), pre);
+        http (sprintf ('select distinct ?s%d as ?c1 ?lat%d as ?c2 ?lng%d as ?c3 ', 
+                       this_s, this_s, this_s), pre);
+
       if (length (loc) < 2)
-         http (sprintf (' ?s%d geo:lat ?lat%d ; geo:long ?lng%d .', this_s, this_s, this_s), txt);
+         http (sprintf (' ?s%d geo:lat ?lat%d ; geo:long ?lng%d .', 
+                        this_s, this_s, this_s), txt);
       else
-         http (sprintf (' ?s%d %s ?location . ?location geo:lat ?lat%d ; geo:long ?lng%d .', this_s, loc, this_s, this_s), txt);
-
+         http (sprintf (' ?s%d %s ?location . ?location geo:lat ?lat%d ; geo:long ?lng%d .', 
+                        this_s, loc, this_s, this_s), txt);
     }
 
   fct_post (tree, post, lim, offs);
-
 }
 ;
 
@@ -849,7 +904,7 @@ fct_literal (in tree any)
   declare val, dtp, lang varchar;
 
   dtp := cast (xpath_eval ('./@datatype', tree) as varchar);
-  lang := cast (xpath_eval ('./@xml:lang', tree) as varchar);
+  lang := cast (xpath_eval ('./@lang', tree) as varchar);
 
   val := cast (xpath_eval ('./@val', tree) as varchar);
   if (0 = val or val is null) val := cast (tree as varchar);
@@ -867,7 +922,7 @@ fct_literal (in tree any)
 
   if ('uri' = dtp or 'url' = dtp or 'iri' = dtp) {
       return sprintf ('<%s>', val);
-}
+  }
 
   return sprintf ('"%s"^^<%s>', val, dtp);
 }
@@ -887,7 +942,7 @@ fct_cond (in tree any, in this_s int, in txt any)
     return fct_cond_range (tree, this_s, txt); -- ranges are handled elsewhere
   }
 
-  if ('in' = cond_t) {
+  if ('in' = cond_t or 'not_in' = cond_t) {
     return fct_cond_in (tree, this_s, txt); -- so is IN
   }
 
@@ -907,9 +962,9 @@ fct_cond (in tree any, in this_s int, in txt any)
 
 --  dbg_printf ('fct_cond: inner: %s', flt_inner);
 
-  if (neg = 'on')   
+  if (neg = 'on')
     http (sprintf (' filter (! (%s)) . ', flt_inner), txt);
-  else 
+  else
     http (sprintf (' filter (%s) . ', flt_inner), txt);
 
   return;
@@ -917,7 +972,7 @@ fct_cond (in tree any, in this_s int, in txt any)
 ;
 
 create procedure
-fct_value (in tree any, in this_s int, in txt any) 
+fct_value (in tree any, in this_s int, in txt any)
 {
   declare val, dtp, op any;
 
@@ -930,7 +985,7 @@ fct_value (in tree any, in this_s int, in txt any)
   declare t_s varchar;
   t_s := sprintf ('?s%d', this_s);
 
-  http (sprintf (' filter (%s %s %s) .', t_s, op, val));  
+  http (sprintf (' filter (%s %s %s) .', t_s, op, val));
 
   return;
 }
@@ -958,14 +1013,14 @@ fct_cond_range (in tree any, in this_s int, in txt any)
 
   cond_t := xpath_eval ('./@type', tree);
   neg    := xpath_eval ('./@neg',    tree);
-  lo := xpath_eval ('./@lo', tree);
-  hi := xpath_eval ('./@hi', tree);
+  lo     := xpath_eval ('./@lo',     tree);
+  hi     := xpath_eval ('./@hi',     tree);
 
   declare flt_inner, flt_cl varchar;
 
 --  fct_dbg_msg (sprintf ('fct_cond_range: got lo: %s, hi: %s, neg: %s', lo, hi, cast (neg as varchar)));
 
-  if (lo <> '' and hi <> '') { 
+  if (lo <> '' and hi <> '') {
     flt_inner := sprintf ('(?s%d >= %s && ?s%d <= %s)', this_s, lo, this_s, hi);
   }
 
@@ -977,27 +1032,43 @@ fct_cond_range (in tree any, in this_s int, in txt any)
   http (flt_cl, txt);
 
   return;
-  }
+}
 ;
 
-create procedure 
+create procedure
 fct_cond_contains (in tree any, in this_s int, in txt any)
 {
-  declare val, neg, cond_t varchar;
+  declare val, neg, cond_t, txs_qr varchar;
+  declare wlimit int;
+  declare txs_arr any;
 
-  neg    := xpath_eval ('./@neg',    tree);
+  neg := xpath_eval ('./@neg', tree);
 
   val := cast (xpath_eval ('.', tree) as varchar);
 
-  if (val <> '') 
-  {
-    if ('no' <> neg) {
-      http (sprintf (' filter (bif:contains (?s%d, ''"%s"'')) .', this_s, val), txt);
-  }
-    else {
-      http (sprintf (' filter (! bif:contains (?s%d, ''"%s"'')) .', this_s, val), txt);
+  if (val <> '')
+    {
+      wlimit := registry_get ('fct_text_query_limit');
+
+      if (isstring (wlimit))
+        wlimit := atoi (wlimit);
+      if (0 = wlimit)
+        wlimit := 100;
+
+      txs_qr := fti_make_search_string_inner (charset_recode (xpath_eval ('string (.)', tree), '_WIDE_', 'UTF-8'), txs_arr);
+
+      if (length (txs_arr) > wlimit)
+	signal ('22023', 'The request is too large');
+
+      if ('no' <> neg)
+        {
+          http (sprintf (' ?s%d bif:contains ''%s'' .', this_s, txs_qr), txt);
+        }
+      else
+        {
+          http (sprintf (' filter (! bif:contains (?s%d, ''"%s"'')) .', this_s, val), txt);
+        }
     }
-  }
 }
 ;
 
@@ -1007,24 +1078,30 @@ fct_cond_in (in tree any, in this_s int, in txt any) {
   declare v any;
   declare v_str varchar;
   declare i int;
+  declare neg any;
+
+  neg := xpath_eval ('./@neg', tree);
 
   v := xpath_eval ('./cond-parm', tree, 0);
 
   if (0 = length(v)) return;
-  
+
   for (i := 0; i < length(v); i := i + 1) {
     fct_dbg_msg (sprintf ('val: %s\n', cast (xpath_eval ('./text()', v[i]) as varchar)));
 
     if (i = 0) {
      v_str := fct_literal (v[i]);
     }
-    else 
+    else
       v_str := v_str || ',' || fct_literal (v[i]);
   };
 
   fct_dbg_msg (sprintf ('fct_cond_in: v_str: %s', v_str));
 
-  http (sprintf (' filter (?s%d in (%s)).', this_s, v_str), txt);
+  http (sprintf (' filter (%s?s%d in (%s)).', 
+	case when neg = '1' then '! ' else '' end,
+	this_s, 
+	v_str), txt);
 }
 ;
 
@@ -1045,15 +1122,15 @@ fct_cond_near (in tree any, in this_s int, in txt any) {
   d    := xpath_eval ('./@d',   tree, 0);
   prop := xpath_eval ('./@location-prop', tree, 0);
 
-  if (length (lon)  = 0 or 
-      length (lat)  = 0 or 
-      length (d)    = 0) return;
+  if (length(lon) = 0 or length(lat) = 0 or length (d) = 0) return;
 
   lon  := aref (lon, 0);
   lat  := aref (lat, 0);
   d    := cast (aref (d, 0) as int);
   prop := aref (prop, 0);
 
+  if (lon = '' or lat = '') return;
+
   fct_dbg_msg (sprintf ('fct_cond_near: lon:%s, lat:%s, dist: %d', lon, lat, d));
 
   if (length (prop) < 2)
@@ -1061,12 +1138,12 @@ fct_cond_near (in tree any, in this_s int, in txt any) {
   else
     http (sprintf (' ?s%d %s ?location . ?location geo:lat ?lat%d ; geo:long ?lng%d .', this_s, prop, this_s, this_s), txt);
 
-  http (sprintf (' filter (bif:st_intersects (bif:st_point (xsd:float(?lng%d),xsd:float(?lat%d)), bif:st_point (%s,%s), %d)).', 
+  http (sprintf (' filter (bif:st_intersects (bif:st_point (xsd:float(?lng%d),xsd:float(?lat%d)), bif:st_point (%s,%s), %d)).',
                  this_s, this_s, lon, lat, d), txt);
 }
 ;
 
-create procedure 
+create procedure
 fct_curie_iri (in curie varchar)
 {
   declare pos int;
@@ -1077,14 +1154,14 @@ fct_curie_iri (in curie varchar)
     return null;
   pref := subseq (curie, 0, pos);
   loc := subseq (curie, pos + 1);
-  ns := __xml_get_ns_uri (pref, 2); 
+  ns := __xml_get_ns_uri (pref, 2);
   if (ns is null)
     return null;
   return ns || loc;
 }
 ;
 
-create procedure 
+create procedure
 fct_curie (in curie varchar)
 {
   if (curie like '\\[%:%\\]')
@@ -1095,7 +1172,7 @@ fct_curie (in curie varchar)
       if (tmp is not null)
 	curie := tmp;
     }
-  return curie; 
+  return curie;
 }
 ;
 
@@ -1143,13 +1220,16 @@ fct_text (in tree any,
     {
       declare ciri varchar;
       ciri := fct_curie (cast (xpath_eval ('./@iri', tree) as varchar));
+
+      fct_dbg_msg (sprintf ('class: %s', cast (ciri as varchar)));
+
       if (cast (xpath_eval ('./@exclude', tree) as varchar) = 'yes')
 	{
-	  http (sprintf (' filter (!bif:exists ((select (1) where { ?s%d a <%s> } ))) .', this_s, ciri), txt);
+	  http (sprintf (' filter not exists { ?s%d a <%s> } .', this_s, ciri), txt);
 	}
-      else if (ciri is null) 
+      else if (ciri is null)
         {
-	  http (sprintf ('?s%d a ?s%d .', this_s, this_s+1), txt); 
+	  http (sprintf ('?s%d a ?s%d .', this_s, this_s + 1), txt);
         }
       else
 	{
@@ -1180,6 +1260,7 @@ fct_text (in tree any,
         sc_opt := ' option (score ?sc) ';
       else
         sc_opt := '';
+
       if (prop is not null)
 	prop := '<' || prop || '>';
       else
@@ -1189,8 +1270,8 @@ fct_text (in tree any,
       if (isstring (wlimit))
         wlimit := atoi (wlimit);
       if (0 = wlimit)
-        wlimit := 100;	
-      txs_qr := fti_make_search_string_inner (charset_recode (xpath_eval ('string (.)', tree), '_WIDE_', 'UTF-8'), txs_arr);	
+        wlimit := 100;
+      txs_qr := fti_make_search_string_inner (charset_recode (xpath_eval ('string (.)', tree), '_WIDE_', 'UTF-8'), txs_arr);
       if (length (txs_arr) > wlimit)
 	signal ('22023', 'The request is too large');
       http (sprintf (' ?s%d %s ?o%d . ?o%d bif:contains  ''%s'' %s .', this_s, prop, this_s, this_s, txs_qr, sc_opt), txt);
@@ -1211,7 +1292,7 @@ fct_text (in tree any,
 
       if (cast (xpath_eval ('./@exclude', tree) as varchar) = 'yes')
 	{
-	  http (sprintf (' filter (!bif:exists ((select (1) where { ?s%d <%s> ?v%d } ))) .', this_s, piri, new_s), txt);
+	  http (sprintf (' filter not exists { ?s%d <%s> ?v%d } .', this_s, piri, new_s), txt);
 	  max_s := max_s - 1;
 	  new_s := max_s;
 	  fct_text_1 (tree, new_s, max_s, txt, pre, post, full_tree, plain);
@@ -1240,11 +1321,13 @@ fct_text (in tree any,
 
   if ('cond' = n)
     {
+      fct_chk_any_prop (tree, this_s, max_s, txt);
       fct_cond (tree, this_s, txt);
     }
 
   if ('cond-range' = n)
     {
+      fct_chk_any_prop (tree, this_s, max_s, txt);
       fct_cond_range (tree, this_s, txt);
     }
 
@@ -1256,10 +1339,28 @@ fct_text (in tree any,
 ;
 
 create procedure
+fct_chk_any_prop (in tree any, inout this_s int, inout max_s int, in txt any)
+{
+  if (0 = xpath_eval ('count (./ancestor::*[name()=''property''])+ count(./ancestor::*[name()=''property-of''])', tree, 1))
+    {
+      declare dtp varchar;
+      dtp := xpath_eval ('./@dtp', tree, 1);
+
+      declare new_s int;
+      max_s := max_s + 1;
+      new_s := max_s;
+
+      http (sprintf ('?s%d ?s%dcondp ?s%d .', this_s, this_s, new_s), txt);
+      this_s := max_s;
+    }
+}
+;
+
+create procedure
 fct_query (in tree any, in plain integer := 0)
 {
   declare s, add_graph int;
-  declare txt, pre, post any;
+	  declare txt, pre, post any;
 
   txt := string_output ();
   pre := string_output ();
@@ -1268,16 +1369,18 @@ fct_query (in tree any, in plain integer := 0)
   s := 0;
   add_graph := 0;
 
-  if (xpath_eval ('//view[@type="graphs"]', tree) is not null)
+  if (xpath_eval ('//view[@type="graphs"]', tree) is not null or 
+      xpath_eval ('//view[@type="text"]', tree) is not null or 
+      xpath_eval ('//view[@type="text-d"]', tree) is not null)
     add_graph := 1;
 
   fct_text (xpath_eval ('//query', tree), 0, s, txt, pre, post, tree, plain);
 
   http (' where {', pre);
-  if (add_graph) http (' graph ?g { ', pre);
+  if (add_graph) http (' quad map virtrdf:DefaultQuadMap { graph ?g { ', pre);
   http (txt, pre);
   http (' }', pre);
-  if (add_graph) http (' }', pre);
+  if (add_graph) http (' } } ', pre);
   http (post, pre);
 
   return string_output_string (pre);
@@ -1294,6 +1397,7 @@ fct_test (in str varchar, in timeout int := 0)
 
   tree := xtree_doc (str);
   qr := fct_query (xpath_eval ('//query', tree, 1));
+
   qr2 := fct_xml_wrap (tree, qr);
 
   set result_timeout = timeout;
@@ -1322,7 +1426,24 @@ fct_test (in str varchar, in timeout int := 0)
 ;
 
 create procedure
-fct_exec (in tree any, 
+fct_view_pos (in tree any)
+{
+  declare c any;
+  declare i int;
+  c := xpath_eval ('//*[name() = "query" or
+	           name () = "property" or
+	           name () = "property-of"]', tree, 0);
+  for (i := 0; i < length (c); i := i + 1)
+    {
+      if (xpath_eval ('./view', c[i]) is not null)
+	return i;
+    }
+  return 0;
+}
+;
+
+create procedure
+fct_exec (in tree any,
           in timeout int)
 {
   declare start_time, view3, inx, n_rows int;
@@ -1345,7 +1466,9 @@ fct_exec (in tree any,
     }
 
   sqls := '00000';
+
   qr := fct_query (xpath_eval ('//query', tree, 1));
+
   query := qr;
 
   qr2 := fct_xml_wrap (tree, qr);
@@ -1356,13 +1479,16 @@ fct_exec (in tree any,
 
 --  dbg_obj_print (qr2);
 
+  set isolation = 'uncommitted';
   exec (qr2, sqls, msg, vector (), 0, md, res);
 
   n_rows := row_count ();
   act := db_activity ();
   set result_timeout = 0;
+
   if (sqls <> '00000' and sqls <> 'S1TAT')
     signal (sqls, msg);
+
   if (not isarray (res) or 0 = length (res) or not isarray (res[0]) or 0 = length (res[0]))
     results[0] := xtree_doc ('<result/>');
   else
@@ -1370,6 +1496,7 @@ fct_exec (in tree any,
 
   inx := 1;
 
+
   foreach (varchar tp in more) do
     {
       tree := XMLUpdate (tree, '/query/view/@type', tp, '/query/view/@limit', '40', '/query/view/@offset', '0');
@@ -1377,6 +1504,7 @@ fct_exec (in tree any,
       qr2 := fct_xml_wrap (tree, qr);
       sqls := '00000';
       set result_timeout = __min (timeout, atoi (registry_get ('fct_timeout_max')));
+--      dbg_printf ('qr2: %s', qr2);
       exec (qr2, sqls, msg, vector (), 0, md, res);
       n_rows := row_count ();
       act := db_activity ();
@@ -1392,19 +1520,22 @@ fct_exec (in tree any,
       inx := inx + 1;
     }
 
+  declare v_pos integer;
+  v_pos := fct_view_pos(tree);
 
-
-  res := xmlelement ("facets", xmlelement ("sparql", query), 
+  res := xmlelement ("facets", xmlelement ("sparql", query),
                                xmlelement ("time", msec_time () - start_time),
 		               xmlelement ("complete", case when sqls = 'S1TAT' then 'no' else 'yes' end),
 		               xmlelement ("timeout", __min (timeout * 2, atoi (registry_get ('fct_timeout_max')))),
 		               xmlelement ("db-activity", act),
-		               xmlelement ("processed", n_rows), 
-                               xmlelement ("view", xmlattributes (offs as "offset", lim as "limit")),
+		               xmlelement ("processed", n_rows),
+                               xmlelement ("view", xmlattributes (offs as "offset", lim as "limit", v_pos as "position")),
                                results[0], results[1], results[2]);
 
   --String_to_file ('ret.xml', serialize_to_UTF8_xml (res), -2);
 
+--  dbg_obj_print (results[0]);
+
   return res;
 }
 ;
diff --git a/binsrc/b3s/facet.vsp b/binsrc/b3s/facet.vsp
index 7381402..a1d0a9f 100644
--- a/binsrc/b3s/facet.vsp
+++ b/binsrc/b3s/facet.vsp
@@ -1,12 +1,17 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html 
+<!DOCTYPE html
      PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
 <title>Precision Search & Find</title>
 
-<link id="ss" rel="stylesheet" media="screen" type="text/css" href="styles/default.css"/>
+<?vsp
+  declare main_ss varchar;
+  main_ss := registry_get ('fct_main_ss');
+  if (not isstring (main_ss)) main_ss := 'styles/default.css';
+?>
+  <link rel="stylesheet" type="text/css" href="<?=main_ss?>"  charset="utf-8" />
 
 <?vsp
   fct_gen_opensearch_link();
@@ -18,52 +23,65 @@
 <script type="text/javascript" src="oat/toolkit/loader.js"></script>
 <script type="text/javascript" src="facet.js"></script>
 
-<?vsp 
+<?vsp
   declare sid, _S, ses_parms varchar;
 
   b3s_handle_ses (path, lines, params);
 
   sid := connection_get ('sid');
+
+  declare dbg_out any;
+  declare dbg_mode varchar;
+  declare dbg_lvl int;
+
+  dbg_mode := registry_get ('fct_dbg_mode');
+  dbg_lvl := registry_get ('fct_dbg_lvl');
+
+  if (not isstring (dbg_lvl))
+    dbg_lvl := http_param ('dbg');
+
+  if (not isstring (dbg_lvl))
+      dbg_lvl := 0;
+    else
+      dbg_lvl := atoi (dbg_lvl);
+
+  connection_set ('fct_dbg_lvl', dbg_lvl);
+
+  if (not isstring(dbg_mode))
+    dbg_mode := http_param ('dbg_mode');
+
+  if (not isstring (dbg_mode))
+    dbg_mode := 'page';
+
+  connection_set ('fct_dbg_mode', dbg_mode);
+
+  if (dbg_mode := 'page')
+    {
+      dbg_out := string_output();
+      connection_set ('__fct_dbg_out', dbg_out);
+    }
+
 --  dbg_obj_print (path);
 --  dbg_obj_print (lines);
-  
+
 ?>
 
 </head>
 <body>
 <div id="PG">
 <div id="HD">
-  <?vsp fct_page_head (); ?>  
-  <ul id="main_menu">
-    <?vsp if (sid is not null) { ?>
-      <!--li class="sel"><a href="<?= b3s_render_fct_link() ?>" class="sel">Facets</a></li-->
-    <?vsp } ?>
-    <!--li id="mnu_settings"><a href="settings.vsp?g=<?U _S ?><?V ses_parms ?>">Settings</a>
-      <div id="settings_popup" style="display: none">
-        <ul>
-          <li>
-            <input id="sas_ckb" type="checkbox" <?= b3s_sas_selected() ?> onchange="javascript:sas_cb();"/> 
-            <label for="sas_ckb">owl:sameAs</label>
-          </li>
-          <li>
-            <label for="inf_sel">IFP rule:</label>
-            <select id="inf_sel" onchange="javascript:inf_cb();"><?vsp b3s_render_inf_opts (); ?></select><br/>
-          </li>
-        </ul>
-      </div> 
-    </li--><!--settings-popup-->
-  </ul>
+  <?vsp fct_page_head (); ?>
 </div><!-- #HD -->
 <div id="MD">
-<?vsp 
+<?vsp
+--
 --
--- 
---  $Id: facet.vsp,v 1.1.2.14 2011/10/26 15:38:11 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -99,11 +117,11 @@ if ('load' = cmd)
 
     _fsq_id := http_param ('fsq_id');
 
-    if (_fsq_id) 
+    if (_fsq_id)
       {
         _sid := fct_load (_fsq_id);
 	if (_sid is not null)
-          { 
+          {
             http_rewrite ();
 	    http_request_status ('HTTP/1.1 302 Found');
 	    http_header (sprintf ('Location: /fct/facet.vsp?sid=%d&cmd=refresh\r\n', _sid));
@@ -118,62 +136,86 @@ sq := connection_get ('sparql_query');
 
 declare exit handler for sqlstate '*'
 {
+  commit work;
+  declare _state, _out any;
+  declare _xmlser varchar;
+
+  if (isstring (http_param ('sid')))
+    select fct_state into _state from fct_state where fct_sid = http_param ('sid');
+  else
+    _state := null;
+
+  _out := string_output();
+
+  http_value (_state, 0, _out);
+  _xmlser := string_output_string (_out);
+
   http('<div class="error_msg dlg">\n');
   http('  <div class="title"><h2>Error</h2></div>\n');
-  http('  <div class="body">An unexpected error was encountered while processing your request.</div>\n');
+  http('  <div class="body">');
+  http('<p>Could not process your request because of an unexpected error.</p>');
+  http('  </div>\n');
   http('  <div class="diag">\n');
   http('  <h3>Diagnostics</h3>\n');
   http(sprintf ('<pre class="sqlstate">SQLSTATE: %s</pre><br/>\n', __SQL_STATE));
   http(sprintf ('<pre class="sqlmsg">SQLMSG  : %s</pre><br/>\n', __SQL_MESSAGE));
   http('<a href="#" id="err_det_toggle" onclick="javascript: OAT.Dom.show (err_details);">More info…</a>');
   http('  <div id="err_details" style="display:none">');
+
   if (connection_get ('sparql_query') is not null)
-    http(sprintf ('<pre class="sparqlqry">SPARQL:\n%s</pre><br/>\n', connection_get ('sparql_query')));
+    {
+      http('<pre class="sparqlqry">SPARQL:\n');
+      http_value(connection_get ('sparql_query'));
+      http('</pre><br/>\n');
+    }
+
+  http(sprintf ('<p><a href="/fct/facet.vsp?qxml=%U" title="Permalink">Permalink</a></p>', _xmlser));
 
   commit work;
-  declare _state any;
-  select fct_state into _state from fct_state where fct_sid = http_param ('sid');
   insert into fct_log (fl_sid, fl_cli_ip, fl_state, fl_where, fl_cmd, fl_sqlstate, fl_sqlmsg, fl_parms)
-         values (http_param('sid'), 
+         values (http_param('sid'),
 	         http_client_ip (),
 		 _state,
 		 'ERR_HANDLER',
-		 http_param('cmd'), 
+		 http_param('cmd'),
 		 __SQL_STATE,
 		 __SQL_MESSAGE,
 		 serialize(params));
 
   http('    <pre class="facet_state">STATE:\n');
-  http('<![CDATA[\n');
-  http_value(_state);
-  http('\n]]>');
-
-  http('    </pre><br/>');
+  http_value(_xmlser);
+  http('</pre><br/>');
 
   http('  </div>\n');
   http('  </div>\n');
-  http('  <div class="btn_bar"><button onclick="document.location=''/fct/facet.vsp?qq=ww''">New Search</button></div>\n');  
+  http('  <div class="btn_bar"><button onclick="document.location=''/fct/facet.vsp?qq=ww''">New Search</button></div>\n');
   http('</div>\n');
 
   goto footer;
-  
+
 };
 fct_vsp ();
 footer:;
 
 ?>
-<div class="dbg" style="display: none"><pre><![CDATA[<?vsp if (sq is not null) http(sq); ?>]]></div>
+<?vsp if (dbg_lvl) { ?>
+<div class="dbg">
+  <pre><![CDATA[<?vsp if (sq is not null) http(sq); ?>]]></pre>
+<?vsp fct_render_dbg_out ();?>
+</div>
+<?vsp } ?>
+
 </div><!-- #MD -->
 <div id="FT">
   Faceted Search & Find service v<?vsp http(DB.DBA.VAD_CHECK_VERSION('fct')); ?><br/>
   <a href="http://virtuoso.openlinksw.com/"><img src="/fct/images/virt_power_no_border.png" alt="Powered by OpenLink Virtuoso"/></a>
   <a href="http://linkeddata.org"><img src="/fct/images/LoDLogo.gif" alt="Linked Data"/></a>
-  <?vsp 
+  <?vsp
     if (isstring (registry_get ('fst_hosted'))) { http (registry_get ('fst_hosted')); }
   ?>
   <br/>
-  <?vsp fct_virt_info (); ?><br /> 
-  <span class="copyright">Copyright © 2009-2011 OpenLink Software</span>
+  <?vsp fct_virt_info (); ?><br />
+  <span class="copyright">Data on this page is owned by its respective rights holders.<br/>Virtuoso Faceted Browser Copyright © 2009-2012 OpenLink Software</span>
   <div id="FT_L"></div>
   <div id="FT_R"></div>
 </div>
diff --git a/binsrc/b3s/facet_doc.html b/binsrc/b3s/facet_doc.html
index 1497033..bd6ef9b 100644
--- a/binsrc/b3s/facet_doc.html
+++ b/binsrc/b3s/facet_doc.html
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 --
---  $Id: facet_doc.html,v 1.1.2.8 2011/03/08 15:43:44 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -22,7 +22,7 @@
 --  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 --
 -->
-<!DOCTYPE html 
+<!DOCTYPE html
      PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <?vsp set http_charset='utf-8'; ?>
@@ -42,7 +42,7 @@
       <h1>
         <div id="logo">
           <a href="/fct/facet.vsp">
-            <img src="/fct/images/openlink_site_logo.png" 
+            <img src="/fct/images/openlink_site_logo.png"
                  alt="OpenLink Software"/>
           </a>
         </div>
@@ -50,7 +50,7 @@
     <div id="homelink"></div>
   </div> <!-- hd_l -->
   <div id="hd_r">
-    <a href="http://data.openlinksw.com/about/html/http://data.openlinksw.com/oplweb/product_family/virtuoso" 
+    <a href="http://data.openlinksw.com/about/html/http://data.openlinksw.com/oplweb/product_family/virtuoso"
        title="OpenLink Virtuoso">
       <img class="powered_by" src="/fct/images/virt_power_no_border.png" alt="Powered by OpenLink Virtuoso"/>
     </a>
@@ -61,35 +61,35 @@
     <h1>Entity Search, Find, and Explore - Documentation</h1>
     <p></p>
     <h2>Text Search</h2>
-    <p>Enter a text pattern to look for. Finder will show a listing of entities with the text 
-       occurring in any literal property value or label. You may then continue to refine your search 
+    <p>Enter a text pattern to look for. Finder will show a listing of entities with the text
+       occurring in any literal property value or label. You may then continue to refine your search
        by filtering by type, property value, etc.</p>
     <h2>Entity URI (ID) Lookup</h2>
-    <p>You can lookup an Entity URI using the autocomplete feature which performs lookups as you type. 
+    <p>You can lookup an Entity URI using the autocomplete feature which performs lookups as you type.
        The OpenLink Finder recognizes some well-known namespace prefixes. For example: "dbpedia:"</p>
     <h2>Results Order & Ranking</h2>
-    <p>On some listings, results are sorted using a combination of text match score and entity-attribute-value 
-       link coefficients. Thus, a small indicator graphic (horizontal bars in leftmost column) is used to unveil 
-       metrics for both rankings per entity; the top bar indicates the text score while the bottom covers the entity 
+    <p>On some listings, results are sorted using a combination of text match score and entity-attribute-value
+       link coefficients. Thus, a small indicator graphic (horizontal bars in leftmost column) is used to unveil
+       metrics for both rankings per entity; the top bar indicates the text score while the bottom covers the entity
        ranking. Hovering on either will reveal the actual value.</p>
     <h3>Text Scores</h3>
-    <p>These are proportional to the frequency of the search terms in the match and if many terms are present, 
+    <p>These are proportional to the frequency of the search terms in the match and if many terms are present,
        the score weight is increased by a proximity factor.
     <h3>Entity Rank</h3>
-    <p>Entity matches are ranked based on how frequently they are referenced by other entities. Rankings 
-       are increased as a function of the score of the referencing entity.</p> 
+    <p>Entity matches are ranked based on how frequently they are referenced by other entities. Rankings
+       are increased as a function of the score of the referencing entity.</p>
     <a name="timeout"></a><h2>Timeouts</h2>
-    <p>The Virtuoso 6.x engine includes a new "Anytime Query" feature that enables the optional use of a configurable 
+    <p>The Virtuoso 6.x engine includes a new "Anytime Query" feature that enables the optional use of a configurable
        response time threshold (timeout) when executing queries over large
-       datasets. This feature protects against deliberate or inadvertent denial-of-service style resource-hogging 
-       that can arise from badly written or complex queries. 
-       When enabled, this feature lets you to set hard limit for resource usage per query associated with 
-       unauthenticated users. Queries execute until the response time limit threshold is reached, and, if partial 
-       results are available, they are returned with additional result set diagnostics flagging the partial nature 
-       of the result set. All query handling is partitioned thereby protecting against cross-client resource 
+       datasets. This feature protects against deliberate or inadvertent denial-of-service style resource-hogging
+       that can arise from badly written or complex queries.
+       When enabled, this feature lets you to set hard limit for resource usage per query associated with
+       unauthenticated users. Queries execute until the response time limit threshold is reached, and, if partial
+       results are available, they are returned with additional result set diagnostics flagging the partial nature
+       of the result set. All query handling is partitioned thereby protecting against cross-client resource
        contention.</p>
-       <p>This service currently enforces a 20 second hard time limit for queries. Each query is first run with a 2 second timeout - 
-       if only a partial result or no results are received, the user is prompted to retry with double the previous time limit until 
+       <p>This service currently enforces a 20 second hard time limit for queries. Each query is first run with a 2 second timeout -
+       if only a partial result or no results are received, the user is prompted to retry with double the previous time limit until
        the hard limit is reached.</p>
     <h2>OpenSearch</h2>
     <p>You can add this service as a search engine plugin in OpenSearch capable browsers. You can do this in Firefox by using the pulldown
@@ -115,7 +115,7 @@
 <div id="FT">
   <a href="http://virtuoso.openlinksw.com/"><img src="/fct/images/virt_power_no_border.png" alt="Powered by OpenLink Virtuoso"/></a>
   <a href="http://linkeddata.org"><img src="/fct/images/LoDLogo.gif" alt="Linked Data"/></a><br/>
-  <span class="copyright">Copyright © 2009-2011 OpenLink Software</span>
+  <span class="copyright">Copyright © 2009-2012 OpenLink Software</span>
   <div id="FT_L"></div>
   <div id="FT_R"></div>
 </div>
diff --git a/binsrc/b3s/facet_svc.sql b/binsrc/b3s/facet_svc.sql
index f96a806..75bc311 100644
--- a/binsrc/b3s/facet_svc.sql
+++ b/binsrc/b3s/facet_svc.sql
@@ -1,10 +1,10 @@
 --
---  $Id: facet_svc.sql,v 1.1.2.10 2011/10/26 15:38:11 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -31,7 +31,7 @@ create procedure fct_init ()
     {
       WS.WS.host_meta_add ('FCT.service', '<Link rel="http://openlinksw.com/virtuoso/fct/service" href="http://%{WSHost}s/fct/service"/>');
       WS.WS.host_meta_add ('FCT.browser', '<Link rel="http://openlinksw.com/virtuoso/fct/browser" href="http://%{WSHost}s/fct/"/>');
-      WS.WS.host_meta_add ('FCT.describe', 
+      WS.WS.host_meta_add ('FCT.describe',
       	'<Link rel="http://openlinksw.com/virtuoso/fct/resource-descriptor" template="http://%{WSHost}s/describe/?url={uri}"/>');
     }
 }
@@ -50,7 +50,7 @@ create procedure fct_svc_log (in qr varchar, in lines varchar)
 }
 ;
 
-create procedure 
+create procedure
 fct_svc_exec (in tree any, in timeout int, in accept varchar, in lines any)
 {
   declare start_time int;
@@ -84,7 +84,7 @@ fct_svc_exec (in tree any, in timeout int, in accept varchar, in lines any)
       if (not isarray (res) or 0 = length (res) or not isarray (res[0]) or 0 = length (res[0]))
 	res := xtree_doc ('<result/>');
       else
-        res := res[0][0];	
+        res := res[0][0];
 
       ret := xmlelement ("facets", xmlelement ("sparql", qr), xmlelement ("time", msec_time () - start_time),
 			   xmlelement ("complete", case when sqls = 'S1TAT' then 'no' else 'yes' end),
diff --git a/binsrc/b3s/facet_test.sql b/binsrc/b3s/facet_test.sql
index 2b8a04e..c634ba0 100644
--- a/binsrc/b3s/facet_test.sql
+++ b/binsrc/b3s/facet_test.sql
@@ -1,10 +1,10 @@
 --
---  $Id: facet_test.sql,v 1.1.2.3 2011/10/26 15:38:11 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -20,7 +20,7 @@
 --  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 --
 
--- Sample facet queries 
+-- Sample facet queries
 
 
 <query> <class iri="http://xmlns.com/foaf/0.1/Person" /><view type="list" limit="10" /></query>
@@ -35,19 +35,17 @@ select fct_query (xtree_doc ('
 
 select fct_query (xtree_doc ('
 <query> <class iri="http://xmlns.com/foaf/0.1/Person" />
-<property iri="foaf:knows"><property iri="foaf:name"><value>"Joe"</value>  </property>
+<property iri="foaf:knows"><property iri="foaf:name"><value>"Joe"</value></property>
 </property>
 <view type="properties" limit="10" /></query>
  '));
 
-
-
 select fct_query (xtree_doc ('
 <query><text>semantic</text> <view type="text" limit="10" />
 </query>'));
 
 select fct_test ('
-<query> 
+<query>
   <class iri="http://xmlns.com/foaf/0.1/Person" />
 <view type="properties" limit="10" /></query>
  ', 1000);
@@ -56,14 +54,14 @@ select fct_test ('
 
 select fct_query (xtree_doc ('<query><class iri="http://xmlns.com/foaf/0.1/Person"/> <view type="list" limit="10"/></query>'));
 
-select fct_test  ('<query> <text>semantic web</text><view type="text" limit="20"/></query>');
+select fct_test ('<query> <text>semantic web</text><view type="text" limit="20"/></query>');
 
-select fct_test  ('<query> <text>hottie</text><view type="text-properties" limit="20"/></query>');
+select fct_test ('<query> <text>hottie</text><view type="text-properties" limit="20"/></query>');
 
-select fct_test  ('<query> <text property="http://purl.org/dc/elements/1.1/description">hottie</text><view type="text" limit="20"/></query>');
+select fct_test ('<query> <text property="http://purl.org/dc/elements/1.1/description">hottie</text><view type="text" limit="20"/></query>');
 
 select xslt ('file://fct/fct_vsp.xsl',
-             xtree_doc ('<facets><result><row><column>http://xyz.com/xyz.htm</column></row></result></facets>'), 
+             xtree_doc ('<facets><result><row><column>http://xyz.com/xyz.htm</column></row></result></facets>'),
              vector ('sid', 2, 'type', 'properties'))
 
 create procedure fct_exp (in str varchar)
diff --git a/binsrc/b3s/facet_text.xsl b/binsrc/b3s/facet_text.xsl
index ae4ae46..a285ef0 100644
--- a/binsrc/b3s/facet_text.xsl
+++ b/binsrc/b3s/facet_text.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 --
---  $Id: facet_text.xsl,v 1.1.2.1 2009/04/17 11:07:29 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -27,14 +27,14 @@
 <xsl:output method="text"/>
 <xsl:template match="facets">
 <xsl:for-each select="result/row">
-  <xsl:for-each select="column"> 
-    <xsl:value-of select="." />  
+  <xsl:for-each select="column">
+    <xsl:value-of select="." />
     <xsl:text></xsl:text>
   </xsl:for-each>
   <xsl:text>
-  </xsl:text> 
+  </xsl:text>
 </xsl:for-each>
-<xsl:text> Complete = </xsl:text> <xsl:value-of select="complete"/> 
+<xsl:text> Complete = </xsl:text> <xsl:value-of select="complete"/>
 <xsl:text> Activity = </xsl:text> <xsl:value-of select="db-activity"/>
 </xsl:template>
 </xsl:stylesheet>
diff --git a/binsrc/b3s/facet_view.sql b/binsrc/b3s/facet_view.sql
index c0c7ccf..8e2b542 100644
--- a/binsrc/b3s/facet_view.sql
+++ b/binsrc/b3s/facet_view.sql
@@ -1,10 +1,10 @@
 --
---  $Id: facet_view.sql,v 1.1.2.34 2011/10/26 15:38:11 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -23,25 +23,9 @@
 --set ignore_params=on;
 -- Facets web page
 
-registry_set ('_fct_xslt_', 
+registry_set ('_fct_xslt_',
               case when registry_get('_fct_url_') = 0 then 'file://fct/' else registry_get('_fct_url_') end);
 
-create procedure
-fct_view_pos (in tree any)
-{
-  declare c any;
-  declare i int;
-  c := xpath_eval ('//*[name() = "query" or 
-	           name () = "property" or 
-	           name () = "property-of"]', tree, 0);
-  for (i := 0; i < length (c); i := i + 1)
-    {
-      if (xpath_eval ('./view', c[i]) is not null)
-	return i;
-    }
-  return null;
-}
-;
 
 create procedure
 fct_view_info (in tree any, in ctx int, in txt any)
@@ -51,7 +35,9 @@ fct_view_info (in tree any, in ctx int, in txt any)
 
   pos := 1 + fct_view_pos (tree);
   tree := xpath_eval ('//view', tree);
+
   mode := cast (xpath_eval ('./@type', tree, 1) as varchar);
+
   lim := atoi (cast (xpath_eval ('./@limit', tree, 1) as varchar));
   offs := atoi (cast (xpath_eval ('./@offset', tree, 1) as varchar));
 
@@ -72,7 +58,7 @@ fct_view_info (in tree any, in ctx int, in txt any)
     {
       http ('Displaying Places associated with Entities', txt);
     }
-  if ('geo-list' = mode) 
+  if ('geo-list' = mode)
     {
       http ('Displaying Entities with Geographical location');
     }
@@ -84,7 +70,6 @@ fct_view_info (in tree any, in ctx int, in txt any)
     {
       http ('Displaying Attributes with Entity Reference Values', txt);
     }
-
   if ('text-properties' = mode)
     {
       http (sprintf ('showing properties of %s%d containing "%s"',
@@ -101,13 +86,13 @@ fct_view_info (in tree any, in ctx int, in txt any)
     {
       http ('Displaying Ranked Entity Names and Text summaries', txt);
     }
-  if ('propval-list' = mode) 
+  if ('propval-list' = mode)
     {
       http ('Displaying property values', txt);
     }
 --  if (offs)
 --    http (sprintf ('  values %d - %d', 1 + offs, lim), txt);
-  
+
 
   http (' where:</h3>', txt);
 }
@@ -152,16 +137,21 @@ create procedure fct_t_term ()
 create procedure
 fct_var_tag (in this_s int, in ctx int)
 {
-  if (ctx)
-    return sprintf ('<a href="/fct/facet.vsp?cmd=set_focus&sid=%d&n=%d" title="Focus on %s%d">%s%d</a>',
+  declare cl varchar;
+
+  if (this_s <> ctx)
+    cl := '';
+  else
+    cl := 'focus';
+
+  return sprintf ('<a class="%s" href="/fct/facet.vsp?cmd=set_focus&sid=%d&n=%d" title="Focus on %s%d">%s%d</a>',
+                    cl,
                     connection_get ('sid'),
 		    this_s,
 		    fct_s_term (),
 		    this_s,
 		    fct_s_term (),
 		    this_s);
-  else
-    return sprintf ('%s%d', connection_get ('s_term'), this_s);
 }
 ;
 
@@ -181,8 +171,8 @@ fct_space (in n int)
 }
 ;
 
-create procedure 
-fct_cond_name (in cond varchar) 
+create procedure
+fct_cond_name (in cond varchar)
 {
   if ('eq' = cond)        return '==';
   if ('neq' = cond)       return '!=';
@@ -194,7 +184,7 @@ fct_cond_name (in cond varchar)
 }
 ;
 
-create procedure 
+create procedure
 fct_li (in out_str varchar, in txt any) {
   http ('<li>', txt);
   http (out_str, txt);
@@ -202,7 +192,7 @@ fct_li (in out_str varchar, in txt any) {
 }
 ;
 
-create procedure 
+create procedure
 fct_val_fmt_enc (in val varchar, in lang varchar, in dtp varchar)
 {
 --  fct_dbg_msg (sprintf ('fct_val_fmt_enc: %s, %s, %s', val, lang, dtp));
@@ -213,7 +203,7 @@ fct_val_fmt_enc (in val varchar, in lang varchar, in dtp varchar)
   if (dtp <> '') {
     if (dtp <> 'uri')
       return sprintf ('"%V"^^%V', val, dtp);
-    else 
+    else
       return sprintf ('<%V>', val);
   }
 
@@ -258,7 +248,7 @@ fct_query_info (in tree any,
 
   n := cast (xpath_eval ('name ()', tree, 1) as varchar);
 
-  fct_dbg_msg (sprintf ('fct_query_info: level: %d, n: %s', level, n));
+  fct_dbg_msg (sprintf ('fct_query_info: cno: %d, level: %d, n: %s, ctx: %d', cno, level, n, ctx));
 
   http (fct_space (2 * level), txt);
 
@@ -267,20 +257,20 @@ fct_query_info (in tree any,
       if (cast (xpath_eval ('./@exclude', tree) as varchar) = 'yes')
 	{
 	  fct_li (sprintf ('%s is not a <span class="iri">%s</span> . <a class="qry_nfo_cmd" href="/fct/facet.vsp?sid=%d&cmd=drop_cond&cno=%d">Drop</a>',
-		fct_var_tag (this_s, ctx),
-		fct_short_form (cast (xpath_eval ('./@iri', tree) as varchar)),
-		connection_get ('sid'),
-		cno),
-	      txt);
+		           fct_var_tag (this_s, ctx),
+		           fct_short_form (cast (xpath_eval ('./@iri', tree) as varchar)),
+		           connection_get ('sid'),
+		           cno),
+	          txt);
 	}
       else
 	{
 	  fct_li (sprintf ('%s is a <span class="iri">%s</span> . <a class="qry_nfo_cmd" href="/fct/facet.vsp?sid=%d&cmd=drop_cond&cno=%d">Drop</a>',
-		fct_var_tag (this_s, ctx),
-		fct_short_form (cast (xpath_eval ('./@iri', tree) as varchar)),
-		connection_get ('sid'),
-		cno),
-	      txt);
+		           fct_var_tag (this_s, ctx),
+		           fct_short_form (cast (xpath_eval ('./@iri', tree) as varchar)),
+		           connection_get ('sid'),
+		           cno),
+	          txt);
 	}
       cno := cno + 1;
     }
@@ -296,22 +286,22 @@ fct_query_info (in tree any,
       prop := cast (xpath_eval ('./@property', tree, 1) as varchar);
 
       if (prop is not null)
-        fct_li (sprintf (' %s has <span class="iri"><a href="#"/fct/facet.vsp?sid=%d&cmd=drop_text_prop">%s</a></span> containing text <span class="value">"%s"</span>. ', 
-                     fct_var_tag (this_s, ctx),
-                       connection_get ('sid'),
-                       fct_short_form (prop),
-                         charset_recode (xpath_eval ('string (.)', tree), '_WIDE_', 'UTF-8')), 
+        fct_li (sprintf (' %s has <span class="iri"><a href="#"/fct/facet.vsp?sid=%d&cmd=drop_text_prop">%s</a></span> containing text <span class="value">"%s"</span>. ',
+                         fct_var_tag (this_s, ctx),
+                         connection_get ('sid'),
+                         fct_short_form (prop),
+                         charset_recode (xpath_eval ('string (.)', tree), '_WIDE_', 'UTF-8')),
                 txt);
       else
-        fct_li (sprintf (' %s has <a class="qry_info_cmd" href="/fct/facet.vsp?sid=%d&cmd=set_view&type=text-properties&limit=20&offset=0&cno=%d">any %s</a> with %s <span class="value">"%s"</span> <a href="/fct/facet.vsp?sid=%d&cmd=drop_text">Drop</a>. ', 
-                      fct_var_tag (this_s, ctx), 
-                      connection_get('sid'), 
-                      cno,
-		      fct_p_term (),
-		      fct_o_term (),
-		      charset_recode (xpath_eval ('string (.)', tree), '_WIDE_', 'UTF-8'),
-                      connection_get('sid')), 
-             txt);
+        fct_li (sprintf (' %s has <a class="qry_info_cmd" href="/fct/facet.vsp?sid=%d&cmd=set_view&type=text-properties&limit=20&offset=0&cno=%d">any %s</a> with %s <span class="value">"%s"</span> <a href="/fct/facet.vsp?sid=%d&cmd=drop_text">Drop</a>. ',
+                         fct_var_tag (this_s, ctx),
+                         connection_get ('sid'),
+                         cno,
+		         fct_p_term (),
+		         fct_o_term (),
+		         charset_recode (xpath_eval ('string (.)', tree), '_WIDE_', 'UTF-8'),
+                         connection_get ('sid')),
+                 txt);
 
     }
   else if ('property' = n)
@@ -323,25 +313,25 @@ fct_query_info (in tree any,
       if (cast (xpath_eval ('./@exclude', tree) as varchar) = 'yes')
 	{
 	  http (sprintf (' %s does not have property <span class="iri">%s</span> %s . ',
-                     fct_var_tag (this_s, ctx),
-		     fct_short_form (cast (xpath_eval ('./@iri', tree, 1) as varchar)), 
-                         fct_var_tag (new_s, ctx)), 
+                         fct_var_tag (this_s, ctx),
+		         fct_short_form (cast (xpath_eval ('./@iri', tree, 1) as varchar)),
+                         fct_var_tag (new_s, ctx)),
                 txt);
 	}
       else
 	{
 	  http (sprintf (' %s <span class="iri">%s</span> %s . ',
-                     fct_var_tag (this_s, ctx),
-		     fct_short_form (cast (xpath_eval ('./@iri', tree, 1) as varchar)), 
-                         fct_var_tag (new_s, ctx)), 
+                         fct_var_tag (this_s, ctx),
+		         fct_short_form (cast (xpath_eval ('./@iri', tree, 1) as varchar)),
+                         fct_var_tag (new_s, ctx)),
                 txt);
 	}
       if (ctx)
 	http (sprintf ('<a class="qry_nfo_cmd" href="/fct/facet.vsp?sid=%d&cmd=drop&n=%d">Drop %s%d</a> ',
-	               connection_get ('sid'), 
-                       new_s, 
-                       fct_s_term (), 
-                       new_s), 
+	               connection_get ('sid'),
+                       new_s,
+                       fct_s_term (),
+                       new_s),
               txt);
 
       fct_query_info_1 (tree, new_s, max_s, level, ctx, txt, cno);
@@ -362,9 +352,9 @@ fct_query_info (in tree any,
 
       if (ctx)
 	http (sprintf ('<a class="qry_nfo_cmd" href="/fct/facet.vsp?sid=%d&cmd=drop&n=%d">Drop %s%d</a> ',
-	connection_get ('sid'),
-	               new_s, 
-                       fct_s_term (), 
+	               connection_get ('sid'),
+	               new_s,
+                       fct_s_term (),
                        new_s), txt);
 
       fct_query_info_1 (tree, new_s, max_s, ctx, level, txt, cno);
@@ -373,12 +363,12 @@ fct_query_info (in tree any,
   if ('value' = n)
     {
       fct_li (sprintf (' %s %s %V . <a class="qry_nfo_cmd" href="/fct/facet.vsp?sid=%d&cmd=drop_cond&cno=%d">Drop</a>',
-                     fct_var_tag (this_s, ctx),
-		     cast (xpath_eval ('./@op', tree) as varchar),
-		     fct_literal (tree),
-		     connection_get ('sid'),
-		     cno),
-            txt);
+                       fct_var_tag (this_s, ctx),
+		       cast (xpath_eval ('./@op', tree) as varchar),
+		       fct_literal (tree),
+		       connection_get ('sid'),
+		       cno),
+              txt);
       cno := cno + 1;
     }
   if ('cond-parm' = n)
@@ -387,15 +377,21 @@ fct_query_info (in tree any,
                        fct_literal (tree)),
               txt);
     }
-  if ('cond' = n) 
+  if ('cond' = n)
     {
       declare cond_t, lang, dtp, neg, val any;
+      declare prop_qual varchar;
 
       cond_t := xpath_eval ('./@type',  tree);
       lang   := xpath_eval ('./@lang',    tree);
       dtp    := xpath_eval ('./@datatype',tree);
       val    := cast (xpath_eval ('.', tree) as varchar);
 
+      if (0 = xpath_eval ('count (./ancestor::*[name()=''property''])+ count(./ancestor::*[name()=''property-of''])', tree, 1))
+        prop_qual := ' (any property) ';
+      else
+        prop_qual := '';
+
       fct_dbg_msg (sprintf ('fct_qry_info: cond: type:%s dtp:%s lang:%s val:%s',
                             cast (cond_t as varchar),
                             cast (dtp as varchar),
@@ -407,37 +403,41 @@ fct_query_info (in tree any,
 
       http ('<li>', txt);
 
-      if (cond_t = 'eq' or 
-          cond_t = 'neq' or 
-          cond_t = 'lt' or 
-          cond_t = 'lte' or 
-          cond_t = 'gt' or 
+      if (cond_t = 'eq' or
+          cond_t = 'neq' or
+          cond_t = 'lt' or
+          cond_t = 'lte' or
+          cond_t = 'gt' or
           cond_t = 'gte')
         {
- --val_fmt_enc (val, lang, dtp)), 
-          http (sprintf ('%s %s %V',
-                       fct_var_tag (this_s, ctx), 
+ --val_fmt_enc (val, lang, dtp)),
+          http (sprintf ('%s %s%s %V',
+                          fct_var_tag (this_s, ctx),
+                          prop_qual,
                           fct_cond_name (cond_t),
 	                  fct_literal (xpath_eval ('.', tree))),
                 txt);
-        } 
-        else if ('contains' = cond_t) 
+        }
+        else if ('contains' = cond_t)
           {
-            http (sprintf (' %s contains "%s" .', 
+            http (sprintf (' %s %scontains "%s" .',
                            fct_var_tag (this_s, ctx),
-                           val), 
+                           prop_qual,
+                           val),
                   txt);
-          } 
-        else if ('in' = cond_t) 
+          }
+        else if ('in' = cond_t)
           {
             declare this_cno int;
+            declare neg varchar;
+            neg := case when (xpath_eval ('./@neg', tree) = '1') then 'NOT ' else '' end;
             this_cno := cno;
-            http (sprintf ('%s is IN: ', fct_var_tag (this_s, ctx)), txt);
+            http (sprintf ('%s %sis %sIN: ', fct_var_tag (this_s, ctx), prop_qual, neg), txt);
             fct_query_info_1 (tree, this_s, max_s, level, ctx, txt, cno);
-            http (sprintf (' <a class="qry_nfo_cmd" href="/fct/facet.vsp?sid=%d&cmd=drop_cond&cno=%d">Drop</a>', 
-		       connection_get ('sid'),
-                           this_cno), 
-              txt);
+            http (sprintf (' <a class="qry_nfo_cmd" href="/fct/facet.vsp?sid=%d&cmd=drop_cond&cno=%d">Drop</a>',
+                           connection_get ('sid'),
+                           this_cno),
+                  txt);
 
             http ('</li>\n', txt);
             cno := cno + 1;
@@ -449,76 +449,88 @@ fct_query_info (in tree any,
             declare d integer;
             declare prop varchar;
             declare prop_info varchar;
+            declare acq_l integer;
 
-            lat  := xpath_eval ('./@lat', tree);
-            lon  := xpath_eval ('./@lon', tree);
-            d    := xpath_eval ('./@d', tree);
-            prop := xpath_eval ('./@location-prop', tree);
+            lat   := xpath_eval ('./@lat', tree);
+            lon   := xpath_eval ('./@lon', tree);
+            d     := xpath_eval ('./@d', tree);
+            acq_l := xpath_eval ('./@acquire', tree);
+            prop  := xpath_eval ('./@location-prop', tree);
 
             prop_info := '.';
 
             if (prop <> '') {
               prop_info := sprintf (' by %s property.', prop);
-      }
-            
-            http (sprintf ('%s is within %s km radius of lat:%s, lon:%s%s', 
-                       fct_var_tag (this_s, ctx), 
-                           d,
-                           lat,
-                           lon,
-                           prop_info),
-                  txt);
+            }
+
+            if (acq_l is not null and (length(lat) = 0 or length(lon) = 0))
+              {
+	          fct_dbg_msg ('Triggering autolocation');
+        	  http (sprintf ('<span class="acq_l_ind" id="acq_l_ind">Locating...</span><span class="acq_l_trig" id="acq_l_trig" style="display:none">%d</span>', cno), txt);
+              }
+
+            if (length(lat) and length(lon))
+              {
+                http (sprintf ('%s is within %s km radius of lat:<span class="loc_lat">%s</span>, lon:<span class="loc_lon">%s</span>%s',
+                               fct_var_tag(this_s, ctx),
+                               d,
+                               lat,
+                               lon,
+                               prop_info),
+                      txt);
+                if (acq_l is not null)
+                  http ('<span class="autoloc_ind">Location acquired.</span>', txt);
+              }
           }
+      http (sprintf (' <a class="qry_nfo_cmd" href="/fct/facet.vsp?sid=%d&cmd=drop_cond&cno=%d">Drop</a>',
+                      connection_get ('sid'),
+                      cno),
+            txt);
 
-      http (sprintf (' <a class="qry_nfo_cmd" href="/fct/facet.vsp?sid=%d&cmd=drop_cond&cno=%d">Drop</a>', 
-		       connection_get ('sid'),
-                       cno),
-              txt);
-	
       http ('</li>\n', txt);
       cno := cno + 1;
-      }
-  if ('cond-range' = n) 
+    }
+  if ('cond-range' = n)
     {
       declare hi, lo, neg, cond_t any;
 
-      cond_t := xpath_eval ('./@type',  tree);
-      hi     := xpath_eval ('./@hi',  tree);
-      lo     := xpath_eval ('./@lo',  tree);
+      cond_t := xpath_eval ('./@type', tree);
+      hi     := xpath_eval ('./@hi', tree);
+      lo     := xpath_eval ('./@lo', tree);
       neg    := xpath_eval ('./@neg', tree);
 
       http ('<li>', txt);
 
-      if (neg = 'on' or 'neg_range' = cond_t) 
+      if (neg = 'on' or 'neg_range' = cond_t)
         neg := ' not ';
-      else 
+      else
         neg := '';
 
       http (sprintf (' %s is %s between %V and %V .',
-                       fct_var_tag (this_s, ctx), 
-                     neg, 
-                       cast (lo as varchar),
+                     fct_var_tag (this_s, ctx),
+                     neg,
+                     cast (lo as varchar),
                      cast (hi as varchar)),
                 txt);
 
-      http (sprintf (' <a class="qry_nfo_cmd" href="/fct/facet.vsp?sid=%d&cmd=drop_cond&cno=%d">Drop</a>', 
-		       connection_get ('sid'),
-                       cno),
-              txt);
+      http (sprintf (' <a class="qry_nfo_cmd" href="/fct/facet.vsp?sid=%d&cmd=drop_cond&cno=%d">Drop</a>',
+                      connection_get ('sid'),
+                      cno),
+            txt);
       http ('</li>\n', txt);
       cno := cno + 1;
-      }
     }
+}
 ;
 
 VHOST_REMOVE (lpath=>'/fct');
 VHOST_DEFINE (lpath=>'/fct',
-    	ppath=>case when registry_get('_fct_path_') = 0 then '/fct/' else registry_get('_fct_path_') end, 
+    	ppath=>case when registry_get('_fct_path_') = 0 then '/fct/' else registry_get('_fct_path_') end,
 	is_dav=>atoi (case when registry_get('_fct_dav_') = 0 then '0' else registry_get('_fct_dav_') end),
     	vsp_user=>'dba', def_page=>'facet.vsp');
 VHOST_REMOVE (lpath=>'/b3s');
 VHOST_DEFINE (lpath=>'/b3s',
-    	ppath=>case when registry_get('_fct_path_') = 0 then '/fct/' else registry_get('_fct_path_') end || 'www/', 
+    	ppath=>case when registry_get('_fct_path_') = 0 then '/fct/' else registry_get('_fct_path_') end || 'www/',
 	is_dav=>atoi (case when registry_get('_fct_dav_') = 0 then '0' else registry_get('_fct_dav_') end),
     	vsp_user=>'dba', def_page=>'listall.vsp');
 
@@ -532,8 +544,11 @@ fct_top (in tree any, in txt any)
   declare cno int;
   cno := 0;
 
-  fct_query_info (xpath_eval ('/query', tree), 1, max_s, 1, 1, txt, cno);
+  declare ctx int;
+  ctx := fct_view_pos (tree)+1;
+  fct_dbg_msg (sprintf ('fct_top: ctx: %d', ctx));
 
+  fct_query_info (xpath_eval ('/query', tree), 1, max_s, 1, ctx, txt, cno);
 }
 ;
 
@@ -542,6 +557,7 @@ fct_view_link (in tp varchar, in msg varchar, in txt any, in tip any := null)
 {
   if (tip is null)
     tip := msg;
+
   http (sprintf ('<li><a href="/fct/facet.vsp?cmd=set_view&sid=%d&type=%s&limit=20&offset=0" title="%V">%s</a></li>',
                  connection_get ('sid'), tp, tip, msg), txt);
 }
@@ -550,8 +566,8 @@ fct_view_link (in tp varchar, in msg varchar, in txt any, in tip any := null)
 create procedure
 fct_ft_a (in txt any)
 {
-  http(sprintf ('<li><form><label for="ft_q">Text</label><input type="hidden" name="cmd" value="text"/><input type="hidden" name="sid" value="%d"/><input type="text" name="q"/><input type="submit" value="Set"/></li>', 
-                 connection_get('sid')), 
+  http(sprintf ('<li><form><label for="ft_q">Text</label><input type="hidden" name="cmd" value="text"/><input type="hidden" name="sid" value="%d"/><input type="text" name="q"/><input type="submit" value="Set"/></li>',
+                 connection_get('sid')),
                  txt);
 }
 ;
@@ -596,41 +612,41 @@ fct_nav (in tree any,
     }
 
   if ('classes' <> tp)
-    if (connection_get('c_term') = 'class') 
+    if (connection_get('c_term') = 'class')
 	fct_view_link ('classes', 'Classes', txt);
-    else 
+    else
 	fct_view_link ('classes', 'Types', txt, 'Entity Category or Class');
 
   if ('properties' <> tp)
-    if (connection_get('s_term') = 's') 
+    if (connection_get('s_term') = 's')
       fct_view_link ('properties', 'Properties', txt, 'Entity Characteristic or Property');
     else
-    fct_view_link ('properties', 'Attributes', txt, 'Entity Characteristic or Property');
+      fct_view_link ('properties', 'Attributes', txt, 'Entity Characteristic or Property');
 
   if ('text' = tp and pos = 0)
     fct_view_link ('text-properties', 'Properties containing the text', txt);
 
   if ('properties-in' <> tp)
-    if (connection_get('s_term') = 's') 
+    if (connection_get('s_term') = 's')
       fct_view_link ('properties-in', 'Referencing Properties', txt, 'Characteristics or Properties with Entity References as values');
     else
-    fct_view_link ('properties-in', 'Referencing Attributes', txt, 'Characteristics or Properties with Entity References as values');
+      fct_view_link ('properties-in', 'Referencing Attributes', txt, 'Characteristics or Properties with Entity References as values');
 
   if ('text' <> tp and tp <> 'text-d')
     {
       if (tp <> 'list-count')
-	if (connection_get('s_term') = 's') 
+	if (connection_get('s_term') = 's')
 	  fct_view_link ('list-count', 'Distinct objects (Aggregated)', txt, 'Displaying List of Distinct Entity Names ordered by Count');
 	else
-	fct_view_link ('list-count', 'Distinct values (Aggregated)', txt, 'Displaying List of Distinct Entity Names ordered by Count');
+	  fct_view_link ('list-count', 'Distinct values (Aggregated)', txt, 'Displaying List of Distinct Entity Names ordered by Count');
       if (tp <> 'list')
-	if (connection_get('s_term') = 's') 
+	if (connection_get('s_term') = 's')
 	  fct_view_link ('list', 'Show Matching Objects', txt, 'Displaying Ranked Enitity Names and Text summaries');
 	else
-	fct_view_link ('list', 'Show Matching Values', txt, 'Displaying Ranked Enitity Names and Text summaries');
+	  fct_view_link ('list', 'Show Matching Values', txt, 'Displaying Ranked Enitity Names and Text summaries');
     }
 
-  if ('full-text' <> tp and not xpath_eval ('//query/text', tree)) 
+  if ('full-text' <> tp and not xpath_eval ('//query/text', tree))
     {
       fct_view_link ('full-text', 'Text', txt,'Add full-text constraint');
     }
@@ -640,8 +656,8 @@ fct_nav (in tree any,
       --fct_view_link ('geo', 'Map', txt);
       http (sprintf ('<li><a id="map_link" href="/fct/facet.vsp?cmd=set_view&sid=%d&type=%s&limit=20&offset=0" title="%V">%s</a> '||
 	    		'<select name="map_of" onchange="javascript:link_change(this.value)">'||
-	    		'<option value="">Shown items</option>'||
 	    		'<option value="any">Any location</option>'||
+	    		'<option value="">Shown items</option>'||
 	    		'<option value="dbpprop:location">dbpedia:location</option>'||
 	    		'<option value="dbpprop:place">dbpedia:place</option>'||
 	    		'<option value="foaf:based_near">foaf:based_near</option>'||
@@ -657,14 +673,14 @@ fct_nav (in tree any,
     }
 
   http ('</ul><ul class="n2">', txt);
-  http (sprintf ('<li><a href="/fct/facet.vsp?cmd=set_inf&sid=%d">Options</a></li>', 
-	connection_get ('sid')), txt);
-  http (sprintf ('<li><a href="/fct/facet.vsp?cmd=save_init&sid=%d">Save</a></li>', 
-	connection_get ('sid')), txt);
-  http (sprintf ('<li><a href="/fct/facet.vsp?cmd=featured&sid=%d">Featured Queries</a></li>', 
-	connection_get ('sid')), txt);
-  http (sprintf ('<li><a href="/fct/facet.vsp?sid=%d">New Search</a></li>', 
-	connection_get ('sid')), txt);
+  http (sprintf ('<li><a href="/fct/facet.vsp?cmd=set_inf&sid=%d">Options</a></li>',
+                 connection_get ('sid')), txt);
+  http (sprintf ('<li><a href="/fct/facet.vsp?cmd=save_init&sid=%d">Save</a></li>',
+                 connection_get ('sid')), txt);
+  http (sprintf ('<li><a href="/fct/facet.vsp?cmd=featured&sid=%d">Featured Queries</a></li>',
+                 connection_get ('sid')), txt);
+  http (sprintf ('<li><a href="/fct/facet.vsp?sid=%d">New Search</a></li>',
+                 connection_get ('sid')), txt);
   http ('</ul>', txt);
   http ('</div> <!-- #fct_nav -->', txt);
 }
@@ -673,11 +689,11 @@ fct_nav (in tree any,
 create procedure
 fct_view_type (in vt varchar)
 {
-  if (vt in ('properties', 
-             'classes', 
-             'properties-in', 
-             'text-properties', 
-             'list', 
+  if (vt in ('properties',
+             'classes',
+             'properties-in',
+             'text-properties',
+             'list',
              'list-count',
              'propval-list',
              'geo',
@@ -709,8 +725,8 @@ fct_view_cmd (in tp varchar)
     return 'set_text';
 
   if ('list-count' = tp or 'geo-list' = tp)
-  return 'select_value';
- 
+    return 'select_value';
+
   return 'cond';
 }
 ;
@@ -729,7 +745,7 @@ fct_set_default_qry (inout tree any)
 }
 ;
 
-create procedure 
+create procedure
 fct_print_space_1 (inout ses any, in n int)
 {
   for (declare i int, i := 0; i < n;  i := i + 1)
@@ -737,7 +753,7 @@ fct_print_space_1 (inout ses any, in n int)
 }
 ;
 
-create procedure 
+create procedure
 fct_pretty_sparql_1 (inout arr any, inout inx int, in len int, inout ses any, in lev int := 0)
 {
   declare nbsp, was_open, was_close, num_open int;
@@ -813,7 +829,7 @@ fct_pretty_sparql_1 (inout arr any, inout inx int, in len int, inout ses any, in
 }
 ;
 
-create procedure 
+create procedure
 fct_pretty_sparql (in q varchar, in lev int := 0)
 {
   declare ses, arr any;
@@ -842,10 +858,10 @@ fct_web (in tree any)
   declare reply, md, res, qr, qr2, txt any;
   declare p_qry varchar;
   declare timeout int;
- 
+
   timeout := connection_get ('timeout');
 
-  if (not isinteger(timeout)) 
+  if (not isinteger(timeout))
     timeout := atoi(timeout);
 
 --
@@ -853,12 +869,13 @@ fct_web (in tree any)
 --
 
   if (xpath_eval('/query/*[not(name()=''view'')]', tree) is null)
-    { 
+    {
       if (xpath_eval('/query/view[@type=''classes'']', tree) is null)
 	fct_set_default_qry (tree);
     }
 
   reply := fct_exec (tree, timeout);
+
   p_qry := fct_query (tree, 1); -- get "plain" query text
   p_qry := fct_pretty_sparql (p_qry);
 
@@ -882,9 +899,13 @@ fct_web (in tree any)
 
   declare p_ses, r_ses any;
   declare p_xml varchar;
+  declare p_xml_tree any;
+
+  p_xml_tree := xslt (registry_get ('_fct_xslt_') || 'fct_strip_loc.xsl', tree, vector());
 
   p_ses := string_output();
-  http_value (tree, null, p_ses);
+  http_value (p_xml_tree, null, p_ses);
+
   p_xml := cast (p_ses as varchar);
 
   r_ses := string_output ();
@@ -892,6 +913,13 @@ fct_web (in tree any)
 
   fct_dbg_msg (sprintf ('reply: %s', cast (r_ses as varchar)));
 
+  declare _addthis_key varchar;
+  _addthis_key := registry_get ('fct_addthis_key');
+  if (not isstring(_addthis_key)) _addthis_key := null;
+  if ('1' = _addthis_key) _addthis_key := 'xa-4ce13e0065cdadc0';
+
+  --dbg_printf('addthis_key: %s', _addthis_key);
+
   http_value (xslt (registry_get ('_fct_xslt_') || 'fct_vsp.xsl',
                     reply,
 		    vector ('sid',
@@ -904,18 +932,20 @@ fct_web (in tree any)
 			    __min (timeout*2, atoi (registry_get ('fct_timeout_max'))),
 			    'query',
 			    tree,
-			    's_term', 
+			    's_term',
 			    fct_s_term (),
-			    'p_term', 
+			    'p_term',
 			    fct_p_term (),
-			    'o_term', 
+			    'o_term',
 			    fct_o_term (),
-			    't_term', 
+			    't_term',
 			    fct_t_term (),
                             'p_qry',
                             p_qry,
                             'p_xml',
                             p_xml,
+                            'addthis_key',
+                            _addthis_key,
                             'tree',
                             tree
 			    )),
@@ -956,9 +986,9 @@ fct_set_text_property (in tree any, in sid int, in iri varchar)
   declare new_tree, txt any;
 
   txt := cast (xpath_eval ('//text', tree) as varchar);
-  new_tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_text.xsl', 
+  new_tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_text.xsl',
                     tree, vector ('text', txt, 'prop', iri));
-  new_tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl', 
+  new_tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl',
                     new_tree, vector ('pos', 0, 'type', 'text-d', 'limit', 20, 'op', 'view'));
 
   update fct_state set fct_state = new_tree where fct_sid = sid;
@@ -976,18 +1006,19 @@ fct_set_focus (in tree any, in sid int, in pos int)
 		vector ('pos', pos - 1, 'op', 'view', 'type', 'list', 'limit', 20, 'offset', 0));
   update fct_state set fct_state = tree where fct_sid = sid;
   commit work;
+
   fct_web (tree);
 }
 ;
 
-create procedure 
+create procedure
 fct_drop (in tree any, in sid int, in pos int)
 {
-  tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl', 
+  tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl',
                 tree, vector ('pos', pos - 1, 'op', 'close'));
 
   if (xpath_eval ('//view', tree) is null)
-    tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl', 
+    tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl',
                   tree, vector ('pos', 0, 'op', 'view', 'type', 'list', 'limit', 20, 'offset', 0));
 
   update fct_state set fct_state = tree where fct_sid = sid;
@@ -1015,7 +1046,7 @@ fct_drop_text (in tree any, in sid int)
 {
   declare txt varchar;
   txt := xpath_eval ('//text', tree);
-  
+
   tree := xslt (registry_get ('_fct_xslt_') || 'fct_drop_text.xsl', tree, vector ('text', txt, 'prop', 'none'));
 
   update fct_state set fct_state = tree where fct_sid = sid;
@@ -1030,7 +1061,7 @@ fct_drop_text_prop (in tree any, in sid int)
 {
   declare txt varchar;
   txt := xpath_eval ('//text', tree);
-  
+
   tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_text.xsl', tree, vector ('text', txt, 'prop', 'none'));
 
   update fct_state set fct_state = tree where fct_sid = sid;
@@ -1041,11 +1072,11 @@ fct_drop_text_prop (in tree any, in sid int)
 ;
 
 create procedure
-fct_set_view (in tree     any, 
-              in sid      int, 
-              in tp       varchar, 
-              in lim      int, 
-              in offs     int, 
+fct_set_view (in tree     any,
+              in sid      int,
+              in tp       varchar,
+              in lim      int,
+              in offs     int,
               in loc_prop varchar := null)
 {
 
@@ -1079,52 +1110,92 @@ fct_set_view (in tree     any,
 ;
 
 create procedure
-fct_next (in tree any, in sid int)
+fct_next (in tree any, in sid int, in offset varchar, in limit varchar)
 {
   declare tp varchar;
   declare lim, offs int;
 
-  tp   := cast       (xpath_eval ('//view/@type',  tree) as varchar);
-  lim  := atoi (cast (xpath_eval ('//view/@limit', tree) as varchar));
-  offs := atoi (cast (xpath_eval ('//view/@offset',tree) as varchar));
+  tp := cast (xpath_eval ('//view/@type',  tree) as varchar);
+
+  if (isstring (limit) and limit <> '')
+    lim := atoi (limit);
+  else
+    lim  := atoi (cast (xpath_eval ('//view/@limit', tree) as varchar));
+
+  if (isstring (offset) and offset <> '')
+    offs := atoi (offset);
+  else
+    offs := atoi (cast (xpath_eval ('//view/@offset',tree) as varchar));
 
-  fct_set_view  (tree, sid, tp, lim, offs + 20);
+  fct_set_view  (tree, sid, tp, lim, offs + lim);
 }
 ;
 
 create procedure
-fct_prev (in tree any, in sid int)
+fct_prev (in tree any, in sid int, in offset varchar, in limit varchar)
 {
   declare tp varchar;
   declare lim, offs int;
 
-  tp   := cast       (xpath_eval ('//view/@type',  tree) as varchar);
-  lim  := atoi (cast (xpath_eval ('//view/@limit', tree) as varchar));
-  offs := atoi (cast (xpath_eval ('//view/@offset',tree) as varchar));
+  tp := cast (xpath_eval ('//view/@type',  tree) as varchar);
+
+  if (isstring (limit) and limit <> '')
+    lim := atoi (limit);
+  else
+    lim := atoi (cast (xpath_eval ('//view/@limit', tree) as varchar));
+
+  if (isstring (offset) and offset <> '')
+    offs := atoi (offset);
+  else {
+    offs := atoi (cast (xpath_eval ('//view/@offset',tree) as varchar));
+    offs := offs - lim;
+    if (offs < 0) offs := 0;
+  }
+  fct_set_view  (tree, sid, tp, lim, offs);
+}
+;
+
+create procedure
+fct_go_to (in tree any, in sid int, in _offs varchar, in _lim varchar)
+{
+  declare tp varchar;
+  declare offs, lim int;
+
+  if (isstring (_offs) and _offs <> '')
+    offs := atoi (_offs);
+
+  if (isstring (_lim) and _lim <> '')
+    lim  := atoi (_lim);
+  else
+    lim := atoi (cast (xpath_eval ('//view/@limit', tree) as varchar));
+
+  if (offs is null) offs := 0;
 
-  offs := offs - 20;
-  if (offs < 0) offs := 0;
+  fct_dbg_msg (sprintf ('fct_go_to offs: %d, lim: %d', offs, lim));
+
+  tp := cast (xpath_eval ('//view/@type',  tree) as varchar);
 
   fct_set_view  (tree, sid, tp, lim, offs);
 }
 ;
 
 create procedure
-fct_open_property  (in tree any, 
-                    in sid int, 
-                    in iri varchar, 
-                    in name varchar, 
+fct_open_property  (in tree any,
+                    in sid int,
+                    in iri varchar,
+                    in name varchar,
                     in exclude varchar := null)
 {
   declare pos int;
   pos := fct_view_pos (tree);
+
   tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl',
                 tree,
 		vector ('pos', pos,
 		        'op', 'prop',
 			'name', name,
 			'iri', iri,
-			'type', 'list', 
+			'type', 'list',
 			'limit', 20,
 			'offset', 0,
 			'exclude', exclude));
@@ -1132,12 +1203,12 @@ fct_open_property  (in tree any,
   if (xpath_eval ('//view', tree) is null)
     {
 
-    tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl', tree, 
-                  vector ('pos', pos, 
-                  'op', 'view', 
-                  'type', 'properties', 
-                  'limit', 20, 
-                  'offset', 0));
+      tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl', tree,
+                    vector ('pos', pos,
+                    'op', 'view',
+                    'type', 'properties',
+                    'limit', 20,
+                    'offset', 0));
     }
 
   update fct_state
@@ -1157,18 +1228,16 @@ fct_set_class (in tree any,
 {
   declare pos int;
 
-  pos := fct_view_pos (tree);
-
-  fct_dbg_msg(sprintf('fct_set_class: sid: %d, iri: %s', sid, iri));
+  fct_dbg_msg (sprintf ('fct_set_class: sid: %d, iri: %s, pos: %d', sid, iri, pos));
 
   tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl',
                 tree,
-                vector ('pos'   , pos,
-		        'op'    , 'class',
-			'iri'   , iri,
-			'type'  , 'list',
-			'limit' , 20,
-			'offset', 0,
+                vector ('pos',     pos,
+		        'op',      'class',
+			'iri',     iri,
+			'type',    'list',
+			'limit',   20,
+			'offset',  0,
 			'exclude', exclude));
 
   tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl',
@@ -1198,11 +1267,11 @@ http ('
 	cnt := 0;
 	no_qry := http_param ('no_qry');
 
-        for (select fsq_id, 
-                    fsq_title, 
-                    fsq_expln 
-               from fct_stored_qry 
-               where fsq_featured is not null 
+        for (select fsq_id,
+                    fsq_title,
+                    fsq_expln
+               from fct_stored_qry
+               where fsq_featured is not null
                order by fsq_featured desc) do
           {
             cnt := cnt + 1;
@@ -1213,7 +1282,7 @@ http ('
             </tr>
 ');
           }
-	if (0 = cnt) 
+	if (0 = cnt)
           {
 http ('
 	    <tr><td>There are currently no featured views.</td></td>
@@ -1282,8 +1351,8 @@ function get_and_encode_query (q_elm)
 
   ctr := 0;
 
-  for select res_content, res_name, res_full_path 
-        from WS.WS.SYS_DAV_RES 
+  for select res_content, res_name, res_full_path
+        from WS.WS.SYS_DAV_RES
         where RES_FULL_PATH like demo_dav_path || '%.isparql' do
     {
 	ctr := ctr + 1;
@@ -1296,14 +1365,14 @@ function get_and_encode_query (q_elm)
 
 http('</table>');
 
-  if (0 = ctr) 
+  if (0 = ctr)
     {
       http ('<p class="empty_indicator">There are currently no saved SPARQL queries.</p>');
     }
 http('
     </div> <!-- .fm_sect -->
     <a href="/fct/facet.vsp?cmd=refresh&sid='); http_value ( case when no_qry then 0 else sid end ); http ('">Go Back</a>
-    </div>
+  </div>
   </div> <!-- featured -->
 ');
 }
@@ -1339,15 +1408,15 @@ http ('
 ;
 
 create procedure
-fct_save (in tree xmltype, 
-          in sid int, 
-          in title varchar, 
+fct_save (in tree xmltype,
+          in sid int,
+          in title varchar,
           in _desc varchar)
 {
   declare _fsq_id int;
 
   _fsq_id := sequence_next ('fsq_seq');
-  
+
   insert into fct_stored_qry (fsq_id, fsq_title, fsq_expln, fsq_state)
     values (_fsq_id, title, _desc, tree);
 
@@ -1366,17 +1435,17 @@ fct_save (in tree xmltype,
 }
 ;
 
-create procedure 
+create procedure
 fct_load (in from_stored int)
 {
   declare sid int;
-  
+
   sid := sequence_next ('fct_seq');
   declare tree any;
 
   whenever not found goto no_ses;
 
-  select fsq_state 
+  select fsq_state
     into tree
     from fct_stored_qry
     where fsq_id = from_stored;
@@ -1392,8 +1461,8 @@ fct_load (in from_stored int)
 }
 ;
 
-create procedure 
-fct_ses_from_xml (in xml_d varchar) 
+create procedure
+fct_ses_from_xml (in xml_d varchar)
 {
   declare tree any;
   declare sid int;
@@ -1406,11 +1475,11 @@ fct_ses_from_xml (in xml_d varchar)
          values (sid, tree);
 
   return sid;
-} 
+}
 ;
 
-create procedure 
-fct_create_ses () 
+create procedure
+fct_create_ses ()
 {
   declare sid int;
   declare new_tree any;
@@ -1426,7 +1495,7 @@ fct_create_ses ()
 }
 ;
 
-create procedure 
+create procedure
 fct_new ()
 {
   declare sid int;
@@ -1436,8 +1505,8 @@ fct_new ()
 
   if (0 = sid)
     {
-      no_ses:
-      r_v := fct_create_ses (); 
+     no_ses:
+      r_v := fct_create_ses ();
       sid := r_v[0];
     }
   else
@@ -1479,8 +1548,8 @@ fct_new ()
          | 
         <a href="facet_doc.html">About</a>
         <!--span id="opensearch_container" style="display:none"> | 
-        <a href="" 
-           id="opensearch_link" 
+        <a href=""
+           id="opensearch_link"
            title="Install OpenSearch Plugin">Search from browser</a></span-->
       </div>
     </div> <!-- #TAB_ROW -->
@@ -1489,17 +1558,29 @@ fct_new ()
     <div id="TAB_PAGE_TXT" class="tab_page" style="display: none">
       <h2>Precision Search & Find</h2>
       <form method="post"
-            action="/fct/facet.vsp?cmd=text&sid='); 
-  http_value ( sid ); 
+            action="/fct/facet.vsp?cmd=text&sid=');
+  http_value ( sid );
   http ('" >
         <div id="new_srch">
           <label class="left_txt"
                  for="new_search_txt">Search Text</label>
-          <input id=  "new_search_txt" 
-                 size="60" 
-                 type="text" 
-                 name="q"/>
-          <input type=submit  value="Search"><br/>
+          <input id=  "new_search_txt"
+                 size="60"
+                 type="text"
+                 name="q"/>');
+if (isstring (http_param ('dbg')))
+  {
+    http('<input type="hidden" name="dbg" value="');
+    http_value (http_param('dbg'));
+    http ('">');
+  }
+if (isstring (http_param ('dbg_out')))
+  {
+    http('<input type="hidden" name="dbg_out" value="');
+    http_value (http_param('dbg_out'));
+    http ('">');
+  }
+  http('<input type=submit  value="Search"><br/>
         </div>
       </form>
     </div> <!-- #TAB_PAGE_TXT -->
@@ -1514,9 +1595,9 @@ fct_new ()
         <label class="left_txt"
                for=  "new_lbl_txt">Label</label>
 
-        <input id=  "new_lbl_txt" 
-               size="60" 
-               type="text" 
+        <input id=  "new_lbl_txt"
+               size="60"
+               type="text"
                autocomplete="off"/>
 
         <button id="new_lbl_btn">Describe</button><br/>
@@ -1539,9 +1620,9 @@ fct_new ()
         <label class="left_txt"
                for=  "new_uri_txt">URI</label>
 
-        <input id=  "new_uri_txt" 
-               size="60" 
-               type="text" 
+        <input id=  "new_uri_txt"
+               size="60"
+               type="text"
                autocomplete="off"/>
         <button id="new_uri_btn">Describe</button><br/>
       </div>
@@ -1566,7 +1647,6 @@ fct_set_inf (in tree any, in sid int)
   if (view3 = 0) view3 := '';
   tlogy := http_param ('tlogy');
 
-
   if (0 = sas or 0 = inf or 0 = tlogy)
     {
       declare selected_inf, selected_sas, selected_view3, sel_c_term, sel_s_term  varchar;
@@ -1589,17 +1669,17 @@ fct_set_inf (in tree any, in sid int)
                  <select name="inference">
 	           <option value="">none</option>
 	           '); for select RS_NAME from SYS_RDF_SCHEMA do { http ('
-		     <option value="'); http_value ( RS_NAME ); http ('" 
+		     <option value="'); http_value ( RS_NAME ); http ('"
 	                     '); http_value ( case when selected_inf = RS_NAME then 'selected' else '' end ); http ('>
                        '); http_value ( RS_NAME ); http ('
                      </option>
 		   '); } http ('
 	         </select>
                  <br>
-                 <input type="checkbox" 
-                        name="same-as" 
-                        value="yes" 
-                        id="same-as" '); http_value ( case when selected_sas = 'yes' then 'checked="true"' end  ); http ('> 
+                 <input type="checkbox"
+                        name="same-as"
+                        value="yes"
+                        id="same-as" '); http_value ( case when selected_sas = 'yes' then 'checked="true"' end  ); http ('>
                  <label class="rt_ckb" for="same-as">Same As</label><br>
                </div>
                <div class="fm_sect">
@@ -1609,11 +1689,11 @@ fct_set_inf (in tree any, in sid int)
 	           <option value="eav" '); http_value ( case when sel_s_term = 'e' then 'selected="true"' else '' end ); http ('>Entity-Attribute-Value</option>
 	           <option value="spo" '); http_value ( case when sel_s_term = 's' then 'selected="true"' else '' end ); http ('>Subject-Predicate-Object</option>
 	       	 </select><br/>
-<!--		 
-                 <input type="checkbox" 
-                        name="view3" 
-                        value="yes" 
-                        id="view3" '); http_value ( case when selected_view3 = 'yes' then 'checked="true"' end  ); http ('> 
+<!--
+                 <input type="checkbox"
+                        name="view3"
+                        value="yes"
+                        id="view3" '); http_value ( case when selected_view3 = 'yes' then 'checked="true"' end  ); http ('>
                  <label class="rt_ckb" for="view3">Show Values, Types, Properties simultaneously</label><br> -->
                </div>
 <!--               <div class="fm_sect">
@@ -1644,11 +1724,11 @@ fct_set_inf (in tree any, in sid int)
       s_term := case when 'eav' = tlogy then 'e' else 's' end;
 
       tree := XMLUpdate (tree,
-      	         '/query/@inference', inf,
-		         '/query/@same-as',   sas,
-		         '/query/@view3',     view3,
-			 '/query/@s-term',    s_term,
-			 '/query/@c-term',    c_term);
+                         '/query/@inference', inf,
+                         '/query/@same-as',   sas,
+                         '/query/@view3',     view3,
+                         '/query/@s-term',    s_term,
+                         '/query/@c-term',    c_term);
 
       connection_set ('c_term', c_term);
       connection_set ('s_term', s_term);
@@ -1727,10 +1807,10 @@ fct_select_value (in tree any,
 {
   declare pos int;
 
---  fct_dbg_msg (sprintf ('fct_select_value: val: %s, lang: %s, dtp: %s, op: %s', 
---              cast (val as varchar), 
---              cast (lang as varchar), 
---              cast (dtp as varchar), 
+--  fct_dbg_msg (sprintf ('fct_select_value: val: %s, lang: %s, dtp: %s, op: %s',
+--              cast (val as varchar),
+--              cast (lang as varchar),
+--              cast (dtp as varchar),
 --              cast (cond_t as varchar)));
 
   pos := fct_view_pos (tree);
@@ -1739,11 +1819,11 @@ fct_select_value (in tree any,
                 tree,
 		vector ('pos', pos, 'op', 'cond', 'val', val, 'lang', lang, 'datatype', dtp, 'cond_t', cond_t));
 
---  if (cond_t = 'eq') 
+--  if (cond_t = 'eq')
 --    {
-    tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl',
-                  tree,
-		  vector ('pos', 0, 'op', 'view', 'type', 'list', 'limit', 20, 'offset', 0));
+      tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl',
+                    tree,
+	            vector ('pos', 0, 'op', 'view', 'type', 'list', 'limit', 20, 'offset', 0));
 --    }
 
   update fct_state set fct_state = tree where fct_sid = sid;
@@ -1753,13 +1833,14 @@ fct_select_value (in tree any,
 }
 ;
 
-create procedure 
-fct_validate_xsd_float (in str varchar) {
+create procedure
+fct_validate_xsd_float (in str varchar)
+{
   declare ret varchar;
 
   ret := regexp_match ('^[-+]?([0-9]+(\.[0-9]*)?|\.[0-9]+)([eE][-+]?[0-9]+)$', str); -- simple case
 
-  if (ret is not null) 
+  if (ret is not null)
   {
     return ret;
   }
@@ -1769,19 +1850,20 @@ fct_validate_xsd_float (in str varchar) {
 }
 ;
 
-create procedure 
-fct_validate_xsd_decimal (in str varchar) { 
+create procedure
+fct_validate_xsd_decimal (in str varchar)
+{
   return regexp_match ('^"([^\\"]|\\.|[-+]?([0-9]+(\.[0-9]*)?|\.[0-9]+)?)"\\^\\^xsd\\:decimal',str);
 }
 ;
 
 create procedure
-fct_validate_xsd_int (in str varchar) 
+fct_validate_xsd_int (in str varchar)
 {
   declare ret varchar;
 
   ret := regexp_match ('^[-+]?[0-9]+$', str); -- simple integers
-  if (ret is not null) 
+  if (ret is not null)
   {
     return ret;
   }
@@ -1791,14 +1873,15 @@ fct_validate_xsd_int (in str varchar)
 }
 ;
 
-create procedure 
-fct_validate_xsd_date (in str varchar) {
+create procedure
+fct_validate_xsd_date (in str varchar)
+{
   return regexp_match ('^"-?[0-9][0-9][0-9][0-9]-[01][0-9]-[0-3][0-9](Z|[-+]?[0-2][0-9]\\:[0-5][0-9])?"\\^\\^xsd\\:date$', str);
 }
 ;
 
 create procedure
-fct_validate_xsd_datetime (in str varchar) 
+fct_validate_xsd_datetime (in str varchar)
 {
   declare retval varchar;
 
@@ -1807,7 +1890,7 @@ fct_validate_xsd_datetime (in str varchar)
 }
 ;
 
-create procedure 
+create procedure
 fct_validate_xsd_str (in str varchar) {
   declare retval varchar;
 
@@ -1820,12 +1903,12 @@ fct_validate_xsd_str (in str varchar) {
 }
 ;
 
-create procedure 
-fct_validate_cond_input (in str varchar) 
+create procedure
+fct_validate_cond_input (in str varchar)
 {
   declare retval varchar;
 
-  retval := coalesce (fct_validate_xsd_int(str), 
+  retval := coalesce (fct_validate_xsd_int(str),
                       fct_validate_xsd_float (str),
                       fct_validate_xsd_decimal(str),
                       fct_validate_xsd_datetime(str),
@@ -1836,13 +1919,13 @@ fct_validate_cond_input (in str varchar)
 }
 ;
 
-create procedure 
+create procedure
 fct_validate_xsd_float (in str varchar) {
   declare ret varchar;
 
   ret := regexp_match ('^[-+]?([0-9]+(\.[0-9]*)?|\.[0-9]+)([eE][-+]?[0-9]+)$', str); -- simple case
 
-  if (ret is not null) 
+  if (ret is not null)
   {
     return ret;
   }
@@ -1852,19 +1935,19 @@ fct_validate_xsd_float (in str varchar) {
 }
 ;
 
-create procedure 
-fct_validate_xsd_decimal (in str varchar) { 
+create procedure
+fct_validate_xsd_decimal (in str varchar) {
   return regexp_match ('^"([^\\"]|\\.|[-+]?([0-9]+(\.[0-9]*)?|\.[0-9]+)?)"\\^\\^xsd\\:decimal',str);
 }
 ;
 
 create procedure
-fct_validate_xsd_int (in str varchar) 
+fct_validate_xsd_int (in str varchar)
 {
   declare ret varchar;
 
   ret := regexp_match ('^[-+]?[0-9]+$', str); -- simple integers
-  if (ret is not null) 
+  if (ret is not null)
   {
     return ret;
   }
@@ -1874,14 +1957,14 @@ fct_validate_xsd_int (in str varchar)
 }
 ;
 
-create procedure 
+create procedure
 fct_validate_xsd_date (in str varchar) {
   return regexp_match ('^"-?[0-9][0-9][0-9][0-9]-[01][0-9]-[0-3][0-9](Z|[-+]?[0-2][0-9]\\:[0-5][0-9])?"\\^\\^xsd\\:date$', str);
 }
 ;
 
 create procedure
-fct_validate_xsd_datetime (in str varchar) 
+fct_validate_xsd_datetime (in str varchar)
 {
   declare retval varchar;
 
@@ -1890,7 +1973,7 @@ fct_validate_xsd_datetime (in str varchar)
 }
 ;
 
-create procedure 
+create procedure
 fct_validate_xsd_str (in str varchar) {
   declare retval varchar;
 
@@ -1903,12 +1986,12 @@ fct_validate_xsd_str (in str varchar) {
 }
 ;
 
-create procedure 
-fct_validate_cond_input (in str varchar) 
+create procedure
+fct_validate_cond_input (in str varchar)
 {
   declare retval varchar;
 
-  retval := coalesce (fct_validate_xsd_int(str), 
+  retval := coalesce (fct_validate_xsd_int(str),
                       fct_validate_xsd_float (str),
                       fct_validate_xsd_decimal(str),
                       fct_validate_xsd_datetime(str),
@@ -1919,12 +2002,12 @@ fct_validate_cond_input (in str varchar)
 }
 ;
 
-create procedure 
-fct_set_cond_range (in tree any, 
-                 in sid int, 
-                 in lang varchar, 
-                 in dtp varchar,
-                 in lo varchar,
+create procedure
+fct_set_cond_range (in tree any,
+                    in sid int,
+                    in lang varchar,
+                    in dtp varchar,
+                    in lo varchar,
                     in hi varchar,
                     in neg varchar)
 {
@@ -1937,7 +2020,7 @@ fct_set_cond_range (in tree any,
 
 --  fct_dbg_msg (sprintf ('fct_set_cond_range: %s, %s', lo, hi));
 
-  if (lo is null and hi is null) 
+  if (lo is null and hi is null)
   {
     fct_web (tree);
     return;
@@ -1946,12 +2029,12 @@ fct_set_cond_range (in tree any,
   {
   tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl',
                 tree,
-		vector ('pos', pos, 
-                        'op', 'cond-range', 
-                        'hi', hi, 
-                        'lo', lo, 
-                        'neg', neg, 
-                        'lang', lang, 
+		vector ('pos', pos,
+                        'op', 'cond-range',
+                        'hi', hi,
+                        'lo', lo,
+                        'neg', neg,
+                        'lang', lang,
                         'datatype', dtp));
 
   tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl',
@@ -1961,17 +2044,17 @@ fct_set_cond_range (in tree any,
   update fct_state set fct_state = tree where fct_sid = sid;
 
   commit work;
-  } 
+  }
 
   fct_web (tree);
 }
 ;
 
-create procedure 
-fct_set_cond (in tree any, 
-              in sid int, 
+create procedure
+fct_set_cond (in tree any,
+              in sid int,
               in cond_t varchar,
-              in lang varchar, 
+              in lang varchar,
               in dtp varchar,
               in val varchar,
               in neg varchar)
@@ -1982,12 +2065,12 @@ fct_set_cond (in tree any,
 
   tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl',
                 tree,
-                vector ('pos', pos, 
-                        'op','cond', 
-                        'cond_t', cond_t, 
-                        'neg', neg, 
+                vector ('pos', pos,
+                        'op','cond',
+                        'cond_t', cond_t,
+                        'neg', neg,
                         'val', val,
-                        'lang', lang, 
+                        'lang', lang,
                         'datatype', dtp));
 
   tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl',
@@ -2002,7 +2085,7 @@ fct_set_cond (in tree any,
 }
 ;
 
-create procedure 
+create procedure
 fct_set_cond_in (in tree any,
                  in sid int,
                  in neg varchar,
@@ -2023,10 +2106,10 @@ fct_set_cond_in (in tree any,
 
   tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl',
                 tree,
-                vector ('pos', pos, 
-                        'op','cond', 
-                        'cond_t', 'in', 
-                        'neg', neg, 
+                vector ('pos', pos,
+                        'op','cond',
+                        'cond_t', 'in',
+                        'neg', neg,
                         'parms', parm_tree));
 
   tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl',
@@ -2038,37 +2121,45 @@ fct_set_cond_in (in tree any,
   commit work;
 
   fct_web (tree);
-  } 
+}
 ;
 
 create procedure
-fct_set_cond_near (in tree any, 
+fct_set_cond_near (in tree any,
                    in sid int,
                    in lat varchar,
                    in lon varchar,
                    in dist varchar,
-                   in prop varchar)                   
+                   in acquire varchar,
+                   in prop varchar)
 {
-  fct_dbg_msg (sprintf ('fct_set_cond_near: lat:%s, lon:%s, d:%s', lat, lon, dist));
+  fct_dbg_msg (sprintf ('fct_set_cond_near: lat:%s, lon:%s, d:%s, acquire:%s',
+                        cast (lat as varchar),
+                        cast (lon as varchar),
+                        dist,
+                        cast (acquire as varchar)));
 
   declare pos int;
   pos := fct_view_pos (tree);
 
+  declare acq varchar;
+
   tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl',
                 tree,
                 vector ('pos', pos,
                         'op','cond',
-                        'cond_t', 'near', 
+                        'cond_t', 'near',
                         'lat', lat,
                         'lon', lon,
+                        'loc_acq', acquire,
                         'd', dist));
 
-  tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl', 
-                tree, 
-                vector ('pos', 0, 
-                        'op', 'view', 
-                        'type', 'geo', 
-                        'limit', 20, 
+  tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl',
+                tree,
+                vector ('pos', 0,
+                        'op', 'view',
+                        'type', 'geo',
+                        'limit', 20,
                         'offset', 0,
                         'location-prop', prop));
 
@@ -2080,26 +2171,48 @@ fct_set_cond_near (in tree any,
 }
 ;
 
-create procedure 
+create procedure
 fct_set_loc (in tree any,
-             in sid int)
+             in sid int,
+             in cno int)
 {
   declare lon, lat float;
   declare acc int;
-  
+
   lon := http_param ('lon');
   lat := http_param ('lat');
-  acc := http_param ('acc');
 
-  if (0 = lon or 0 = lat or 0 = acc) {
+  fct_dbg_msg (sprintf ('fct_set_loc: cno:%d, lon:%s, lat:%s', cno, lon, lat));
+
+  if (0 = lon or 0 = lat) {
     http_request_status ('HTTP/1.1 400 Bad request');
-    http('FCT002: Invalid location data\n');
+    http('FCT002: Missing location data\n');
     return;
   }
+
+  tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_loc.xsl',
+                tree,
+                vector ('cno', cno,
+                        'lat', lat,
+                        'lon', lon));
+
+  tree := xslt (registry_get ('_fct_xslt_') || 'fct_set_view.xsl',
+                tree,
+                vector ('pos', 0,
+                        'op', 'view',
+                        'type', 'geo',
+                        'limit', 20,
+                        'offset', 0));
+
+  update fct_state set fct_state = tree where fct_sid = sid;
+
+  commit work;
+
+  fct_web (tree);
 }
 ;
 
-create procedure 
+create procedure
 fct_gen_opensearch_link ()
 {
   declare uriqa_str varchar;
@@ -2142,8 +2255,8 @@ fct_vsp ()
 
   sid := http_param ('sid');
 
-  if (0 <> sid) { 
-    sid := atoi (sid); 
+  if (0 <> sid) {
+    sid := atoi (sid);
   }
   else {
     fct_dbg_msg ('fct_vsp: looking for xml');
@@ -2166,23 +2279,29 @@ fct_vsp ()
 
   connection_set ('timeout', _to);
 
+  if ('new_with_class' = cmd) goto no_ses;
+
   whenever not found goto no_ses;
 
+  fct_dbg_msg ('fct_vsp: select on sid');
+
   select fct_state into tree from fct_state where fct_sid = sid;
+  fct_dbg_msg ('fct_vsp: got ses');
   goto exec;
 
-  no_ses:
+ no_ses:
+  fct_dbg_msg ('fct_vsp: no ses found');
   declare r_v any;
 
-  if (s_for is not null) 
+  if (s_for is not null)
     {
       r_v := fct_create_ses();
       sid := r_v[0];
       tree := r_v[1];
 
-    cmd := 'text';
+      cmd := 'text';
     }
-  else if ('new_with_class' = cmd) 
+  else if ('new_with_class' = cmd)
     {
       r_v := fct_create_ses();
       sid := r_v[0];
@@ -2192,7 +2311,7 @@ fct_vsp ()
   else
     goto do_new_ses;
 
-exec:;  
+exec:;
   declare s_term varchar;
 
   connection_set ('sid', sid);
@@ -2207,13 +2326,14 @@ exec:;
   connection_set ('c_term', c_term);
 
   if (registry_get ('fct_log_enable') = 1)
-  insert into fct_log (fl_sid, fl_cli_ip, fl_where, fl_state, fl_cmd)
+    insert into fct_log (fl_sid, fl_cli_ip, fl_where, fl_state, fl_cmd)
          values (sid, http_client_ip(), 'DISPATCH', tree, cmd);
+
   commit work;
 
   start_time := msec_time ();
 
-  fct_dbg_msg (sprintf ('fct_vsp: cmd: %s', cmd));
+  fct_dbg_msg (sprintf ('fct_vsp: cmd: %s, sid: %d', cmd, sid));
 
   if ('text' = cmd)
     {
@@ -2235,9 +2355,11 @@ exec:;
 		  atoi (http_param ('offset')),
 		  http_param ('location-prop'));
   else if ('next' = cmd)
-    fct_next (tree, sid);
+    fct_next (tree, sid, http_param ('offset'), http_param ('limit'));
   else if ('prev' = cmd)
-    fct_prev (tree, sid);
+    fct_prev (tree, sid, http_param ('offset'), http_param ('limit'));
+  else if ('go_to' = cmd)
+    fct_go_to (tree, sid, http_param ('offset'), http_param ('limit'));
   else if ('set_text_property' = cmd)
     fct_set_text_property (tree, sid, http_param ('iri'));
   else if ('open_property' = cmd)
@@ -2248,7 +2370,7 @@ exec:;
     fct_drop (tree, sid, atoi (http_param ('n')));
   else if ('drop_cond' = cmd)
     fct_drop_cond (tree, sid, atoi (http_param ('cno')));
-  else if ('drop_text_prop' = cmd) 
+  else if ('drop_text_prop' = cmd)
     fct_drop_text_prop (tree, sid);
   else if ('drop_text' = cmd)
     fct_drop_text (tree, sid);
@@ -2274,29 +2396,29 @@ exec:;
 		      http_param ('lang'),
 		      http_param ('datatype'),
 		      http_param ('op'));
-    fct_dbg_msg (sprintf ('select_value: iri=%s, val=%s', 
-                          cast (http_param('iri') as varchar), 
+    fct_dbg_msg (sprintf ('select_value: iri=%s, val=%s',
+                          cast (http_param('iri') as varchar),
                           cast (http_param('val') as varchar)));
   }
   else if ('cond' = cmd) {
     declare cond_t varchar;
     cond_t := http_param ('cond_t');
 
-    if ('range' = cond_t) {    
-      fct_set_cond_range (tree, 
-                     sid, 
-                     http_param('lang'),
-                     http_param('datatype'),
+    if ('range' = cond_t) {
+      fct_set_cond_range (tree,
+                          sid,
+                          http_param('lang'),
+                          http_param('datatype'),
                           http_param('lo'),
                           http_param('hi'),
                           '');
       fct_dbg_msg (sprintf ('range: %s-%s', http_param('lo'), http_param('hi')));
     } else if ('neg_range' = cond_t) {
-      fct_set_cond_range (tree, 
-                     sid, 
-                     http_param('lang'),
-                     http_param('datatype'),
-                     http_param('lo'),
+      fct_set_cond_range (tree,
+                          sid,
+                          http_param('lang'),
+                          http_param('datatype'),
+                          http_param('lo'),
                           http_param('hi'),
                           'on');
       fct_dbg_msg (sprintf ('neg-range: %s-%s', http_param('lo'), http_param('hi')));
@@ -2305,28 +2427,44 @@ exec:;
                        sid,
                        http_param('neg'),
                        http_param('cond_parms'));
+    } else if ('not_in' = cond_t) {
+      fct_set_cond_in (tree,
+                       sid,
+                       1,
+                       http_param('cond_parms'));
     } else if ('near' = cond_t) {
-      fct_set_cond_near (tree, 
-                         sid, 
-                         http_param ('lat'), 
-                         http_param ('lon'), 
+      declare i_lat, i_lon, i_loc_trig_sel varchar;
+
+      i_lat := http_param ('lat');
+      i_lon := http_param ('lon');
+      i_loc_trig_sel := http_param ('loc_trig_sel');
+
+      if (i_lat = 0) i_lat := null;
+      if (i_lon = 0) i_lon := null;
+      if (i_loc_trig_sel = 0) i_loc_trig_sel := null;
+
+      fct_set_cond_near (tree,
+                         sid,
+                         i_lat,
+                         i_lon,
                          http_param ('dist'),
+                         i_loc_trig_sel,
                          http_param ('location-prop'));
     } else {
       declare iri,val any;
-      fct_set_cond (tree, 
-                     sid, 
+      fct_set_cond (tree,
+                    sid,
                     cond_t,
-                     http_param('lang'),
-                     http_param('datatype'),
+                    http_param('lang'),
+                    http_param('datatype'),
                     http_param('val'),
                     '');
---      fct_dbg_msg (sprintf ('set_cond: val=%s, cond_t=%s', 
---                  cast (http_param('val') as varchar), cast (http_param('cond_t') as varchar)));  
+--      fct_dbg_msg (sprintf ('set_cond: val=%s, cond_t=%s',
+--                  cast (http_param('val') as varchar), cast (http_param('cond_t') as varchar)));
     }
   }
   else if ('save' = cmd)
-    fct_save (tree, 
+    fct_save (tree,
 	      sid,
               http_param ('title'),
               http_param ('desc'));
@@ -2335,7 +2473,7 @@ exec:;
   else if ('featured' = cmd)
     fct_featured (tree, sid);
   else if ('set_loc' = cmd)
-    fct_set_loc (tree, sid);
+    fct_set_loc (tree, sid, cast (http_param('cno') as int));
   else
     {
       http_request_status ('HTTP/1.1 400 Bad request');
@@ -2347,14 +2485,14 @@ exec:;
   select fct_state into _state from fct_state where fct_sid = sid;
 
   if (registry_get ('fct_log_enable') = 1)
-  insert into fct_log (fl_sid, fl_cli_ip, fl_where, fl_state, fl_cmd, fl_msec)
+    insert into fct_log (fl_sid, fl_cli_ip, fl_where, fl_state, fl_cmd, fl_msec)
          values (sid, http_client_ip(), 'RETURN', _state, cmd, msec_time () - start_time);
 
   commit work;
 
   return;
 
-  do_new_ses:
+ do_new_ses:
   http (sprintf ('<div class="ses_info">Session id %d lost. New search started</div>', sid));
   fct_new ();
 }
@@ -2362,12 +2500,12 @@ exec:;
 
 create procedure fct_virt_info ()
 {
-  http ('<a href="http://www.openlinksw.com/virtuoso/">OpenLink Virtuoso</a> version '); 
-  http (sys_stat ('st_dbms_ver')); 
+  http ('<a href="http://www.openlinksw.com/virtuoso/">OpenLink Virtuoso</a> version ');
+  http (sys_stat ('st_dbms_ver'));
   http (', on ');
-  http (sys_stat ('st_build_opsys_id')); http (sprintf (' (%s), ', host_id ())); 
+  http (sys_stat ('st_build_opsys_id')); http (sprintf (' (%s), ', host_id ()));
   http (case when sys_stat ('cl_run_local_only') = 1 then 'Standard Edition' else 'Cluster Edition' end);
-  http (case when sys_stat ('cl_run_local_only') = 0 then sprintf ('(%d server processes)', sys_stat ('cl_n_hosts')) else '' end); 
+  http (case when sys_stat ('cl_run_local_only') = 0 then sprintf ('(%d server processes)', sys_stat ('cl_n_hosts')) else '' end);
 }
 ;
 
@@ -2384,10 +2522,28 @@ create procedure fct_page_head ()
     <div id="homelink"></div>
   </div> <!-- hd_l -->
   <div id="hd_r">
-    <a href="http://data.openlinksw.com/about/html/http://data.openlinksw.com/oplweb/product_family/virtuoso"
-    title="OpenLink Virtuoso">
-    <img class="powered_by" src="/fct/images/virt_power_no_border.png" alt="Powered by OpenLink Virtuoso"/>
-    </a>
+    <div class="addthis_toolbox addthis_default_style">
+      <a class="addthis_button_compact"></a>
+      <a class="addthis_button_preferred_1"></a>
+      <a class="addthis_button_preferred_2"></a>
+      <a class="addthis_button_preferred_3"></a>
+      <a class="addthis_button_preferred_4"></a>
+      <a class="addthis_button_google_plusone"></a>
+    </div>
   </div> <!-- hd_r -->');
 }
 ;
+
+create procedure fct_desc_page_head ()
+{
+  http ('<div id="hd_l">
+    <h1 id="logo">
+        <a href="/fct/facet.vsp">
+	   <img src="/fct/images/openlink_site_logo.png" alt="OpenLink Software"/>
+        </a>
+    </h1>
+    <div id="homelink"></div>
+  </div> <!-- hd_l -->
+  <div id="hd_r"></div> <!-- hd_r -->');
+}
+;
diff --git a/binsrc/b3s/fct_drop_cond.xsl b/binsrc/b3s/fct_drop_cond.xsl
index fd9101c..b96c147 100644
--- a/binsrc/b3s/fct_drop_cond.xsl
+++ b/binsrc/b3s/fct_drop_cond.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 --
---  $Id: fct_drop_cond.xsl,v 1.1.2.3 2011/10/26 15:38:11 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -22,28 +22,29 @@
 --  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 --
 -->
-<xsl:stylesheet version="1.0" 
+<xsl:stylesheet version="1.0"
 		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
 <xsl:param name="cno"/>
 
 <xsl:template match="class | value | value-range | cond-range | cond">
-  <xsl:if test="$cno != (count (./ancestor::*[name () = 'class' or 
-	                                     name () = 'value' or
-                                             name () = 'value-range' or 
+  <xsl:if test="$cno != (count (./ancestor::*[name () = 'class' or
+                                             name () = 'value' or
+                                             name () = 'value-range' or
                                              name () = 'cond-range' or
                                              name () = 'cond']) +
-                         count (./ancestor-or-self::*/preceding-sibling::*/descendant-or-self::*[name () = 'class' or 
-                                            name () = 'value' or
-                                              name () = 'value-range' or 
-                                              name () = 'cond-range' or 
+                         count (./ancestor-or-self::*/preceding-sibling::*/descendant-or-self::*[name () = 'class' or
+                                              name () = 'value' or
+                                              name () = 'value-range' or
+                                              name () = 'cond-range' or
                                               name () = 'cond']))">
     <xsl:copy>
       <xsl:apply-templates select="@* | node()"/>
     </xsl:copy>
   </xsl:if>
+
 </xsl:template>
- 
+
 <xsl:template match="@* | node()">
   <xsl:copy>
     <xsl:apply-templates select="@* | node()"/>
diff --git a/binsrc/b3s/fct_drop_text.xsl b/binsrc/b3s/fct_drop_text.xsl
index 5603c97..b0b78f7 100644
--- a/binsrc/b3s/fct_drop_text.xsl
+++ b/binsrc/b3s/fct_drop_text.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 --
---  $Id: fct_drop_text.xsl,v 1.1.2.1 2010/12/12 18:09:27 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -22,7 +22,7 @@
 --  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 --
 -->
-<xsl:stylesheet version="1.0" 
+<xsl:stylesheet version="1.0"
 		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
 <xsl:template match="text">
diff --git a/binsrc/b3s/fct_inx.sql b/binsrc/b3s/fct_inx.sql
index c0cdd90..038f07f 100644
--- a/binsrc/b3s/fct_inx.sql
+++ b/binsrc/b3s/fct_inx.sql
@@ -1,12 +1,12 @@
 --
---  $Id: fct_inx.sql,v 1.1.2.1 2009/05/08 11:18:40 source Exp $
+--  $Id$
 --
 --  Alternate RDF index scheme for cases where G unspecified
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/b3s/fct_req.xsl b/binsrc/b3s/fct_req.xsl
index 44fcfc8..fa665e1 100644
--- a/binsrc/b3s/fct_req.xsl
+++ b/binsrc/b3s/fct_req.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 --
---  $Id: fct_req.xsl,v 1.1.2.1 2009/04/17 11:07:29 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/b3s/fct_resp.xsl b/binsrc/b3s/fct_resp.xsl
index bae6962..2b3ae85 100644
--- a/binsrc/b3s/fct_resp.xsl
+++ b/binsrc/b3s/fct_resp.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 --
---  $Id: fct_resp.xsl,v 1.1.2.2 2009/05/01 19:39:36 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/b3s/fct_set_default.xsl b/binsrc/b3s/fct_set_default.xsl
index d5aa92a..30a33fe 100644
--- a/binsrc/b3s/fct_set_default.xsl
+++ b/binsrc/b3s/fct_set_default.xsl
@@ -1,25 +1,25 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
- -  
+ -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
- -  
- -  Copyright (C) 1998-2009 OpenLink Software
- -  
+ -
+ -  Copyright (C) 1998-2012 OpenLink Software
+ -
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
  -  Free Software Foundation; only version 2 of the License, dated June 1991.
- -  
+ -
  -  This program is distributed in the hope that it will be useful, but
  -  WITHOUT ANY WARRANTY; without even the implied warranty of
  -  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  -  General Public License for more details.
- -  
+ -
  -  You should have received a copy of the GNU General Public License along
  -  with this program; if not, write to the Free Software Foundation, Inc.,
  -  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- -  
- -  
+ -
+ -
 -->
 <xsl:stylesheet version="1.0"
 		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
diff --git a/binsrc/b3s/fct_set_loc.xsl b/binsrc/b3s/fct_set_loc.xsl
new file mode 100644
index 0000000..b3be687
--- /dev/null
+++ b/binsrc/b3s/fct_set_loc.xsl
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+--
+--  $Id$
+--
+--  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+--  project.
+--
+--  Copyright (C) 1998-2012 OpenLink Software
+--
+--  This project is free software; you can redistribute it and/or modify it
+--  under the terms of the GNU General Public License as published by the
+--  Free Software Foundation; only version 2 of the License, dated June 1991.
+--
+--  This program is distributed in the hope that it will be useful, but
+--  WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+--  General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License along
+--  with this program; if not, write to the Free Software Foundation, Inc.,
+--  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+--
+-->
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:param name="cno"/>
+<xsl:param name="lat"/>
+<xsl:param name="lon"/>
+
+<xsl:template match="cond[@type = 'near']">
+  <xsl:choose>
+    <xsl:when test="$cno != (count (./ancestor::*[name () = 'class' or
+                                                  name () = 'value' or
+                                                  name () = 'value-range' or
+                                                  name () = 'cond-range' or
+                                                  name () = 'cond']) +
+                             count (./ancestor-or-self::*/preceding-sibling::*/descendant-or-self::*[name () = 'class' or
+                                              name () = 'value' or
+                                              name () = 'value-range' or
+                                              name () = 'cond-range' or
+                                              name () = 'cond']))">
+      <xsl:copy>
+        <xsl:apply-templates select="@* | node()"/>
+      </xsl:copy>
+    </xsl:when>
+    <xsl:otherwise>
+      <cond type="near">
+        <xsl:attribute name="neg">
+          <xsl:value-of select="./@neg"/>
+        </xsl:attribute>
+        <xsl:attribute name="location-prop">
+          <xsl:value-of select="./@location-prop"/>
+        </xsl:attribute>
+        <xsl:attribute name="d">
+          <xsl:value-of select="./@d"/>
+        </xsl:attribute>
+        <xsl:attribute name="acquire">
+          <xsl:value-of select="./@acquire"/>
+        </xsl:attribute>
+        <xsl:attribute name="lat"><xsl:value-of select="$lat"/></xsl:attribute>
+        <xsl:attribute name="lon"><xsl:value-of select="$lon"/></xsl:attribute>
+      </cond>
+      <xsl:apply-templates select="@* | node()"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="@* | node()">
+  <xsl:copy>
+    <xsl:apply-templates select="@* | node()"/>
+  </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/binsrc/b3s/fct_set_text.xsl b/binsrc/b3s/fct_set_text.xsl
index e246249..a1d78f9 100644
--- a/binsrc/b3s/fct_set_text.xsl
+++ b/binsrc/b3s/fct_set_text.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 --
---  $Id: fct_set_text.xsl,v 1.1.2.1 2009/04/17 11:07:29 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -46,7 +46,7 @@
 
 <xsl:template match="text">
 </xsl:template>
- 
+
 <xsl:template match="@* | node()">
   <xsl:copy>
     <xsl:apply-templates select="@* | node()"/>
diff --git a/binsrc/b3s/fct_set_view.xsl b/binsrc/b3s/fct_set_view.xsl
index fac6c75..facf949 100644
--- a/binsrc/b3s/fct_set_view.xsl
+++ b/binsrc/b3s/fct_set_view.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 --
---  $Id: fct_set_view.xsl,v 1.1.2.8 2011/10/26 15:38:11 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -44,109 +44,111 @@
 <xsl:param name="lat"/>
 <xsl:param name="lon"/>
 <xsl:param name="d"/>
+<xsl:param name="loc_acq"/>
 
-<xsl:template match = "query | property |property-of">
+<xsl:template match = "query | property | property-of">
 
-<xsl:if test="not ($op = 'close') or
-	      not ($pos = count (./ancestor::*[name () = 'query' or
-	                                       name () = 'property' or
-					       name () = 'property-of']) +
-			  count (./preceding::*[name () = 'query' or
-			                        name () = 'property' or
-						name () = 'property-of']))">
-  <xsl:copy>
-    <xsl:apply-templates select="@* | node()" />
-
-    <xsl:if test="$op = 'view' and
-		  $pos = count (./ancestor::*[name () = 'query' or
-		                              name () = 'property' or
-					      name () = 'property-of']) +
-			 count (./preceding::*[name () = 'query' or
-			                       name () = 'property' or
-					       name () = 'property-of'])">
-      <xsl:element name="view">
-        <xsl:attribute name="type">
-          <xsl:choose>
-            <xsl:when test="'list' = $type and ./text">text-d</xsl:when>
-            <xsl:otherwise><xsl:value-of select="$type"/></xsl:otherwise>
-          </xsl:choose>
-        </xsl:attribute>
-        <xsl:attribute name="limit"> <xsl:value-of select="$limit"/></xsl:attribute>
-	<xsl:attribute name="offset"> <xsl:value-of select="$offset"/></xsl:attribute>
-	<xsl:if test="$location-prop">
-	    <xsl:attribute name="location-prop"> 
-	        <xsl:value-of select="$location-prop"/>
+  <xsl:if test="not ($op = 'close') or
+	        not ($pos = count (./ancestor::*[name () = 'query' or
+	                                         name () = 'property' or
+			                         name () = 'property-of']) +
+			    count (./ancestor-or-self::*/preceding-sibling::*/descendant-or-self::*[name () = 'query' or
+			                          name () = 'property' or
+						  name () = 'property-of']))">
+    <xsl:copy>
+      <xsl:apply-templates select="@* | node()" />
+
+      <xsl:if test="$op = 'view' and
+	            $pos = count (./ancestor::*[name () = 'query' or
+		                                name () = 'property' or
+			                        name () = 'property-of']) +
+			   count (./ancestor-or-self::*/preceding-sibling::*/descendant-or-self::*[name () = 'query' or
+			                         name () = 'property' or
+					         name () = 'property-of'])">
+        <xsl:element name="view">
+          <xsl:attribute name="type">
+            <xsl:choose>
+              <xsl:when test="'list' = $type and ./text">text-d</xsl:when>
+              <xsl:otherwise><xsl:value-of select="$type"/></xsl:otherwise>
+            </xsl:choose>
+          </xsl:attribute>
+          <xsl:attribute name="limit"><xsl:value-of select="$limit"/></xsl:attribute>
+	  <xsl:attribute name="offset"><xsl:value-of select="$offset"/></xsl:attribute>
+	  <xsl:if test="$location-prop">
+	    <xsl:attribute name="location-prop">
+	      <xsl:value-of select="$location-prop"/>
             </xsl:attribute>
-	</xsl:if>
-      </xsl:element>
-    </xsl:if>
-
-    <xsl:if test="$op = 'prop' and
-		  $pos = count (./ancestor::*[name () = 'query' or
-		                              name () = 'property' or
-					      name () = 'property-of']) +
-                         count (./preceding::*[name () = 'query' or
-			                       name () = 'property' or
-					       name () = 'property-of'])">
-      <xsl:element name="{$name}">
-	<xsl:attribute name="iri">
-	  <xsl:value-of select="$iri"/>
-	</xsl:attribute>
-	<xsl:if test="$exclude = 'yes'">
+	  </xsl:if>
+        </xsl:element>
+      </xsl:if>
+
+      <xsl:if test="$op = 'prop' and
+                    $pos = count (./ancestor::*[name () = 'query' or
+		                                name () = 'property' or
+			                        name () = 'property-of']) +
+                           count (./preceding::*[name () = 'query' or
+			                         name () = 'property' or
+				                 name () = 'property-of'])">
+        <xsl:element name="{$name}">
+	  <xsl:attribute name="iri">
+	    <xsl:value-of select="$iri"/>
+	  </xsl:attribute>
+	  <xsl:if test="$exclude = 'yes'">
 	    <xsl:attribute name="exclude">yes</xsl:attribute>
-	</xsl:if>
-	<xsl:element name="view">
-	  <xsl:attribute name="type"> <xsl:value-of select="$type"/></xsl:attribute>
-	  <xsl:attribute name="limit"> <xsl:value-of select="$limit"/></xsl:attribute>
-	  <xsl:attribute name="offset"> <xsl:value-of select="$offset"/></xsl:attribute>
-	</xsl:element>
-      </xsl:element>
-    </xsl:if>
-
-    <xsl:choose>
-      <xsl:when test="$op = 'class' and
-		      $pos = count (./ancestor::*[name () = 'query' or
-		                                  name () = 'property' or
-			                          name () = 'property-of']) +
-			     count (./preceding::*[name () = 'query' or
-			                           name () = 'property' or
-					           name () = 'property-of'])">
-        <class iri="{$iri}">
+	  </xsl:if>
+	  <xsl:element name="view">
+	    <xsl:attribute name="type"><xsl:value-of select="$type"/></xsl:attribute>
+	    <xsl:attribute name="limit"><xsl:value-of select="$limit"/></xsl:attribute>
+	    <xsl:attribute name="offset"><xsl:value-of select="$offset"/></xsl:attribute>
+	  </xsl:element>
+        </xsl:element>
+      </xsl:if>
+
+      <xsl:choose>
+
+        <xsl:when test="$op = 'class' and
+	                $pos = count (./ancestor::*[name () = 'query' or
+		                                    name () = 'property' or
+			                            name () = 'property-of']) +
+			       count (./ancestor-or-self::*/preceding-sibling::*/descendant-or-self::*[name () = 'query' or
+			                             name () = 'property' or
+				                     name () = 'property-of'])">
+          <class iri="{$iri}">
 	    <xsl:if test="$exclude = 'yes'">
-		<xsl:attribute name="exclude">yes</xsl:attribute>
+	      <xsl:attribute name="exclude">yes</xsl:attribute>
 	    </xsl:if>
-	</class>
-      </xsl:when>
+	  </class>
+        </xsl:when>
 
         <!-- xsl:when test="$op = 'class'">
-        <class iri="{$iri}"/>
-        <xsl:element name="view">
+          <class iri="{$iri}"/>
+          <xsl:element name="view">
             <xsl:attribute name="type">list</xsl:attribute>
-	  <xsl:attribute name="limit"> <xsl:value-of select="$limit"/></xsl:attribute>
-	  <xsl:attribute name="offset"> <xsl:value-of select="$offset"/></xsl:attribute>
-	</xsl:element>
+	    <xsl:attribute name="limit"><xsl:value-of select="$limit"/></xsl:attribute>
+	    <xsl:attribute name="offset"><xsl:value-of select="$offset"/></xsl:attribute>
+	  </xsl:element>
         </xsl:when -->
-    </xsl:choose>
-    
-    <xsl:if test="$op = 'value' and
-		  $pos = count (./ancestor::*[name () = 'query' or
-		                              name () = 'property' or
-					      name () = 'property-of']) +
-		         count (./preceding::*[name () = 'query' or
-			                       name () = 'property' or
-					       name () = 'property-of'])">
-      <value xml:lang="{$lang}"
-	     datatype="{$datatype}"
-	     op="{$cmp}">
+      </xsl:choose>
+
+      <xsl:if test="$op = 'value' and
+	            $pos = count (./ancestor::*[name () = 'query' or
+		                                name () = 'property' or
+			                        name () = 'property-of']) +
+                           count (./ancestor-or-self::*/preceding-sibling::*/descendant-or-self::*[name () = 'query' or
+			                         name () = 'property' or
+				                 name () = 'property-of'])">
+        <value xml:lang="{$lang}"
+	       datatype="{$datatype}"
+               op="{$cmp}">
           <xsl:value-of select="$val"/>
-      </value>
-    </xsl:if>
+        </value>
+      </xsl:if>
 
       <xsl:if test="$op = 'cond-range' and
 	            $pos = count (./ancestor::*[name () = 'query' or
 		                                name () = 'property' or
 			                        name () = 'property-of']) +
-                           count (./preceding::*[name () = 'query' or
+                           count (./ancestor-or-self::*/preceding-sibling::*/descendant-or-self::*[name () = 'query' or
 			                         name () = 'property' or
 				                 name () = 'property-of'])">
         <cond-range xml:lang="{$lang}"
@@ -171,37 +173,42 @@
             </cond>
           </xsl:when>
           <xsl:when test="$cond_t = 'near'">
-            <cond type="{$cond_t}" neg="{$neg}" lat="{$lat}" lon="{$lon}" d="{$d}" location-prop="{$location-prop}"/>
+            <cond type="{$cond_t}" neg="{$neg}" lat="{$lat}" lon="{$lon}" d="{$d}" location-prop="{$location-prop}">
+              <xsl:if test="$loc_acq = 'on'">
+                <xsl:attribute name="acquire">true</xsl:attribute>
+              </xsl:if>
+            </cond>
           </xsl:when>
           <xsl:otherwise>
             <cond type="{$cond_t}"
-              xml:lang="{$lang}"
-	      datatype="{$datatype}"
-              neg="{$neg}">
+                  xml:lang="{$lang}"
+	          datatype="{$datatype}"
+                  neg="{$neg}">
               <xsl:value-of select="$val"/>
             </cond>
           </xsl:otherwise>
         </xsl:choose>
       </xsl:if>
-  </xsl:copy>
-</xsl:if>
+
+    </xsl:copy>
+  </xsl:if>
 
 </xsl:template>
 
 <xsl:template match="view">
-    <xsl:choose>
-	<xsl:when test="'class' = $op" >
-	    <xsl:copy>
-		<xsl:attribute name="offset"><xsl:value-of select="$offset"/></xsl:attribute>
-		<xsl:apply-templates select="@*[local-name () != 'offset'] | node()" />
-	    </xsl:copy>
-	</xsl:when>
-	<xsl:when test="'value' = $op or '' = $op" >
-  <xsl:copy>
-    <xsl:apply-templates select="@* | node()" />
-  </xsl:copy>
-	</xsl:when>
-    </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="'class' = $op" >
+      <xsl:copy>
+        <xsl:attribute name="offset"><xsl:value-of select="$offset"/></xsl:attribute>
+        <xsl:apply-templates select="@*[local-name () != 'offset'] | node()" />
+      </xsl:copy>
+    </xsl:when>
+    <xsl:when test="'value' = $op or '' = $op" >
+      <xsl:copy>
+        <xsl:apply-templates select="@* | node()" />
+      </xsl:copy>
+    </xsl:when>
+  </xsl:choose>
 </xsl:template>
 
 <xsl:template match="@* | node()">
diff --git a/binsrc/b3s/fct_strip_loc.xsl b/binsrc/b3s/fct_strip_loc.xsl
new file mode 100644
index 0000000..1678803
--- /dev/null
+++ b/binsrc/b3s/fct_strip_loc.xsl
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+--
+--  $Id$
+--
+--  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
+--  project.
+--
+--  Copyright (C) 1998-2012 OpenLink Software
+--
+--  This project is free software; you can redistribute it and/or modify it
+--  under the terms of the GNU General Public License as published by the
+--  Free Software Foundation; only version 2 of the License, dated June 1991.
+--
+--  This program is distributed in the hope that it will be useful, but
+--  WITHOUT ANY WARRANTY; without even the implied warranty of
+--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+--  General Public License for more details.
+--
+--  You should have received a copy of the GNU General Public License along
+--  with this program; if not, write to the Free Software Foundation, Inc.,
+--  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+--
+-->
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<!-- strip "temporary" location data off any cond with auto-acquire enabled for permalinks -->
+
+<xsl:template match="cond[@acquire='true']">
+  <cond type="near">
+    <xsl:attribute name="neg">
+      <xsl:value-of select="./@neg"/>
+    </xsl:attribute>
+    <xsl:attribute name="location-prop">
+      <xsl:value-of select="./@location-prop"/>
+    </xsl:attribute>
+    <xsl:attribute name="d">
+      <xsl:value-of select="./@d"/>
+    </xsl:attribute>
+    <xsl:attribute name="acquire">
+      <xsl:value-of select="./@acquire"/>
+    </xsl:attribute>
+  </cond>
+</xsl:template>
+
+<xsl:template match="@* | node()">
+  <xsl:copy>
+    <xsl:apply-templates select="@* | node()"/>
+  </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/binsrc/b3s/fct_vsp.xsl b/binsrc/b3s/fct_vsp.xsl
index 7fdd94b..3de8f16 100644
--- a/binsrc/b3s/fct_vsp.xsl
+++ b/binsrc/b3s/fct_vsp.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 --
---  $Id: fct_vsp.xsl,v 1.1.2.22 2011/10/28 16:09:47 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -22,13 +22,18 @@
 --  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 --
 -->
-<xsl:stylesheet version ="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:addthis="http://www.addthis.com/help/api-spec">
 <xsl:output method="html" encoding="ISO-8859-1" indent="yes"/>
+<!-- Pager-related vars calculation -->
 
-<xsl:variable name="page_len" select="20"/>
-<xsl:variable name="offs" 
+<xsl:variable name="offs"
               select="if(or(/facets/view/@offset = '', not(/facets/view/@offset)), 1, /facets/view/@offset + 1)"/>
+<xsl:variable name="limit" select="/facets/view/@limit"/>
+
 <xsl:variable name="rowcnt" select="count(/facets/result/row)"/>
+
 <xsl:param name="s_term"/>
 <xsl:param name="p_term"/>
 <xsl:param name="o_term"/>
@@ -36,188 +41,173 @@
 <xsl:param name="p_qry"/>
 <xsl:param name="p_xml"/>
 <xsl:param name="tree"/>
+<xsl:param name="addthis_key"/>
+<xsl:param name="type"/>
 
-<xsl:template match = "facets">
-<div id="res">
-  <div class="btn_bar btn_bar_top"><xsl:comment><xsl:value-of select="$type"/></xsl:comment>
-    <xsl:call-template name="render-pager"/>
-  <xsl:if test="/facets/complete != 'yes'">
-    <span class="partial_res_expln">
-      <xsl:choose>
-        <xsl:when test="$rowcnt != 0">
-          The query timed out with partial result:
-        </xsl:when>
-        <xsl:otherwise>
-          The query timed out with no result:
-        </xsl:otherwise>
-      </xsl:choose>
-    </span>
-    <a class="partial_res_help" href="/fct/facet_doc.html#timeout">What's this?</a> 
-    <button>
-      <xsl:attribute name="onclick">
-        javascript:fct_nav_to('/fct/facet.vsp?cmd=refresh&sid=<xsl:value-of select="$sid"/>&timeout=<xsl:value-of select="$timeout"/>')
-      </xsl:attribute>Retry with <xsl:value-of select="($timeout div 1000)"/> seconds timeout
-    </button>
-  </xsl:if>
-</div> <!-- btn_bar -->
-<xsl:if test="/facets/complete = 'yes' and /facets/processed = 0 and $rowcnt = 0">
-  <div class="empty_result">
-    Nothing found.
-  </div>
-</xsl:if>
-<xsl:choose>
-  <!--xsl:when test="$type = 'text'"><h3>Text match results</h3></xsl:when>
-  <xsl:when test="$type = 'text-d'"><h3>Text match results</h3></xsl:when>
-  <xsl:when test="$type = 'text-properties'"><h3>List of Properties With Matching Text</h3></xsl:when>
-  <xsl:when test="$type = 'classes'"><h3>Types</h3></xsl:when>
-  <xsl:when test="$type = 'properties'"><h3>Properties</h3></xsl:when>
-  <xsl:when test="$type = 'properties-in'"><h3>Referencing Properties</h3></xsl:when-->
-  <xsl:when test="$type = 'list'"><h3>Select a value or condition</h3></xsl:when>
-  <!--xsl:when test="$type = 'list-count'"><h3>Distinct values</h3></xsl:when>
-  <xsl:when test="$type = 'geo'"><h3>Location</h3></xsl:when-->
-</xsl:choose>
-<!--xsl:message terminate="no"><xsl:value-of select="$type"/></xsl:message-->
-<xsl:choose>
-  <xsl:when test="$type = 'geo' or $type = 'geo-list'">
-    <script type="text/javascript" >
-<![CDATA[
-
-OAT.Preferences.imagePath = "oat/images/";
-
-function markerClickHandler (caller, msg, m) {
-  var c = m.__fct_bubble_content;
+<xsl:variable name="view-type">
+  <xsl:choose>
+    <xsl:when test="/facets/result/@type='list' and /facets/view/@position='0'">
+      <xsl:text>entities-list</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="/facets/result/@type"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
 
-        var x;
-  if (c[0].length > 0) {
-	  x = OAT.Dom.create ("a");
-    x.href = '/describe/?url='+escape (c[0]);
-    if (c[1].length > 0)
-      x.innerHTML = c[1];
-	  else
-      x.innerHTML = c[0];
-	}
-  else x = OAT.Dom.text(c[1]);
-  window.cMap.openWindow (m, x);
-      }
+<xsl:variable name="noresult">
+  <xsl:if test="/facets/complete = 'yes' and /facets/processed = 0 and $rowcnt = 0"><xsl:value-of select="1"/></xsl:if>
+</xsl:variable>
 
-function init(){
-  window.cMap = {};
-  var mapcb = function() {
-    window.cMap.init(OAT.Map.TYPE_G3);
-    window.cMap.centerAndZoom(0,0,0);
-    window.cMap.setMapType(OAT.Map.MAP_HYB);
-    OAT.MSG.attach ("*", "MAP_MARKER_CLICK", markerClickHandler);
-    var markersArr = [];
-]]>
-    <xsl:for-each select="result/row">
-      window.cMap.addMarker( <xsl:value-of select="column[3]"/>,
-                             <xsl:value-of select="column[4]"/>,
-                             false,
-                             {image: "oat/images/markers/01.png",
-                              imageSize: [18,41],
-                              custData: {__fct_bubble_content: ["<xsl:value-of select="column[1]"/>", 
-	                                                        "<xsl:value-of select='translate (normalize-space (column[2]), '"', '')'/>"]}});
-      markersArr.push([<xsl:value-of select="column[3]"/>,<xsl:value-of select="column[4]"/>]);
-    </xsl:for-each>
-<![CDATA[
-    window.cMap.optimalPosition(markersArr);
-    window.cMap.showMarkers(false);
-    return;
-  }
-  window.YMAPPID = "";
-  var providerType = OAT.Map.TYPE_G3;
-  window.cMap = new OAT.Map($('user_map'),providerType,{fix:OAT.Map.FIX_ROUND1});
-  OAT.Map.loadApi(providerType, {callback: mapcb});
-  window.geo_ui = new Geo_ui ('cond_form');
-}
-]]>
-    </script>
-    <div id="user_map"></div>
-    <xsl:call-template name="render-geo-conds-ui"/>
-  </xsl:when>
-  <xsl:otherwise>
+<xsl:template match="facets">
+  <div id="res">
+    <div class="btn_bar btn_bar_top">
+      <xsl:comment><xsl:value-of select="$type"/></xsl:comment>
+      <xsl:call-template name="render-pager">
+        <xsl:with-param name="pfx">pager_top</xsl:with-param>
+      </xsl:call-template>
+      <xsl:if test="/facets/complete != 'yes'">
+        <span class="partial_res_expln">
+          <xsl:choose>
+            <xsl:when test="$rowcnt != 0">
+              <xsl:text>The query timed out with partial result:</xsl:text>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:text>The query timed out with no result:</xsl:text>
+            </xsl:otherwise>
+          </xsl:choose>
+        </span>
+        <a class="partial_res_help" href="/fct/facet_doc.html#timeout">What's this?</a> 
+        <button>
+          <xsl:attribute name="onclick">
+            javascript:fct_nav_to('/fct/facet.vsp?cmd=refresh&sid=<xsl:value-of select="$sid"/>&timeout=<xsl:value-of select="$timeout"/>')
+          </xsl:attribute>Retry with <xsl:value-of select="($timeout div 1000)"/> seconds timeout
+        </button>
+      </xsl:if>
+    </div> <!-- btn_bar -->
     <xsl:choose>
-      <xsl:when test="count (/facets/result) > 1">
-	<xsl:for-each select="result[@type = 'classes' or @type = 'properties']">
-	  <div class="facet_ctr">
-	    <xsl:choose>
-              <xsl:when test="@type='properties'">
-		<h4 class="facet_hd">Properties</h4>
-              </xsl:when>
+      <xsl:when test="$noresult = 1">
+        <div class="empty_result">
+          <h3>No Result</h3>
+          <p>This query did not produce any results.<br/>
+          Try dropping some of the conditions, to make the query less specific.</p>
+        </div>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:choose>
+          <!--xsl:when test="$view-type = 'text'"><h3>Text match results</h3></xsl:when>
+          <xsl:when test="$view-type = 'text-d'"><h3>Text match results</h3></xsl:when>
+          <xsl:when test="$view-type = 'text-properties'"><h3>List of Properties With Matching Text</h3></xsl:when>
+          <xsl:when test="$view-type = 'classes'"><h3>Types</h3></xsl:when>
+          <xsl:when test="$view-type = 'properties'"><h3>Properties</h3></xsl:when>
+          <xsl:when test="$view-type = 'properties-in'"><h3>Referencing Properties</h3></xsl:when-->
+          <xsl:when test="$view-type = 'list'"><h3>Select a value or condition</h3></xsl:when>
+          <xsl:when test="$view-type = 'entities-list'"><h3>Entities found</h3></xsl:when>
+          <!--xsl:when test="$view-type = 'list-count'"><h3>Distinct values</h3></xsl:when>
+          <xsl:when test="$view-type = 'geo'"><h3>Location</h3></xsl:when-->
+        </xsl:choose>
+        <!-- xsl:message terminate="no"><xsl:value-of select="$type"/></xsl:message -->
+        <xsl:choose>
+          <xsl:when test="$view-type = 'geo' or $view-type = 'geo-list'">
+            <xsl:call-template name="render-geo-conds-ui">
+              <xsl:with-param name="result" select="/facets/result"/>
+            </xsl:call-template>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:choose>
+              <xsl:when test="count (/facets/result) > 1">
+	        <xsl:for-each select="result[@type = 'classes' or @type = 'properties']">
+	          <div class="facet_ctr">
+	            <xsl:choose>
+                      <xsl:when test="@type='properties'">
+		        <h4 class="facet_hd">Properties</h4>
+                      </xsl:when>
+                      <xsl:otherwise>
+		        <h4 class="facet_hd">Types</h4>
+                      </xsl:otherwise>
+	            </xsl:choose>
+	            <div class="facet">
+                      <xsl:call-template name="render-result">
+                        <xsl:with-param name="view-type"><xsl:value-of select="$view-type"/></xsl:with-param>
+		        <xsl:with-param name="command">
+		          <xsl:choose>
+                            <xsl:when test="@type = 'classes'">set_class</xsl:when>
+                            <xsl:when test="@type = 'properties'">open_property</xsl:when>
+                            <xsl:otherwise><xsl:value-of select="$cmd"/></xsl:otherwise>
+                          </xsl:choose>
+                        </xsl:with-param>
+                      </xsl:call-template>
+	            </div>
+	          </div> <!-- facet_ctr -->
+	        </xsl:for-each>
+	        <xsl:for-each select="/facets/result [@type != 'classes' and @type != 'properties']">
+	          <xsl:call-template name="render-result">
+	            <xsl:with-param name="view-type"><xsl:value-of select="$view-type"/></xsl:with-param>
+	            <xsl:with-param name="command">
+	              <xsl:choose>
+                        <xsl:when test="@type = 'classes'">set_class</xsl:when>
+                        <xsl:when test="@type = 'properties'">open_property</xsl:when>
+                        <xsl:otherwise><xsl:value-of select="$cmd"/></xsl:otherwise>
+                      </xsl:choose>
+	            </xsl:with-param>
+	          </xsl:call-template>
+                </xsl:for-each>
+              </xsl:when> <!-- multiple results -->
               <xsl:otherwise>
-		<h4 class="facet_hd">Types</h4>
+                <xsl:for-each select="/facets/result">
+	          <xsl:call-template name="render-result">
+	            <xsl:with-param name="view-type"><xsl:value-of select="$view-type"/></xsl:with-param>
+	            <xsl:with-param name="command">
+	              <xsl:choose>
+                        <xsl:when test="@type = 'classes'">set_class</xsl:when>
+                        <xsl:when test="@type = 'properties'">open_property</xsl:when>
+	                <xsl:otherwise><xsl:value-of select="$cmd"/></xsl:otherwise>
+                      </xsl:choose>
+	            </xsl:with-param>
+	          </xsl:call-template>
+                </xsl:for-each>
               </xsl:otherwise>
-	    </xsl:choose>
-	    <div class="facet">
-              <xsl:call-template name="render-result">
-		<xsl:with-param name="view-type"><xsl:value-of select="@type"/></xsl:with-param>
-		<xsl:with-param name="command">
-		  <xsl:choose>
-		    <xsl:when test="@type = 'classes'">set_class</xsl:when>
-		    <xsl:when test="@type = 'properties'">open_property</xsl:when>
-		    <xsl:otherwise><xsl:value-of select="$cmd"/></xsl:otherwise>
-                  </xsl:choose>
-		</xsl:with-param>
-              </xsl:call-template>
-	    </div>
-	  </div> <!-- facet_ctr -->
-	</xsl:for-each>
-	<xsl:for-each select="/facets/result [@type != 'classes' and @type != 'properties']">
-	  <xsl:call-template name="render-result">
-	    <xsl:with-param name="view-type"><xsl:value-of select="$type"/></xsl:with-param>
-	    <xsl:with-param name="command">
-	      <xsl:choose>
-                <xsl:when test="@type = 'classes'">set_class</xsl:when>
-                <xsl:when test="@type = 'properties'">open_property</xsl:when>
-                <xsl:otherwise><xsl:value-of select="$cmd"/></xsl:otherwise>
-              </xsl:choose>
-	    </xsl:with-param>
-	  </xsl:call-template>
-        </xsl:for-each>
-      </xsl:when> <!-- multiple results -->
-      <xsl:otherwise>
-        <xsl:for-each select="/facets/result">
-	  <xsl:call-template name="render-result">
-	    <xsl:with-param name="view-type"><xsl:value-of select="$type"/></xsl:with-param>
-	    <xsl:with-param name="command">
-	      <xsl:choose>
-                <xsl:when test="@type = 'classes'">set_class</xsl:when>
-                <xsl:when test="@type = 'properties'">open_property</xsl:when>
-	        <xsl:otherwise><xsl:value-of select="$cmd"/></xsl:otherwise>
-              </xsl:choose>
-	    </xsl:with-param>
-	  </xsl:call-template>
-        </xsl:for-each>
-      </xsl:otherwise>
+            </xsl:choose>
+          </xsl:otherwise>
+        </xsl:choose>
+        <div class="btn_bar">
+          <xsl:call-template name="render-pager">
+            <xsl:with-param name="pfx">pager_bottom</xsl:with-param>
+          </xsl:call-template>
+        </div> <!-- btn_bar -->
+      </xsl:otherwise> <!-- non-empty result -->
     </xsl:choose>
-  </xsl:otherwise>
-</xsl:choose>
-<div class="btn_bar">
-  <xsl:call-template name="render-pager"/>
-</div> <!-- btn_bar -->
-<div id="result_nfo">
-  <xsl:choose>
-    <xsl:when test="/facets/complete = 'yes'">Complete result - </xsl:when>
-    <xsl:otherwise>Partial result - </xsl:otherwise>
-  </xsl:choose>
-  <xsl:value-of select="if(/facets/processed > 0, /facets/processed, $rowcnt)"/> processed in <xsl:value-of select="/facets/time"/> msec.<br/>  Resource utilization:
-  <xsl:value-of select="/facets/db-activity"/> 
-</div> <!-- #result_nfo -->
-</div> <!-- #res -->
-<script type="text/javascript">
+    <div id="result_nfo">
+      <xsl:choose>
+        <xsl:when test="/facets/complete = 'yes'">
+          <xsl:text>Complete result - </xsl:text>
+        </xsl:when>
+        <xsl:otherwise>Partial result - </xsl:otherwise>
+      </xsl:choose>
+      <xsl:value-of select="if(/facets/processed > 0, /facets/processed, $rowcnt)"/>
+      <xsl:text> processed in </xsl:text>
+      <xsl:value-of select="/facets/time"/>
+      <xsl:text> msec.</xsl:text>
+      <br/>
+      <xsl:text>  Resource utilization: </xsl:text>
+      <xsl:value-of select="/facets/db-activity"/>
+    </div> <!-- #result_nfo -->
+  </div> <!-- #res -->
+  <script type="text/javascript">
   var sparql_a = OAT.Dom.create('a',{}, 'sparql_a');
-  sparql_a.href='/sparql?qtxt=<xsl:value-of select="urlify ($p_qry)"/>&debug='
+  sparql_a.href='/sparql?default-graph-uri=&qtxt=<xsl:value-of select="urlify ($p_qry)"/>&debug='
   sparql_a.innerHTML = 'View query as SPARQL';
   var plink_a = OAT.Dom.create('a',{}, 'plink_a');
   plink_a.href='/fct/facet.vsp?qxml=<xsl:value-of select="urlify ($p_xml)"/>'
   plink_a.innerHTML = 'Facet permalink';
   OAT.Dom.append (['sparql_a_ctr',sparql_a, plink_a]);
-</script>
-<xsl:if test="$type = 'default'">
-<script type="text/javascript">
+  </script>
+  <!--xsl:message terminate="no">addthis_key:<xsl:value-of select="$addthis_key"/></xsl:message-->
+  <xsl:if test="$view-type = 'entities-list' or $type = 'default'">
+  <script type="text/javascript">
   if ($('pivot_a_ctr')) {
-	  var pivot_a = OAT.Dom.create('a',{}, 'pivot_a');
-      pivot_a.href='/pivot_collections/pivot.vsp?sid=<xsl:value-of select="$sid"/>&limit=75&qrcodes=0&CXML_redir_for_subjs=&CXML_redir_for_hrefs=&q=<xsl:value-of select="urlify (normalize-space(/facets/sparql))"/>'
+    var pivot_a = OAT.Dom.create('a', {}, 'pivot_a');
+    pivot_a.href='/pivot_collections/pivot.vsp?sid=<xsl:value-of select="$sid"/>&limit=75&qrcodes=0&CXML_redir_for_subjs=&CXML_redir_for_hrefs=&q=<xsl:value-of select="urlify (normalize-space(/facets/sparql))"/>'
 	  pivot_a.innerHTML = 'Make Pivot collection';
       pivot_a.id = 'pivot_a_mpc';
 
@@ -228,7 +218,7 @@ function init(){
 
 	  var pivot_link_opts = OAT.Dom.create('span', {}, 'pivot_link_opts');
 	  pivot_link_opts.innerHTML = '  \
-	  <a href="#" title="Sets the link-out behavior of subject URIs, optionally performing a DESCRIBE on the subject">Subject link behavior</a> \
+	  <a href="#" title="Sets the link-out behavior of subject URIs, optionally performing a DESCRIBE on the subject">Subject  link behavior</a> \
 	  <select id="CXML_redir_for_subjs" onchange="fct_set_pivot_subj_uri_opt()">\
 			<option value="121" selected="true">External resource link</option>\
 	  		<option value="">No link out</option>\
@@ -254,70 +244,120 @@ function init(){
 
       OAT.Dom.append (['pivot_a_ctr',pivot_a,pivot_pg,pivot_qrcode_opts,pivot_link_opts]);
   }
-</script>
-</xsl:if>
+    </script>
+  </xsl:if>
+
+  <xsl:call-template name="render-init-func">
+    <xsl:with-param name="result" select="/facets/result"/>
+  </xsl:call-template>
+
+</xsl:template>
+
+<xsl:template name="render-limit-opts">
+  <xsl:param name="lim-list"/>
+  <xsl:param name="limit"/>
+  <xsl:variable name="new-lim-list" select="concat(normalize-space($lim-list), ' ')"/>
+  <xsl:variable name="first-val" select="substring-before($new-lim-list, ' ')" />
+  <xsl:variable name="remaining" select="substring-after($new-lim-list, ' ')" />
+  <option>
+    <xsl:attribute name="value"><xsl:value-of select="$first-val"/></xsl:attribute>
+    <xsl:if test="$first-val = $limit"><xsl:attribute name="selected">true</xsl:attribute></xsl:if>
+    <xsl:value-of select="$first-val"/>
+  </option>
+  <xsl:if test="$remaining">
+    <xsl:call-template name="render-limit-opts">
+      <xsl:with-param name="lim-list"><xsl:value-of select="$remaining"/></xsl:with-param>
+      <xsl:with-param name="limit"><xsl:value-of select="$limit"/></xsl:with-param>
+    </xsl:call-template>
+  </xsl:if>
 </xsl:template>
 
 <xsl:template name="render-pager">
+  <xsl:param name="pfx"/>
   <xsl:if test="/facets/processed > 0">
-    <div class="pager">
-	<span class="stats"><xsl:text>Showing </xsl:text>
-	    <xsl:value-of select="$offs"/>-<!-- <xsl:value-of select="$offs + $page_len - 1"/>--><xsl:value-of select="$offs + $rowcnt - 1"/> <xsl:text> of </xsl:text>
-	    <xsl:value-of select="/facets/processed"/> <xsl:text>total </xsl:text>
+    <form class="pager">
+      <xsl:attribute name="id"><xsl:value-of select="$pfx"/></xsl:attribute>
+      <input type="hidden" name="sid">
+        <xsl:attribute name="value">
+          <xsl:value-of select="$sid"/>
+        </xsl:attribute>
+      </input>
+      <input type="hidden" name="cmd" value="go_to">
+        <xsl:attribute name="id"><xsl:value-of select="$pfx"/>_cmd</xsl:attribute>
+      </input>
+      <label>
+        <xsl:attribute name="for"><xsl:value-of select="$pfx"/>_goto</xsl:attribute>
+        Go to:
+      </label>
+
+      <input name="offset" type="text" class="pager_go" size="3">
+        <xsl:attribute name="id"><xsl:value-of select="$pfx"/>_goto</xsl:attribute>
+        <!--xsl:attribute name="value"><xsl:value-of select="$offs"/></xsl:attribute-->
+      </input>
+
+      <label>
+        <xsl:attribute name="for"><xsl:value-of select="$pfx"/>_nres</xsl:attribute>
+        Show
+      </label>
+      <select name="limit">
+        <xsl:attribute name="id"><xsl:value-of select="$pfx"/>_nres</xsl:attribute>
+        <xsl:call-template name="render-limit-opts">
+          <xsl:with-param name="lim-list">20 50 100 150 200 300 400 500</xsl:with-param>
+          <xsl:with-param name="limit" select="$limit"/>
+        </xsl:call-template>
+      </select>
+      <span class="pager_stats">
+        <xsl:value-of select="$offs"/> - <xsl:value-of select="$offs + $rowcnt - 1"/> <xsl:text> of </xsl:text>
+	<xsl:value-of select="/facets/processed"/> <xsl:text> total </xsl:text>
       </span>
-      <xsl:if test="$offs >= $page_len">
 	<button>
+          <xsl:if test="$offs <= 1">
+            <xsl:attribute name="disabled">true</xsl:attribute>
+          </xsl:if>
 	  <xsl:attribute name="class">pager</xsl:attribute>
-	  <xsl:attribute name="onclick">javascript:fct_nav_to('/fct/facet.vsp?cmd=prev&sid=<xsl:value-of select="$sid"/>')
-	  </xsl:attribute>◂ Prev
+	  <xsl:attribute name="onclick">javascript:fct_pager_prev('<xsl:value-of select="$pfx"/>');</xsl:attribute>
+          ◀
 	</button>
-      </xsl:if>
-      <xsl:if test="($offs + $page_len) < /facets/processed">
 	<button>
+          <xsl:if test="not(($offs + $limit) < /facets/processed)">
+            <xsl:attribute name="disabled">true</xsl:attribute>
+          </xsl:if>
 	  <xsl:attribute name="class">pager</xsl:attribute>
-	  <xsl:attribute name="onclick">javascript:fct_nav_to('/fct/facet.vsp?cmd=next&sid=<xsl:value-of select="$sid"/>')
-	  </xsl:attribute>▸ Next
+	  <xsl:attribute name="onclick">javascript:fct_pager_next('<xsl:value-of select="$pfx"/>');</xsl:attribute>
+          ▶
 	</button>
-      </xsl:if>
-    </div>
+    </form>
   </xsl:if>
 </xsl:template> <!-- render-pager -->
 
 <xsl:template name="render-result">
+<div class="dbg"><xsl:value-of select="$view-type"/></div>
 <table id="result_t">
   <xsl:attribute name="class">result <xsl:value-of select="$view-type"/></xsl:attribute>
   <thead>
     <xsl:choose>
       <xsl:when test="$view-type = 'properties'">
-	<div class="dbg"><xsl:value-of select="$view-type"/></div>
-	<tr><th><xsl:value-of select="$p_term"/></th><!--th>Label</th--><th>Count</th></tr>
+	<tr><th></th><th><xsl:value-of select="$p_term"/></th><!--th>Label</th--><th></th><th>Count</th></tr>
       </xsl:when>
       <xsl:when test="$view-type = 'list-count'">
-	<div class="dbg"><xsl:value-of select="$view-type"/></div>
-	<tr><th><xsl:value-of select="$s_term"/></th><!--th>Title</th--><th>Count</th></tr>
+	<tr><th></th><th><xsl:value-of select="$s_term"/></th><!--th>Title</th--><th></th><th>Count</th></tr>
       </xsl:when>
       <xsl:when test="$view-type = 'text-properties'">
-	<div class="dbg"><xsl:value-of select="$view-type"/></div>
-	<tr><th><xsl:value-of select="$p_term"/></th><!--th>Label</th--><th>Count</th></tr>
+	<tr><th></th><th><xsl:value-of select="$p_term"/></th><!--th>Label</th--><th></th><th>Count</th></tr>
       </xsl:when>
       <xsl:when test="$view-type = 'properties-in'">
-	<div class="dbg"><xsl:value-of select="$view-type"/></div>
-	<tr><th><xsl:value-of select="$p_term"/></th><!--th>Label</th--><th>Count</th></tr>
+	<tr><th></th><th><xsl:value-of select="$p_term"/></th><!--th>Label</th--><th></th><th>Count</th></tr>
       </xsl:when>
       <xsl:when test="$view-type = 'list'">
-	<div class="dbg"><xsl:value-of select="$view-type"/></div>
 	<tr><th></th><th></th><th></th></tr>
       </xsl:when>
       <xsl:when test="$view-type = 'classes'">
-	<div class="dbg"><xsl:value-of select="$view-type"/></div>
-	<tr><th><xsl:value-of select="$t_term"/></th><!--th>Label</th--><th>Count</th></tr>
+	<tr><th></th><th><xsl:value-of select="$t_term"/></th><!--th>Label</th--><th></th><th>Count</th></tr>
       </xsl:when>
       <xsl:when test="$view-type = 'text' or $view-type = 'text-d'">
-	<div class="dbg"><xsl:value-of select="$view-type"/></div>
-	<tr><th><xsl:value-of select="$s_term"/></th><th>Title</th><th>Text excerpt</th></tr>
+	<tr><th></th><th></th><th></th><th><xsl:value-of select="$s_term"/></th><th>Title</th><th>Named Graph</th></tr>
       </xsl:when>
       <xsl:when test="$view-type = 'text' or $view-type = 'propval-list'">
-	<div class="dbg"><xsl:value-of select="$view-type"/></div>
 	<tr><th>Value</th><th>Datatype</th></tr>
       </xsl:when>
     </xsl:choose>
@@ -326,109 +366,123 @@ function init(){
     <xsl:for-each select="row">
       <tr>
 	<xsl:choose>
+          <xsl:when test="$view-type = 'entities-list'">
+	    <xsl:if test="./@rank">
+              <td>
+                <xsl:value-of select="./@rank"/>
+              </td>
+            </xsl:if>
+            <td>
+              <xsl:call-template name="render-describe-link">
+                <xsl:with-param name="uri" select="column[1]"/>
+                <xsl:with-param name="content" select="column[2]"/>
+              </xsl:call-template>
+            </td>
+          </xsl:when>
 	  <xsl:when test="$view-type = 'properties' or
 			  $view-type = 'classes' or
 			  $view-type = 'properties-in' or
 			  $view-type = 'text-properties' or
 			  $view-type = 'list' or
 			  $view-type = 'list-count'">
-	  <xsl:if test="./@rank">
+	    <xsl:if test="./@rank">
+              <td>
+                <xsl:value-of select="./@rank"/>
+              </td>
+            </xsl:if>
             <td>
-              <xsl:value-of select="./@rank"/>
+              <xsl:if test="$view-type = 'properties' or $view-type = 'classes'">
+                <input type="checkbox" name="cb" value="{position (.)}" checked="true" onclick="javascript:fct_sel_neg (this)"/>
+              </xsl:if>
+
+              <!--xsl:message terminate="no">
+                <xsl:value-of select="$query/query/class/@iri"/><xsl:text> | </xsl:text><xsl:value-of select="column[1]"/>
+              </xsl:message-->
+
+              <xsl:variable name="current_iri" select="column[1]"/>
+              <xsl:variable name="use_iri">
+                <xsl:choose>
+                  <xsl:when test="not $query/query/class[@iri = $current_iri] and column[1]/@sparql_ser != ''">
+                    <xsl:value-of select="urlify(column[1]/@sparql_ser)"/>
+                  </xsl:when>
+                  <xsl:otherwise>
+                    <xsl:value-of select="urlify($current_iri)"/>
+                  </xsl:otherwise>
+                </xsl:choose>
+              </xsl:variable>
+              <xsl:comment><xsl:value-of select="$current_iri"/></xsl:comment>
             </td>
-	</xsl:if>
-	    <td>
-	      <xsl:if test="'uri' = column[1]/@datatype or 'url' = column[1]/@datatype">
-		<a><xsl:attribute name="href">/describe/?url=<xsl:value-of select="urlify (column[1])"/>&sid=<xsl:value-of select="$sid"/></xsl:attribute>
-		  <xsl:attribute name="class">describe</xsl:attribute>Describe</a>
-	      </xsl:if>
-	      <xsl:if test="$view-type = 'properties' or $view-type = 'classes'">
-		  <input type="checkbox" name="cb" value="{position (.)}" checked="true" onclick="javascript:fct_sel_neg (this)"/>
-	      </xsl:if>
-	      <a id="a_{position (.)}">
-		  <!--xsl:message terminate="no"><xsl:value-of select="$query/query/class/@iri"/><xsl:value-of select="column[1]"/></xsl:message-->  
-	      <xsl:variable name="current_iri" select="column[1]"/> 
-	      <xsl:if test="not $query/query/class[@iri = $current_iri]" > 
-                  <xsl:variable name="use_iri">
-                    <xsl:choose>
-                    <xsl:when test="column[1]/@sparql_ser != ''">
-                      <xsl:value-of select="urlify(column[1]/@sparql_ser)"/>
-                    </xsl:when>
-                    <xsl:otherwise>
-                        <xsl:value-of select="urlify($current_iri)"/>
-                    </xsl:otherwise>
-                    </xsl:choose>
-                  </xsl:variable>
-                  <xsl:comment><xsl:value-of select="$current_iri"/></xsl:comment>
-                  <xsl:attribute name="class">sel_val</xsl:attribute>
-		  <xsl:attribute name="href">/fct/facet.vsp?cmd=<xsl:value-of select="$command"/>&<xsl:choose>
+            <td>
+              <a id="a_{position (.)}">
+                <xsl:attribute name="class">sel_val</xsl:attribute>
+                <xsl:attribute name="href">
+                  <xsl:text>/fct/facet.vsp?cmd=</xsl:text>
+                  <xsl:value-of select="$command"/>
+                  <xsl:text>&</xsl:text>
+                  <xsl:choose>
                     <xsl:when test="'cond' = $command">cond_t=eq&val=<xsl:value-of select="$use_iri"/></xsl:when>
                     <xsl:otherwise>iri=<xsl:value-of select="$use_iri"/></xsl:otherwise>
-                    </xsl:choose>&lang=<xsl:value-of select="column[1]/@xml:lang"/>&datatype=<xsl:value-of select="urlify (column[1]/@datatype)"/>&sid=<xsl:value-of select="$sid"/>
-                  </xsl:attribute>
-	      </xsl:if>
-		<xsl:attribute name="title">
-		  <xsl:value-of select="column[1]"/>
-		</xsl:attribute>
-		<xsl:choose>
-		  <xsl:when test="'' != string (column[2])">
-		      <xsl:value-of select="column[2]"/>
-		  </xsl:when>
-		  <xsl:when test="'' != column[1]/@shortform">
-		    <xsl:value-of select="column[1]/@shortform"/>
-		  </xsl:when>
-		  <xsl:otherwise>
-		    <xsl:value-of select="column[1]"/>
-		  </xsl:otherwise>
-		</xsl:choose>
-	      </a>
-	    </td>
+                  </xsl:choose>
+                  <xsl:text>&lang=</xsl:text>
+                  <xsl:value-of select="column[1]/@xml:lang"/>
+                  <xsl:text>&datatype=</xsl:text>
+                  <xsl:value-of select="urlify (column[1]/@datatype)"/>
+                  <xsl:text>&sid=</xsl:text>
+                  <xsl:value-of select="$sid"/>
+                </xsl:attribute> <!-- href -->
+                <xsl:attribute name="title">
+                  <xsl:value-of select="column[1]"/>
+                </xsl:attribute>
+                <xsl:choose>
+                  <xsl:when test="'' != string (column[2])">
+                    <xsl:value-of select="column[2]"/>
+                  </xsl:when>
+                  <xsl:when test="'' != column[1]/@shortform">
+                    <xsl:value-of select="column[1]/@shortform"/>
+                  </xsl:when>
+                  <xsl:otherwise>
+                    <xsl:value-of select="column[1]"/>
+                  </xsl:otherwise>
+                </xsl:choose>
+              </a>
+            </td>
+            <td>
+              <xsl:if test="'uri' = column[1]/@datatype or 'url' = column[1]/@datatype">
+                <xsl:call-template name="render-describe-link">
+                  <xsl:with-param name="uri" select="column[1]"/>
+                  <xsl:with-param name="shortform" select="column[1]/@shortform"/>
+                  <xsl:with-param name="content">Describe</xsl:with-param>
+                </xsl:call-template>
+              </xsl:if>
+            </td>
             <xsl:if test="$view-type = 'list'">
               <td class="val_dt">
                 <xsl:value-of select="column[1]/@datatype"/>
               </td>
             </xsl:if>
-	    <!--td>
-	      <xsl:choose>
-		  <xsl:when test="'' != ./@shortform">
-		      <xsl:value-of select="./@shortform"/>
-		  </xsl:when>
-		<xsl:otherwise>
-		  <xsl:value-of select="column[2]"/>
-		</xsl:otherwise>
-	      </xsl:choose>
-	    </td-->
-	    <td>
-	      <xsl:apply-templates select="column[3]"/>
-	    </td>
-	  </xsl:when>
-          <!--xsl:when test="$view-type = 'propval-list'">
-            <td class="val">
-              <xsl:value-of select="column[1]" />
-            </td>
-            <td class="val_dt">
-              <xsl:value-of select="column[1]/@datatype" />
+            <td>
+              <xsl:apply-templates select="column[3]"/>
             </td>
-          </xsl:when-->
-	  <xsl:otherwise> <!-- text matches view -->
+	  </xsl:when>
+          <xsl:otherwise> <!-- text matches view -->
             <td class="rnk">
               <xsl:for-each select="column[@datatype='trank' or @datatype='erank']">
                 <img class="rnk">
                   <xsl:attribute name="src">
-		      <xsl:text>images/r_</xsl:text><xsl:value-of select="min (floor(.), 10)"/><xsl:text>.png</xsl:text>
+                    <xsl:text>images/r_</xsl:text><xsl:value-of select="min (floor(.), 10)"/><xsl:text>.png</xsl:text>
                   </xsl:attribute>
-                    <xsl:attribute name="alt">
-                      <xsl:choose>
-                        <xsl:when test="./@datatype='trank'">Text Rank:</xsl:when>
-                        <xsl:when test="./@datatype='erank'">Entity Rank:</xsl:when> 
-		      </xsl:choose>
-                      <xsl:value-of select="."/>
-                    </xsl:attribute>
-                    <xsl:attribute name="title">
-                      <xsl:choose>
-                        <xsl:when test="./@datatype='trank'">Text Rank:</xsl:when>
-                        <xsl:when test="./@datatype='erank'">Entity Rank:</xsl:when> 
-                      </xsl:choose>
+                  <xsl:attribute name="alt">
+                    <xsl:choose>
+                      <xsl:when test="./@datatype='trank'">Text Rank:</xsl:when>
+                      <xsl:when test="./@datatype='erank'">Entity Rank:</xsl:when>
+                    </xsl:choose>
+                    <xsl:value-of select="."/>
+                  </xsl:attribute>
+                  <xsl:attribute name="title">
+                    <xsl:choose>
+                      <xsl:when test="./@datatype='trank'">Text Rank:</xsl:when>
+                      <xsl:when test="./@datatype='erank'">Entity Rank:</xsl:when>
+                    </xsl:choose>
                     <xsl:value-of select="."/>
                   </xsl:attribute>
                 </img>
@@ -436,34 +490,31 @@ function init(){
 	    </td>
 	    <xsl:for-each select="column">
 	      <td>
-		<xsl:choose>
+                <xsl:choose>
 		  <xsl:when test="'uri' = ./@datatype or 'url' = ./@datatype">
-		    <a>
-		      <xsl:attribute name="href">/describe/?url=<xsl:value-of select="urlify (.)"/></xsl:attribute>
-		      <xsl:attribute name="title"><xsl:value-of select="."/></xsl:attribute>
-		      <xsl:choose>
-			<xsl:when test="'' != ./@shortform"><xsl:value-of select="./@shortform"/></xsl:when>
-			<xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
-		      </xsl:choose>
-		    </a>
+                    <xsl:call-template name="render-describe-link">
+                      <xsl:with-param name="uri" select="."/>
+                      <xsl:with-param name="shortform" select="./@shortform"/>
+                    </xsl:call-template>
 		  </xsl:when>
                   <xsl:when test="'erank' = ./@datatype or 'trank' = ./@datatype">
-
                   </xsl:when>
-		  <xsl:otherwise><xsl:apply-templates select="."/></xsl:otherwise>
-		</xsl:choose>
+		  <xsl:otherwise>
+                    <xsl:apply-templates select="."/>
+                  </xsl:otherwise>
+                </xsl:choose>
 	      </td>
 	    </xsl:for-each>
 	  </xsl:otherwise>
-	</xsl:choose>
+        </xsl:choose>
       </tr>
       <xsl:text></xsl:text>
     </xsl:for-each>
   </tbody>
 </table>
 
-<xsl:if test="/facets/result/@type='propval-list' or /facets/result/@type='list'">
-  <form id="cond_form"> 
+<xsl:if test="/facets/result/@type='propval-list' or $view-type='list'">
+  <form id="cond_form">
     <input type="hidden" name="sid"><xsl:attribute name="value"><xsl:value-of select="$sid"/></xsl:attribute></input>
     <input type="hidden" name="hi" id="out_hi"/>
     <input type="hidden" name="lo" id="out_lo"/>
@@ -472,49 +523,103 @@ function init(){
     <input type="hidden" name="val" id="out_val"/>
     <input type="hidden" name="cmd" value="cond" id="cmd"/>
     <input type="hidden" name="cond_parms" id="cond_parms"/>
-    Add condition: 
+    Add condition:
     <select id="cond_type" name="cond_t">
       <option value="none">None</option>
       <option value="eq">==</option>
       <option value="neq">!=</option>
-      <option value="gte">>=</option> 
-      <option value="gt">></option> 
+      <option value="gte">>=</option>
+      <option value="gt">></option>
       <option value="lte"><=</option>
       <option value="lt"><</option>
       <option value="range">Between</option>
       <option value="neg_range">Not Between</option>
       <option value="contains">Contains</option>
       <option value="in">In</option>
+      <option value="not_in">Not In</option>
     </select>
     <span id="cond_inp_ctr" style="display:none">
-      <!--label for="ckb_neg" class="ckb">Negation:</label><input type="checkbox" name="neg" id="ckb_neg"/--> 
+      <!--label for="ckb_neg" class="ckb">Negation:</label><input type="checkbox" name="neg" id="ckb_neg"/-->
       <input id="cond_lo" type="text"/>
       <span id="cond_hi_ctr"> and <input id="cond_hi" type="text"/></span> <select id="cond_dt"></select>
       <input type="button" id="set_cond" value="Set Condition"/>
     </span>
     <div id="in_ctr" style="display:none"></div>
     <div id="geo_ctr" style="display:none"></div>
-  </form>                
+  </form>
 </xsl:if>
 
-<xsl:call-template name="render-geo-conds-ui"/>
+<xsl:call-template name="render-init-func">
+  <xsl:with-param name="result" select="/facets/result"/>
+</xsl:call-template>
 
-</xsl:template>
+</xsl:template> <!-- render-result -->
+
+<xsl:template name="render-describe-link">
+  <xsl:param name="uri"/>
+  <xsl:param name="shortform"/>
+  <xsl:param name="content"/>
+  <xsl:param name="marker"/>
+  <!--xsl:message terminate="no">"<xsl:value-of select="content"/>"</xsl:message-->
+  <a>
+    <xsl:attribute name="href">
+      <xsl:text>/describe/?url=</xsl:text>
+      <xsl:value-of select="urlify ($uri)"/>
+      <xsl:text>&sid=</xsl:text>
+      <xsl:value-of select="$sid"/>
+    </xsl:attribute>
+    <xsl:attribute name="class">describe</xsl:attribute>
+    <xsl:attribute name="title">
+      <xsl:choose>
+        <xsl:when test="$shortform">
+          <xsl:value-of select="$shortform"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:value-of select="$uri"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:attribute>
+    <xsl:choose>
+      <xsl:when test="$content=''">
+        <xsl:choose>
+          <xsl:when test="$shortform != ''">
+            <xsl:value-of select="$shortform"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$uri"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$content"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:value-of select="$marker"/>
+  </a>
+</xsl:template> <!-- render-describe-link -->
 
 <xsl:template name="render-geo-conds-ui">
+  <!--xsl:message terminate="no">In render-geo-conds-ui. type=<xsl:value-of select="$type"/></xsl:message-->
+  <xsl:param name="result"/>
   <xsl:if test="$type='geo' or $type='geo-list'">
-    <form id="cond_form"> 
+    <div id="user_map"></div>
+    <form id="cond_form">
       <input type="hidden" name="sid"><xsl:attribute name="value"><xsl:value-of select="$sid"/></xsl:attribute></input>
       <input type="hidden" name="cmd" value="cond" id="cmd"/>
+      <input type="hidden" name="cno" value="" id="cno"/>
       <input type="hidden" name="cond_t" value="near" id="cond_t"/>
       <label for="cond_distance">Within: </label>
-      <input name="dist" id="cond_dist" type="text" size="5"/> km of 
+      <input name="dist" id="cond_dist" type="text" size="5"/> km of
+      <select name="loc_trig_sel" id="loc_trig_sel">
+        <option>Coordinates</option>
+        <option value="on">Autolocation</option>
+      </select>
       <span id="loc_ctr">
-        <img src="images/notify_throbber.gif" alt="Locating..." id="loc_acq_thr_i" style="display:none"/>
+        <img src="images/notify-throbber.gif" alt="Locating..." id="loc_acq_thr_i" style="display:none"/>
         <input id="cond_loc" type="text" style="display:none"/>
       </span>
       <span id="coord_ctr">
-        <!--label for="ckb_neg" class="ckb">Negation:</label><input type="checkbox" name="neg" id="ckb_neg"/--> 
+        <!--label for="ckb_neg" class="ckb">Negation:</label><input type="checkbox" name="neg" id="ckb_neg"/-->
         <label for="cond_lat">Lat:</label>
         <input name="lat" id="cond_lat" type="text" size="9"/>
         <label for="cond_lon">Lon:</label>
@@ -524,7 +629,91 @@ function init(){
       </span>
       <button id="cond_loc_acq_b">Acquire</button>
       <button id="cond_loc_use_b">Set condition</button>
-    </form>                
+    </form>
+  </xsl:if>
+</xsl:template> <!-- render-geo-conds-ui -->
+
+<xsl:template name="render-init-func">
+  <xsl:param name="result"/>
+  <!--xsl:message terminate="no">In render-init-func: type=<xsl:value-of select="$type"/></xsl:message-->
+  <script type="text/javascript" >
+    <xsl:if test="$type='geo' or $type='geo-list'">
+OAT.Preferences.imagePath = "oat/images/";
+function markerClickHandler (caller, msg, m) {
+  var c = m.__fct_bubble_content;
+
+  var x;
+  if (c[0].length > 0) {
+    x = OAT.Dom.create ("a");
+    x.href = '/describe/?url='+escape (c[0]);
+    if (c[1].length > 0)
+      x.innerHTML = c[1];
+    else
+      x.innerHTML = c[0];
+    }
+    else x = OAT.Dom.text(c[1]);
+  window.cMap.openWindow (m, x);
+}
+    </xsl:if>
+
+function init() {
+
+    <xsl:if test="$type='geo' or $type='geo-list'">
+  window.cMap = {};
+  var mapcb = function() {
+    window.cMap.init(OAT.Map.TYPE_G3);
+    window.cMap.centerAndZoom(0,0,0);
+    window.cMap.setMapType(OAT.Map.MAP_HYB);
+    OAT.MSG.attach ("*", "MAP_MARKER_CLICK", markerClickHandler);
+    var markersArr = [];
+      <xsl:for-each select="$result/row">
+      <!--xsl:message terminate="no"><xsl:value-of select="."/></xsl:message-->
+        window.cMap.addMarker(<xsl:value-of select="column[3]"/>,
+                              <xsl:value-of select="column[4]"/>,
+                              false,
+                              {image: "oat/images/markers/01.png",
+                               imageSize: [18,41],
+                               custData: {__fct_bubble_content: ["<xsl:value-of select="column[1]"/>",
+	                                                         "<xsl:value-of select='translate (normalize-space (column[2]), '"', '')'/>"]}});
+        markersArr.push([<xsl:value-of select="column[3]"/>,<xsl:value-of select="column[4]"/>]);
+      </xsl:for-each>
+    fct_add_loc_marker ();
+    window.cMap.optimalPosition(markersArr);
+    window.cMap.showMarkers(false);
+    return;
+  }
+
+  window.YMAPPID = "";
+  var providerType = OAT.Map.TYPE_G3;
+  window.cMap = new OAT.Map($('user_map'),providerType,{fix:OAT.Map.FIX_ROUND1});
+  OAT.Map.loadApi(providerType, {callback: mapcb});
+  window.geo_ui = new Geo_ui ('cond_form');
+
+  var acq_trig = $('acq_l_trig');
+
+  if (acq_trig) {
+    window.geo_ui.loc_update(parseInt(acq_trig.innerHTML));
+  }
+    </xsl:if>
+    <xsl:if test="$addthis_key != ''">
+    </xsl:if>
+  fct_init_ui();
+}<!-- init -->
+  </script>
+  <xsl:if test="$addthis_key != ''">
+  <script type="text/javascript">
+  var addthis_config = {
+    "data_track_clickback":true,
+    ui_cobrand:"OpenLink Virtuoso",
+    pubid: "<xsl:value-of select="$addthis_key"/>"
+  };
+var addthis_share = {
+  url:  window.location.protocol + '//' + window.location.host + window.location.pathname + '?qxml=<xsl:value-of select="urlify ($p_xml)"/>',
+  title: "Faceted browser permalink",
+  Description: "This is a permalink to an OpenLink Faceted Browsing service page."
+};
+  </script>
+  <script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js"></script>
   </xsl:if>
 </xsl:template>
 
@@ -534,5 +723,4 @@ function init(){
   </xsl:copy>
 </xsl:template>
 
-
 </xsl:stylesheet>
diff --git a/binsrc/b3s/images/link_16.png b/binsrc/b3s/images/link_16.png
new file mode 100644
index 0000000..9be575d
Binary files /dev/null and b/binsrc/b3s/images/link_16.png differ
diff --git a/binsrc/b3s/install.html b/binsrc/b3s/install.html
index e3940f9..3d7c952 100644
--- a/binsrc/b3s/install.html
+++ b/binsrc/b3s/install.html
@@ -20,7 +20,7 @@ create bitmap index RDF_QUAD_POGS on RDF_QUAD (P, O, G, S) partition (O varchar
 create bitmap index RDF_QUAD_GPOS on RDF_QUAD (G, P, O, S) partition (O varchar (-1, 0hexffff));
 
 checkpoint;
-</pre>
+	</pre>
 	<p>Once the indexes are created, you must re-install the Faceted Browser VAD package.</p>
     </body>
 </html>
diff --git a/binsrc/b3s/isparql_describe.xsl b/binsrc/b3s/isparql_describe.xsl
index 23226d3..d599a1a 100644
--- a/binsrc/b3s/isparql_describe.xsl
+++ b/binsrc/b3s/isparql_describe.xsl
@@ -2,12 +2,12 @@
 
 <!--
 
-  $Id: isparql_describe.xsl,v 1.1.2.1 2011/09/23 19:22:35 source Exp $
+  $Id$
 
   This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
   project.
 
-  Copyright (C) 1998-2009 OpenLink Software
+  Copyright (C) 1998-2012 OpenLink Software
 
   This project is free software; you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published by the
@@ -25,9 +25,9 @@
 -->
 
 <xsl:stylesheet version="1.0"
-                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"          
-                xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"         
-                xmlns:dc="http://purl.org/dc/elements/1.1/"         
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+                xmlns:dc="http://purl.org/dc/elements/1.1/"
                 xmlns:ex="http://example.org/stuff/1.0/">
 <xsl:output method="html"
             omit-xml-declaration="yes"
@@ -51,7 +51,7 @@
         <xsl:attribute name="href">
           <xsl:value-of select="$full_path"/>
         </xsl:attribute>
-        Run Query
+        Run with iSPARQL
       </a> 
       <a>
         <xsl:attribute name="href">
diff --git a/binsrc/b3s/make_vad.sh b/binsrc/b3s/make_vad.sh
index df81cc9..9504d80 100755
--- a/binsrc/b3s/make_vad.sh
+++ b/binsrc/b3s/make_vad.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: make_vad.sh,v 1.1.2.8 2011/10/26 15:38:11 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2009 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -176,7 +176,7 @@ directory_init() {
 
   for d in `find . -type d | grep -v CVS | grep -v VirtTripleLoader`
   do
-     mkdir -p vad/vsp/fct/$d 
+     mkdir -p vad/vsp/fct/$d
   done
 
   for f in `find . -name '*.sql'`
@@ -268,7 +268,7 @@ sticker_init() {
   echo "  <name package=\"$VAD_NAME\">" >> $STICKER
   echo "    <prop name=\"Title\" value=\"$VAD_DESC\"/>" >> $STICKER
   echo "    <prop name=\"Developer\" value=\"OpenLink Software\"/>" >> $STICKER
-  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2011 OpenLink Software\"/>" >> $STICKER
+  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2012 OpenLink Software\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.com/virtuoso\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.co.uk/virtuoso\"/>" >> $STICKER
   echo "  </name>" >> $STICKER
@@ -317,13 +317,13 @@ fi
 
 
   for f in $SQLDEPS
-  do  
+  do
       echo "    DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"$VAD_NAME/$f', 0, 'report', $ISDAV);" >> $STICKER
   done
 
   for f in `find vad/code/fct -type f -print | cut -b14-`
-  do  
-     exclude=0 
+  do
+     exclude=0
      if [ ! -z "$EXCEPT" -o ! -z "$SQLDEPS" ]
      then
 	 for ex in $EXCEPT $SQLDEPS
@@ -333,7 +333,7 @@ fi
 		 exclude=1
 	     fi
 	 done
-     fi 
+     fi
      if [ $exclude -eq 0 ]
      then
 	 echo "    DB.DBA.VAD_LOAD_SQL_FILE('"$BASE_PATH_CODE"$VAD_NAME/$f', 0, 'report', $ISDAV);" >> $STICKER
diff --git a/binsrc/b3s/ns.sql b/binsrc/b3s/ns.sql
index 5097036..27871ef 100644
--- a/binsrc/b3s/ns.sql
+++ b/binsrc/b3s/ns.sql
@@ -1,10 +1,10 @@
 --
---  $Id: ns.sql,v 1.1.2.7 2011/09/23 19:22:35 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -79,3 +79,15 @@ INSERT INTO GRAPH <urn:rules.skos> { skos:broader rdfs:subPropertyOf skos:broade
 ;
 
 rdfs_rule_set ('skos-trans', 'urn:rules.skos');
+
+create procedure fct_load_oplweb ()
+{
+  for select RES_CONTENT as cnt from WS.WS.SYS_DAV_RES where RES_FULL_PATH = '/DAV/VAD/fct/oplweb.owl' do
+    {
+      DB.DBA.RDF_LOAD_RDFXML (cast (cnt as varchar), 'http://www.openlinksw.com/schemas/oplweb#', 'http://www.openlinksw.com/schemas/oplweb#');
+    }
+}
+;
+
+fct_load_oplweb ();
+rdfs_rule_set ('oplweb', 'http://www.openlinksw.com/schemas/oplweb#');
diff --git a/binsrc/b3s/nsdecl.sql b/binsrc/b3s/nsdecl.sql
index 72712e8..375e1c6 100644
--- a/binsrc/b3s/nsdecl.sql
+++ b/binsrc/b3s/nsdecl.sql
@@ -1,10 +1,10 @@
 --
---  $Id: nsdecl.sql,v 1.1.2.1 2009/04/17 11:07:29 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/b3s/open.xsl b/binsrc/b3s/open.xsl
index 9d9bd1b..4fa3b96 100644
--- a/binsrc/b3s/open.xsl
+++ b/binsrc/b3s/open.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
 --
---  $Id: open.xsl,v 1.1.2.1 2009/04/17 11:07:29 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/b3s/opensearchdescription.vsp b/binsrc/b3s/opensearchdescription.vsp
index ca19a5b..49137b2 100644
--- a/binsrc/b3s/opensearchdescription.vsp
+++ b/binsrc/b3s/opensearchdescription.vsp
@@ -2,7 +2,7 @@
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 -- 
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -34,16 +34,17 @@
 
   if (0 = sname)
     {
-      if (length (uriqa_str) > 16) 
+      if (length (uriqa_str) > 16)
         {
           log_message ('facets: ShortName from URIQA too long. Please set ''fct_opensearch_shortname'' in registry');
+          sname := 'OpenLink FCT';
         }
       else
         sname := uriqa_str;
     }
 
   sname := "LEFT" (sname, 16);
-  
+
   descr := registry_get ('fct_opensearch_desc');
 
   if (0 = descr)
@@ -61,17 +62,17 @@
 
   if (0 = url_reg)
     {
-      url_reg := 'http://' || uriqa_str || '/fct/facet.vsp';		
+      url_reg := 'http://' || uriqa_str || '/fct/facet.vsp';
     }
 
   url := sprintf ('%s?q={searchTerms}', url_reg);
-  
+
   favicon_path := registry_get ('fct_opensearch_favicon_url');
   search_image_path := registry_get ('fct_opensearch_image_url');
 
   http_rewrite ();
   http_header ('Content-Type: application/opensearchdescription+xml\r\n');
-  
+
   http ('<?xml version="1.0" encoding="UTF-8"?>');
   http ('<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">');
   http (sprintf ('<ShortName>%s</ShortName>', sname));
diff --git a/binsrc/b3s/rdfdesc/description.sql b/binsrc/b3s/rdfdesc/description.sql
index e73b143..48c4836 100644
--- a/binsrc/b3s/rdfdesc/description.sql
+++ b/binsrc/b3s/rdfdesc/description.sql
@@ -1,10 +1,10 @@
 --
---  $Id: description.sql,v 1.1.2.30 2011/10/26 15:38:11 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -68,7 +68,7 @@ create procedure b3s_page_get_type (in val any)
 ;
 
 --
--- make a vector of languages and their quality 
+-- make a vector of languages and their quality
 --
 create procedure b3s_get_lang_acc (in lines any)
 {
@@ -123,24 +123,24 @@ create procedure b3s_str_lang_check (in lang any, in acc any)
 }
 ;
 
-create procedure 
+create procedure
 b3s_handle_ses (inout _path any, inout _lines any, inout _params any)
 {
    declare sid, refr varchar;
 
-   sid := get_keyword ('sid', _params); 
+   sid := get_keyword ('sid', _params);
 
    if (sid is null) {
      refr := http_request_header (http_request_header (), 'Referer', null, null);
 
      if (refr is not null)
        {
-         declare ht, pars any; 
+         declare ht, pars any;
          ht := WS.WS.PARSE_URI (refr);
          pars := ht[4];
          pars := split_and_decode (pars);
-         if (pars is not null) 
-         sid := get_keyword ('sid', pars);
+         if (pars is not null)
+           sid := get_keyword ('sid', pars);
        }
    }
 
@@ -150,32 +150,86 @@ b3s_handle_ses (inout _path any, inout _lines any, inout _params any)
 
 -- XXX should probably find the most specific if more than one class and inference rule is set
 
-create procedure b3s_type (in subj varchar, 
-                           in _from varchar, 
-                           out url varchar, 
-                           out c_iri varchar)
+create procedure
+b3s_type (in subj varchar,
+          in _from varchar,
+          out url varchar,
+          out c_iri varchar)
 {
   declare meta, data, ll any;
+  declare i int;
+
   ll := 'unknown';
   url := 'javascript:void()';
+  c_iri := 'http://www.w3.org/2002/07/owl#Thing';
+
   if (length (subj))
     {
-      exec (sprintf ('sparql select ?l ?tp %s where { <%S> a ?tp . optional { ?tp rdfs:label ?l } }', _from, subj), 
+      exec (sprintf ('sparql select ?l ?tp %s where { <%S> a ?tp optional { ?tp rdfs:label ?l } }', _from, subj), 
 	  null, null, vector (), 100, meta, data);
+
       if (length (data))
 	{
-	  if (data[0][0] is not null)
-  	    ll := data[0][0];
-	  else  
-	    ll := b3s_uri_local_part (data[0][1]);
-	  url := b3s_http_url (data[0][1]);
-          c_iri := data[0][1];
+	  for (i := 0; i < length (data); i := i + 1)
+            {
+              if (data[i][0] is not null)
+  	        ll := data[i][0];
+	      else
+	        ll := b3s_uri_local_part (data[i][1]);
+
+	      url := b3s_http_url (data[i][1]);
+
+              c_iri := data[i][1];
+            }
 	}
     }
   return ll;
 }
 ;
 
+-- This is where we should have something smart... instead we return the last one...
+
+create procedure b3s_choose_e_type (inout type_a any)
+{
+    if (not length(type_a))
+      return vector ('http://www.w3.org/2002/07/owl#Thing', 'owl:Thing', 'A Thing');
+
+--    dbg_printf ('type_a length: %d', length(type_a));
+    return (type_a[length(type_a)-1]);
+}
+;
+
+--
+-- Detect if viewing an explicit or implicit class
+--
+
+create procedure b3s_find_class_type (in _s varchar, in _f varchar, inout types_a any) 
+{
+  declare i int;
+
+  for (i := 0; i < length (types_a); i := i + 1) 
+    {
+      if (types_a[i][0] in ('http://www.w3.org/2002/07/owl#Class', 
+                       'http://www.w3.org/2000/01/rdf-schema#Class')) 
+	return 1;
+    }
+
+  declare stmt, st, msg varchar;
+  declare meta,data any;
+  data := null;
+  st := '00000';
+  msg:= '';
+
+  stmt := sprintf ('sparql select ?to %s where {?to a <%S>}', _f, _s);
+
+  exec (stmt, st, msg, vector(), 1, meta, data);
+
+  if (length (data)) return 1;
+
+  return 0;
+}
+;
+
 create procedure b3s_uri_local_part (in uri varchar)
 {
   declare delim integer;
@@ -191,6 +245,72 @@ create procedure b3s_uri_local_part (in uri varchar)
 }
 ;
 
+
+--
+-- vector (vector (<type_iri>, <short_form>, <label or null>), vector (...), ...)
+--
+
+create procedure
+b3s_get_types (in _s varchar,
+               in _from varchar,
+               in langs any) {
+  declare stat, msg, meta, data any;
+  declare t_a any;
+  declare i int;
+  declare stmt varchar;
+
+  stmt := sprintf ('sparql select distinct ?tp %s where { <%S> a ?tp }', _from, _s);
+  data := null;
+  t_a := vector();
+
+  if (length (_s))
+    {
+      data := null;
+      exec (stmt, stat, msg, vector (), 100, meta, data);
+
+      if (length(data)) 
+        {
+	  for (i := 0;i < length(data); i := i + 1) 
+            {
+--                dbg_printf ('data[%d][0]: %s', i,data[i][0]);
+		t_a := vector_concat (t_a, 
+                                      vector (vector (data[i][0], 
+                                      b3s_uri_curie (data[i][0]),
+                                      b3s_label (data[i][0], langs))));
+            }
+        }
+    }
+  return (t_a);
+}                 
+;
+
+create procedure
+b3s_render_iri_select (inout types_a any, 
+                       in ins_str varchar := '',
+                       in sel int := -1)
+{
+  declare i int;
+
+  if (length (types_a) and isvector (types_a))
+    {
+      if (sel = -1) sel := length(types_a)-1;
+
+      http (sprintf ('<select %s>', ins_str));
+
+      for (i := 0; i < length(types_a); i := i + 1) 
+        { 
+          http (sprintf ('<option value="%s" title="%s" %s>%s</option>', 
+                         types_a[i][0],
+                         types_a[i][0],
+                         case when i = sel then 'selected="true"' else '' end,
+                         case when types_a[i][2] <> '' then types_a[i][2] else types_a[i][1] end));
+        } 
+      http ('</select>');
+    }
+  return i;
+}
+;
+
 create procedure
 b3s_render_fct_link ()
 {
@@ -198,34 +318,34 @@ b3s_render_fct_link ()
   sid := connection_get ('sid');
 
   if (sid is not null)
-    return ('/fct/facet.vsp?sid='||sid||'&cmd=refresh');  
+    return ('/fct/facet.vsp?sid='||sid||'&cmd=refresh');
   else
     return '';
 }
 ;
 
 create procedure
-b3s_render_inf_opts () 
+b3s_render_inf_opts ()
 {
   declare inf varchar;
   declare f int;
   f := 0;
   inf := connection_get ('inf');
 
-  for select distinct RS_NAME as RS_NAME from SYS_RDF_SCHEMA do 
+  for select distinct RS_NAME as RS_NAME from SYS_RDF_SCHEMA do
     {
-      if (RS_NAME = inf) 
+      if (RS_NAME = inf)
         {
           http (sprintf ('<option value="%s" selected="selected">%s</option>', RS_NAME, RS_NAME));
           f := 1;
         }
-      else 
+      else
         http (sprintf ('<option value="%s">%s</option>', RS_NAME, RS_NAME));
     }
 
   if (f = 0)
     http ('<option value="**none**" selected="selected">None</option>');
-  else 
+  else
     http ('<option value="**none**">None</option>');
 }
 ;
@@ -233,22 +353,22 @@ b3s_render_inf_opts ()
 create procedure
 b3s_sas_selected ()
 {
-  if (connection_get ('sas') = 'yes') 
+  if (connection_get ('sas') = 'yes')
     return ' checked="true" ';
-  else 
-    return ''; 
+  else
+    return '';
 }
 ;
- 
-create procedure 
+
+create procedure
 b3s_parse_inf (in sid varchar, inout params any)
 {
   declare _sas, _inf varchar;
 
-  _sas := _inf := null; 
+  _sas := _inf := null;
 
   if (sid is not null)
-    { 
+    {
       for select fct_state from fct_state where fct_sid = sid do
         {
 	  declare i varchar;
@@ -277,7 +397,7 @@ b3s_parse_inf (in sid varchar, inout params any)
     {
       if (_sas = '1' or _sas = 'yes')
         connection_set ('sas', 'yes');
-      else 
+      else
         connection_set ('sas', null);
     }
 }
@@ -291,22 +411,22 @@ b3s_render_inf_clause ()
   _inf := connection_get ('inf');
   _sas := connection_get ('sas');
 
-  if (_inf is not null) 
-    _inf := sprintf (' define input:inference ''%s'' ', _inf);
-  else 
+  if (_inf is not null)
+    _inf := sprintf ('define input:inference ''%s'' ', _inf);
+  else
     _inf := '';
 
   if (_sas is not null)
-    _sas := sprintf (' define input:same-as "yes" ');
-  else 
+    _sas := sprintf ('define input:same-as "yes" ');
+  else
     _sas := '';
 
-  return (_inf || _sas); 
+  return (_inf || _sas);
 }
 ;
 
 create procedure
-b3s_render_ses_params () 
+b3s_render_ses_params ()
 {
   declare i,s,ifp,sid varchar;
 
@@ -323,7 +443,7 @@ b3s_render_ses_params ()
 }
 ;
 
-create procedure 
+create procedure
 b3s_dbg_out (inout ses any, in str any)
 {
   if (connection_get ('b3s_dbg'))
@@ -331,10 +451,10 @@ b3s_dbg_out (inout ses any, in str any)
 }
 ;
 
-create procedure 
+create procedure
 b3s_render_dbg_out (inout ses any)
 {
-  if (connection_get ('b3s_dbg')) 
+  if (connection_get ('b3s_dbg'))
     {
       http('<div id="dbg_output"><pre>');
       http_value (ses);
@@ -349,6 +469,8 @@ create procedure b3s_get_lang_by_q (in accept varchar, in lang varchar)
   declare arr any;
   declare i, l int;
 
+  if (not length (lang))
+    lang := 'en';
   arr := split_and_decode (accept, 0, '\0\0,;');
   q := 0;
   l := length (arr);
@@ -403,17 +525,17 @@ create procedure b3s_label_get (inout data any, in langs any)
    if (not isstring (label))
      {
        if (__tag of rdf_box = __tag (label)  and rdf_box_is_complete (label))
-     label := rdf_box_data (label);
-       else  
+	 label := rdf_box_data (label);
+       else
 	 label := __rdf_strsqlval (label);
      }
    if (not isstring (label))
      label := cast (label as varchar);
-   --label := regexp_replace (label, '<[^>]+>', '', 1, null);  
+   --label := regexp_replace (label, '<[^>]+>', '', 1, null);
   if (0 and sys_stat ('cl_run_local_only'))
     {
-   label := xpath_eval ('string(.)', xtree_doc (label, 2));
-   label := charset_recode (label, '_WIDE_', 'UTF-8');
+      label := xpath_eval ('string(.)', xtree_doc (label, 2));
+      label := charset_recode (label, '_WIDE_', 'UTF-8');
     }
   else
     label := cast (xtree_doc (label, 2) as varchar);
@@ -421,7 +543,7 @@ create procedure b3s_label_get (inout data any, in langs any)
 }
 ;
 
-create procedure 
+create procedure
 b3s_rel_print (in val any, in rel any, in flag int := 0)
 {
   declare delim, delim1, delim2, delim3 integer;
@@ -459,7 +581,7 @@ b3s_rel_print (in val any, in rel any, in flag int := 0)
 ;
 
 
-create procedure 
+create procedure
 b3s_uri_curie (in uri varchar)
 {
   declare delim integer;
@@ -502,7 +624,7 @@ create procedure b3s_prop_label (in uri any)
   if (length (ll) = 0)
     ll := b3s_uri_curie (uri);
   if (isstring (ll) and ll like 'opl%:isDescribedUsing')
-    ll := 'Described Using Terms From';  
+    ll := 'Described Using Terms From';
   return ll;
 }
 ;
@@ -511,7 +633,7 @@ create procedure
 b3s_trunc_uri (in s varchar, in maxlen int := 80)
 {
   declare _s varchar;
-  declare _h int; 
+  declare _h int;
 
   _s := trim(s);
 
@@ -523,7 +645,7 @@ b3s_trunc_uri (in s varchar, in maxlen int := 80)
 }
 ;
 
-create procedure 
+create procedure
 b3s_http_url (in url varchar, in sid varchar := null, in _from varchar := null)
 {
   declare host, pref, more, i varchar;
@@ -538,16 +660,16 @@ b3s_http_url (in url varchar, in sid varchar := null, in _from varchar := null)
   i := b3s_render_ses_params();
   if (length (_from))
     i := sprintf ('%s&graph=%U', i, _from);
-  
+
   return sprintf ('/describe/?url=%U%s', url, i);
 };
 
-create procedure 
+create procedure
 b3s_http_print_l (in p_text any, inout odd_position int, in r int := 0, in sid varchar := null, in langs any := null)
 {
    declare short_p, p_prefix, int_redirect, url any;
 
-   odd_position :=  odd_position + 1;
+   odd_position := odd_position + 1;
    p_prefix := b3s_label (p_text, langs);
    if (not length (p_prefix))
      p_prefix := b3s_uri_curie (p_text);
@@ -556,13 +678,13 @@ b3s_http_print_l (in p_text any, inout odd_position int, in r int := 0, in sid v
    if (not length (p_text))
      return;
 
-   http (sprintf ('<tr class="%s"><td class="property">', either(mod (odd_position, 2), 'odd', 'even')));
+   http (sprintf ('<tr class="%s"><td class="property">', either (mod (odd_position, 2), 'odd', 'even')));
 
    if (r) http ('is ');
 
-   http (sprintf ('<a class="uri" href="%s" title="%s">%s</a>\n', 
-                  url, 
-                  p_prefix, 
+   http (sprintf ('<a class="uri" href="%s" title="%s">%s</a>\n',
+                  url,
+                  p_prefix,
                   b3s_trunc_uri (p_prefix, 40)));
 
    if (r) http (' of');
@@ -571,7 +693,7 @@ b3s_http_print_l (in p_text any, inout odd_position int, in r int := 0, in sid v
 }
 ;
 
-create procedure b3s_label (in _S any, in langs any)
+create procedure b3s_label (in _S any, in langs any, in lbl_order_pref_id int := 0)
 {
   declare best_str, meta, data any;
   declare best_q, q float;
@@ -580,8 +702,8 @@ create procedure b3s_label (in _S any, in langs any)
   stat := '00000';
   --exec (sprintf ('sparql define input:inference "facets" '||
   --'select ?o (lang(?o)) where { <%S> virtrdf:label ?o }', _S), stat, msg, vector (), 0, meta, data);
-  exec ('select __ro2sq (O), DB.DBA.RDF_LANGUAGE_OF_OBJ (__ro2sq (O)) , b3s_lbl_order (P) from RDF_QUAD table option (with ''facets'') 
-	where S = __i2id (?) and P = __i2id (''http://www.openlinksw.com/schemas/virtrdf#label'', 0) order by 3', 
+  exec (sprintf ('select __ro2sq (O), DB.DBA.RDF_LANGUAGE_OF_OBJ (__ro2sq (O)) , cast (b3s_lbl_order (P, %d) as int) from RDF_QUAD table option (with ''facets'')
+	where S = __i2id (?) and P = __i2id (''http://www.openlinksw.com/schemas/virtrdf#label'', 0) and not is_bnode_iri_id (O) order by 3', lbl_order_pref_id),
 	stat, msg, vector (_S), 0, meta, data);
   if (stat <> '00000')
     return '';
@@ -604,16 +726,20 @@ create procedure b3s_label (in _S any, in langs any)
     {
       best_str := __rdf_strsqlval (best_str);
     }
+
+  if (isnumeric (best_str))
+    return (cast (best_str as varchar));
+
   return best_str;
 }
 ;
 
-create procedure 
+create procedure
 b3s_http_print_r (in _object any, in sid varchar, in prop any, in langs any, in rel int := 1, in acc any := null, in _from varchar := null)
 {
    declare lang, rdfs_type, rdfa, visible any;
 
-   if (_object is null) 
+   if (_object is null)
      return;
 
    if (__tag (_object) = 230)
@@ -656,29 +782,39 @@ again:
 	 _url := _object;
 
        if (not length (_url))
-         return;	 
+         return;
 
        http (sprintf ('<!-- %d -->', length (_url)));
 
        rdfa := b3s_rel_print (prop, rel, 0);
-       if (http_mime_type (_url) like 'image/%')
+       if (prop = 'http://bblfish.net/work/atom-owl/2006-06-06/#content' and _object like '%#content%')
+	 {
+	   declare src any;
+	   whenever not found goto usual_iri;
+	   select id_to_iri (O) into src from DB.DBA.RDF_QUAD where
+	   	S = iri_to_id (_object, 0) and P = iri_to_id ('http://bblfish.net/work/atom-owl/2006-06-06/#src', 0);
+	   http (sprintf ('<div id="x_content"><iframe src="%s" width="100%%" height="100%% frameborder="0"><p>Your browser does not support iframes.</p></iframe></div><br/>', src));
+	 }
+       else if (http_mime_type (_url) like 'image/%' or http_mime_type (_url) = 'application/x-openlink-photo')
 	 http (sprintf ('<a class="uri" %s href="%s"><img src="%s" height="160" style="border-width:0" alt="External Image" /></a>', rdfa, b3s_http_url (_url, sid, _from), _url));
        else
 	 {
-	   declare lbl any;
+	   usual_iri:;
+	   declare lbl, vlbl any;
 	   lbl := '';
 	   if ((registry_get ('fct_desc_value_labels') = '1' or registry_get ('fct_desc_value_labels') = 0) and (__tag (_object) = 243 or (isstring (_object) and __box_flags (_object) = 1)))
-	     lbl := b3s_label (_url, langs);
+	     lbl := b3s_label (_url, langs, 1);
 	   if ((not isstring(lbl)) or length (lbl) = 0)
 	     lbl := b3s_uri_curie(_url);
-	   -- XXX: must encode as wide label to print correctly  
+	   -- XXX: must encode as wide label to print correctly
 	   --http (sprintf ('<a class="uri" %s href="%s">%V</a>', rdfa, b3s_http_url (_url, sid, _from), lbl));
 	   http (sprintf ('<a class="uri" %s href="%s">', rdfa, b3s_http_url (_url, sid, _from)));
-	   http_value (charset_recode (lbl, 'UTF-8', '_WIDE_'));
+	   vlbl := charset_recode (lbl, 'UTF-8', '_WIDE_');
+	   http_value (case when vlbl <> 0 then vlbl else lbl end);
 	   http (sprintf ('</a>'));
 	 }
        --if (registry_get ('fct_sponge') = '1' and _url like 'http://%' or _url like 'https://%')
-       --	 http (sprintf (' <a class="uri" href="%s&sp=1"><img src="/fct/images/goout.gif" title="Sponge" border="0"/></a>', 
+       --	 http (sprintf (' <a class="uri" href="%s&sp=1"><img src="/fct/images/goout.gif" title="Sponge" border="0"/></a>',
        --	       b3s_http_url (_url, sid)));
 
      }
@@ -704,9 +840,16 @@ again:
      }
    else if (__tag (_object) = 182)
      {
+       declare vlbl any;
        http (sprintf ('<span %s>', rdfa));
        _object := regexp_replace (_object, ' (http://[^ ]+) ', ' <a href="\\1">\\1</a> ', 1, null);
+       vlbl := charset_recode (_object, 'UTF-8', '_WIDE_');
+       if (vlbl = 0)
+         vlbl := charset_recode (_object, current_charset (), '_WIDE_');
+       if (vlbl = 0)
        http (_object);
+       else
+         http_value (vlbl);
        http ('</span>');
        lang := '';
      }
@@ -728,7 +871,7 @@ again:
    else if (__tag (_object) = 225)
      {
        http (sprintf ('<span %s>', rdfa));
-     http (charset_recode (_object, '_WIDE_', 'UTF-8'));
+       http (charset_recode (_object, '_WIDE_', 'UTF-8'));
        http ('</span>');
      }
    else if (__tag (_object) = 238)
@@ -810,7 +953,7 @@ create procedure fct_links_hdr (in subj any, in desc_link any)
   vec := fct_links_formats ();
   foreach (any elm in vec) do
     {
-  links := links || 
+      links := links ||
       sprintf ('<%s&output=%U>; rel="alternate"; type="%s"; title="Structured Descriptor Document (%s format)",', desc_link, elm[0], elm[0], elm[1]);
     }
   links := links || sprintf ('<%s>; rel="http://xmlns.com/foaf/0.1/primaryTopic",', subj);
@@ -829,7 +972,7 @@ create procedure fct_links_mup (in subj any, in desc_link any)
   vec := fct_links_formats ();
   foreach (any elm in vec) do
     {
-  links := links || repeat (' ', 5) ||
+      links := links || repeat (' ', 5) ||
       sprintf ('<link href="%V&output=%U" rel="alternate" type="%s"  title="Structured Descriptor Document (%s format)" />\n', desc_link, elm[0], elm[0], elm[1]);
     }
   links := links || repeat (' ', 5) || sprintf ('<link href="%V" rel="http://xmlns.com/foaf/0.1/primaryTopic" />\n', subj);
@@ -839,10 +982,10 @@ create procedure fct_links_mup (in subj any, in desc_link any)
 ;
 
 create procedure
-fct_make_selector (in subj any, in sid integer) 
+fct_make_selector (in subj any, in sid integer)
 {
   return null;
-}	
+}
 ;
 
 create procedure fct_make_qr_code (in data_to_qrcode any, in src_width int := 120, in src_height int := 120, in qr_scale int := 3)
@@ -948,8 +1091,8 @@ create procedure DB.DBA.SPARQL_DESC_DICT_LOD (in subj_dict any, in consts any, i
 grant execute on DB.DBA.SPARQL_DESC_DICT_LOD_PHYSICAL to "SPARQL_SELECT";
 grant execute on DB.DBA.SPARQL_DESC_DICT_LOD to "SPARQL_SELECT";
 
-create procedure b3s_lbl_order (in p any)
-{    
+create procedure b3s_lbl_order (in p any, in lbl_order_pref_id int := 0)
+{
   declare r int;
   r := vector (
   'http://www.w3.org/2000/01/rdf-schema#label',
@@ -977,8 +1120,16 @@ create procedure b3s_lbl_order (in p any)
   'http://rdf.freebase.com/ns/common.topic.alias',
   'http://opengraphprotocol.org/schema/title',
   'http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema.rdf#Name',
-  'http://poolparty.punkt.at/demozone/ont#title'
+  'http://poolparty.punkt.at/demozone/ont#title',
+  'http://linkedopencommerce.com/schemas/icecat/v1/hasShortSummaryDescription',
+  'http://www.openlinksw.com/schemas/googleplus#displayName'
    );
+
+  if (lbl_order_pref_id = 1)
+    -- Give skos:prefLabel precedence
+    -- NLP meta-cartridges use skos:prefLabel to include a prefix identifying the meta-cartridge which identified a named entity
+    r := vector_concat (vector ('http://www.w3.org/2004/02/skos/core#prefLabel'), r);
+
   r := position (id_to_iri (p), r);
   if (r = 0)
     return 100;
diff --git a/binsrc/b3s/rdfdesc/description.vsp b/binsrc/b3s/rdfdesc/description.vsp
index 91788bb..f3cf651 100644
--- a/binsrc/b3s/rdfdesc/description.vsp
+++ b/binsrc/b3s/rdfdesc/description.vsp
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
-<html 
-    xmlns="http://www.w3.org/1999/xhtml" 
-    xml:lang="en" 
+<html
+    xmlns="http://www.w3.org/1999/xhtml"
+    xml:lang="en"
     version="XHTML+RDFa 1.0"
     xmlns:addthis="http://www.addthis.com/help/api-spec"
     xmlns:fb="http://www.facebook.com/2008/fbml"
@@ -10,12 +10,12 @@
 <?vsp
 --
 --
---  $Id: description.vsp,v 1.1.2.40 2011/10/26 15:38:11 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -31,60 +31,83 @@
 --  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 --
 --
-   declare _S, odd_position any;
-   declare page_resource_uri, proxy_iri, rdf_link, label, true_label, _subject any;
-   declare white_page, arr, data, meta, h1, h2, inx, gr, host, refr, sid, inf, sas, langs, best_q any;
-   declare urilookup integer;
-   declare dbg_enable varchar;
-   declare qry_str varchar;
-   declare dbg_out any;
-   declare inf_parm varchar;
+
+--
+-- Registry keys:
+--
+-- fct_timeout_max - anytime query timeout for producing this page
+-- fct_addthis_key - addthis.com API key
+-- fct_license_text - markup designating a license for content on site
+--
+
+
+  declare _S, odd_position any;
+  declare page_resource_uri, proxy_iri, rdf_link, label, vlbl, _subject any;
+  declare white_page, arr, data, meta, h1, h2, inx, gr, host, refr, sid, inf, sas, langs, best_q any;
+  declare urilookup integer;
+  declare dbg_enable varchar;
+  declare qry_str varchar;
+  declare dbg_out any;
+  declare inf_parm varchar;
   declare ses_parms varchar;
   declare all_langs, lang_parm any;
-  declare c_iri, iri_type, iri_uri, _F, _from, topof varchar;
-  declare page, n_per_page, lim, ofs, dis_next int;
+  declare c_iri, iri_type, iri_type_label, _F, _from, topof varchar;
+  declare page, n_per_page, lim, ofs, dis_next, deadl int;
   declare vis, printed, _skip, _last int;
   declare all_lang any;
   declare curr_pred any;
-  declare dt1, dt2, count_str, tbinf, tbsas, ua, doc varchar;
+  declare dt1, dt2, count_str, tbinf, tbsas, ua, doc, sp_mode, sp_accept varchar;
+  declare c_iri_a any;
+
+  deadl := 0;
 
+  declare exit handler for sqlstate '40001' {
+    rollback work;
+    if (deadl < 5) 
+      goto again;	
+    resignal;
+  };
+  declare continue handler for sqlstate 'S1TAT';
+  set result_timeout = atoi (registry_get ('fct_timeout_max'));
 
+again:
   n_per_page := 100;
   dis_next := 0;
-   dbg_enable := get_keyword ('dbg', params);
-   if (dbg_enable = '1') 
-     {
+  dbg_enable := get_keyword ('dbg', params);
+  if (dbg_enable = '1')
+    {
         dbg_printf ('Enabling b3s session debug.\n');
         connection_set ('b3s_dbg', 1);
         dbg_out := string_output ();
-     }
-   else connection_set ('b3s_dbg',0);
-     
+    }
+  else connection_set ('b3s_dbg',0);
+
   connection_set ('ns_ctr', 1); /* for unknown xmlns to print in RDFa */
 
   white_page := 1;
   sid := null;
   inf := '';
-  iri_type := 'unknown';
+
+  sp_mode := 'add';
 
   b3s_handle_ses (path, lines, params);
   sid := connection_get ('sid');
 
-   b3s_parse_inf (sid, params);
-   inf := b3s_render_inf_clause ();
+  b3s_parse_inf (sid, params);
+  inf := b3s_render_inf_clause ();
   tbinf := connection_get ('inf');
   tbsas := connection_get ('sas');
   if (tbinf is not null)
     tbinf := sprintf ('TABLE OPTION (WITH \'%s\')', tbinf);
   else
     tbinf := '';
-  
+
   if (tbsas is not null)
     tbsas := '';
   else
     tbsas := '';
-  
-  
+
+
   --
   -- Get AddthisKey from registry
   --
@@ -99,10 +122,10 @@
 
   ses_parms := b3s_render_ses_params ();
 
-  host := http_request_header (http_request_header (), 'X-Forwarded-Host', null, null);  
+  host := http_request_header (http_request_header (), 'X-Forwarded-Host', null, null);
   if (host is null)
-   host := http_request_header (http_request_header (), 'Host');  
-   langs := http_request_header_full (lines, 'Accept-Language', 'en');
+    host := http_request_header (http_request_header (), 'Host');
+  langs := http_request_header_full (lines, 'Accept-Language', 'en');
   ua :=   http_request_header (lines, 'User-Agent');
   all_langs := b3s_get_lang_acc (lines);
   lang_parm := get_keyword ('lang', params, '');
@@ -111,55 +134,62 @@
       all_langs := vector (lang_parm, 1.0);
       langs := lang_parm;
     }
-   gr := get_keyword ('g', params, '');
+  gr := get_keyword ('g', params, '');
   _from := get_keyword ('graph', params, '');
---  dbg_obj_print_vars (gr, _F);
+  --  dbg_obj_print_vars (gr, _F);
   if (length (_from))
     _F := concat ('FROM <', _from, '>');
   else
     _F := '';
 
+
+  page := null;
+
    _last := atoi (get_keyword ('lp', params, '0'));
-  if ({?'prev'} is not null)  
+  if ({?'prev'} is not null)
     page := atoi (get_keyword ('op', params, '0'));
-  else if ({?'first'} is not null)  
-    page := 0; 
-  else if ({?'last'} is not null)  
+  else if ({?'first'} is not null)
+    page := 0;
+  else if ({?'last'} is not null)
     page := _last;
-  else if ({?'next'} is not null) 
+  else if ({?'next'} is not null)
     page := atoi (get_keyword ('p', params, '0'));
-  else if ({?'go'} is not null) 
+  else if ({?'go'} is not null)
     page := atoi (get_keyword ('gp', params, '1')) - 1;
-  else 
+  else
     page := atoi (get_keyword ('p', params, '1')) - 1;
   --topof := '';
   b3s_dbg_out (dbg_out, 'sid     : ' || sid);
   b3s_dbg_out (dbg_out, 'gr      : ' || gr);
 
-   arr := rfc1808_parse_uri (gr);
+  arr := rfc1808_parse_uri (gr);
 
-   if (arr[0] = '' and arr[1] = '' and arr[2] <> '')
-     gr := 'http://' || gr;
+  if (arr[0] = '' and arr[1] = '' and arr[2] <> '')
+    gr := 'http://' || gr;
 
   arr := rfc1808_parse_uri (gr);
   arr [5] := '';
   doc := vspx_uri_compose (arr);
-  
-   page_resource_uri := gr;
-   page_resource_uri := replace (page_resource_uri, '%23', '#');
+
+  page_resource_uri := gr;
+  page_resource_uri := replace (page_resource_uri, '%23', '#');
   page_resource_uri := replace (page_resource_uri, ' ', '%20');
-   
-   _S := page_resource_uri; 
-   proxy_iri := page_resource_uri;
+  page_resource_uri := replace (page_resource_uri, '"', '%22');
 
-  b3s_dbg_out (dbg_out, 'page_resource_uri: ' || page_resource_uri);
+  _S := page_resource_uri;
+  proxy_iri := page_resource_uri;
 
+  b3s_dbg_out (dbg_out, 'page_resource_uri: ' || page_resource_uri);
+  sp_mode := get_keyword ('sponger:get', params, 'add');
+  sp_accept := get_keyword ('sponger:accept', params, '');
+  if (length (sp_accept))
+    sp_accept := 'define get:accept "' || sp_accept || '"';
   if (get_keyword ('sp', params) = '1' and 0 = length (_F))
     {
-      DB.DBA.EXEC_AS (sprintf ('sparql define input:storage "" define get:soft "soft" SELECT * from <%S> where { ?x ?y ?z . }', doc), 'SPARQL');
+      DB.DBA.EXEC_AS (sprintf ('sparql define input:storage "" define get:soft "add" SELECT * from <%S> where { ?x ?y ?z . }', doc), 'SPARQL');
       DB.DBA.VT_INC_INDEX_DB_DBA_RDF_OBJ ();
     }
-  else if (get_keyword ('sr', params) is not null and 0 = length (_F))
+  else if ((get_keyword ('sr', params) is not null or get_keyword ('sponger:get', params) is not null or length (sp_accept) > 0) and 0 = length (_F))
     {
       declare refr varchar;
       if (get_keyword ('sr', params, '') = 'clean')
@@ -170,41 +200,62 @@
 	      sparql clear graph ?:doc;
             }
         }
-      else  
-      refr := atoi (get_keyword ('sr', params, '0'));		
-      DB.DBA.EXEC_AS (sprintf ('sparql define input:storage "" define get:refresh "%d" define get:soft "soft" SELECT * from <%S> where { ?x ?y ?z . }', refr, doc), 'SPARQL');
+      else
+        refr := atoi (get_keyword ('sr', params, '0'));
+      DB.DBA.EXEC_AS (sprintf ('sparql define input:storage "" define get:refresh "%d" define get:soft "%s" %s SELECT * from <%S> where { ?x ?y ?z . }', refr, sp_mode, sp_accept, doc), 'SPARQL');
       DB.DBA.VT_INC_INDEX_DB_DBA_RDF_OBJ ();
     }
 
-   odd_position := 0;
-   set http_charset='utf-8';
-   set isolation = 'uncommitted';
-   http_header ('Cache-Control: no-cache, must-revalidate\r\nPragma: no-cache\r\n');
-   label := ''; _subject := '';
 
-  --qry_str := sprintf ('sparql define input:inference "facets" select ?o (lang(?o)) %s where { <%S> virtrdf:label ?o }', _F, _S);
-  --b3s_dbg_out (dbg_out, 'qry: ' || qry_str);
---dbg_obj_print (qry_str);
-  --exec (qry_str, null, null, vector (), 0, meta, data);
+  odd_position := 0;
+  set http_charset='utf-8';
+  set isolation = 'uncommitted';
+
+  http_header ('Cache-Control: no-cache, must-revalidate\r\nPragma: no-cache\r\n');
+  label := ''; _subject := '';
+
+  label := b3s_label (_S, langs);
 
-  exec ('select __ro2sq (O), DB.DBA.RDF_LANGUAGE_OF_OBJ (__ro2sq (O)) , b3s_lbl_order (P) from RDF_QUAD table option (with ''facets'') 
-	where S = __i2id (?) and P = __i2id (''http://www.openlinksw.com/schemas/virtrdf#label'', 0) order by 3', 
-	null, null, vector (_S), 0, meta, data);
+  if (iswidestring (label))
+    vlbl := label;
+  else
+    vlbl := charset_recode (label, 'UTF-8', '_WIDE_');
+  if (vlbl = 0)
+    vlbl := charset_recode (label, current_charset (), '_WIDE_');
+  if (vlbl = 0)
+    vlbl := label; 
+
+  b3s_dbg_out (dbg_out, 'label: "' || vlbl || '"');
+
+  declare types_a any;
+  declare e_type any;
+  declare e_type_label varchar;
+  declare e_type_a any;
+
+--  dbg_printf ('_S:%s', _s); 
+
+  types_a := b3s_get_types (_S, _F, langs);
 
-   label := b3s_label_get (data, langs);
-   true_label := label;
-  iri_type := b3s_type (_S, _F, iri_uri, c_iri);
+--  dbg_obj_print (types_a);
 
+  e_type_a := b3s_choose_e_type (types_a);
+
+--  dbg_obj_print (e_type_a);
+
+  e_type := e_type_a[0];
+  e_type_label := e_type_a[1];
+  
   qry_str := sprintf ('sparql %s prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> prefix dc: <http://purl.org/dc/elements/1.1/> select ?o (lang(?o)) %s where { <%S> rdfs:comment ?o }', inf, _F, _S);
+
 --    dbg_obj_print (qry_str);
 
-   b3s_dbg_out (dbg_out, 'qry: ' || qry_str);
+  b3s_dbg_out (dbg_out, 'qry: ' || qry_str);
 
-   exec (qry_str, null, null, vector (), 0, meta, data);
+  exec (qry_str, null, null, vector (), 0, meta, data);
 
-   _subject := b3s_label_get (data, langs);
+  _subject := b3s_label_get (data, langs);
 
-  rdf_link := sprintf ('/sparql?query=%U', sprintf ('define sql:describe-mode "LOD" %s DESCRIBE <%s>', b3s_render_inf_clause(), _S)); 
+  rdf_link := sprintf ('/sparql?query=%U', sprintf ('define sql:describe-mode "LOD" %s DESCRIBE <%s>', b3s_render_inf_clause(), _S));
 
   declare __res_desc, qs, qv, best_variant, accept varchar;
   declare best_q, curr float;
@@ -228,7 +279,7 @@
         {
 	  best_q := curr;
 	  best_variant := q;
-	} 
+	}
       inx := inx + 1;
     }
   if (best_variant is null)
@@ -245,31 +296,57 @@
           inx := inx + 1;
 	}
       http_header (http_header_get () || '\r\n');
-      return; 
+      return;
     }
   if (best_variant is not null and best_variant not in ('text/html', 'application/xhtml+xml'))
     {
       http_rewrite ();
       http_status_set (303);
       http_header (sprintf ('TCN: choice\r\nVary: negotiate,accept\r\nLocation: http://%{WSHost}s%s&format=%U\r\n', rdf_link, best_variant));
-      return; 
+      return;
     }
   __res_desc := b3s_uri_curie(page_resource_uri);
   fct_links_hdr (_S, rdf_link);
   if (not length (label))
     label := b3s_trunc_uri (page_resource_uri);
+  if (vlbl <> 0) label := vlbl;
   declare desc_resource_uri varchar;
   declare desc_qr varchar;
   desc_qr := sprintf ('define sql:describe-mode "CBD" DESCRIBE <%s>', page_resource_uri);
   desc_resource_uri := sprintf ('http://%{WSHost}s/sparql?query=%U&format=cxml', desc_qr);
   --http_flush (1);
+
+  declare plink_href varchar;
+
+  plink_href := sprintf ('/describe/?url=%U', page_resource_uri);
+
+  if (page is not null and page > 0)
+    {
+      plink_href := concat (plink_href, sprintf ('&gp=%d&go=', page+1));
+    }
+  if (connection_get ('inf') is not null)
+    {
+      plink_href := concat (plink_href, sprintf ('&inf=%U', connection_get ('inf')));
+    }
+  if (connection_get ('sas') is not null)
+    {
+      plink_href := concat (plink_href, sprintf ('&sas=%U', connection_get ('sas')));
+    }
+
+
 ?>
 <head>
     <base href="http://<?V host ?>/fct/rdfdesc/" />
-    <title>About: <?vsp http (label); ?></title>
+    <title>About: <?vsp if (length (label)) http_value (label); else http_value (b3s_uri_curie (page_resource_uri));?></title>
     <!--link rel="alternate" type="application/rdf+xml" href="<?=rdf_link?>" title="RDF" /-->
 
-    <link rel="stylesheet" type="text/css" href="styles/default.css"  charset="utf-8" />
+    <?vsp
+	declare main_ss varchar;
+        main_ss := registry_get ('fct_main_ss');
+        if (not isstring (main_ss)) main_ss := 'styles/default.css';
+    ?>
+    <link rel="stylesheet" type="text/css" href="<?=main_ss?>"  charset="utf-8" />
+
     <link rel="stylesheet" type="text/css" href="styles/highlighter.css" charset="utf-8" />
     <script type="text/javascript" >
       var featureList=["tab"];
@@ -278,10 +355,10 @@
     <script type="text/javascript" src="s/description.js"></script>
 <?vsp fct_links_mup (_S, rdf_link); ?>
 </head>
-  <body about="<?V page_resource_uri ?>">
-    <div id="PG">
-      <div id="HD">
-    <?vsp fct_page_head (); ?>
+<body about="<?V page_resource_uri ?>">
+  <div id="PG">
+    <div id="HD">
+    <?vsp fct_desc_page_head (); ?>
     <ul id="main_menu">
       <?vsp if (sid is not null) { ?>
         <li><a href="<?= b3s_render_fct_link() ?>">Facets</a></li>
@@ -294,7 +371,7 @@
         <div id="settings_popup" style="display: none">
           <ul>
             <li>
-              <input id="sas_ckb" type="checkbox" <?= b3s_sas_selected() ?> onchange="javascript:sas_cb();"/> 
+              <input id="sas_ckb" type="checkbox" <?= b3s_sas_selected() ?> onchange="javascript:sas_cb();"/>
               <label for="sas_ckb">owl:sameAs</label>
             </li>
             <li>
@@ -305,61 +382,93 @@
         </div> <!-- settings-popup -->
       </li>
     </ul>
-    </div> <!-- #HD -->
-    <div id="MD">
-        <div class="page_resource_info">
-	<h2>About: <a href="<?= case when page_resource_uri like 'nodeID://%' then b3s_http_url (page_resource_uri) else page_resource_uri end ?>"><?vsp http (label); ?></a>   <a href="/describe/?url=<?U page_resource_uri ?>&sid=<?V sid ?>&sr=clean" title="Click to generate local descriptor data for this entity" id="sp_link" rel="nofollow"><img src="/fct/images/sponge.png" title="Click to generate local descriptor data for this entity" alt="Generate local descriptor data" /></a></h2>
-      <div class="ds_inf_info"> 
-	    An Entity of Type : <a href="<?V iri_uri ?>"><?V iri_type ?></a>, 
-	    within Data Space : <a href="http://<?V host ?>"><?V host ?></a><br/>
-<?vsp 
-  declare _ciri varchar;
-
-  if (c_iri = 'http://www.w3.org/2000/01/rdf-schema#Class' or c_iri = 'http://www.w3.org/2002/07/owl#Class') {
-    _ciri := page_resource_uri;
-  }
-  else {
-    _ciri := c_iri;
-  }
+  </div> <!-- #HD -->
+  <div id="MD">
+    <div class="page_resource_info">
+	<h2>About: <a href="<?= case when page_resource_uri like
+    'nodeID://%' then b3s_http_url (page_resource_uri) else
+    page_resource_uri end ?>"><?vsp if (length(label)) http_value
+    (label); else http_value(b3s_uri_curie (page_resource_uri));
+    ?></a>   <a class="desc_sponge_link"
+    href="/describe/?url=<?U page_resource_uri ?><?= case when sid is
+    not null then '&sid=' || sid end ?>&sponger:get=add"
+    title="Click to generate local descriptor data for this entity"
+    id="sp_link" rel="nofollow">Sponge</a> <a class="desc_permalink" href="<?= plink_href ?>">Permalink</a></h2>
+      <div class="ds_inf_info">
+	    An Entity of Type : <a href="<?V e_type ?>"><?V e_type_label ?></a>,
+	    within Data Space : <a href="http://<?V host ?>"><?V host ?></a> associated with source <a href="usage.vsp?g=<?U _S ?><?V ses_parms ?>">dataset(s)</a><br/>
+<?vsp
+
+  declare is_class int;
+  is_class := b3s_find_class_type (_S, _F, types_a);
 
-  if (sid) { 
+  if ('http://www.w3.org/2002/07/owl#Thing' <> e_type or is_class) 
+    {
 ?>
+      <form id="fct_form" action="/fct/facet.vsp" method="get">
 
-  <a class="fct_sel_as_type" 
-     title="Use as class in facets" 
-     href="/fct/facet.vsp?sid=<?V sid ?>&cmd=set_class&iri=<?/ _ciri ?>">Constrain facet on this type</a>
+<?vsp
+        if (is_class)
+          {
+?>
+            <input type="hidden" name="iri" value="<?V _S ?>">
+<?vsp   
+          }
+        else 
+          {
+?>
+            <label for="c_iri_sel">Type:</label>
+<?vsp
+            types_a := b3s_render_iri_select (types_a, 'name="iri" id="c_iri_sel"');
+          }
 
-<?vsp 
-  } else { ?>
-  <a class="fct_sel_as_type" 
-     title="Start new facet session with type" 
-     href="/fct/facet.vsp?cmd=new_with_class&iri=<?/ _ciri ?>">Start faceted browsing from this Type</a>
+        if (sid)
+          { 
+?>
+            <input type="hidden" name="sid" value="<?V sid ?>"/>
+            <label for="cmd_sel">Command:</label>
+            <select name="cmd" id="cmd_sel">
+              <option value="new_with_class">Start New Facet</option>
+              <option value="set_class">Add To Current Facet</option>
+            </select>
+            <button class="fct_sel_as_type" title="">Go</a>
 <?vsp
-  } 
+          }
+        else
+          {
+?>
+            <input type="hidden" name="cmd" value="new_with_class"/>
+            <button class="fct_sel_as_type" title="">New Facets Session with This Class</button>
+<?vsp
+          }
+?>
+      </form>
+<?vsp    
+  }
   declare qrimg any;
-  qrimg := fct_make_qr_code (fct_make_curie ('http://' || host || b3s_http_url (page_resource_uri), lines));
+  qrimg := fct_make_qr_code (fct_make_curie ('http://' || host || b3s_http_url (page_resource_uri, null, get_keyword ('graph', params)), lines));
   if (qrimg is not null and strcasestr (ua, 'Mobile') is null) {
 ?>
 	  <img id="qrcode" alt="QRcode image" src="data:image/jpg;base64,<?V qrimg ?>"/>
 <?vsp } ?>
       </div>
-        </div>
-<?vsp 
-if (_subject <> '') { 
+    </div>
+<?vsp
+if (_subject <> '') {
 ?>
-            <p class="subj_desc"><?vsp http (sprintf ('%s', _subject)); ?></p>
-<?vsp 
-} else { 
+  <p class="subj_desc"><?vsp http (sprintf ('%s', _subject)); ?></p>
+<?vsp
+} else {
 ?>
   <p class="subj_delim"></p>
-<?vsp 
-} 
+<?vsp
+}
 ?>
 <!--            <li><a href="/fct/facet.vsp?sid=<?V sid ?>&cmd=set_class&iri=<?V gr ?>">Choose <?V ''?> as Type</a></li>
                 <li><a href="/fct/facet.vsp?sid=<?V sid ?>&cmd=open_property">Choose <?V ''?> as Property (p)</a></li>
-                <li><a href="">Choose <?V ''?> as Value (o)</a></li> -->
+                <li><a href="">Choose <?V ''?> as Value (o)</a></li>-->
 <!-- proptable -->
-      <table class="description">
+    <table class="description">
 
 <?vsp
 
@@ -372,7 +481,7 @@ if (_subject <> '') {
       _skip := n_per_page * page;
 
       if (length (_F) or 1 = sys_stat ('cl_run_local_only'))
-      { 
+      {
       dt1 := sprintf ('select id_to_iri ("p") as PRED, __ro2sq ("o") as OBJECT LONG VARCHAR, 0 as FLAG int from (sparql %s define output:valmode "LONG" select distinct ?p ?o %s where { <%S> ?p ?o }  order by 1) sp1', inf, _F, _S);
       }
       else
@@ -385,7 +494,7 @@ if (_subject <> '') {
       qry_str := sprintf ('select %s PRED, OBJECT, FLAG from (%s UNION ALL %s) un0', topof, dt1, dt2);
       --dbg_printf ('%s', qry_str);
       if (_last = 0)
-        { 
+        {
 	  if (length (_F) or 1 = sys_stat ('cl_run_local_only'))
             {
 	      dt1 := sprintf ('select count(*) as cnt from (sparql %s define output:valmode "LONG" select distinct ?p ?o %s where { <%S> ?p ?o }  order by 1) sp1', inf, _F, _S);
@@ -398,19 +507,25 @@ if (_subject <> '') {
 	  count_str := sprintf ('select sum (cnt) from (%s UNION ALL %s) un0', dt1, dt2);
 	  --dbg_printf ('%s', count_str);
 	  exec (count_str, null, null, vector (), 0, meta, data);
-	  _last := data[0][0]; -- sum is supposed to have always number
+	  if (length (data) and length (data[0]))
+	    _last := data[0][0]; -- sum is supposed to have always number
+          else
+	    _last := n_per_page;
 	  _last := _last / n_per_page;
         }
-      
-      exec (qry_str, null, null, vector (), 0, null, null, h1); 
+
+      exec (qry_str, null, null, vector (), 0, null, null, h1);
       curr_pred := '';
       inx := 0;
-      while (0 = exec_next (h1, null, null, data))	
+      data := null;
+      while (0 = exec_next (h1, null, null, data))
 	{
            declare PRED, OBJECT, FLAG any;
 	   --if (inx <= _skip)
 	   --  goto nxt1;
-	   pred := data[0];  
+           if (length (data) < 3)
+	     goto skip;
+	   pred := data[0];
            object := data[1];
            FLAG := data[2];
 	   if (not length (PRED))
@@ -425,6 +540,7 @@ if (_subject <> '') {
            vis := b3s_http_print_r (OBJECT, sid, PRED, langs, 1, all_langs, _from);
 	   nxt1:;
 	   inx := inx + 1;
+	   skip:;
 	}
       exec_close (h1);
       if (curr_pred <> '') http ('</ul></td></tr>');
@@ -432,7 +548,7 @@ if (_subject <> '') {
       if (inx < n_per_page)
         dis_next := 1;
 
-       if  (odd_position = 0)
+      if  (odd_position = 0)
 	 {
 	    http_request_status ('HTTP/1.1 404 Not found');
 	    http ('<tr><td colspan="2"><p>No further information is available.</p></td></tr>');
@@ -454,19 +570,19 @@ if (_subject <> '') {
 	      <input type="hidden" name="sid" value="<?V sid ?>"/>
 	      <?vsp } ?>
 	      <input type="hidden" name="lp" value="<?V _last ?>"/>
-	      <?vsp if (topof <> '' and _last > 0) {  if (1 or page > 0) { ?>   
+	      <?vsp if (topof <> '' and _last > 0) {  if (1 or page > 0) { ?>
 	      <button type="submit" value="" name="first" <?vsp if (page <= 0) { http ('disabled="disabled"'); } ?>>◂◂ First</button>
 	       
 	      <input type="hidden" name="op" value="<?V page - 1 ?>"/>
 	      <button type="submit" value="" name="prev" <?vsp if (page <= 0) { http ('disabled="disabled"'); } ?>>◂ Prev</button>
 	         
-	<?vsp } if (1 or not dis_next) { ?>   
+	<?vsp } if (1 or not dis_next) { ?>
 	      <button type="submit" value="" name="next" <?vsp if (dis_next) { http ('disabled="disabled"'); } ?>>Next ▸</button>
 	        
 	      <button type="submit" value="" name="last" <?vsp if (dis_next) { http ('disabled="disabled"'); } ?>>Last ▸▸</button>
 	          
 	       Page <?V page + 1 ?> of <?V _last + 1 ?>     
-	       <input type="text" value="<?V page + 1 ?>" size="5" name="gp" />   
+	       <input type="text" value="<?V page + 1 ?>" size="5" name="gp" />  
 	       <button type="submit" value="" name="go">Go</button>
 	<?vsp } } ?>
 	</div>
@@ -487,11 +603,11 @@ if (_subject <> '') {
 	</div>
     <script type="text/javascript">
     /*<![CDATA[*/
-	var addthis_config = {"data_track_clickback":true; ui_cobrand:"Virtuoso"};
+	var addthis_config = {"data_track_clickback":true, ui_cobrand:"Virtuoso"};
 	var addthis_share = { url_transforms : { clean: true, remove: ['sid'] } };
     /*]]>*/
     </script>
-    <script type="text/javascript"> 
+    <script type="text/javascript">
 	var fb_like_id = document.getElementById('fb_like_id');
 	if (fb_like_id) fb_like_id.setAttribute('fb:like:layout', 'button_count');
 	var g_plusone_id = document.getElementById('g_plusone_id');
@@ -503,41 +619,39 @@ if (_subject <> '') {
 <?vsp } ?>
       <div id="ft_t">
         Alternative Linked Data Views:
-	<?vsp if (VAD_CHECK_VERSION ('PivotViewer') is not null) { ?>	
-	<a href="/PivotViewer/?url=<?vsp http_url (desc_resource_uri); ?>" title="PivotViewer page for exploring results and generating new queries" target="_blank">PivotViewer</a> 
+	<?vsp if (VAD_CHECK_VERSION ('PivotViewer') is not null) { ?>
+	<a href="/PivotViewer/?url=<?vsp http_url (desc_resource_uri); ?>" title="PivotViewer page for exploring results and generating new queries" target="_blank">PivotViewer</a>
 	|
 	<?vsp } ?>
-	<?vsp if (VAD_CHECK_VERSION ('rdf_mappers') is not null) { ?>	
-	<a href="<?vsp http (rdfdesc_http_url (page_resource_uri)); ?>" target="_blank">Sponger</a> 
+	<?vsp if (VAD_CHECK_VERSION ('rdf_mappers') is not null) { ?>
+	<a href="<?vsp http (rdfdesc_http_url (page_resource_uri)); ?>" target="_blank">Sponger</a>
 	|
 	<?vsp } ?>
-	<?vsp if (VAD_CHECK_VERSION ('iSPARQL') is not null) { ?>	
-	<a href="/isparql/view/?query=<?vsp http_url (desc_qr); ?>&resultview=browser" title="Interactive Query By Example oriented SPARQL UI" target="_blank">iSPARQL</a> 
+	<?vsp if (VAD_CHECK_VERSION ('iSPARQL') is not null) { ?>
+	<a href="/isparql/view/?query=<?vsp http_url (desc_qr); ?>&resultview=browser" title="Interactive Query By Example oriented SPARQL UI" target="_blank">iSPARQL</a>
 	|
 	<?vsp } ?>
-	<a href="http://linkeddata.uriburner.com/ode/?uri=<?vsp http_url (page_resource_uri); ?>" title="Basic navigation and exploration" target="_blank">ODE</a> 
-	
+	<a href="http://linkeddata.uriburner.com/ode/?uri=<?vsp http_url (page_resource_uri); ?>" title="Basic navigation and exploration" target="_blank">ODE</a>
+
             Raw Data in:
         <a href="<?=rdf_link || sprintf ('&output=%U', 'text/cxml')?>">CXML</a> |
         <a href="<?=rdf_link || sprintf ('&output=%U', 'text/csv')?>">CSV</a> | RDF (
         <a href="<?=rdf_link || sprintf ('&output=%U', 'text/plain') ?>">N-Triples</a>
         <a href="<?=rdf_link || sprintf ('&output=%U', 'text/rdf+n3') ?>">N3/Turtle</a>
-        <a href="<?=rdf_link || sprintf ('&output=%U', 'application/rdf+json')?>">JSON</a> 
+        <a href="<?=rdf_link || sprintf ('&output=%U', 'application/rdf+json')?>">JSON</a>
         <a href="<?=rdf_link || sprintf ('&output=%U', 'application/rdf+xml') ?>">XML</a> ) | OData (
-        <a href="<?=rdf_link || sprintf ('&output=%U', 'application/atom+xml')?>">Atom</a> 
+        <a href="<?=rdf_link || sprintf ('&output=%U', 'application/atom+xml')?>">Atom</a>
         <a href="<?=rdf_link || sprintf ('&output=%U', 'application/odata+json')?>">JSON</a> ) | Microdata (
 	<a href="<?=rdf_link || sprintf ('&output=%U', 'application/microdata+json') ?>">JSON</a>
-        <a href="<?=rdf_link || sprintf ('&output=%U', 'text/html') ?>">HTML</a>) |  
-        <a href="<?=rdf_link || sprintf ('&output=%U', 'application/ld+json')?>">JSON-LD</a> 
+        <a href="<?=rdf_link || sprintf ('&output=%U', 'text/html') ?>">HTML</a>) |
+        <a href="<?=rdf_link || sprintf ('&output=%U', 'application/ld+json')?>">JSON-LD</a>
            <a href="/fct/facet_doc.html">About</a>   
       </div> <!-- #ft_t -->
       <div id="ft_b">
         <a href="http://linkeddata.org/"><img alt="This material is Open Knowledge" src="/fct/images/LoDLogo.gif" style="border-width:0"/></a>  
         <a href="http://dbpedia.org/sparql"><img alt="W3C Semantic Web Technology" src="/fct/images/sw-sparql-blue.png" style="border-width:0"/></a>
         <a href="<?=rdf_link?>" title="RDF data"><img src="/fct/images/sw-rdf-blue.png" alt="[RDF Data]" style="border-width:0"/></a>
-        <a href="http://www.opendefinition.org/"><img alt="This material is Open Knowledge" src="/fct/images/od_80x15_red_green.png" style="border-width:0"/></a>
-	<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" 
-	    src="/fct/images/creativecommons.png" /></a>
+
 	<span about=""
 	resource="http://www.w3.org/TR/rdfa-syntax"
 	rel="dc:conformsTo" xmlns:dc="http://purl.org/dc/terms/">
@@ -546,10 +660,18 @@ if (_subject <> '') {
 	    alt="Valid XHTML + RDFa" height="27" /></a>
 	</span>
 	<br />
-	This work is licensed under a 
-	<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-Share Alike 3.0 Unported License</a>.<br />
-	<?vsp fct_virt_info (); ?><br /> 
-	Copyright © 2009-2011 OpenLink Software 
+	<?vsp fct_virt_info (); ?><br />
+	<?vsp
+          declare license_text varchar;
+          license_text := registry_get ('fct_license_text');
+
+          if (license_text) {
+            http(license_text);
+	  }
+
+        ?>
+	Data on this page belongs to its respective rights holders.<br/>
+        Virtuoso Faceted Browser Copyright © 2009-2012 OpenLink Software
       </div> <!-- #ft_b -->
     </div> <!-- #FT -->
     </div> <!-- #PG -->
@@ -559,5 +681,5 @@ if (_subject <> '') {
       <div class="form_row"><label for=""></label><input type="text" class="prop_val_lo"/></div><br/>
       <div class="form_row"><label for=""></label><input type="text" class="prop_val_hi"/></div>
     </div -->
- </body>
+  </body>
 </html>
diff --git a/binsrc/b3s/rdfdesc/settings.vsp b/binsrc/b3s/rdfdesc/settings.vsp
index 618c5f6..0773fd8 100644
--- a/binsrc/b3s/rdfdesc/settings.vsp
+++ b/binsrc/b3s/rdfdesc/settings.vsp
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<?vsp 
+<?vsp
   declare host,gr,page_resource_uri,_S varhar;
   declare sid,ses_parms  varchar;
   declare arr any;
@@ -14,10 +14,10 @@
 
   page_resource_uri := gr;
   page_resource_uri := replace (page_resource_uri, '%23', '#');
-   
-  _S := page_resource_uri; 
 
-  host := http_request_header (http_request_header (), 'Host');  
+  _S := page_resource_uri;
+
+  host := http_request_header (http_request_header (), 'Host');
 
   b3s_handle_ses (path, lines, params);
   sid := connection_get ('sid');
@@ -40,11 +40,11 @@
 <body>
   <div id="PG">
     <div id="HD">
-      <?vsp fct_page_head (); ?>	
+      <?vsp fct_desc_page_head (); ?>
       <ul id="main_menu">
         <?vsp if (sid is not null) { ?>
           <li><a href="<?= b3s_render_fct_link() ?>">Facets</a></li>
-        <?vsp } ?>      
+        <?vsp } ?>
         <li id="mnu_descr"><a href="/describe/?uri=<?U _S ?><?V ses_parms ?>">Description</a></li>
         <li id="mnu_usage" class="sel">
           <a href="usage.vsp?g=<?U _S ?><?V ses_parms ?>">Metadata</a>
@@ -74,10 +74,10 @@
       <div id="ft_t">
       </div> <!-- #ft_t -->
       <div id="ft_b">
-	<?vsp fct_virt_info (); ?><br /> 
-	Copyright © 2009-2011 OpenLink Software | <a href="/fct/facet_doc.html">About</a>
+	<?vsp fct_virt_info (); ?><br />
+	Copyright © 2009-2012 OpenLink Software | <a href="/fct/facet_doc.html">About</a>
       </div> <!-- #ft_b -->
     </div> <!-- #FT -->
   </div> <!-- #PG -->
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/binsrc/b3s/rdfdesc/usage.vsp b/binsrc/b3s/rdfdesc/usage.vsp
index ebf94b9..b344723 100644
--- a/binsrc/b3s/rdfdesc/usage.vsp
+++ b/binsrc/b3s/rdfdesc/usage.vsp
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html 
-    xmlns="http://www.w3.org/1999/xhtml" 
-    xml:lang="en" 
+<html
+    xmlns="http://www.w3.org/1999/xhtml"
+    xml:lang="en"
     lang="en"
     xmlns:addthis="http://www.addthis.com/help/api-spec"
     xmlns:fb="http://www.facebook.com/2008/fbml"
@@ -10,12 +10,12 @@
 <?vsp
 --
 --
---  $Id: usage.vsp,v 1.1.2.21 2011/10/26 15:38:11 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -32,17 +32,17 @@
 --
 --
 
-   declare _S, odd_position any;
-   declare page_resource_uri, proxy_iri, rdf_link, label, _subject any;
-   declare white_page, arr, data, meta, h1, h2, inx, gr, host, refr, sid, inf, langs, best_q, tp any;
-   declare orig_refr varchar;
-   declare urilookup integer;
-   declare dbg_enable varchar;
-   declare dbg_out any;
+  declare _S, odd_position any;
+  declare page_resource_uri, proxy_iri, rdf_link, label, _subject any;
+  declare white_page, arr, data, meta, h1, h2, inx, gr, host, refr, sid, inf, langs, best_q, tp any;
+  declare orig_refr varchar;
+  declare urilookup integer;
+  declare dbg_enable varchar;
+  declare dbg_out any;
   declare inf_rule varchar;
   declare ses_parms varchar;
 
-   white_page := 1;
+  white_page := 1;
 
   b3s_handle_ses (path, lines, params);
 
@@ -60,63 +60,66 @@
   if (not isstring(_addthis_key)) _addthis_key := '0';
   if ('1' = _addthis_key) _addthis_key := 'xa-4ce13e0065cdadc0';
 
-   -- side-effect sets connection vars 'inf' and 'sas' - val or null
+  -- side-effect sets connection vars 'inf' and 'sas' - val or null
 
-   b3s_parse_inf (sid, params);
+  b3s_parse_inf (sid, params);
 
-   inf := b3s_render_inf_clause ();
+  inf := b3s_render_inf_clause ();
   inf_rule := connection_get ('inf');
 
   if (inf_rule is null) { inf_rule := 'b3sifp'; }
 
   ses_parms := b3s_render_ses_params();
 
-   host := http_request_header (http_request_header (), 'Host');  
-   langs := http_request_header_full (lines, 'Accept-Language', 'en');
-   gr := get_keyword ('g', params, '');
-   arr := rfc1808_parse_uri (gr);
-   if (arr[0] = '' and arr[1] = '' and arr[2] <> '')
-     gr := 'http://' || gr;
+  host := http_request_header (http_request_header (), 'Host');
+  langs := http_request_header_full (lines, 'Accept-Language', 'en');
+  gr := get_keyword ('g', params, '');
+  arr := rfc1808_parse_uri (gr);
 
-   page_resource_uri := gr;
-   page_resource_uri := replace (page_resource_uri, '%23', '#');
+  if (arr[0] = '' and arr[1] = '' and arr[2] <> '')
+    gr := 'http://' || gr;
 
-   _S := page_resource_uri; 
+  page_resource_uri := gr;
+  page_resource_uri := replace (page_resource_uri, '%23', '#');
 
-   proxy_iri := page_resource_uri;
+  _S := page_resource_uri;
 
-   odd_position := 0;
-   set http_charset='utf-8';
-   set isolation = 'uncommitted';
-   http_header ('Cache-Control: no-cache, must-revalidate\r\nPragma: no-cache\r\n');
-   label := ''; _subject := '';
+  proxy_iri := page_resource_uri;
 
-  exec (sprintf ('sparql  define input:inference "facets" select ?o (lang(?o)) where { <%S> virtrdf:label ?o }', _S), 
+  odd_position := 0;
+  set http_charset='utf-8';
+  set isolation = 'uncommitted';
+  http_header ('Cache-Control: no-cache, must-revalidate\r\nPragma: no-cache\r\n');
+  label := ''; _subject := '';
+
+  exec (sprintf ('sparql  define input:inference "facets" select ?o (lang(?o)) where { <%S> virtrdf:label ?o }', _S),
                  null, null, vector (), 0, meta, data);
 
-   label := b3s_label_get (data, langs);
+  label := b3s_label_get (data, langs);
 
-   exec (sprintf ('sparql %s prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> prefix dc: <http://purl.org/dc/elements/1.1/> 
-	select ?o (lang(?o)) where { <%S> rdfs:comment ?o }', inf, _S), null, null, vector (), 0, meta, data);
-   _subject := b3s_label_get (data, langs);
+  exec (sprintf ('sparql %s prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> prefix dc: <http://purl.org/dc/elements/1.1/>
+                  select ?o (lang(?o)) where { <%S> rdfs:comment ?o }', inf, _S), null, null, vector (), 0, meta, data);
+  _subject := b3s_label_get (data, langs);
 
-  rdf_link := sprintf ('/sparql?query=%U', sprintf ('define sql:describe-mode "LOD" %s DESCRIBE <%s>', b3s_render_inf_clause(), _S)); 
+  rdf_link := sprintf ('/sparql?query=%U', sprintf ('define sql:describe-mode "LOD" %s DESCRIBE <%s>', b3s_render_inf_clause(), _S));
 
   declare __res_desc varchar;
   __res_desc := b3s_uri_curie(page_resource_uri);
+
   if (not length (label))
     label := page_resource_uri;
-  tp := atoi (get_keyword ('tp', params, '1'));  
 
-   dbg_enable := get_keyword ('dbg', params);
+  tp := atoi (get_keyword ('tp', params, '1'));
 
-   if (dbg_enable = '1') 
-     {
-        dbg_printf ('Enabling b3s session debug.\n');
-        connection_set ('b3s_dbg', 1);
-        dbg_out := string_output ();
-     }
-   else connection_set ('b3s_dbg',0);
+  dbg_enable := get_keyword ('dbg', params);
+
+  if (dbg_enable = '1')
+    {
+       dbg_printf ('Enabling b3s session debug.\n');
+       connection_set ('b3s_dbg', 1);
+       dbg_out := string_output ();
+    }
+  else connection_set ('b3s_dbg',0);
 
   declare desc_resource_uri varchar;
   declare desc_qr varchar;
@@ -139,11 +142,11 @@
 </head>
 <body class="usage_page">
   <div id="HD">
-    <?vsp fct_page_head (); ?>
+    <?vsp fct_desc_page_head (); ?>
     <ul id="main_menu">
       <?vsp if (sid is not null) { ?>
         <li><a href="<?= b3s_render_fct_link() ?>">Facets</a></li>
-      <?vsp } ?>      
+      <?vsp } ?>
       <li id="mnu_descr"><a href="/describe/?uri=<?U page_resource_uri ?><?V ses_parms ?>">Description</a></li>
       <li id="mnu_usage" class="sel">
         <a href="#" class="sel">Metadata</a>
@@ -155,34 +158,43 @@
   <div id="MD">
     <div class="page_resource_info">
       <h2>Usage stats on <a href="<?= case when page_resource_uri like 'nodeID://%' then b3s_http_url (page_resource_uri) else page_resource_uri end ?>">
-        <?vsp http (sprintf ('%s', label)); ?></a></h2>
+        <?vsp http (sprintf ('%s', label)); ?></a></h2> <a class="desc_permalink" href="usage.vsp?g=<?U page_resource_uri ?>">Permalink</a>
       <p> an Entity in Data Space: <a href="http://<?V host ?>"><?V host ?></a></p>
     </div>
     <div class="subj_nav">
       <?vsp if (_subject <> '') { ?>
         <p class="subj_desc"><?vsp http (sprintf ('%s', _subject)); ?></p>
       <?vsp } ?>
+    <?vsp
+      declare qrimg, ua, qrd any;
+      qrd := HTTP_REQUESTED_URL () || '?' || http_request_get ('QUERY_STRING');
+      ua :=   http_request_header (lines, 'User-Agent');
+      qrimg := fct_make_qr_code (fct_make_curie (qrd, lines));
+      if (qrimg is not null and strcasestr (ua, 'Mobile') is null) {
+    ?>
+	      <img id="qrcode" alt="QRcode image" src="data:image/jpg;base64,<?V qrimg ?>"/>
+    <?vsp } ?>
     </div> <!-- .subj_nav -->
 
 <!-- proptable -->
     <div id="TAB_ROW">
-	<div class="tab <?vsp http (case when tp = 1 then ' tab_selected' else '' end); ?>">
+      <div class="tab <?vsp http (case when tp = 1 then ' tab_selected' else '' end); ?>">
         <a href="<?V http_path () ?>?g=<?U _S ?>&tp=1<?V ses_parms ?>">Source Graphs</a>
-        </div>
-	<div class="tab <?vsp http (case when tp = 2 then ' tab_selected' else '' end); ?>">
+      </div>
+      <div class="tab <?vsp http (case when tp = 2 then ' tab_selected' else '' end); ?>">
         <a href="<?V http_path () ?>?g=<?U _S ?>&tp=2<?V ses_parms ?>">Referenced by Graphs</a>
-        </div>
-	<div class="tab <?vsp http (case when tp = 3 then ' tab_selected' else '' end); ?>">
-          <a title="A list of other identifiers for the current entity."
+      </div>
+      <div class="tab <?vsp http (case when tp = 3 then ' tab_selected' else '' end); ?>">
+        <a title="A list of other identifiers for the current entity."
            href="<?V http_path () ?>?g=<?U _S ?>&tp=3<?V ses_parms ?>">Direct coreferences</a>
-        </div>
-	<div class="tab <?vsp http (case when tp = 4 then ' tab_selected' else '' end); ?>">
-          <a title="A list of indirect identifiers for the current entity based on Inverse Functional Property values."
+      </div>
+      <div class="tab <?vsp http (case when tp = 4 then ' tab_selected' else '' end); ?>">
+        <a title="A list of indirect identifiers for the current entity based on Inverse Functional Property values."
            href="<?V http_path () ?>?g=<?U _S ?>&tp=4<?V ses_parms ?>">Indirect coreferences</a>
-        </div>
-      </div> <!-- TAB_ROW -->
+      </div>
+    </div> <!-- TAB_ROW -->
 
-      <div id="TAB_CTR">
+    <div id="TAB_CTR">
       <div class="tab_page">
         <table class="description">
 	  <?vsp
@@ -200,7 +212,7 @@
 	    if (tp = 3) -- Expanded sas
 	      {
 	         qr := sprintf ('sparql select ?syn (sql:rnk_scale (<LONG::IRI_RANK> (?syn))) where {{ select ?s ?syn  where {{?syn owl:sameAs ?s } union {?s owl:sameAs ?syn}}} option (transitive, t_distinct, t_min (0), T_in (?s), t_out (?syn)) . filter (!isliteral (?syn) && ?s = <%S> ) } order by desc 2 limit 20', _S);
-		 http (sprintf ('<tr><th>%s</th><th>Rank</th></tr>\n', 
+		 http (sprintf ('<tr><th>%s</th><th>Rank</th></tr>\n',
 		'Identifier (URI)'
 		--fct_s_term ()
 		));
@@ -213,28 +225,33 @@
 
             b3s_dbg_out(dbg_out, qr);
 
-	    exec (qr, null, null, vector (), 0, null, null, h1); 
-	    while (0 = exec_next (h1, null, null, data))	
+	    exec (qr, null, null, vector (), 0, null, null, h1);
+	    while (0 = exec_next (h1, null, null, data))
 	      {
 	         http ('<tr>');
                  if (tp = 1 or tp = 2)
-		   { 
+		   {
+		     declare dset_link, grvar any;
+	             grvar := data[0];
+		     dset_link := (sparql select ?dset where { ?dset a <http://rdfs.org/ns/void#Dataset> ; ?p `iri (?:grvar)` . });
 		     --for (declare i, l int, i := 0, l := length (data); i < l; i := i + 1)
 		     --	{
 		     --	  http_value (data[i], 'td');
-	             -- }	    
+	             -- }
                      if (exists (select 1 from RDF_QUAD where G = iri_to_id ('http://lod.openlinksw.com/void/') and
 					S = iri_to_id (sprintf ('http://lod.openlinksw.com/void/%s/Dataset', rtrim (data[0], '/#')))))
-		     http (sprintf ('<td><a href="http://lod.openlinksw.com/void/%s/Dataset">%V</a></td>', rtrim (data[0], '/#'), data[0]));
-		     else
-		     http (sprintf ('<td>%V</td>', data[0]));
+		       http (sprintf ('<td><a href="http://lod.openlinksw.com/void/%s/Dataset">%V</a></td>', rtrim (data[0], '/#'), data[0]));
+		     else if (dset_link is not null)
+		       http (sprintf ('<td><a href="/describe/?url=%U%s">%V</a></td>', dset_link, b3s_render_ses_params(), data[0]));
+                     else
+		       http (sprintf ('<td>%V</td>', data[0]));
 		     http (sprintf ('<td align="right">%d</td>', data[1]));
-		   }   
+		   }
 		 else if (tp = 3)
 		  {
  		     http (sprintf ('<td><a href="/describe/?url=%U%s">%V</a></td>', data[0], b3s_render_ses_params(), b3s_uri_curie (data[0])));
 		     http (sprintf ('<td align="right">%.6g</td>', data[1]));
-		  } 
+		  }
                  else if (tp = 4)
 		  {
  		     http (sprintf ('<td><a href="/describe/?url=%U%s">%V</a></td>', data[0], b3s_render_ses_params(), b3s_uri_curie (data[0])));
@@ -247,26 +264,26 @@
 			 if (__tag (data[2]) = 246)
 			   tmp := __rdf_sqlval_of_obj (data[2], 1);
 			 else
-			   tmp := data[2];   
+			   tmp := data[2];
 		         if (isstring (tmp))
 			   http ('<td>' || tmp || '</td>');
-			 else  
+			 else
                            http_value (tmp, 'td');
-		       }	 
+		       }
 		     http (sprintf ('<td align="right">%.06g</td>', cast (data[3] as decimal)));
 		     --http (sprintf ('<td align="right">%s</td>', data[3]));
-		  } 
+		  }
 	         http ('</tr>\n');
 	      }
 	    exec_close (h1);
 	  ?>
-      </table>
+        </table>
       </div> <!-- .tab_page -->
-      </div> <!-- #TAB_CTR -->
-      <?vsp b3s_render_dbg_out(dbg_out); ?>
-    </div> <!--  #MD -->
+    </div> <!-- #TAB_CTR -->
+    <?vsp b3s_render_dbg_out(dbg_out); ?>
+  </div> <!--  #MD -->
 <!-- footer -->
-    <div id="FT">
+  <div id="FT">
 <?vsp if (_addthis_key <> '0') { ?>
   <div id="FT_share">
     <!-- AddThis Button BEGIN -->
@@ -282,7 +299,7 @@
 	var addthis_share = { url_transforms : { clean: true, remove: ['sid'] } };
     /*]]>*/
     </script>
-    <script type="text/javascript"> 
+    <script type="text/javascript">
 	var fb_like_id = document.getElementById('fb_like_id');
 	if (fb_like_id) fb_like_id.setAttribute('fb:like:layout', 'button_count');
 	var g_plusone_id = document.getElementById('g_plusone_id');
@@ -294,40 +311,40 @@
 <?vsp } ?>
       <div id="ft_t">
         Alternative Linked Data Views:
-	<?vsp if (VAD_CHECK_VERSION ('PivotViewer') is not null) { ?>	
-	<a href="/PivotViewer/?url=<?vsp http_url (desc_resource_uri); ?>" title="PivotViewer page for exploring results and generating new queries" target="_blank">PivotViewer</a> 
+	<?vsp if (VAD_CHECK_VERSION ('PivotViewer') is not null) { ?>
+	<a href="/PivotViewer/?url=<?vsp http_url (desc_resource_uri); ?>" title="PivotViewer page for exploring results and generating new queries" target="_blank">PivotViewer</a>
 	|
 	<?vsp } ?>
-	<?vsp if (VAD_CHECK_VERSION ('rdf_mappers') is not null) { ?>	
-	<a href="<?vsp http (rdfdesc_http_url (page_resource_uri)); ?>" target="_blank">Sponger</a> 
+	<?vsp if (VAD_CHECK_VERSION ('rdf_mappers') is not null) { ?>
+	<a href="<?vsp http (rdfdesc_http_url (page_resource_uri)); ?>" target="_blank">Sponger</a>
 	|
 	<?vsp } ?>
-	<?vsp if (VAD_CHECK_VERSION ('iSPARQL') is not null) { ?>	
-	<a href="/isparql/view/?query=<?vsp http_url (desc_qr); ?>&resultview=browser" title="Interactive Query By Example oriented SPARQL UI" target="_blank">iSPARQL</a> 
+	<?vsp if (VAD_CHECK_VERSION ('iSPARQL') is not null) { ?>
+	<a href="/isparql/view/?query=<?vsp http_url (desc_qr); ?>&resultview=browser" title="Interactive Query By Example oriented SPARQL UI" target="_blank">iSPARQL</a>
 	|
 	<?vsp } ?>
-	<a href="http://linkeddata.uriburner.com/ode/?uri=<?vsp http_url (page_resource_uri); ?>" title="Basic navigation and exploration" target="_blank">ODE</a> 
-	
+	<a href="http://linkeddata.uriburner.com/ode/?uri=<?vsp http_url (page_resource_uri); ?>" title="Basic navigation and exploration" target="_blank">ODE</a>
+
             Raw Data in:
         <a href="<?=rdf_link || sprintf ('&output=%U', 'text/cxml')?>">CXML</a> |
         <a href="<?=rdf_link || sprintf ('&output=%U', 'text/csv')?>">CSV</a> | RDF (
         <a href="<?=rdf_link || sprintf ('&output=%U', 'text/plain') ?>">N-Triples</a>
         <a href="<?=rdf_link || sprintf ('&output=%U', 'text/rdf+n3') ?>">N3/Turtle</a>
-        <a href="<?=rdf_link || sprintf ('&output=%U', 'application/rdf+json')?>">JSON</a> 
+        <a href="<?=rdf_link || sprintf ('&output=%U', 'application/rdf+json')?>">JSON</a>
         <a href="<?=rdf_link || sprintf ('&output=%U', 'application/rdf+xml') ?>">XML</a> ) | OData (
-        <a href="<?=rdf_link || sprintf ('&output=%U', 'application/atom+xml')?>">Atom</a> 
+        <a href="<?=rdf_link || sprintf ('&output=%U', 'application/atom+xml')?>">Atom</a>
         <a href="<?=rdf_link || sprintf ('&output=%U', 'application/odata+json')?>">JSON</a> ) | Microdata (
 	<a href="<?=rdf_link || sprintf ('&output=%U', 'application/microdata+json') ?>">JSON</a>
-        <a href="<?=rdf_link || sprintf ('&output=%U', 'text/html') ?>">HTML</a>) |  
-        <a href="<?=rdf_link || sprintf ('&output=%U', 'application/ld+json')?>">JSON-LD</a> 
+        <a href="<?=rdf_link || sprintf ('&output=%U', 'text/html') ?>">HTML</a>) |
+        <a href="<?=rdf_link || sprintf ('&output=%U', 'application/ld+json')?>">JSON-LD</a>
            <a href="/fct/facet_doc.html">About</a>   
       </div> <!-- #ft_t -->
       <div id="ft_b">
-      <a href="http://linkeddata.org/"><img alt="This material is Open Knowledge" src="/fct/images/LoDLogo.gif" style="border-width:0" /></a>  
-      <a href="http://dbpedia.org/sparql"><img alt="W3C Semantic Web Technology" src="/fct/images/sw-sparql-blue.png" style="border-width:0" /></a>
-      <a href="<?=rdf_link?>" title="RDF data"><img src="/fct/images/sw-rdf-blue.png" alt="[RDF Data]" style="border-width:0" /></a>
-      <a href="http://www.opendefinition.org/"><img alt="This material is Open Knowledge" src="/fct/images/od_80x15_red_green.png" style="border-width:0" /></a>
-	<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" 
+        <a href="http://linkeddata.org/"><img alt="This material is Open Knowledge" src="/fct/images/LoDLogo.gif" style="border-width:0"/></a>  
+        <a href="http://dbpedia.org/sparql"><img alt="W3C Semantic Web Technology" src="/fct/images/sw-sparql-blue.png" style="border-width:0"/></a>
+        <a href="<?=rdf_link?>" title="RDF data"><img src="/fct/images/sw-rdf-blue.png" alt="[RDF Data]" style="border-width:0"/></a>
+        <a href="http://www.opendefinition.org/"><img alt="This material is Open Knowledge" src="/fct/images/od_80x15_red_green.png" style="border-width:0"/></a>
+	<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0"
 	    src="/fct/images/creativecommons.png"/></a>
 	<span about=""
 	resource="http://www.w3.org/TR/rdfa-syntax"
@@ -337,11 +354,11 @@
 	    alt="Valid XHTML + RDFa" height="27" /></a>
 	</span>
 	<br />
-	This work is licensed under a 
+	This work is licensed under a
 	<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-Share Alike 3.0 Unported License</a>.<br />
-      <?vsp fct_virt_info (); ?><br /> 
-	Copyright © 2009-2011 OpenLink Software 
+	<?vsp fct_virt_info (); ?><br />
+	Copyright © 2009-2012 OpenLink Software
       </div> <!-- #ft_b -->
-    </div> <!-- #FT -->
- </body>
+  </div> <!-- #FT -->
+</body>
 </html>
diff --git a/binsrc/b3s/s/description.js b/binsrc/b3s/s/description.js
index 1e9a8e5..24457b5 100644
--- a/binsrc/b3s/s/description.js
+++ b/binsrc/b3s/s/description.js
@@ -1,10 +1,10 @@
 /*
- *  $Id: description.js,v 1.1.2.3 2010/10/22 21:12:25 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2009 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -29,6 +29,7 @@ function init() {
 var long_literal_counter = 0;
 var long_literal_spans = {};
 var long_literal_texts = {};
+
 function init_long_literals() {
     var spans = document.getElementsByTagName('span');
     for (i = 0; i < spans.length; i++) {
@@ -55,10 +56,11 @@ function init_long_literals() {
 var long_ul_counter = 0;
 var long_uls = {};
 var long_uls_nodes = {};
-function init_long_list() 
+
+function init_long_list()
 {
     var uls = document.getElementsByTagName('ul');
-    for (i = 0; i < uls.length; i++) 
+    for (i = 0; i < uls.length; i++)
       {
 	if (uls[i].className != 'obj') continue;
 	if (uls[i].childNodes.length <= 10) continue;
@@ -106,7 +108,7 @@ function uri_parms_string (p_obj)
     return parms_s.substring(0,parms_s.length-1);
 }
 
-function inf_cb () 
+function inf_cb ()
 {
     var loc = window.location;
     var href = loc.protocol+'//'+loc.host+loc.pathname;
@@ -116,7 +118,7 @@ function inf_cb ()
     window.location = href+uri_parms_string(parms);
 }
 
-function sas_cb () 
+function sas_cb ()
 {
     var loc = window.location;
     var href = loc.protocol+'//'+loc.host+loc.pathname;
diff --git a/binsrc/b3s/sparql.vsp b/binsrc/b3s/sparql.vsp
index c384620..ce7b155 100644
--- a/binsrc/b3s/sparql.vsp
+++ b/binsrc/b3s/sparql.vsp
@@ -1,11 +1,11 @@
 <?vsp
--- 
---  $Id: sparql.vsp,v 1.1.2.3 2009/05/08 10:51:29 source Exp $
+--
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -48,7 +48,7 @@ h1 { width: 100%; background-color: #86b9d9; font-size: 18pt; font-weight: norma
 var last_format = 1;
 function format_select(query_obg)
 {
-  var query = query_obg.value; 
+  var query = query_obg.value;
   var format = query_obg.form.format;
 
   if (query.match(/construct/i) && last_format == 1) {
@@ -79,9 +79,9 @@ function format_select(query_obg)
 		</div>
 		<div id="main">
 			<p>This query page is designed to help you test OpenLink Virtuoso SPARQL protocol endpoint. <br/>
-			Consult the <a href="http://virtuoso.openlinksw.com/wiki/main/Main/VOSSparqlProtocol">Virtuoso Wiki page</a> describing the service 
+			Consult the <a href="http://virtuoso.openlinksw.com/wiki/main/Main/VOSSparqlProtocol">Virtuoso Wiki page</a> describing the service
 			or the <a href="http://docs.openlinksw.com/virtuoso/">Online Virtuoso Documentation</a> section <a href="http://docs.openlinksw.com/virtuoso/rdfandsparql.html">RDF Database and SPARQL</a>.</p>
-			<p>There is also a rich Web based user interface with sample queries. 
+			<p>There is also a rich Web based user interface with sample queries.
 <?vsp if (DB.DBA.VAD_CHECK_VERSION('iSPARQL') is null) { ?>
   			In order to use it you must install the iSPARQL package (isparql_dav.vad).</p>
 <?vsp } else { ?>
@@ -117,7 +117,7 @@ declare host_ur varchar;
 DBA may wish to grant "SPARQL_SPONGE" privilege to "SPARQL" account to remove the restriction.
 In order to do this, please perform the following steps:</i>
 <br />
-1. Go to the Virtuoso Administration Conductor i.e. 
+1. Go to the Virtuoso Administration Conductor i.e.
 <?vsp
 if (not isstring (host_ur))
   {
@@ -144,7 +144,7 @@ else
 <?vsp  } ?>
 			  <label for="query">Query text</label>
 			  <br />
-			  <textarea rows="10" cols="60" name="query" id="query" onchange="format_select(this)" 
+			  <textarea rows="10" cols="60" name="query" id="query" onchange="format_select(this)"
 				onkeyup="format_select(this)"><?V coalesce (get_keyword ('q', params), def_qry, '') ?></textarea>
 			  <br /><br />
 			  <label for="format" class="n">Display Results As:</label>
diff --git a/binsrc/b3s/srank.sql b/binsrc/b3s/srank.sql
index 693acc6..33143c2 100644
--- a/binsrc/b3s/srank.sql
+++ b/binsrc/b3s/srank.sql
@@ -1,10 +1,10 @@
 --
---  $Id: srank.sql,v 1.1.2.5 2009/06/25 14:00:33 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -56,7 +56,7 @@ create procedure rnk_scale (in i int)
 
   ret := exp ((i - 0hex7fff) / 1e3);
 
-  if (ret < 1) 
+  if (ret < 1)
     {
       return (2 * atan (ret*5));
     }
@@ -66,7 +66,7 @@ create procedure rnk_scale (in i int)
       return 3 + ((atan (ret-1) * 4) / 3.14e0);
     }
 
-  else 
+  else
     {
       return 7 + (atan ((ret-10)/50) * 2);
     }
diff --git a/binsrc/b3s/srank23.sql b/binsrc/b3s/srank23.sql
index 1e25354..83bf89a 100644
--- a/binsrc/b3s/srank23.sql
+++ b/binsrc/b3s/srank23.sql
@@ -1,10 +1,10 @@
 --
---  $Id: srank23.sql,v 1.1.2.1 2010/02/01 12:44:31 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -37,7 +37,7 @@ create procedure f_s (in f double precision)
   declare i double precision;
   i := log (f) * 1000 + 0hex7fff;
   if (i > 0hexffff)
-	return 0hexffff;
+    return 0hexffff;
   return cast (i as int);
 }
 ;
@@ -56,7 +56,7 @@ create procedure rnk_scale (in i int)
 
   ret := exp ((i - 0hex7fff) / 1e3);
 
-  if (ret < 1) 
+  if (ret < 1)
     {
       return (2 * atan (ret*5));
     }
@@ -66,7 +66,7 @@ create procedure rnk_scale (in i int)
       return 3 + ((atan (ret-1) * 4) / 3.14e0);
     }
 
-  else 
+  else
     {
       return 7 + (atan ((ret-10)/50) * 2);
     }
@@ -105,7 +105,7 @@ create procedure DB.DBA.IRI_RANK (in iri iri_id_8)
     return 0;
   ni := iri_id_num (iri);
   n := bit_and (0hexffffffffffffff00, ni);
- nth := 2 * bit_and (ni, 0hexff);
+  nth := 2 * bit_and (ni, 0hexff);
   str := (select rnk_string from rdf_iri_rank where rnk_iri = iri_id_from_num (n));
   if (nth >= length (str))
     return 0;
@@ -119,7 +119,7 @@ grant execute on IRI_RANK to "SPARQL";
 create procedure rnk_store_w (inout first int, inout str varchar, inout fill int)
 {
   if (fill < 1000)
-  str := subseq (str, 0, fill);
+    str := subseq (str, 0, fill);
   insert replacing rdf_iri_stat option (no cluster)  values (iri_id_from_num (first), str);
   commit  work;
 }
@@ -154,27 +154,27 @@ create procedure rnk_count_refs_srv ()
       sn := iri_id_num (s);
       if (s_first is null)
 	{
-	s_first := bit_and (sn, 0hexffffffffffffff00);
-	s_prev := sn;
-	cnt := 0;
+	  s_first := bit_and (sn, 0hexffffffffffffff00);
+	  s_prev := sn;
+	  cnt := 0;
 	}
       if (sn = s_prev)
 	{
-	cnt := cnt + 1;
+	  cnt := cnt + 1;
 	}
       else
 	{
 	  if (not isstring (str))
 	    str := make_string (1536);
-	    nth := 6 * (s_prev - s_first);
-	    str[nth] := bit_shift (cnt, -8);
-	    str[nth + 1] := cnt;
-	    fill := nth + 6;
-	    cnt := 1;
-	    s_prev := sn;
+	  nth := 6 * (s_prev - s_first);
+	  str[nth] := bit_shift (cnt, -8);
+	  str[nth + 1] := cnt;
+	  fill := nth + 6;
+	  cnt := 1;
+	  s_prev := sn;
 	  if (sn - s_first > 255 or s_first > sn)
-	      {
-		rnk_store_w (s_first, str, fill);
+	    {
+	      rnk_store_w (s_first, str, fill);
 	      s_first := bit_and (sn, 0hexffffffffffffff00);
 	      --str := make_string (1536);
 	      str := rnk_get_stat (s_first);
@@ -182,14 +182,14 @@ create procedure rnk_count_refs_srv ()
 	    }
 	}
     }
- last:
+  last:
   if (not isstring (str))
-  str := make_string (1536);
- nth := 6 * (s_prev - s_first);
+    str := make_string (1536);
+  nth := 6 * (s_prev - s_first);
   str[nth] := bit_shift (cnt, -8);
-    str[nth + 1] := cnt;
- fill := nth + 6;
-    rnk_store_w (s_first, str, fill);
+  str[nth + 1] := cnt;
+  fill := nth + 6;
+  rnk_store_w (s_first, str, fill);
 }
 ;
 
@@ -201,8 +201,8 @@ create procedure DB.DBA.IST_SRV (in iri iri_id_8)
   declare n, nth, ni int;
   ni := iri_id_num (iri);
   n := bit_and (0hexffffffffffffff00, ni);
- nth := 6 * bit_and (ni, 0hexff);
- str := (select rst_string from rdf_iri_stat table option (no cluster) where rst_iri = iri_id_from_num (n));
+  nth := 6 * bit_and (ni, 0hexff);
+  str := (select rst_string from rdf_iri_stat table option (no cluster) where rst_iri = iri_id_from_num (n));
   if (str is null)
     return vector (0, 1);
   if (nth > length (str) - 6)
@@ -230,7 +230,7 @@ create procedure DB.DBA.IRI_STAT (in iri iri_id_8)
   declare n, nth, ni int;
   ni := iri_id_num (iri);
   n := bit_and (0hexffffffffffffff00, ni);
- nth := 6 * bit_and (ni, 0hexff);
+  nth := 6 * bit_and (ni, 0hexff);
   str := (select rst_string from rdf_iri_stat where rst_iri = iri_id_from_num (n));
   if (str is null)
     return 0;
@@ -275,7 +275,7 @@ create procedure rnk_store_sc (inout first int, inout str varchar, inout fill in
 create procedure rnk_get_ranks (in s_first int)
 {
   declare  str varchar;
- str := (select rnk_string  from rdf_iri_rank where rnk_iri = iri_id_from_num (s_first));
+  str := (select rnk_string  from rdf_iri_rank where rnk_iri = iri_id_from_num (s_first));
   if (str is null)
     return make_string (512);
   if (length (str) < 512)
@@ -286,9 +286,9 @@ create procedure rnk_get_ranks (in s_first int)
 
 create procedure rnk_score (in nth_iter int)
 {
-  -- use the POGS instead of OP index and check for lower value 
-  declare cr cursor for select o, p, iri_stat (s) 
-  	from rdf_quad table option (no cluster, index rdf_quad_pogs) 
+  -- use the POGS instead of OP index and check for lower value
+  declare cr cursor for select o, p, iri_stat (s)
+  	from rdf_quad table option (no cluster, index rdf_quad_pogs)
   	where o > #i0 and o < iri_id_from_num (0hexffffffffffffff00);
   declare s_first, s_prev, nth, sn, rnk, ssc, fill, n_iters int;
   declare sc double precision;
@@ -306,17 +306,17 @@ create procedure rnk_score (in nth_iter int)
       sn := iri_id_num (s);
       if (s_first is null)
 	{
-	s_first := bit_and (sn, 0hexffffffffffffff00);
+	  s_first := bit_and (sn, 0hexffffffffffffff00);
 	  if (nth_iter > 1)
 	    str := rnk_get_ranks (s_first);
 	  else
-	  str := make_string (512);
-	s_prev := sn;
-	sc := 0;
+	    str := make_string (512);
+	  s_prev := sn;
+	  sc := 0;
 	}
       if (sn = s_prev)
 	{
-	sc := sc + rnk_inc (rnk, nth_iter);
+	  sc := sc + rnk_inc (rnk, nth_iter);
 	  --dbg_obj_princ ('> sc of ', s, ' ', sc , ' rnk:', rnk, ' nth_iter:', nth_iter);
 	}
       else
@@ -324,32 +324,32 @@ create procedure rnk_score (in nth_iter int)
 	  declare dst int;
 	  if (not isstring (str))
 	    str := make_string (512);
-	    nth := 2 * (s_prev - s_first);
-	ssc := f_s (sc + s_f (str[nth] * 256 + str[nth + 1]));
-	    str[nth] := bit_shift (ssc, -8);
-	    str[nth + 1] := ssc;
-	    fill := nth + 2;
-	sc := rnk_inc (rnk, nth_iter);
-	    s_prev := sn;
+	  nth := 2 * (s_prev - s_first);
+	  ssc := f_s (sc + s_f (str[nth] * 256 + str[nth + 1]));
+	  str[nth] := bit_shift (ssc, -8);
+	  str[nth + 1] := ssc;
+	  fill := nth + 2;
+	  sc := rnk_inc (rnk, nth_iter);
+	  s_prev := sn;
 	  dst := sn - s_first;
 	  if (dst > 255 or dst < 0)
-	      {
-		rnk_store_sc (s_first, str, fill);
+	    {
+	      rnk_store_sc (s_first, str, fill);
 	      s_first := bit_and (sn, 0hexffffffffffffff00);
-		str := rnk_get_ranks (s_first);
+	      str := rnk_get_ranks (s_first);
 	      fill := 0;
 	    }
 	}
     }
  last:
   if (not isstring (str))
-  str := make_string (512);
- nth := 2 * (s_prev - s_first);
- ssc := f_s (sc);
+    str := make_string (512);
+  nth := 2 * (s_prev - s_first);
+  ssc := f_s (sc);
   str[nth] := bit_shift (ssc, -8);
-    str[nth + 1] := ssc;
- fill := nth + 2;
-    rnk_store_sc (s_first, str, fill);
+  str[nth + 1] := ssc;
+  fill := nth + 2;
+  rnk_store_sc (s_first, str, fill);
 }
 ;
 
@@ -375,21 +375,21 @@ create procedure rnk_next_cycle ()
   for (;;)
     {
       fetch cr into iri, stat;
-    rank := (select rnk_string from rdf_iri_rank where rnk_iri = iri);
+      rank := (select rnk_string from rdf_iri_rank where rnk_iri = iri);
       if (isstring (rank) and isstring (stat))
 	{
 	  declare nr, ns, inx, rnth, snth int;
-	nr := length (rank) /2;
-	ns := length (stat) /6;
+	  nr := length (rank) / 2;
+	  ns := length (stat) / 6;
 	  if (nr < ns)
-	  ns := nr;
+	    ns := nr;
 	  for (inx := 0; inx < ns; inx := inx + 1)
 	    {
-	    n_done := n_done + 1;
-	    rnth := inx * 2;
-	    snth := inx * 6;
-		stat[snth + 2] := rank [rnth];
-		stat[snth + 3] := rank[rnth + 1];
+	      n_done := n_done + 1;
+	      rnth := inx * 2;
+	      snth := inx * 6;
+	      stat[snth + 2] := rank[rnth];
+	      stat[snth + 3] := rank[rnth + 1];
 	      stat[snth + 4] := stat[snth + 2];
 	      stat[snth + 5] := stat[snth + 3];
 	    }
@@ -410,8 +410,8 @@ create procedure s_rank ()
 	cl_exec('__dbf_set(''cl_max_keep_alives_missed'',3000)');
     }
   log_enable (2);
-  delete from rdf_iri_stat;  
-  delete from rdf_iri_rank;  
+  delete from rdf_iri_stat;
+  delete from rdf_iri_rank;
   log_enable (1);
   cl_exec ('rnk_count_refs_srv ()');
   cl_exec ('rnk_score_srv (1)');
diff --git a/binsrc/b3s/styles/default.css b/binsrc/b3s/styles/default.css
index 67f6865..a6e886b 100644
--- a/binsrc/b3s/styles/default.css
+++ b/binsrc/b3s/styles/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.1.2.20 2011/10/26 15:38:11 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2009 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -23,7 +23,7 @@
 
 html {}
 
-body { 
+body {
   margin: 0; padding: 0;
   font-family: Gill Sans, Verdana, Helvetica, sans-serif;
   font-size: 9pt; text-align: center}
@@ -34,40 +34,51 @@ a.describe {margin-right: 6px}
 tr:hover {
   background-color: #ddd;}
 
-#PG { width: 100%; 
+pre {
+  white-space: pre-wrap;       /* css-3 */
+  white-space: -moz-pre-wrap !important;  /* Mozilla, since 1999 */
+  white-space: -pre-wrap;      /* Opera 4-6 */
+  white-space: -o-pre-wrap;    /* Opera 7 */
+  word-wrap: break-word;       /* Internet Explorer 5.5+ */
+}
+
+
+#PG { width: 100%;
       text-align: left;
       background-color: #fff;}
 
-#HD { 
-  width: 100%; 
-  float: left; 
+#HD {
+  width: 100%;
+  float: left;
   height: 70px;
-  text-align: center; 
+  text-align: center;
   background-image: url(/fct/images/bg_header.png);
   border-bottom: 1px solid #226;}
 
 #HD img { margin: 2px 0 0 0; padding: 0; vertical-align: middle; border: 0;}
 
-#HD h1 { 
-  font-size: 14pt; 
-  float:left; 
-  margin: 0 0 0 20px; 
-  vertical-align: top; 
-  color: #fff; 
+#HD h1 {
+  font-size: 14pt;
+  float:left;
+  margin: 0 0 0 20px;
+  vertical-align: top;
+  color: #fff;
   padding: 0}
 
 #HD h1 a { color: #fff}
 
+#HD h2 { font-size: 14pt; float: left; margin: 20px 0 0 20px; color: #fff; padding: 0;}
+
 #main_menu {
-  margin: 0; padding: 0;
+  margin: 40px 0; padding: 0;
   float: right;
-  clear: right;
+/*  clear: right;*/
   list-style-type: none;
   list-style-image: none;
   list-style-position: outside;
   list-style-type: none;
   margin-right: 12px;
-  min-width: 500px;
+/*  min-width: 500px; */
 }
 
 #main_menu li { float: left }
@@ -92,7 +103,7 @@ tr:hover {
   -moz-border-radius-topright:3px;
   background:#E4F2FD none repeat scroll 0 0;
   color:#555555;
-  text-shadow:1px 1px 1px #C6D9E9;	
+  text-shadow:1px 1px 1px #C6D9E9;
 }
 
 li#mnu_settings a {
@@ -116,23 +127,23 @@ li#mnu_settings ul li { }
 
 #hd_r { float: right; clear: right}
 
-#hd_r img { margin: 15px 10px 0 0; 
-            vertical-align: middle; 
-            padding-bottom: 3px; 
+#hd_r img { margin: 15px 10px 0 0;
+            vertical-align: middle;
+            padding-bottom: 3px;
             background-color: white; }
 
 a.logo { margin-left: 10px; float: left;}
 
 #opl_logo { border: 0; float: left;}
 
-#MD { width: 100%; 
-      float: left; 
-      margin-top: 0; 
-      background-color: #e9f2f7; 
-      padding-bottom: 10px; 
+#MD { width: 100%;
+      float: left;
+      margin-top: 0;
+      background-color: #e9f2f7;
+      padding-bottom: 10px;
       margin-left: auto; margin-right: auto;}
 
-#MD div#settings { 
+#MD div#settings {
   margin: 10px;
 }
 
@@ -143,7 +154,7 @@ a.logo { margin-left: 10px; float: left;}
 #MD div#settings ul li { padding: 0;}
 #MD div#settings td:hover {background: inherited}
 #MD div#settings tr:hover {background: inherited}
-#FT { width: 100%; float: left; 
+#FT { width: 100%; float: left;
       border-top: 1px solid #335;
       text-align: center;
       padding-top: 10px; }
@@ -155,7 +166,7 @@ span.copyright { font-size: 8pt; color: #888}
 div.page_resource_info {
   float: left; clear: left;
   text-align: left;
-  margin: 15px; 
+  margin: 15px;
 }
 
 div.page_resource_info h2 { display: inline; padding: 0;}
@@ -181,8 +192,8 @@ div.main_expln { float: left; clear: left; text-align: center; width: 100%;}
 
 #user_map { position: relative;width: 100%; height:650px; }
 
-input.thr { background-image: url(/fct/images/thrb.gif); 
-            background-repeat: no-repeat; 
+input.thr { background-image: url(/fct/images/thrb.gif);
+            background-repeat: no-repeat;
             background-position: right;}
 
 table.result { clear:left; width: 100%; margin: 3px; font-size: 9pt;}
@@ -199,10 +210,10 @@ p.subj_desc {
   float: left;
   clear: left;
   width: 750px;
-  text-align: left; 
-  font-style: italic; 
-  font-size: 12pt; 
-  margin: 10px; 
+  text-align: left;
+  font-style: italic;
+  font-size: 12pt;
+  margin: 10px;
   padding: 10px;
   background-color: #fff;
   border: 1px solid black;}
@@ -210,17 +221,17 @@ p.subj_desc {
 p.subj_delim {
   float: left;
   clear: left;
-  margin-left: 10px; 
+  margin-left: 10px;
   width: 750px;
   border-bottom: 1px solid black;}
 
-div.subj_nav div.nav { 
-  float: right; 
+div.subj_nav div.nav {
+  float: right;
   clear: right;
-  text-align: left; 
+  text-align: left;
   width: 200px;
-  margin-top: 10px; 
-  border-left: 1px solid #ddd; 
+  margin-top: 10px;
+  border-left: 1px solid #ddd;
 }
 
 div.subj_nav div.nav ul { list-style-type: none; padding: 0; margin-left: 10px;}
@@ -229,28 +240,28 @@ div.subj_nav div.nav h3 { text-align: left; margin-left: 10px; }
 table.description { text-align: left; margin: 10px; float: left;clear: left;}
 table.description td { vertical-align: top;}
 table.description td.property { white-space: nowrap;}
-table.description ul.obj { 
-  padding: 0; 
-  margin-top: 0; 
-  margin-left; 10px; 
+table.description ul.obj {
+  padding: 0;
+  margin-top: 0;
+  margin-left; 10px;
   list-style-type: none } /* list-style-type: none} */
 
-#main_srch { 
-  margin-top: 15px; 
+#main_srch {
+  margin-top: 15px;
   margin-left: auto;
   margin-right: auto}
 
 #TAB_ROW { width: 780px; margin-left: auto; margin-right: auto;}
 
 
-div.tab { 
+div.tab {
   float: left;
   min-width: 12em;
   padding-top: 10px;
   padding-left: 10px;
   padding-bottom: 4px;
-  cursor: pointer; 
-  background-image: url(/fct/images/tablv1default.png); 
+  cursor: pointer;
+  background-image: url(/fct/images/tablv1default.png);
   margin-right: 4px;
 }
 
@@ -258,15 +269,15 @@ div.tab a { text-decoration: none; white-space: nowrap; margin-right: 5px; }
 
 div.tab:first-child { clear: left; }
 
-div.tab_selected { 
-  background-image: url(/fct/images/tablv1sel.png); 
+div.tab_selected {
+  background-image: url(/fct/images/tablv1sel.png);
   font-weight: bold;
   padding-top: 10px;
   padding-bottom: 5px;
   border-top: 1px solid #ddd;
   border-right: 1px solid #ddd;
   border-left: 1px solid #ddd;
-  border-bottom: 2px solid #fff; 
+  border-bottom: 2px solid #fff;
 }
 
 #TAB_ROW div.tab_act { float: right; padding-top: 10px;}
@@ -286,7 +297,7 @@ div.tab_page {
   width: 100%;
   min-height: 150px;
   background-color: #ffffff;
-  background-image: url(/fct/images/tab_page_back1.png); 
+  background-image: url(/fct/images/tab_page_back1.png);
   background-repeat: repeat-x;
   background-position: bottom left;
   border-left: 1px solid #ddd;
@@ -302,7 +313,7 @@ div.pg_b_nav { float: left; clear: left; width: 100%; margin-left: 10px;}
 div.ac_info { margin-top: 20px;}
 div.ac_info img.txt_i { vertical-align: middle; margin: 4px;}
 
-div.autocomplete_list { 
+div.autocomplete_list {
   padding: 0;
   margin: 0;
   max-height: 500px;
@@ -310,13 +321,13 @@ div.autocomplete_list {
   overflow-x: auto;
   list-style-type: none;
   text-align: left;
-  background: #fff; 
+  background: #fff;
   border: 1px solid #888; }
 
-div.ac_list_option { 
-  text-align: left; 
-  margin: 2px 5px 2px 5px; 
-  cursor: pointer; 
+div.ac_list_option {
+  text-align: left;
+  margin: 2px 5px 2px 5px;
+  cursor: pointer;
   color: #888;
   border-top: 1px solid #ddd }
 
@@ -336,15 +347,15 @@ span.descr { font-size: 9pt; color: #557; margin-top: 0;}
 
 #result_nfo { float: left; clear: both; width: 100%; margin-top: 8px; margin-left: 5px; color: #446;}
 
-#fct_nav { 
-  float: right; 
+#fct_nav {
+  float: right;
   margin-left: 10px;
-  margin-top: 4px; 
-  padding-left: 3px; 
-  width: 200px; 
+  margin-top: 4px;
+  padding-left: 3px;
+  width: 200px;
   border-left: 1px solid #335;}
 
-#fct_nav h3 { margin: 0; padding: 0;}
+#fct_nav h3 { margin: 0; padding: 0; color: #445; }
 
 #fct_nav ul { list-style-type: none; padding: 0; margin: 0;}
 #fct_nav ul li { list-style-type: none;}
@@ -363,16 +374,16 @@ div.thr_ctr { display: inline; width: 16px; border: 0; padding: 0;margin: 0;}
        border: 1px outset;
        margin: 10px auto 10px auto;
        width: 90%;}
-.dlg .title { margin: 0; 
-              text-align: center; 
-              background-image: url(/fct/images/dlg_title_bkg.png); 
+.dlg .title { margin: 0;
+              text-align: center;
+              background-image: url(/fct/images/dlg_title_bkg.png);
               border-bottom: 1px inset;
               padding: 2px 0 2px 0;}
 .dlg .title h2 { color: #333}
 .dlg form { margin: 0; width: 100%;}
-.dlg .btn_bar { margin: 0; 
-                padding-top: 2ex; 
-                width: 100%; height: 6ex; 
+.dlg .btn_bar { margin: 0;
+                padding-top: 2ex;
+                width: 100%; height: 6ex;
                 border-top: 1px solid #333; background-color: #ddd; text-align: right; }
 .dlg .btn_bar button { margin-right: 4px; }
 .dlg .btn_bar input[type="submit"] { margin-right: 6px; }
@@ -383,11 +394,11 @@ div.thr_ctr { display: inline; width: 16px; border: 0; padding: 0;margin: 0;}
 .dlg .fm_sect h3 { font-size: 9pt; margin: 0}
 .dlg label.left_txt { float: left; clear: left; width: 120px;}
 .dlg .ctl_expln { margin-left: 120px; font-size: 8pt; font-style: oblique}
- 
+
 #opts_ctr {
   width: 100%;
   text-align: center;
-  background-color: white; 
+  background-color: white;
 }
 
 #opts {
@@ -421,25 +432,52 @@ a.in_del:hover { cursor: pointer; }
   font-style: italic;
 }
 
+#res .pager button {
+  background-color: #e5e5e5;
+  background-image: -webkit-gradient(linear, left top, left bottom, from(#eeeeee), to(#cccccc));
+  background-image: -webkit-linear-gradient(top, #e5e5e5, #d5d5d5);
+  background-image: -ms-linear-gradient(top, #e5e5e5, #d5d5d5);
+  background-image: -moz-linear-gradient(top, #e5e5e5, #d5d5d5);
+  background-image: -o-linear-gradient(top, #e5e5e5, #d5d5d5);
+  background-image: linear-gradient(top, #e5e5e5, #d5d5d5);
+  border: 1px solid #c2c2c2;
+  border-bottom: 1px solid #b2b2b2;
+  -ms-border-radius: 3px;
+  -moz-border-radius: 3px;
+  -webkit-border-radius: 3px;
+  -o-border-radius: 3px;
+  border-radius: 3px;
+  color: #333;
+  font: bold 11px Geneva, Verdana, sans-serif;
+  line-height: 1;
+  padding: 3px 3px;
+  text-align: center;
+  text-shadow: 0 1px 0 #EEE;
+}
+
+#res .pager button:disabled {
+  color: #666;
+}
+
 div.empty_result {
-  font-weight: bold; 
+  font-weight: bold;
   font-size: 12pt;
   margin: 20px;
 }
 
-div.dbg { 
+div.dbg {
   display: none; }
 
 /*div.dbg { padding: 10px; background-color: yellow; border: 1px solid black}*/
 
 div#pager { margin-top: 10px; float: right;}
 
-div#pager a { background-color: #ddd; 
-              padding: 2px; 
-              border: 1px solid #335; 
-              padding: 3px 5px 3px 5px; 
-              width: auto; 
-              text-decoration: none; 
+div#pager a { background-color: #ddd;
+              padding: 2px;
+              border: 1px solid #335;
+              padding: 3px 5px 3px 5px;
+              width: auto;
+              text-decoration: none;
               text-align: center;}
 
 h3#view_info {
@@ -448,7 +486,7 @@ h3#view_info {
   font-size: 10pt;
 }
 
-div#top_ctr { 
+div#top_ctr {
   font-size: 10pt;
   background-color: #ccc;
   margin-top: 0px; padding-top: 4px;
@@ -459,6 +497,11 @@ div#top_ctr {
   list-style-type: none;
 }
 
+#top_ctr ul .focus {
+  font-weight: bold;
+  color: #393;
+}
+
 div.error_msg { margin: 5px; }
 div.error_msg h2 {}
 div.error_msg div.body { margin: 10px;}
@@ -473,8 +516,8 @@ div.facet_ctr {
 
 div.facet_ctr:first-child { margin-left: 0;}
 
-.facet_hd { 
-  margin: 0; 
+.facet_hd {
+  margin: 0;
   text-align: center;
   border-top: 1px solid #333;
   border-left: 1px solid #333;
@@ -482,12 +525,12 @@ div.facet_ctr:first-child { margin-left: 0;}
   background-color: #aaa;
   background-image: url(/images/dlg_title_bkg.png);}
 
-div.facet { 
-  float:left; 
-  height: 20em;  
-  width: 394px; 
-  overflow-y: auto; 
-  overflow-x: hidden; 
+div.facet {
+  float:left;
+  height: 20em;
+  width: 394px;
+  overflow-y: auto;
+  overflow-x: hidden;
   background-color: #fff;
   border: 1px inset;
 }
@@ -495,13 +538,13 @@ div.facet {
 .plink_a {margin-left: 1em}
 
 div#sparql_link { margin-top: 10px; float: right;}
-div#sparql_link a { 
-  background-color: #ddd; 
-  padding: 2px; 
-  border: 1px solid #335; 
-  padding: 3px 5px 3px 5px; 
-  width: auto; 
-  text-decoration: none; 
+div#sparql_link a {
+  background-color: #ddd;
+  padding: 2px;
+  border: 1px solid #335;
+  padding: 3px 5px 3px 5px;
+  width: auto;
+  text-decoration: none;
   text-align: center;}
 
 div.featured { margin: 5px; }
@@ -510,10 +553,10 @@ div.featured .expln { text-align: left;}
 #featured_list td { font-size: 9pt;}
 
 table.sparql_qry_list { width: 78%; margin-left: auto; margin-right: auto}
-table.sparql_qry_list td.title { font-weight: bold; }  
-table.sparql_qry_list td.expln { width: 50%; }  
+table.sparql_qry_list td.title { font-weight: bold; }
+table.sparql_qry_list td.expln { width: 50%; }
 
-#demo_queries_ctr { margin: 10px; }
+#demo_queries_ctr { margin: 10px; min-height: 200px}
 
 ul.demo_qry_list {
   list-style-type: none;
@@ -525,12 +568,14 @@ ul.demo_qry_list div.expln { margin: 10px; }
 ul.demo_qry_list pre { margin: 10px; }
 
 div#dbg_output {
-  float: left; 
+  float: left;
   clear:left;
   font-size: 8pt;
 }
 
-span.pivot_pg a, 
+span.advisory { font-weight: bold; }
+
+span.pivot_pg a,
 span.pivot_qrcode_opts a,
 span.pivot_link_opts a { text-decoration: none; }
 
@@ -545,10 +590,16 @@ div#nav {
     margin-left: 50px;
 }
 
-a#sp_link { font-size: 11pt; font-weight:normal; }
+a#sp_link { font-size: 9pt; font-weight:normal; }
+a.desc_permalink { font-size: 9pt; font-weight: normal }
+
+#qrcode { position:fixed; top:100px; right: 30px; z-index: 0; }
+
+#FT_share { margin: auto; width: 400px}
+
+#fct_form { margin-top: 1ex }
 
-#qrcode { position:fixed; top:100px; right: 30px; z-index: 0; } 
+.addthis_toolbox { margin: 20px 10px auto; }
 
-#FT_share { float: center; clear: both; text-align: center; }
+#FT_share .addthis_toolbox { margin: 0 }
 
-.addthis_toolbox { width: 400px; margin: 0 auto; }
diff --git a/binsrc/b3s/sum.sql b/binsrc/b3s/sum.sql
index e87d362..93e8970 100644
--- a/binsrc/b3s/sum.sql
+++ b/binsrc/b3s/sum.sql
@@ -1,10 +1,10 @@
 --
---  $Id: sum.sql,v 1.1.2.6 2010/02/01 12:44:31 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -20,9 +20,10 @@
 --  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 --
 
--- Each summary is initially an array of 29 with s_rank, o_fill, o1, p1, sc1, o2, p2, sc2 
+-- Each summary is initially an array of 29 with s_rank, o_fill, o1, p1, sc1, o2, p2, sc2
 -- and so on.  After so many entries, more are not added.
 
+
 create procedure s_sum_init (inout env any)
 {
   env := make_array (30, 'any');
@@ -53,13 +54,13 @@ create procedure s_sum_fin (inout env any)
 ;
 
 
-create aggregate DB.DBA.S_SUM (in s_rank double precision, in p iri_id, in o any, in sc int) returns any from 
+create aggregate DB.DBA.S_SUM (in s_rank double precision, in p iri_id, in o any, in sc int) returns any from
   s_sum_init, s_sum_acc, s_sum_fin;
 
-grant execute on DB.DBA.S_SUM_INIT to "SPARQL";  
-grant execute on DB.DBA.S_SUM_ACC to "SPARQL";  
-grant execute on DB.DBA.S_SUM_FIN to "SPARQL";  
-grant execute on DB.DBA.S_SUM to "SPARQL";  
+grant execute on DB.DBA.S_SUM_INIT to "SPARQL";
+grant execute on DB.DBA.S_SUM_ACC to "SPARQL";
+grant execute on DB.DBA.S_SUM_FIN to "SPARQL";
+grant execute on DB.DBA.S_SUM to "SPARQL";
 
 create procedure sum_rank (inout arr any)
 {
@@ -67,7 +68,7 @@ create procedure sum_rank (inout arr any)
 }
 ;
 
-grant execute on DB.DBA.SUM_RANK to "SPARQL";  
+grant execute on DB.DBA.SUM_RANK to "SPARQL";
 
 create procedure sum_o_p_score (inout o any, inout p any)
 {
@@ -89,8 +90,15 @@ create procedure sum_o_p_score (inout o any, inout p any)
 }
 ;
 
-
-create procedure sum_result (inout final any, inout res any, inout text_exp any, inout s varchar, inout start_inx int, inout end_inx int, inout s_rank real, inout lbl any)
+create procedure sum_result (inout final any, 
+                             inout res any, 
+			     inout text_exp any, 
+			     inout s varchar, 
+			     inout start_inx int, 
+			     inout end_inx int, 
+			     inout s_rank real, 
+			     inout lbl any,
+			     inout g any)
 {
   declare sorted, inx, tot, exc, elt, tsum any;
  tsum := 0;
@@ -107,11 +115,12 @@ create procedure sum_result (inout final any, inout res any, inout text_exp any,
   tot	 := tot || cast (rdf_box_data (sorted[inx]) as varchar);
  exc := fct_bold_tags (search_excerpt (text_exp, tot));
 -- dbg_obj_print (' summaries of ', tot, ' ', lbl, ' ', exc);
- elt := xmlelement ('row', 
+ elt := xmlelement ('row',
 		    xmlelement ('column', xmlattributes ('trank' as "datatype"), cast (cast (tsum as real) / ((end_inx - start_inx) / 3) as varchar)),
 		    xmlelement ('column', xmlattributes ('erank' as "datatype"), cast (s_rank as varchar)),
- 		    xmlelement ('column', xmlattributes ('url' as "datatype", fct_short_form (s) as "shortform"), s), 
+ 		    xmlelement ('column', xmlattributes ('url' as "datatype", fct_short_form (s) as "shortform"), s),
 		    xmlelement ('column', lbl),
+		    xmlelement ('column', xmlattributes ('url' as "datatype", fct_short_form (g) as "shortform"), g),
  		    xmlelement ('column', exc)
 		    );
   xte_nodebld_xmlagg_acc (final, elt);
@@ -127,8 +136,9 @@ create procedure sum_final (inout x any)
 
 create procedure s_sum_page_s (in rows any, in text_exp varchar)
 {
+--  dbg_obj_print (rows);
   /* fill the os and translate the iris and make sums */
-  declare inx, s, prev_s, prev_fill, fill, inx2, n, s_rank, lbl any;
+  declare inx, s, g, prev_s, prev_fill, fill, inx2, n, s_rank, lbl any;
   declare dp, os, res, final any;
   declare lng_pref any;
   lng_pref := connection_get ('langs');
@@ -142,14 +152,15 @@ create procedure s_sum_page_s (in rows any, in text_exp varchar)
     }
   n := 3 * n;
   --dbg_obj_print ('result length ', n);
-  res := make_array (n, 'any');  
+  res := make_array (n, 'any');
   fill := 0;
   for (inx := 0; inx < length (rows); inx := inx + 1)
     {
       os := aref (rows, inx, 1);
       s_rank := rnk_scale (os[0]);
       s := ID_TO_IRI (rows[inx][0]);
-      lbl := FCT_LABEL_S (rows[inx][0], 0, 'facets', lng_pref); 
+      lbl := FCT_LABEL_S (rows[inx][0], 0, 'facets', lng_pref);
+      g := ID_TO_IRI (rows[inx][2]);
       prev_fill := fill;
       for (inx2 := 3; inx2 < os[1] + 3; inx2 := inx2 + 3)
         {
@@ -158,7 +169,7 @@ create procedure s_sum_page_s (in rows any, in text_exp varchar)
 	  res[fill + 2] := os[inx2 + 2];
 	  fill := fill + 3;
 	}
-      sum_result (final, res, text_exp, s, prev_fill, fill, s_rank, lbl);
+      sum_result (final, res, text_exp, s, prev_fill, fill, s_rank, lbl, g);
     }
   return sum_final (final);
 }
@@ -167,39 +178,40 @@ create procedure s_sum_page_s (in rows any, in text_exp varchar)
 create procedure s_sum_page_c (in rows any, in text_exp varchar)
 {
   /* fill the os and translate the iris and make sums */
-  declare inx, s, prev_s, prev_fill, fill, inx2, n, s_rank, lbl any;
+  declare inx, s, g, prev_s, prev_fill, fill, inx2, n, s_rank, lbl any;
   declare dp, os, so, res, final any;
   declare lng_pref any;
   lng_pref := connection_get ('langs');
-  dp := dpipe (1, 'ID_TO_IRI', '__RO2SQ', 'FCT_LABEL_L');
+  dp := dpipe (1, 'ID_TO_IRI', '__RO2SQ', 'FCT_LABEL_L', 'ID_TO_IRI');
   xte_nodebld_init (final);
   for (inx := 0; inx < length (rows); inx := inx + 1)
     {
       os := aref (rows, inx, 1);
       for (inx2 := 3; inx2 < os[1] + 3; inx2 := inx2 + 3)
-        dpipe_input (dp, aref (rows, inx, 0), os[inx2], vector (aref (rows, inx, 0), 0, 'facets', lng_pref));
+        dpipe_input (dp, aref (rows, inx, 0),os[inx2], vector (aref (rows, inx, 0), 0, 'facets', lng_pref), aref (rows, inx, 2));
     }
   n := 3 * dpipe_count (dp);
   --dbg_obj_print ('result length ', n);
-  res := make_array (n, 'any');  
+  res := make_array (n, 'any');
   fill := 0;
   for (inx := 0; inx < length (rows); inx := inx + 1)
     {
       os := aref (rows, inx, 1);
       s_rank := rnk_scale (os[0]);
-    prev_fill := fill;
+      prev_fill := fill;
       for (inx2 := 3; inx2 < os[1] + 3; inx2 := inx2 + 3)
-	{
-	so := dpipe_next (dp, 0);
+        {
+	  so := dpipe_next (dp, 0);
 	  --dbg_obj_print ('res ', fill, so);
-	s := so[0];
+	  s := so[0];
+	  g := so[3];
 	  res[fill] := so[1];
-	    res[fill + 1] := os[inx2 + 1];
-	      res[fill + 2] := os[inx2 + 2];
+	  res[fill + 1] := os[inx2 + 1];
+	  res[fill + 2] := os[inx2 + 2];
 	  lbl := so[2];
-	fill := fill + 3;
+	  fill := fill + 3;
 	}
-      sum_result (final, res, text_exp, s, prev_fill, fill, s_rank, lbl);
+      sum_result (final, res, text_exp, s, prev_fill, fill, s_rank, lbl, g);
     }
   dpipe_next (dp, 1);
   --sum_result (final, res, text_exp, s, prev_fill, fill, s_rank);
@@ -289,8 +301,8 @@ create procedure sum_tst_1 (in text_exp varchar, in text_words varchar := null)
 --    text_words := vector (text_exp);
 --  res := (select vector_agg (vector (s, sm)) from (
 --   select top 20 s, s_sum (iri_rank (s), p, o, score)  as sm
---   from rdf_obj, rdf_ft, rdf_quad q1 
---   where contains (ro_flags, text_exp) and rf_id = ro_id and q1.o = rf_o group by s 
+--   from rdf_obj, rdf_ft, rdf_quad q1
+--   where contains (ro_flags, text_exp) and rf_id = ro_id and q1.o = rf_o group by s
 --   order by sum_rank (sm) option (quietcast) ) s option (quietcast)
 --);
   --dbg_obj_print (res);
@@ -301,7 +313,7 @@ create procedure sum_tst_1 (in text_exp varchar, in text_words varchar := null)
 
 --  sum_tst ('oori');
 
---  
+--
 -- sparql
 -- select (<SHORT_OR_LONG::>(?s1)) as ?c1, (<sql:S_SUM> (
 --    <SHORT_OR_LONG::IRI_RANK> (?s1),
diff --git a/binsrc/b3s/vad_version b/binsrc/b3s/vad_version
index b207b75..0b08e2f 100644
--- a/binsrc/b3s/vad_version
+++ b/binsrc/b3s/vad_version
@@ -1 +1 @@
-1.10.55
+1.11.98
diff --git a/binsrc/b3s/www/about.html b/binsrc/b3s/www/about.html
index 4494433..961fcd1 100644
--- a/binsrc/b3s/www/about.html
+++ b/binsrc/b3s/www/about.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <!--
 --
---  $Id: about.html,v 1.1.2.1 2009/04/17 11:07:30 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/b3s/www/dlistall.vsp b/binsrc/b3s/www/dlistall.vsp
index ba4c408..31c704f 100644
--- a/binsrc/b3s/www/dlistall.vsp
+++ b/binsrc/b3s/www/dlistall.vsp
@@ -2,12 +2,12 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <?vsp
 --
---  $Id: dlistall.vsp,v 1.1.2.5 2010/02/01 12:44:31 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -26,7 +26,7 @@
 
   label := 'Drill-down queries';
   puri := get_keyword('p', params,'');
-  puri := replace (puri, '\'', '%27');  
+  puri := replace (puri, '\'', '%27');
 ?>
   <head>
     <link rel="stylesheet" type="text/css" href="style.css">
@@ -97,7 +97,7 @@
                         http('<td>');
 			if (__tag of rdf_box = __tag (tmp) and not rdf_box_is_complete (tmp))
 			  http ('Incomplete box');
-			else  
+			else
 			  {
 			    http_value(tmp);
 			  }
diff --git a/binsrc/b3s/www/listall.vsp b/binsrc/b3s/www/listall.vsp
index a35793c..eaac863 100644
--- a/binsrc/b3s/www/listall.vsp
+++ b/binsrc/b3s/www/listall.vsp
@@ -2,12 +2,12 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <?vsp
 --
---  $Id: listall.vsp,v 1.1.2.7 2011/09/23 19:22:36 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -56,16 +56,16 @@
 For your convenience we have a set of <a href="nspref.vsp">predefined name space prefixes</a>.</div>
     <div id="footer">
       <div id="ft_b">
-	<a href="about.html">About</a> 
+	<a href="about.html">About</a>
         <a href="http://virtuoso.openlinksw.com" title="OpenLink Virtuoso"><img class="powered_by" src="http://dbpedia.org/statics/virt_power_no_border.png" alt="Powered by OpenLink Virtuoso"/></a>
         <a href="http://linkeddata.org/"><img alt="This material is Open Knowledge" src="http://dbpedia.org/statics/LoDLogo.gif" border="0"></a>  
         <a href="http://dbpedia.org/sparql"><img alt="W3C Semantic Web Technology" src="http://dbpedia.org/statics/sw-sparql-blue.png" border="0"></a>     
         <a href="http://www.opendefinition.org/"><img alt="This material is Open Knowledge" src="http://dbpedia.org/statics/od_80x15_red_green.png" border="0"></a>
         <br />
-	This work is licensed under a 
+	This work is licensed under a
 	<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-Share Alike 3.0 Unported License</a>.<br />
-	<?vsp fct_virt_info (); ?><br /> 
-	Copyright © 2009-2011 OpenLink Software 
+	<?vsp fct_virt_info (); ?><br />
+	Copyright © 2009-2012 OpenLink Software
       </div> <!-- #ft_b -->
     </div> <!-- #footer -->
   </body>
diff --git a/binsrc/b3s/www/nspref.vsp b/binsrc/b3s/www/nspref.vsp
index faeea0c..f76bd09 100644
--- a/binsrc/b3s/www/nspref.vsp
+++ b/binsrc/b3s/www/nspref.vsp
@@ -2,12 +2,12 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <?vsp
 --
---  $Id: nspref.vsp,v 1.1.2.2 2009/05/01 19:39:36 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -48,7 +48,7 @@
     </div><!--  #content -->
     <div id="footer">
       <div id="ft_b">
-	<a href="about.html">About</a> 
+	<a href="about.html">About</a>
         <a href="http://virtuoso.openlinksw.com" title="OpenLink Virtuoso"><img class="powered_by" src="http://dbpedia.org/statics/virt_power_no_border.png" alt="Powered by OpenLink Virtuoso"/></a>
         <a href="http://linkeddata.org/"><img alt="This material is Open Knowledge" src="http://dbpedia.org/statics/LoDLogo.gif" border="0"></a>  
         <a href="http://dbpedia.org/sparql"><img alt="W3C Semantic Web Technology" src="http://dbpedia.org/statics/sw-sparql-blue.png" border="0"></a>     
diff --git a/binsrc/b3s/www/search.sql b/binsrc/b3s/www/search.sql
index d2b6275..df9e5e8 100644
--- a/binsrc/b3s/www/search.sql
+++ b/binsrc/b3s/www/search.sql
@@ -1,10 +1,10 @@
 --
---  $Id: search.sql,v 1.1.2.11 2011/09/23 19:22:36 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -151,8 +151,8 @@ create procedure desc_get (in num varchar)
 	'What sources talk the most about a given subject? Show the top N graphs containing triples with the given text pattern. Sort by descending triple count.',
 	'What types of objects contain a text pattern. Find matches, get the type. Group by type, order by count.',
 	'What are the interests of a given person based on their foaf:name?',
-	'Who writes the most about a topic. Show for each author the number of works mentioning the topic and total number of works.'
-||'<br>For all documents and posts we have extracted named entities the entity could shows the entities which occur in the works of each author.'
+	'Who writes the most about a topic. Show for each author the number of works mentioning the topic and total number of works. '
+||'<br>For all documents and posts we have extracted named entities the entity could shows the entities which occur in the works of each author. '
 ||'There are statistics about named entities occurring together, these are used for display a list of related entities. '
 	,
 	'Show the people a person directly or indirectly knows. Sort by distance and count of connections of the known person',
@@ -202,7 +202,7 @@ create procedure head_get (in num varchar)
     vector ('Thing', 'Nick name', 'Occurrences'),
     vector ('Thing', 'Text Pattern', 'Occurrences'),
     vector ('Manifacturer URI', 'Total Products'),
-    vector ('Vendor', 'Offer', 'Business Function', 'Offer Object', 'Type of Good', 'Price'),    
+    vector ('Vendor', 'Offer', 'Business Function', 'Offer Object', 'Type of Good', 'Price'),
 --    vector ('Vendor', 'Offer', 'Business Function', 'Customer Type', 'Offer Object', 'Type of Good', 'Price'),
 --    vector ('Total Products'),
     vector ('Cafe URI', 'Latitude', 'Longitude', 'Cafe Name', 'Church Name', 'Count'),
@@ -235,7 +235,7 @@ create procedure validate_input(inout val varchar)
 {
   val := trim(val, ' ');
   val := replace(val, '*', '');
-  val := replace(val, '>', '');
+ val := replace(val, '>', '');
   val := replace(val, '<', '');
   --val := replace(val, '&', '');
   --val := replace(val, '"', '');
@@ -246,7 +246,7 @@ create procedure validate_input(inout val varchar)
 create procedure get_curie (in val any)
 {
 
-  declare delim, delim1, delim2, delim3 integer;
+ declare delim, delim1, delim2, delim3 integer;
   declare pref, res, suff varchar;
 
   delim1 := coalesce (strrchr (val, '/'), -1);
@@ -577,13 +577,14 @@ create procedure pick_query(in smode varchar, inout val any, inout query varchar
     s1 := 'sparql SELECT ?i2 COUNT (*) WHERE  { ?p foaf:interest ?i1 . ' ||
     ' ?p foaf:name ?name . ' ||
     ' FILTER ( bif:contains (?name, \'';
-  validate_input(val);
+    validate_input(val);
     s2 := trim (fti_make_search_string(val), '()');
     s3 := '\')) . ?p foaf:interest ?i2  } GROUP BY ?i2 ORDER BY DESC 2 LIMIT 20';
-  query := concat('',s1, s2, s3,'');
+    query := concat('',s1, s2, s3,'');
   }
   else if (smode='5')
   {
+
 -- this query crashes the server:
 ----* The Most One-Sidedly Known People
 --sparql
@@ -943,7 +944,7 @@ s3 := '\')) .
        ' WHERE  ' ||
        '   { ' ||
        '     { ' ||
-       '       SELECT ?c  ?m ?n ?p ?trans?dist ' ||
+       '       SELECT ?c ?m ?n ?p ?trans ?dist ' ||
        '       WHERE ' ||
        '         { ' ||
        '           ?m rdfs:label ?n . ' ||
diff --git a/binsrc/b3s/www/search.vsp b/binsrc/b3s/www/search.vsp
index b0db7f3..c6b3265 100644
--- a/binsrc/b3s/www/search.vsp
+++ b/binsrc/b3s/www/search.vsp
@@ -2,12 +2,12 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <?vsp
 --
---  $Id: search.vsp,v 1.1.2.9 2011/09/23 19:22:36 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --
---  Copyright (C) 1998-2009 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -57,7 +57,7 @@
     err_msg := 'No such query';
     res := vector();
   };
-  
+
   declare desc_resource_uri varchar;
   desc_resource_uri := sprintf ('http://%{WSHost}s/sparql?query=%U&format=cxml', ltrim(squery, 'sparql '));
 ?>
@@ -80,7 +80,7 @@
                 http (sprintf(' <b><a href="dlistall.vsp?p=%U">Back to Drill-down list | </a></b>',srch));
               http(sprintf('<a href="listall.vsp">Back to main menu</a>'));
             ?>
-	    <p><?vsp http (desc_get (smode)); ?></p>	
+	    <p><?vsp http (desc_get (smode)); ?></p>
           </td>
        </tr>
      </table>
@@ -94,9 +94,9 @@
 		<?vsp
 		  if (input_get (smode) = 'Search for')
                     {
-                      http_value ('In search form, enter words separated by spaces.  To indicate consecutive words, enclose in quotes (").', 'p'); 
-		    }   
-		?>  
+                      http_value ('In search form, enter words separated by spaces. To indicate consecutive words, enclose in quotes (").', 'p');
+		    }
+		?>
 		<?V input_get (smode) ?> <input size="60" type="text" name="sc" value="<?= srch ?>"/> 
                 <!-- show the second input field-->
                 <?vsp
@@ -223,7 +223,7 @@
 		      http ('<tr>');
 		      foreach (any elm in head) do
 			{
-			  http_value (elm, 'th'); 
+			  http_value (elm, 'th');
 			}
 		      http ('</tr>');
 		    }
@@ -256,15 +256,15 @@
 			else if (smode = '1004' and j = 0)
 			  {
 			    http (sprintf ('<td><a href="search.vsp?q=1001&sc=%U&fa=Execute">', tmp));
-		            http_value (tmp);
+	                    http_value (tmp);
 			    http ('</a>');
 			  }
-			else if (smode = '4' and j = 0) 
+			else if (smode = '4' and j = 0)
 			  {
 			    http (sprintf ('<td><a href="search.vsp?q=%U&sc=%U&fa=Execute">', smode, '<'||tmp||'>'));
 		            http_value (tmp);
 			    http (sprintf('</a> <a href="/describe/?url=%U">Browse</a>',tmp));
-			  }	
+			  }
 			else if (smode = '18' and j = 0)
 			  {
 			    http (sprintf ('<td><a href="search.vsp?q=%U&sc=%U&sc2=%U&sc3=%U&fa=Execute">', smode, '<'||tmp||'>', srch2, srch3));
@@ -273,11 +273,11 @@
 			  }
 			else if (smode  = '1001' and j = 0)
                           {
-		  	    http (sprintf ('<td><a class="uri" href="%V">%s</a>', 
-			    	replace (tmp, 'http://umbel.org/umbel/ne/wikipedia/', 'http://dbpedia.org/resource/'), 
+		  	    http (sprintf ('<td><a class="uri" href="%V">%s</a>',
+			    	replace (tmp, 'http://umbel.org/umbel/ne/wikipedia/', 'http://dbpedia.org/resource/'),
 			    	get_curie (tmp)));
 			    http (sprintf(' <b><a href="search.vsp?q=1004&sc=%U&fa=Execute">Authors</a></b>',tmp));
-		          }		
+		          }
 			else if (smode not in ('2'))
 		   	  http (sprintf ('<td><a class="uri" href="%s">%s</a>', concat('/describe/?url=', sprintf ('%U',tmp)), get_curie (tmp)));
  		        else
@@ -298,22 +298,22 @@
                         --dbg_obj_print(tmp);
 			if (__tag of rdf_box = __tag (tmp) and not rdf_box_is_complete (tmp))
 			  http ('Incomplete box');
-			else  
+			else
 			  {
 			    if ((smode = '8' or smode ='9' or smode ='10') and j = 1)
-			      http (sprintf ('<a href="search.vsp?q=%U&sc=%U&fa=Execute">', smode, tmp));	
+			      http (sprintf ('<a href="search.vsp?q=%U&sc=%U&fa=Execute">', smode, tmp));
 			    if ((smode = '8' or smode ='9' or smode ='10') and j = 2)
-			      http (sprintf ('<a href="search.vsp?q=1005&sc=%U&fa=Execute">', rs[1]));	
+			      http (sprintf ('<a href="search.vsp?q=1005&sc=%U&fa=Execute">', rs[1]));
 		            if ((smode = '1' and j = 2) or (smode = '1002' and j = 2) or (smode = '1003' and j = 2))
                               http (tmp);
-			    else  
+			    else
                               {
 			        if (isstring (tmp))
 				  tmp := charset_recode (tmp, 'UTF-8', '_WIDE_');
 			        http_value(tmp);
-		              } 		
+		              }
 			    if ( (smode = '8' or smode ='9' or smode ='10') and (j = 1 or j = 2))
-			      http ('</a>');	
+			      http ('</a>');
 			  }
                         http('</td>');
                       };
@@ -327,19 +327,19 @@
           <?vsp
             };
               };
-	    if (smode = '1004') {   
+	    if (smode = '1004') {
           ?>
 	  <tr>
 	      <td>
 		  <p>Related NEs</p>
 		  <table class="tableresult" border="1">
-		  <?vsp 
+		  <?vsp
 		  exec ('select top 20 iri from (select id_to_iri (tc_t2) iri, tc_count from nes_coincidence where tc_t1 = iri_to_id (?) union select id_to_iri (tc_t1), tc_count from nes_coincidence where tc_t2 = iri_to_id (?) order by tc_count desc) xx', null, null, vector (srch, srch), 0, meta, data);
 		  for (i := 0; i < length (data); i := i + 1)
 		    {
                       declare iri any;
 		      iri := data[i][0];
-		      http (sprintf ('<tr><td><a href="search.vsp?q=1004&sc=%U&fa=Execute">%V</a></td></tr>', iri, get_curie (iri))); 
+		      http (sprintf ('<tr><td><a href="search.vsp?q=1004&sc=%U&fa=Execute">%V</a></td></tr>', iri, get_curie (iri)));
 		    }
 		  ?>
                  </table>
@@ -354,7 +354,7 @@
           </tr>
       </table>
     </div><!--  #content -->
-    
+
     <!-- div id="isparql-results">
       <table class="description">
         <tr>
@@ -384,34 +384,34 @@
      </table>
     </div>
     <div id="footer">
-    
+
       <div id="ft_b">
-        <?vsp if (squery <> '' and squery is not null) { ?>	
+        <?vsp if (squery <> '' and squery is not null) { ?>
          Alternative Linked Data Views:
-  
-	       <?vsp if (VAD_CHECK_VERSION ('PivotViewer') is not null) { ?>	
-	         <a href="/PivotViewer/?url=<?vsp http_url (desc_resource_uri); ?>" title="PivotViewer page for exploring results and generating new queries" target="_blank">PivotViewer</a> 
+
+	       <?vsp if (VAD_CHECK_VERSION ('PivotViewer') is not null) { ?>
+	         <a href="/PivotViewer/?url=<?vsp http_url (desc_resource_uri); ?>" title="PivotViewer page for exploring results and generating new queries" target="_blank">PivotViewer</a>
 	       <?vsp } ?>
 	        |
-	       <?vsp if (VAD_CHECK_VERSION ('iSPARQL') is not null) { 
+	       <?vsp if (VAD_CHECK_VERSION ('iSPARQL') is not null) {
 	         squery := ltrim(squery, 'sparql ');
            http (sprintf(' <a href="/isparql/view/?query=%U&endpoint=/sparql&maxrows=50&default-graph-uri=&resultview=browser" title="Interactive Query By Example oriented SPARQL UI" target="_blank">iSPARQL</a>',squery));
 	       } ?>
-		
+
         <?vsp } ?>
       </div> <!-- #ft_t -->
-       
+
       <div id="ft_b">
-	<a href="about.html">About</a> 
+	<a href="about.html">About</a>
         <a href="http://virtuoso.openlinksw.com" title="OpenLink Virtuoso"><img class="powered_by" src="http://dbpedia.org/statics/virt_power_no_border.png" alt="Powered by OpenLink Virtuoso"/></a>
         <a href="http://linkeddata.org/"><img alt="This material is Open Knowledge" src="http://dbpedia.org/statics/LoDLogo.gif" border="0"></a>  
         <a href="http://dbpedia.org/sparql"><img alt="W3C Semantic Web Technology" src="http://dbpedia.org/statics/sw-sparql-blue.png" border="0"></a>     
         <a href="http://www.opendefinition.org/"><img alt="This material is Open Knowledge" src="http://dbpedia.org/statics/od_80x15_red_green.png" border="0"></a>
         <br />
-	This work is licensed under a 
+	This work is licensed under a
 	<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-Share Alike 3.0 Unported License</a>.<br />
-	<?vsp fct_virt_info (); ?><br /> 
-	Copyright © 2009-2011 OpenLink Software 
+	<?vsp fct_virt_info (); ?><br />
+	Copyright © 2009-2012 OpenLink Software
       </div> <!-- #ft_b -->
     </div> <!-- #footer -->
   </body>
diff --git a/binsrc/b3s/www/style.css b/binsrc/b3s/www/style.css
index b1ccd8b..1c7910d 100644
--- a/binsrc/b3s/www/style.css
+++ b/binsrc/b3s/www/style.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: style.css,v 1.1.2.2 2011/09/23 19:22:36 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2009 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
@@ -28,9 +28,9 @@ body {
     font-size: 80%;
     margin: 0;
     padding: 1.2em 2em;}
-    
+
 a, a:visited {color: #242;}
-    
+
 #rdficon { float: right; position: relative; top: -28px; vertical-align: middle; padding: 3px; border: 1px solid #fff;}
 #header { border-bottom: 2px solid #696; margin: 0 0 1.2em; padding: 0 0 0.3em; }
 #footer { border-top: 2px solid #696; color: #666; margin: 1.2em 0 0; padding: 0.3em 0 0; }
diff --git a/binsrc/bpel/101.HelloWorld/HelloWorld.bpel b/binsrc/bpel/101.HelloWorld/HelloWorld.bpel
index 37bb068..ed29906 100644
--- a/binsrc/bpel/101.HelloWorld/HelloWorld.bpel
+++ b/binsrc/bpel/101.HelloWorld/HelloWorld.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/101.HelloWorld/HelloWorld.wsdl b/binsrc/bpel/101.HelloWorld/HelloWorld.wsdl
index ff15ba0..6572ac0 100644
--- a/binsrc/bpel/101.HelloWorld/HelloWorld.wsdl
+++ b/binsrc/bpel/101.HelloWorld/HelloWorld.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/101.HelloWorld/HelloWorld.xml b/binsrc/bpel/101.HelloWorld/HelloWorld.xml
index de454d1..d1cf987 100644
--- a/binsrc/bpel/101.HelloWorld/HelloWorld.xml
+++ b/binsrc/bpel/101.HelloWorld/HelloWorld.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/101.HelloWorld/build.xml b/binsrc/bpel/101.HelloWorld/build.xml
index 1d35028..bff4ada 100644
--- a/binsrc/bpel/101.HelloWorld/build.xml
+++ b/binsrc/bpel/101.HelloWorld/build.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/106.ParallelFlows/FlowSample.bpel b/binsrc/bpel/106.ParallelFlows/FlowSample.bpel
index 4a78f25..701982a 100644
--- a/binsrc/bpel/106.ParallelFlows/FlowSample.bpel
+++ b/binsrc/bpel/106.ParallelFlows/FlowSample.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/106.ParallelFlows/FlowSample.wsdl b/binsrc/bpel/106.ParallelFlows/FlowSample.wsdl
index 0ceab05..915dc34 100644
--- a/binsrc/bpel/106.ParallelFlows/FlowSample.wsdl
+++ b/binsrc/bpel/106.ParallelFlows/FlowSample.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/106.ParallelFlows/bpel.xml b/binsrc/bpel/106.ParallelFlows/bpel.xml
index 79b46c0..aef1322 100644
--- a/binsrc/bpel/106.ParallelFlows/bpel.xml
+++ b/binsrc/bpel/106.ParallelFlows/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/106.ParallelFlows/build.xml b/binsrc/bpel/106.ParallelFlows/build.xml
index f6cc83d..d6f7667 100644
--- a/binsrc/bpel/106.ParallelFlows/build.xml
+++ b/binsrc/bpel/106.ParallelFlows/build.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/109.CorrelationSets/Buyer/Buyer.bpel b/binsrc/bpel/109.CorrelationSets/Buyer/Buyer.bpel
index fbfa43f..bfe8c97 100644
--- a/binsrc/bpel/109.CorrelationSets/Buyer/Buyer.bpel
+++ b/binsrc/bpel/109.CorrelationSets/Buyer/Buyer.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/109.CorrelationSets/Buyer/Buyer.wsdl b/binsrc/bpel/109.CorrelationSets/Buyer/Buyer.wsdl
index d69d213..4963d75 100644
--- a/binsrc/bpel/109.CorrelationSets/Buyer/Buyer.wsdl
+++ b/binsrc/bpel/109.CorrelationSets/Buyer/Buyer.wsdl
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/109.CorrelationSets/Buyer/bpel.xml b/binsrc/bpel/109.CorrelationSets/Buyer/bpel.xml
index c0e6f41..e641c60 100644
--- a/binsrc/bpel/109.CorrelationSets/Buyer/bpel.xml
+++ b/binsrc/bpel/109.CorrelationSets/Buyer/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/109.CorrelationSets/Buyer/build.xml b/binsrc/bpel/109.CorrelationSets/Buyer/build.xml
index 4cc1ad8..3299f75 100644
--- a/binsrc/bpel/109.CorrelationSets/Buyer/build.xml
+++ b/binsrc/bpel/109.CorrelationSets/Buyer/build.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/109.CorrelationSets/Buyer/supplyCorrelation.wsdl b/binsrc/bpel/109.CorrelationSets/Buyer/supplyCorrelation.wsdl
index a8e96ee..4117bf6 100644
--- a/binsrc/bpel/109.CorrelationSets/Buyer/supplyCorrelation.wsdl
+++ b/binsrc/bpel/109.CorrelationSets/Buyer/supplyCorrelation.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/109.CorrelationSets/Buyer/supplyMessages.wsdl b/binsrc/bpel/109.CorrelationSets/Buyer/supplyMessages.wsdl
index f452b55..1f59b7a 100644
--- a/binsrc/bpel/109.CorrelationSets/Buyer/supplyMessages.wsdl
+++ b/binsrc/bpel/109.CorrelationSets/Buyer/supplyMessages.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/109.CorrelationSets/Seller/Seller.bpel b/binsrc/bpel/109.CorrelationSets/Seller/Seller.bpel
index b5fe71e..8bc0b1b 100644
--- a/binsrc/bpel/109.CorrelationSets/Seller/Seller.bpel
+++ b/binsrc/bpel/109.CorrelationSets/Seller/Seller.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/109.CorrelationSets/Seller/Seller.wsdl b/binsrc/bpel/109.CorrelationSets/Seller/Seller.wsdl
index 9f71b02..d363245 100644
--- a/binsrc/bpel/109.CorrelationSets/Seller/Seller.wsdl
+++ b/binsrc/bpel/109.CorrelationSets/Seller/Seller.wsdl
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/109.CorrelationSets/Seller/bpel.xml b/binsrc/bpel/109.CorrelationSets/Seller/bpel.xml
index 306ce10..3f4855b 100644
--- a/binsrc/bpel/109.CorrelationSets/Seller/bpel.xml
+++ b/binsrc/bpel/109.CorrelationSets/Seller/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/109.CorrelationSets/Seller/build.xml b/binsrc/bpel/109.CorrelationSets/Seller/build.xml
index bb38348..133ff6f 100644
--- a/binsrc/bpel/109.CorrelationSets/Seller/build.xml
+++ b/binsrc/bpel/109.CorrelationSets/Seller/build.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/109.CorrelationSets/Seller/supplyCorrelation.wsdl b/binsrc/bpel/109.CorrelationSets/Seller/supplyCorrelation.wsdl
index a8e96ee..4117bf6 100644
--- a/binsrc/bpel/109.CorrelationSets/Seller/supplyCorrelation.wsdl
+++ b/binsrc/bpel/109.CorrelationSets/Seller/supplyCorrelation.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/109.CorrelationSets/Seller/supplyMessages.wsdl b/binsrc/bpel/109.CorrelationSets/Seller/supplyMessages.wsdl
index f452b55..1f59b7a 100644
--- a/binsrc/bpel/109.CorrelationSets/Seller/supplyMessages.wsdl
+++ b/binsrc/bpel/109.CorrelationSets/Seller/supplyMessages.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/109.CorrelationSets/build.xml b/binsrc/bpel/109.CorrelationSets/build.xml
index b8ab8b5..e0ae3d2 100644
--- a/binsrc/bpel/109.CorrelationSets/build.xml
+++ b/binsrc/bpel/109.CorrelationSets/build.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/109.CorrelationSets/supplyCorrelation.wsdl b/binsrc/bpel/109.CorrelationSets/supplyCorrelation.wsdl
index a8e96ee..4117bf6 100644
--- a/binsrc/bpel/109.CorrelationSets/supplyCorrelation.wsdl
+++ b/binsrc/bpel/109.CorrelationSets/supplyCorrelation.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/109.CorrelationSets/supplyMessages.wsdl b/binsrc/bpel/109.CorrelationSets/supplyMessages.wsdl
index f452b55..1f59b7a 100644
--- a/binsrc/bpel/109.CorrelationSets/supplyMessages.wsdl
+++ b/binsrc/bpel/109.CorrelationSets/supplyMessages.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/Makefile.am b/binsrc/bpel/Makefile.am
index 29121b3..33445dc 100644
--- a/binsrc/bpel/Makefile.am
+++ b/binsrc/bpel/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/Makefile.in b/binsrc/bpel/Makefile.in
index a5e36d5..0982fd5 100644
--- a/binsrc/bpel/Makefile.in
+++ b/binsrc/bpel/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -38,9 +37,8 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -70,7 +68,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -78,23 +75,9 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(vaddir)"
+nodist_vadDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(nodist_vad_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -184,7 +167,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -268,7 +250,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -289,7 +270,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -541,14 +521,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu binsrc/bpel/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu binsrc/bpel/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  binsrc/bpel/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  binsrc/bpel/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -566,7 +546,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -576,23 +555,20 @@ clean-libtool:
 install-nodist_vadDATA: $(nodist_vad_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(vaddir)" || $(MKDIR_P) "$(DESTDIR)$(vaddir)"
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	for p in $$list; do \
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  echo "$$d$$p"; \
-	done | $(am__base_list) | \
-	while read files; do \
-	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vaddir)'"; \
-	  $(INSTALL_DATA) $$files "$(DESTDIR)$(vaddir)" || exit $$?; \
+	  f=$(am__strip_dir) \
+	  echo " $(nodist_vadDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(vaddir)/$$f'"; \
+	  $(nodist_vadDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(vaddir)/$$f"; \
 	done
 
 uninstall-nodist_vadDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(nodist_vad_DATA)'; test -n "$(vaddir)" || list=; \
-	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(vaddir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(vaddir)" && rm -f $$files
+	@list='$(nodist_vad_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(vaddir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(vaddir)/$$f"; \
+	done
 tags: TAGS
 TAGS:
 
@@ -616,17 +592,13 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
@@ -658,7 +630,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -677,8 +648,6 @@ dvi-am:
 
 html: html-am
 
-html-am:
-
 info: info-am
 
 info-am:
@@ -687,28 +656,18 @@ install-data-am: install-nodist_vadDATA
 
 install-dvi: install-dvi-am
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-am
 
-install-html-am:
-
 install-info: install-info-am
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-am
 
-install-pdf-am:
-
 install-ps: install-ps-am
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -749,7 +708,6 @@ bpel_dav.vad bpel_filesystem.vad: $(EXTRA_DIST)
 
 clean-local:
 	-rm -rf vad
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/binsrc/bpel/activity.vspx b/binsrc/bpel/activity.vspx
index 9c04afe..6d1c260 100644
--- a/binsrc/bpel/activity.vspx
+++ b/binsrc/bpel/activity.vspx
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/activity.xsl b/binsrc/bpel/activity.xsl
index 7204694..5462343 100644
--- a/binsrc/bpel/activity.xsl
+++ b/binsrc/bpel/activity.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!--
  -  
- -  $Id: activity.xsl,v 1.3 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/asyncall.vsp b/binsrc/bpel/asyncall.vsp
index 819fd1a..0f7632f 100644
--- a/binsrc/bpel/asyncall.vsp
+++ b/binsrc/bpel/asyncall.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: asyncall.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpel.vsp b/binsrc/bpel/bpel.vsp
index 3968d72..e76b3b0 100644
--- a/binsrc/bpel/bpel.vsp
+++ b/binsrc/bpel/bpel.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: bpel.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpel.xsd b/binsrc/bpel/bpel.xsd
index 81fee5d..df81139 100644
--- a/binsrc/bpel/bpel.xsd
+++ b/binsrc/bpel/bpel.xsd
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpel_adaptor.cs b/binsrc/bpel/bpel_adaptor.cs
index 1204148..d4bb83c 100644
--- a/binsrc/bpel/bpel_adaptor.cs
+++ b/binsrc/bpel/bpel_adaptor.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpel_confirm.vspx b/binsrc/bpel/bpel_confirm.vspx
index 7ebde61..fe4d8ab 100644
--- a/binsrc/bpel/bpel_confirm.vspx
+++ b/binsrc/bpel/bpel_confirm.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -  
- -  $Id: bpel_confirm.vspx,v 1.2 2006/08/16 00:04:13 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpel_ddl.sql b/binsrc/bpel/bpel_ddl.sql
index 553416c..7b292c8 100644
--- a/binsrc/bpel/bpel_ddl.sql
+++ b/binsrc/bpel/bpel_ddl.sql
@@ -1,14 +1,14 @@
 --
 --  bpel_ddl.sql
 --
---  $Id: bpel_ddl.sql,v 1.1.1.1 2006/04/11 17:56:09 source Exp $
+--  $Id$
 --
 --  BPEL DB Schema
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpel_decor.vspx b/binsrc/bpel/bpel_decor.vspx
index e6d9ce0..a38d3d1 100644
--- a/binsrc/bpel/bpel_decor.vspx
+++ b/binsrc/bpel/bpel_decor.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -  
- -  $Id: bpel_decor.vspx,v 1.3 2006/08/16 00:04:13 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpel_eng.sql b/binsrc/bpel/bpel_eng.sql
index 31d08d2..9f462de 100644
--- a/binsrc/bpel/bpel_eng.sql
+++ b/binsrc/bpel/bpel_eng.sql
@@ -1,14 +1,14 @@
 --
 --  bpel_eng.sql
 --
---  $Id: bpel_eng.sql,v 1.2 2008/07/14 19:23:11 source Exp $
+--  $Id$
 --
 --  BPEL Script compilation & utilities
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpel_intrp.sql b/binsrc/bpel/bpel_intrp.sql
index 921fa7e..068d57e 100644
--- a/binsrc/bpel/bpel_intrp.sql
+++ b/binsrc/bpel/bpel_intrp.sql
@@ -1,14 +1,14 @@
 --
 --  Bpel_interpreter.sql
 --
---  $Id: bpel_intrp.sql,v 1.2 2007/03/14 14:23:25 source Exp $
+--  $Id$
 --
 --  BPEL Intrepreter
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpel_login.vspx b/binsrc/bpel/bpel_login.vspx
index efb0ae7..13ea4c1 100644
--- a/binsrc/bpel/bpel_login.vspx
+++ b/binsrc/bpel/bpel_login.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: bpel_login.vspx,v 1.2 2006/08/16 00:04:13 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpel_login_new.vspx b/binsrc/bpel/bpel_login_new.vspx
index 4e4c4db..f24b299 100644
--- a/binsrc/bpel/bpel_login_new.vspx
+++ b/binsrc/bpel/bpel_login_new.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: bpel_login_new.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpel_navigation_bar.vspx b/binsrc/bpel/bpel_navigation_bar.vspx
index 33f9ea5..49cdf2d 100644
--- a/binsrc/bpel/bpel_navigation_bar.vspx
+++ b/binsrc/bpel/bpel_navigation_bar.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -  
- -  $Id: bpel_navigation_bar.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpel_plinks.xsl b/binsrc/bpel/bpel_plinks.xsl
index a15cf0c..15d5837 100644
--- a/binsrc/bpel/bpel_plinks.xsl
+++ b/binsrc/bpel/bpel_plinks.xsl
@@ -1,12 +1,12 @@
 <?xml version='1.0'?>
 <!--
  -  
- -  $Id: bpel_plinks.xsl,v 1.3 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpel_style.xsl b/binsrc/bpel/bpel_style.xsl
index ce97469..3352ea1 100644
--- a/binsrc/bpel/bpel_style.xsl
+++ b/binsrc/bpel/bpel_style.xsl
@@ -2,12 +2,12 @@
 <!-- <!DOCTYPE html  PUBLIC "" "ent.dtd"> -->
 <!--
  -  
- -  $Id: bpel_style.xsl,v 1.3.2.1 2010/01/07 16:58:12 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpel_style_new.xsl b/binsrc/bpel/bpel_style_new.xsl
index 7596521..ff8cd86 100644
--- a/binsrc/bpel/bpel_style_new.xsl
+++ b/binsrc/bpel/bpel_style_new.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!--
  -  
- -  $Id: bpel_style_new.xsl,v 1.2.2.1 2010/01/07 16:58:12 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpel_ui_bpelwsdl_edit.vspx b/binsrc/bpel/bpel_ui_bpelwsdl_edit.vspx
index f5822e0..256f9da 100644
--- a/binsrc/bpel/bpel_ui_bpelwsdl_edit.vspx
+++ b/binsrc/bpel/bpel_ui_bpelwsdl_edit.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: bpel_ui_bpelwsdl_edit.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpel_ui_bpelwsdl_register.vspx b/binsrc/bpel/bpel_ui_bpelwsdl_register.vspx
index 15da4c7..8aa2fab 100644
--- a/binsrc/bpel/bpel_ui_bpelwsdl_register.vspx
+++ b/binsrc/bpel/bpel_ui_bpelwsdl_register.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: bpel_ui_bpelwsdl_register.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpel_ui_import.vspx b/binsrc/bpel/bpel_ui_import.vspx
index e93ece9..aad6b2d 100644
--- a/binsrc/bpel/bpel_ui_import.vspx
+++ b/binsrc/bpel/bpel_ui_import.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: bpel_ui_import.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpel_ui_import2.vspx b/binsrc/bpel/bpel_ui_import2.vspx
index 41d1f6b..a614a5d 100644
--- a/binsrc/bpel/bpel_ui_import2.vspx
+++ b/binsrc/bpel/bpel_ui_import2.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: bpel_ui_import2.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpelcomp.xsl b/binsrc/bpel/bpelcomp.xsl
index 78cd0f1..8d9b02f 100644
--- a/binsrc/bpel/bpelcomp.xsl
+++ b/binsrc/bpel/bpelcomp.xsl
@@ -1,12 +1,12 @@
 <?xml version='1.0'?>
 <!--
  -  
- -  $Id: bpelcomp.xsl,v 1.2 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpelexpn.xsl b/binsrc/bpel/bpelexpn.xsl
index 3446fc7..f2ac65c 100644
--- a/binsrc/bpel/bpelexpn.xsl
+++ b/binsrc/bpel/bpelexpn.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -  
- -  $Id: bpelexpn.xsl,v 1.2 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpelimport.xsl b/binsrc/bpel/bpelimport.xsl
index 5e16002..bd723f8 100644
--- a/binsrc/bpel/bpelimport.xsl
+++ b/binsrc/bpel/bpelimport.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -  
- -  $Id: bpelimport.xsl,v 1.2 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpelmsg.xsl b/binsrc/bpel/bpelmsg.xsl
index 042b266..6366ce1 100644
--- a/binsrc/bpel/bpelmsg.xsl
+++ b/binsrc/bpel/bpelmsg.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -  
- -  $Id: bpelmsg.xsl,v 1.2 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpelmsgen.xsl b/binsrc/bpel/bpelmsgen.xsl
index 6a286d7..84be891 100644
--- a/binsrc/bpel/bpelmsgen.xsl
+++ b/binsrc/bpel/bpelmsgen.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -  
- -  $Id: bpelmsgen.xsl,v 1.2 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpeloper.xsl b/binsrc/bpel/bpeloper.xsl
index b2a000e..04b161d 100644
--- a/binsrc/bpel/bpeloper.xsl
+++ b/binsrc/bpel/bpeloper.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -  
- -  $Id: bpeloper.xsl,v 1.2 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpelstatus.xsl b/binsrc/bpel/bpelstatus.xsl
index c1ca02c..db881f3 100644
--- a/binsrc/bpel/bpelstatus.xsl
+++ b/binsrc/bpel/bpelstatus.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -  
- -  $Id: bpelstatus.xsl,v 1.2 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpelv.xsd b/binsrc/bpel/bpelv.xsd
index 1705d7a..bc5892e 100644
--- a/binsrc/bpel/bpelv.xsd
+++ b/binsrc/bpel/bpelv.xsd
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpelwsdl.xsl b/binsrc/bpel/bpelwsdl.xsl
index 620c3fb..7a4212a 100644
--- a/binsrc/bpel/bpelwsdl.xsl
+++ b/binsrc/bpel/bpelwsdl.xsl
@@ -5,12 +5,12 @@
 ]>
 <!--
  -  
- -  $Id: bpelwsdl.xsl,v 1.2 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/bpelx.xsd b/binsrc/bpel/bpelx.xsd
index 39be785..0ac3b25 100644
--- a/binsrc/bpel/bpelx.xsd
+++ b/binsrc/bpel/bpelx.xsd
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/browser.vspx b/binsrc/bpel/browser.vspx
index 8f89c35..b9ac468 100644
--- a/binsrc/bpel/browser.vspx
+++ b/binsrc/bpel/browser.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: browser.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/common.xsl b/binsrc/bpel/common.xsl
index 542981a..e68aae6 100644
--- a/binsrc/bpel/common.xsl
+++ b/binsrc/bpel/common.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -  
- -  $Id: common.xsl,v 1.3 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/configure.vspx b/binsrc/bpel/configure.vspx
index 3b9f68d..40b0f09 100644
--- a/binsrc/bpel/configure.vspx
+++ b/binsrc/bpel/configure.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -  
- -  $Id: configure.vspx,v 1.3 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/debug.vsp b/binsrc/bpel/debug.vsp
index 9d288d2..70a6411 100644
--- a/binsrc/bpel/debug.vsp
+++ b/binsrc/bpel/debug.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: debug.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/default.css b/binsrc/bpel/default.css
index c37b771..5df96d8 100644
--- a/binsrc/bpel/default.css
+++ b/binsrc/bpel/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.2 2006/08/15 22:15:54 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/drop.sql b/binsrc/bpel/drop.sql
index da9b7a7..c79e379 100644
--- a/binsrc/bpel/drop.sql
+++ b/binsrc/bpel/drop.sql
@@ -1,14 +1,14 @@
 --
 --  drop.sql
 --
---  $Id: drop.sql,v 1.1.1.1 2006/04/11 17:56:09 source Exp $
+--  $Id$
 --
 --  BPEL uninstall operations
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/drop_prc.sql b/binsrc/bpel/drop_prc.sql
index b0fde83..befacde 100644
--- a/binsrc/bpel/drop_prc.sql
+++ b/binsrc/bpel/drop_prc.sql
@@ -1,14 +1,14 @@
 --
 --  drop_hosts.sql
 --
---  $Id: drop_prc.sql,v 1.1.1.1 2006/04/11 17:56:09 source Exp $
+--  $Id$
 --
 --  Delete from BPEL.BPEL.script to activate triggers for removing defined Virtual Directories
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/error.vspx b/binsrc/bpel/error.vspx
index 6220cc9..66584bb 100644
--- a/binsrc/bpel/error.vspx
+++ b/binsrc/bpel/error.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: error.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/filesystem.sql b/binsrc/bpel/filesystem.sql
index 4f755e4..87b24c9 100644
--- a/binsrc/bpel/filesystem.sql
+++ b/binsrc/bpel/filesystem.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: filesystem.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/genwsdl.xsl b/binsrc/bpel/genwsdl.xsl
index 4a952e5..e44ee4c 100644
--- a/binsrc/bpel/genwsdl.xsl
+++ b/binsrc/bpel/genwsdl.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -  
- -  $Id: genwsdl.xsl,v 1.2 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help.vspx b/binsrc/bpel/help.vspx
index 3df5016..1d10380 100644
--- a/binsrc/bpel/help.vspx
+++ b/binsrc/bpel/help.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: help.vspx,v 1.3 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help.xsl b/binsrc/bpel/help.xsl
index 4054e9d..f6191fd 100644
--- a/binsrc/bpel/help.xsl
+++ b/binsrc/bpel/help.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!--
  -  
- -  $Id: help.xsl,v 1.2 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/browser.xml b/binsrc/bpel/help/browser.xml
index 0147017..77159e4 100644
--- a/binsrc/bpel/help/browser.xml
+++ b/binsrc/bpel/help/browser.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/configure.xml b/binsrc/bpel/help/configure.xml
index e0fd598..9eb93e1 100644
--- a/binsrc/bpel/help/configure.xml
+++ b/binsrc/bpel/help/configure.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/confirm.xml b/binsrc/bpel/help/confirm.xml
index 962827c..52af26c 100644
--- a/binsrc/bpel/help/confirm.xml
+++ b/binsrc/bpel/help/confirm.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/imsgpr.xml b/binsrc/bpel/help/imsgpr.xml
index f5fdeeb..7b71a9e 100644
--- a/binsrc/bpel/help/imsgpr.xml
+++ b/binsrc/bpel/help/imsgpr.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/incoming.xml b/binsrc/bpel/help/incoming.xml
index a6d1eaa..d62b440 100644
--- a/binsrc/bpel/help/incoming.xml
+++ b/binsrc/bpel/help/incoming.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/instances.xml b/binsrc/bpel/help/instances.xml
index 0eb27b3..45e4e54 100644
--- a/binsrc/bpel/help/instances.xml
+++ b/binsrc/bpel/help/instances.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/message.xml b/binsrc/bpel/help/message.xml
index f0ae746..2abdb61 100644
--- a/binsrc/bpel/help/message.xml
+++ b/binsrc/bpel/help/message.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/omsgpr.xml b/binsrc/bpel/help/omsgpr.xml
index bfef33d..933048c 100644
--- a/binsrc/bpel/help/omsgpr.xml
+++ b/binsrc/bpel/help/omsgpr.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/plinks.xml b/binsrc/bpel/help/plinks.xml
index eac85e2..07a91f7 100644
--- a/binsrc/bpel/help/plinks.xml
+++ b/binsrc/bpel/help/plinks.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/plinks_props.xml b/binsrc/bpel/help/plinks_props.xml
index e5343fc..59fc970 100644
--- a/binsrc/bpel/help/plinks_props.xml
+++ b/binsrc/bpel/help/plinks_props.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/process_activity.xml b/binsrc/bpel/help/process_activity.xml
index aeae5c1..160a51d 100644
--- a/binsrc/bpel/help/process_activity.xml
+++ b/binsrc/bpel/help/process_activity.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/process_audit.xml b/binsrc/bpel/help/process_audit.xml
index dbfbb06..7253ed3 100644
--- a/binsrc/bpel/help/process_audit.xml
+++ b/binsrc/bpel/help/process_audit.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/process_graph.xml b/binsrc/bpel/help/process_graph.xml
index 1d4b97e..4b3c572 100644
--- a/binsrc/bpel/help/process_graph.xml
+++ b/binsrc/bpel/help/process_graph.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/process_list.xml b/binsrc/bpel/help/process_list.xml
index 9bfb1ff..125c7c8 100644
--- a/binsrc/bpel/help/process_list.xml
+++ b/binsrc/bpel/help/process_list.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/process_redef.xml b/binsrc/bpel/help/process_redef.xml
index da2ec3e..dada4dd 100644
--- a/binsrc/bpel/help/process_redef.xml
+++ b/binsrc/bpel/help/process_redef.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/process_redefine.xml b/binsrc/bpel/help/process_redefine.xml
index 363f0b6..f35a85d 100644
--- a/binsrc/bpel/help/process_redefine.xml
+++ b/binsrc/bpel/help/process_redefine.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/process_status.xml b/binsrc/bpel/help/process_status.xml
index 6c5339a..ffc69bb 100644
--- a/binsrc/bpel/help/process_status.xml
+++ b/binsrc/bpel/help/process_status.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/process_upload.xml b/binsrc/bpel/help/process_upload.xml
index c91d896..12922e4 100644
--- a/binsrc/bpel/help/process_upload.xml
+++ b/binsrc/bpel/help/process_upload.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/processes_list.xml b/binsrc/bpel/help/processes_list.xml
index 9523afd..f2dc5bf 100644
--- a/binsrc/bpel/help/processes_list.xml
+++ b/binsrc/bpel/help/processes_list.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/reports.xml b/binsrc/bpel/help/reports.xml
index 6791766..0176961 100644
--- a/binsrc/bpel/help/reports.xml
+++ b/binsrc/bpel/help/reports.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/rmsgpr.xml b/binsrc/bpel/help/rmsgpr.xml
index 9de6dd1..ca8d078 100644
--- a/binsrc/bpel/help/rmsgpr.xml
+++ b/binsrc/bpel/help/rmsgpr.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/statendp.xml b/binsrc/bpel/help/statendp.xml
index 3f2442e..e8055fa 100644
--- a/binsrc/bpel/help/statendp.xml
+++ b/binsrc/bpel/help/statendp.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/statproc.xml b/binsrc/bpel/help/statproc.xml
index 147dc5d..bd63e10 100644
--- a/binsrc/bpel/help/statproc.xml
+++ b/binsrc/bpel/help/statproc.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/help/wss_keys.xml b/binsrc/bpel/help/wss_keys.xml
index ff26b93..b072149 100644
--- a/binsrc/bpel/help/wss_keys.xml
+++ b/binsrc/bpel/help/wss_keys.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/home.vspx b/binsrc/bpel/home.vspx
index 3081b93..411817c 100644
--- a/binsrc/bpel/home.vspx
+++ b/binsrc/bpel/home.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -  
- -  $Id: home.vspx,v 1.4 2008/04/18 14:05:12 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/imsgpr.vspx b/binsrc/bpel/imsgpr.vspx
index ab9d999..0806e9d 100644
--- a/binsrc/bpel/imsgpr.vspx
+++ b/binsrc/bpel/imsgpr.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: imsgpr.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/incoming.vspx b/binsrc/bpel/incoming.vspx
index bef19ae..4f22708 100644
--- a/binsrc/bpel/incoming.vspx
+++ b/binsrc/bpel/incoming.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: incoming.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/install.sql b/binsrc/bpel/install.sql
index 9321253..3212368 100644
--- a/binsrc/bpel/install.sql
+++ b/binsrc/bpel/install.sql
@@ -1,14 +1,14 @@
 --
 --  install.sql
 --
---  $Id: install.sql,v 1.1.1.1 2006/04/11 17:56:09 source Exp $
+--  $Id$
 --
 --  BPEL support procedures
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/instances.vspx b/binsrc/bpel/instances.vspx
index 4dd1666..a6199ec 100644
--- a/binsrc/bpel/instances.vspx
+++ b/binsrc/bpel/instances.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: instances.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/main_tabs.vspx b/binsrc/bpel/main_tabs.vspx
index 8aff065..280e595 100644
--- a/binsrc/bpel/main_tabs.vspx
+++ b/binsrc/bpel/main_tabs.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -  
- -  $Id: main_tabs.vspx,v 1.3 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/make_vad.sh b/binsrc/bpel/make_vad.sh
index 74ae80b..58d245b 100755
--- a/binsrc/bpel/make_vad.sh
+++ b/binsrc/bpel/make_vad.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: make_vad.sh,v 1.13.2.2 2011/02/03 10:36:50 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #
-#  Copyright (C) 1998-2009 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -318,7 +318,7 @@ sticker_init() {
   echo "  <name package=\"bpel4ws\">" >> $STICKER
   echo "    <prop name=\"Title\" value=\"BPEL4WS\"/>" >> $STICKER
   echo "    <prop name=\"Developer\" value=\"OpenLink Software\"/>" >> $STICKER
-  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2011 OpenLink Software\"/>" >> $STICKER
+  echo "    <prop name=\"Copyright\" value=\"(C) 1998-2012 OpenLink Software\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.com/virtuoso\"/>" >> $STICKER
   echo "    <prop name=\"Download\" value=\"http://www.openlinksw.co.uk/virtuoso\"/>" >> $STICKER
   echo "  </name>" >> $STICKER
diff --git a/binsrc/bpel/message.vspx b/binsrc/bpel/message.vspx
index d66f56d..dd28e95 100644
--- a/binsrc/bpel/message.vspx
+++ b/binsrc/bpel/message.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -  
- -  $Id: message.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/omsgpr.vspx b/binsrc/bpel/omsgpr.vspx
index bfc2fd9..0eb21cd 100644
--- a/binsrc/bpel/omsgpr.vspx
+++ b/binsrc/bpel/omsgpr.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: omsgpr.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/plinks.vspx b/binsrc/bpel/plinks.vspx
index 1c3d209..e2afeb8 100644
--- a/binsrc/bpel/plinks.vspx
+++ b/binsrc/bpel/plinks.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: plinks.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/plinks_props.vspx b/binsrc/bpel/plinks_props.vspx
index a39c6f1..d57d3f5 100644
--- a/binsrc/bpel/plinks_props.vspx
+++ b/binsrc/bpel/plinks_props.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: plinks_props.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/process.sql b/binsrc/bpel/process.sql
index e4adb99..279269f 100644
--- a/binsrc/bpel/process.sql
+++ b/binsrc/bpel/process.sql
@@ -1,14 +1,14 @@
 --
 --  process.sql
 --
---  $Id: process.sql,v 1.1.1.1 2006/04/11 17:56:09 source Exp $
+--  $Id$
 --
 --  BPEL support view/procedures
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/process.vspx b/binsrc/bpel/process.vspx
index a43e289..dfae691 100644
--- a/binsrc/bpel/process.vspx
+++ b/binsrc/bpel/process.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: process.vspx,v 1.3 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/process.xsl b/binsrc/bpel/process.xsl
index 5adc71e..b000df4 100644
--- a/binsrc/bpel/process.xsl
+++ b/binsrc/bpel/process.xsl
@@ -1,12 +1,12 @@
 <?xml version='1.0'?>
 <!--
  -  
- -  $Id: process.xsl,v 1.3 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/raw.xsl b/binsrc/bpel/raw.xsl
index e862a9b..c68e267 100644
--- a/binsrc/bpel/raw.xsl
+++ b/binsrc/bpel/raw.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -  
- -  $Id: raw.xsl,v 1.3 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/reports.vspx b/binsrc/bpel/reports.vspx
index 8c85ff0..9f5dd72 100644
--- a/binsrc/bpel/reports.vspx
+++ b/binsrc/bpel/reports.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: reports.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/rmsgpr.vspx b/binsrc/bpel/rmsgpr.vspx
index 6e11572..da74e16 100644
--- a/binsrc/bpel/rmsgpr.vspx
+++ b/binsrc/bpel/rmsgpr.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rmsgpr.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/script.vspx b/binsrc/bpel/script.vspx
index da34646..0890195 100644
--- a/binsrc/bpel/script.vspx
+++ b/binsrc/bpel/script.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -  
- -  $Id: script.vspx,v 1.3 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/script.xsl b/binsrc/bpel/script.xsl
index 0f5f1c4..35f318e 100644
--- a/binsrc/bpel/script.xsl
+++ b/binsrc/bpel/script.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!--
  -  
- -  $Id: script.xsl,v 1.3 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/start.vsp b/binsrc/bpel/start.vsp
index e874e0d..20a03c2 100644
--- a/binsrc/bpel/start.vsp
+++ b/binsrc/bpel/start.vsp
@@ -1,12 +1,12 @@
 <html>
 <?vsp 
 --  
---  $Id: start.vsp,v 1.2.2.1 2010/01/07 16:58:12 source Exp $
+--  $Id$
 --
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/statendp.vspx b/binsrc/bpel/statendp.vspx
index fdb1199..cf0c1c3 100644
--- a/binsrc/bpel/statendp.vspx
+++ b/binsrc/bpel/statendp.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: statendp.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/statproc.vspx b/binsrc/bpel/statproc.vspx
index b146619..3b5521f 100644
--- a/binsrc/bpel/statproc.vspx
+++ b/binsrc/bpel/statproc.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: statproc.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/status.vspx b/binsrc/bpel/status.vspx
index bd78cbf..82eaa35 100644
--- a/binsrc/bpel/status.vspx
+++ b/binsrc/bpel/status.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: status.vspx,v 1.3 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/system/bpel/bpel.xsd b/binsrc/bpel/system/bpel/bpel.xsd
index ff6ddfb..b95465a 100644
--- a/binsrc/bpel/system/bpel/bpel.xsd
+++ b/binsrc/bpel/system/bpel/bpel.xsd
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/Flow/Flow.bpel b/binsrc/bpel/tests/Flow/Flow.bpel
index 9eeb3c3..9332f51 100644
--- a/binsrc/bpel/tests/Flow/Flow.bpel
+++ b/binsrc/bpel/tests/Flow/Flow.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/Flow/Flow.wsdl b/binsrc/bpel/tests/Flow/Flow.wsdl
index 05b7066..c449d14 100644
--- a/binsrc/bpel/tests/Flow/Flow.wsdl
+++ b/binsrc/bpel/tests/Flow/Flow.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/Flow/bpel.xml b/binsrc/bpel/tests/Flow/bpel.xml
index 4edfc6b..6eca9ec 100644
--- a/binsrc/bpel/tests/Flow/bpel.xml
+++ b/binsrc/bpel/tests/Flow/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/Flow/build.xml b/binsrc/bpel/tests/Flow/build.xml
index 17f7bf4..1005814 100644
--- a/binsrc/bpel/tests/Flow/build.xml
+++ b/binsrc/bpel/tests/Flow/build.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/Flow/ini.sql b/binsrc/bpel/tests/Flow/ini.sql
index a6e8276..0936e5d 100644
--- a/binsrc/bpel/tests/Flow/ini.sql
+++ b/binsrc/bpel/tests/Flow/ini.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: ini.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/Flow/test_tutorial.sql b/binsrc/bpel/tests/Flow/test_tutorial.sql
index d900ff3..f1b420e 100644
--- a/binsrc/bpel/tests/Flow/test_tutorial.sql
+++ b/binsrc/bpel/tests/Flow/test_tutorial.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: test_tutorial.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/LoanFlow/CreditRating.vsp b/binsrc/bpel/tests/LoanFlow/CreditRating.vsp
index e1d9d09..02d09e5 100644
--- a/binsrc/bpel/tests/LoanFlow/CreditRating.vsp
+++ b/binsrc/bpel/tests/LoanFlow/CreditRating.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: CreditRating.vsp,v 1.5 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/LoanFlow/LoanFlow.bpel b/binsrc/bpel/tests/LoanFlow/LoanFlow.bpel
index 4079cba..c56472f 100644
--- a/binsrc/bpel/tests/LoanFlow/LoanFlow.bpel
+++ b/binsrc/bpel/tests/LoanFlow/LoanFlow.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/LoanFlow/LoanFlow.sql b/binsrc/bpel/tests/LoanFlow/LoanFlow.sql
index 5ebc7bb..edb556b 100644
--- a/binsrc/bpel/tests/LoanFlow/LoanFlow.sql
+++ b/binsrc/bpel/tests/LoanFlow/LoanFlow.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: LoanFlow.sql,v 1.3 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/LoanFlow/LoanFlow.vsp b/binsrc/bpel/tests/LoanFlow/LoanFlow.vsp
index ebcfd19..236dcf1 100644
--- a/binsrc/bpel/tests/LoanFlow/LoanFlow.vsp
+++ b/binsrc/bpel/tests/LoanFlow/LoanFlow.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: LoanFlow.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/LoanFlow/LoanFlow.wsdl b/binsrc/bpel/tests/LoanFlow/LoanFlow.wsdl
index c48a83e..df63a21 100644
--- a/binsrc/bpel/tests/LoanFlow/LoanFlow.wsdl
+++ b/binsrc/bpel/tests/LoanFlow/LoanFlow.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/LoanFlow/LoanFlow.xml b/binsrc/bpel/tests/LoanFlow/LoanFlow.xml
index f93fb11..b4654aa 100644
--- a/binsrc/bpel/tests/LoanFlow/LoanFlow.xml
+++ b/binsrc/bpel/tests/LoanFlow/LoanFlow.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/LoanFlow/LoanFlowUI.vsp b/binsrc/bpel/tests/LoanFlow/LoanFlowUI.vsp
index ff457f1..904ef7c 100644
--- a/binsrc/bpel/tests/LoanFlow/LoanFlowUI.vsp
+++ b/binsrc/bpel/tests/LoanFlow/LoanFlowUI.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: LoanFlowUI.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/LoanFlow/StarLoan.vsp b/binsrc/bpel/tests/LoanFlow/StarLoan.vsp
index 438382e..a377990 100644
--- a/binsrc/bpel/tests/LoanFlow/StarLoan.vsp
+++ b/binsrc/bpel/tests/LoanFlow/StarLoan.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: StarLoan.vsp,v 1.5 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/LoanFlow/UnitedLoan.vsp b/binsrc/bpel/tests/LoanFlow/UnitedLoan.vsp
index fa6431d..571644d 100644
--- a/binsrc/bpel/tests/LoanFlow/UnitedLoan.vsp
+++ b/binsrc/bpel/tests/LoanFlow/UnitedLoan.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: UnitedLoan.vsp,v 1.5 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/LoanFlow/bpel.xml b/binsrc/bpel/tests/LoanFlow/bpel.xml
index 0e43146..e15c3e2 100644
--- a/binsrc/bpel/tests/LoanFlow/bpel.xml
+++ b/binsrc/bpel/tests/LoanFlow/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/LoanFlow/options.xml b/binsrc/bpel/tests/LoanFlow/options.xml
index 4662044..cdd972c 100644
--- a/binsrc/bpel/tests/LoanFlow/options.xml
+++ b/binsrc/bpel/tests/LoanFlow/options.xml
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/bpel_engines/Twister/new-def.xml b/binsrc/bpel/tests/bpel_engines/Twister/new-def.xml
index 0d03404..95a3c78 100644
--- a/binsrc/bpel/tests/bpel_engines/Twister/new-def.xml
+++ b/binsrc/bpel/tests/bpel_engines/Twister/new-def.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/bpel_engines/Twister/new.xml b/binsrc/bpel/tests/bpel_engines/Twister/new.xml
index ac842ae..3a727e1 100644
--- a/binsrc/bpel/tests/bpel_engines/Twister/new.xml
+++ b/binsrc/bpel/tests/bpel_engines/Twister/new.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echo/bpel.xml b/binsrc/bpel/tests/echo/bpel.xml
index cb7cd41..aaa4b6a 100644
--- a/binsrc/bpel/tests/echo/bpel.xml
+++ b/binsrc/bpel/tests/echo/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echo/build.xml b/binsrc/bpel/tests/echo/build.xml
index bde727d..6b349da 100644
--- a/binsrc/bpel/tests/echo/build.xml
+++ b/binsrc/bpel/tests/echo/build.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echo/doc.bpel b/binsrc/bpel/tests/echo/doc.bpel
index 25fe08d..25eec36 100644
--- a/binsrc/bpel/tests/echo/doc.bpel
+++ b/binsrc/bpel/tests/echo/doc.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echo/doc.wsdl b/binsrc/bpel/tests/echo/doc.wsdl
index c354725..a5b4c3e 100644
--- a/binsrc/bpel/tests/echo/doc.wsdl
+++ b/binsrc/bpel/tests/echo/doc.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echo/echo.bpel b/binsrc/bpel/tests/echo/echo.bpel
index a7fcfeb..6d7dac7 100644
--- a/binsrc/bpel/tests/echo/echo.bpel
+++ b/binsrc/bpel/tests/echo/echo.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echo/echo.vsp b/binsrc/bpel/tests/echo/echo.vsp
index 9c841b2..91d5a62 100644
--- a/binsrc/bpel/tests/echo/echo.vsp
+++ b/binsrc/bpel/tests/echo/echo.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: echo.vsp,v 1.2 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echo/echo.wsdl b/binsrc/bpel/tests/echo/echo.wsdl
index f1aeb28..691b36d 100644
--- a/binsrc/bpel/tests/echo/echo.wsdl
+++ b/binsrc/bpel/tests/echo/echo.wsdl
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echo/echo.xml b/binsrc/bpel/tests/echo/echo.xml
index f0c3f5a..1920880 100644
--- a/binsrc/bpel/tests/echo/echo.xml
+++ b/binsrc/bpel/tests/echo/echo.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echo/ini.sh b/binsrc/bpel/tests/echo/ini.sh
index 370798b..ae3b720 100755
--- a/binsrc/bpel/tests/echo/ini.sh
+++ b/binsrc/bpel/tests/echo/ini.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: ini.sh,v 1.2 2009/04/14 12:16:49 source Exp $
+#  $Id$
 #  
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2009 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echo/ini.sql b/binsrc/bpel/tests/echo/ini.sql
index 3044fbd..e2628ca 100644
--- a/binsrc/bpel/tests/echo/ini.sql
+++ b/binsrc/bpel/tests/echo/ini.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: ini.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echo/options.xml b/binsrc/bpel/tests/echo/options.xml
index 0079d45..ce971ec 100644
--- a/binsrc/bpel/tests/echo/options.xml
+++ b/binsrc/bpel/tests/echo/options.xml
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echo/sdoc.wsdl b/binsrc/bpel/tests/echo/sdoc.wsdl
index 3c46dc4..ee73ce1 100644
--- a/binsrc/bpel/tests/echo/sdoc.wsdl
+++ b/binsrc/bpel/tests/echo/sdoc.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echo/svc.sql b/binsrc/bpel/tests/echo/svc.sql
index 84529fb..40d5439 100644
--- a/binsrc/bpel/tests/echo/svc.sql
+++ b/binsrc/bpel/tests/echo/svc.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: svc.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echo/synsvc.wsdl b/binsrc/bpel/tests/echo/synsvc.wsdl
index 8cc2985..d0c040f 100644
--- a/binsrc/bpel/tests/echo/synsvc.wsdl
+++ b/binsrc/bpel/tests/echo/synsvc.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echovirt/bpel.xml b/binsrc/bpel/tests/echovirt/bpel.xml
index b777206..eb96ab4 100644
--- a/binsrc/bpel/tests/echovirt/bpel.xml
+++ b/binsrc/bpel/tests/echovirt/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echovirt/build.xml b/binsrc/bpel/tests/echovirt/build.xml
index d1fa920..3782c20 100644
--- a/binsrc/bpel/tests/echovirt/build.xml
+++ b/binsrc/bpel/tests/echovirt/build.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echovirt/echovirt.bpel b/binsrc/bpel/tests/echovirt/echovirt.bpel
index d00de0b..ee20184 100644
--- a/binsrc/bpel/tests/echovirt/echovirt.bpel
+++ b/binsrc/bpel/tests/echovirt/echovirt.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echovirt/echovirt.wsdl b/binsrc/bpel/tests/echovirt/echovirt.wsdl
index 9f6dee0..45f02d7 100644
--- a/binsrc/bpel/tests/echovirt/echovirt.wsdl
+++ b/binsrc/bpel/tests/echovirt/echovirt.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echovirt/echovirtNew.bpel b/binsrc/bpel/tests/echovirt/echovirtNew.bpel
index 96b47e4..d002932 100644
--- a/binsrc/bpel/tests/echovirt/echovirtNew.bpel
+++ b/binsrc/bpel/tests/echovirt/echovirtNew.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/echovirt/ini.sql b/binsrc/bpel/tests/echovirt/ini.sql
index df28b6e..313f70a 100644
--- a/binsrc/bpel/tests/echovirt/ini.sql
+++ b/binsrc/bpel/tests/echovirt/ini.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: ini.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/Restart.bpel b/binsrc/bpel/tests/fault1/Restart.bpel
index 4b72ad8..5dd2b27 100644
--- a/binsrc/bpel/tests/fault1/Restart.bpel
+++ b/binsrc/bpel/tests/fault1/Restart.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/Restart.wsdl b/binsrc/bpel/tests/fault1/Restart.wsdl
index aac4670..535211e 100644
--- a/binsrc/bpel/tests/fault1/Restart.wsdl
+++ b/binsrc/bpel/tests/fault1/Restart.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/UseStockReviewSheet.bpel b/binsrc/bpel/tests/fault1/UseStockReviewSheet.bpel
index 744c461..f31c25c 100644
--- a/binsrc/bpel/tests/fault1/UseStockReviewSheet.bpel
+++ b/binsrc/bpel/tests/fault1/UseStockReviewSheet.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/UseStockReviewSheet.wsdl b/binsrc/bpel/tests/fault1/UseStockReviewSheet.wsdl
index 8521658..ae6ede9 100644
--- a/binsrc/bpel/tests/fault1/UseStockReviewSheet.wsdl
+++ b/binsrc/bpel/tests/fault1/UseStockReviewSheet.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/While.bpel b/binsrc/bpel/tests/fault1/While.bpel
index 76ce2da..b5481fd 100644
--- a/binsrc/bpel/tests/fault1/While.bpel
+++ b/binsrc/bpel/tests/fault1/While.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/While.wsdl b/binsrc/bpel/tests/fault1/While.wsdl
index 9ca48b8..f851487 100644
--- a/binsrc/bpel/tests/fault1/While.wsdl
+++ b/binsrc/bpel/tests/fault1/While.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/check.sql b/binsrc/bpel/tests/fault1/check.sql
index d3afd46..a386cef 100644
--- a/binsrc/bpel/tests/fault1/check.sql
+++ b/binsrc/bpel/tests/fault1/check.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: check.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/check2.sql b/binsrc/bpel/tests/fault1/check2.sql
index aace7c3..ae67778 100644
--- a/binsrc/bpel/tests/fault1/check2.sql
+++ b/binsrc/bpel/tests/fault1/check2.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: check2.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/clr.sql b/binsrc/bpel/tests/fault1/clr.sql
index aad9049..85eccae 100644
--- a/binsrc/bpel/tests/fault1/clr.sql
+++ b/binsrc/bpel/tests/fault1/clr.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: clr.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/clr_exec.bpel b/binsrc/bpel/tests/fault1/clr_exec.bpel
index d89e401..6cf8da9 100644
--- a/binsrc/bpel/tests/fault1/clr_exec.bpel
+++ b/binsrc/bpel/tests/fault1/clr_exec.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/clr_exec.vsp b/binsrc/bpel/tests/fault1/clr_exec.vsp
index 3898381..91d5a62 100644
--- a/binsrc/bpel/tests/fault1/clr_exec.vsp
+++ b/binsrc/bpel/tests/fault1/clr_exec.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: clr_exec.vsp,v 1.2 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/clr_exec.wsdl b/binsrc/bpel/tests/fault1/clr_exec.wsdl
index db21462..6828971 100644
--- a/binsrc/bpel/tests/fault1/clr_exec.wsdl
+++ b/binsrc/bpel/tests/fault1/clr_exec.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/clr_exec.xml b/binsrc/bpel/tests/fault1/clr_exec.xml
index 40368af..81865fd 100644
--- a/binsrc/bpel/tests/fault1/clr_exec.xml
+++ b/binsrc/bpel/tests/fault1/clr_exec.xml
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/clr_exec_bpel.xml b/binsrc/bpel/tests/fault1/clr_exec_bpel.xml
index 06674eb..b8de196 100644
--- a/binsrc/bpel/tests/fault1/clr_exec_bpel.xml
+++ b/binsrc/bpel/tests/fault1/clr_exec_bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/clr_exec_desc.xml b/binsrc/bpel/tests/fault1/clr_exec_desc.xml
index 507fe5a..2ec04bf 100644
--- a/binsrc/bpel/tests/fault1/clr_exec_desc.xml
+++ b/binsrc/bpel/tests/fault1/clr_exec_desc.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/comp1.bpel b/binsrc/bpel/tests/fault1/comp1.bpel
index d59cbc7..bdcd68b 100644
--- a/binsrc/bpel/tests/fault1/comp1.bpel
+++ b/binsrc/bpel/tests/fault1/comp1.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/fault.bpel b/binsrc/bpel/tests/fault1/fault.bpel
index 850fd14..d660b0b 100644
--- a/binsrc/bpel/tests/fault1/fault.bpel
+++ b/binsrc/bpel/tests/fault1/fault.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/fault.wsdl b/binsrc/bpel/tests/fault1/fault.wsdl
index 47bca3a..e5f8ad6 100644
--- a/binsrc/bpel/tests/fault1/fault.wsdl
+++ b/binsrc/bpel/tests/fault1/fault.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/fault2.bpel b/binsrc/bpel/tests/fault1/fault2.bpel
index 6b3d5dd..edd8e5a 100644
--- a/binsrc/bpel/tests/fault1/fault2.bpel
+++ b/binsrc/bpel/tests/fault1/fault2.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/fault3.bpel b/binsrc/bpel/tests/fault1/fault3.bpel
index 0b2e019..358f04e 100644
--- a/binsrc/bpel/tests/fault1/fault3.bpel
+++ b/binsrc/bpel/tests/fault1/fault3.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/faultHTCLI.bpel b/binsrc/bpel/tests/fault1/faultHTCLI.bpel
index 26c69c9..9e294a3 100644
--- a/binsrc/bpel/tests/fault1/faultHTCLI.bpel
+++ b/binsrc/bpel/tests/fault1/faultHTCLI.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/incsvcwsdl.vsp b/binsrc/bpel/tests/fault1/incsvcwsdl.vsp
index 3822abf..0a5d620 100644
--- a/binsrc/bpel/tests/fault1/incsvcwsdl.vsp
+++ b/binsrc/bpel/tests/fault1/incsvcwsdl.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: incsvcwsdl.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/ini.sql b/binsrc/bpel/tests/fault1/ini.sql
index 56486fb..cfc5572 100644
--- a/binsrc/bpel/tests/fault1/ini.sql
+++ b/binsrc/bpel/tests/fault1/ini.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: ini.sql,v 1.3 2008/01/18 13:57:19 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/ini2.sql b/binsrc/bpel/tests/fault1/ini2.sql
index 1dd7058..b869da7 100644
--- a/binsrc/bpel/tests/fault1/ini2.sql
+++ b/binsrc/bpel/tests/fault1/ini2.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: ini2.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/inv.sql b/binsrc/bpel/tests/fault1/inv.sql
index b2fcaa4..9cebcf7 100644
--- a/binsrc/bpel/tests/fault1/inv.sql
+++ b/binsrc/bpel/tests/fault1/inv.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: inv.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/java.sql b/binsrc/bpel/tests/fault1/java.sql
index 146d552..5c45b93 100644
--- a/binsrc/bpel/tests/fault1/java.sql
+++ b/binsrc/bpel/tests/fault1/java.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: java.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/java_exec.bpel b/binsrc/bpel/tests/fault1/java_exec.bpel
index b6a1c99..31b95cc 100644
--- a/binsrc/bpel/tests/fault1/java_exec.bpel
+++ b/binsrc/bpel/tests/fault1/java_exec.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/java_exec.vsp b/binsrc/bpel/tests/fault1/java_exec.vsp
index 69c133b..91d5a62 100644
--- a/binsrc/bpel/tests/fault1/java_exec.vsp
+++ b/binsrc/bpel/tests/fault1/java_exec.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: java_exec.vsp,v 1.2 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/java_exec.wsdl b/binsrc/bpel/tests/fault1/java_exec.wsdl
index 853efd9..90349ee 100644
--- a/binsrc/bpel/tests/fault1/java_exec.wsdl
+++ b/binsrc/bpel/tests/fault1/java_exec.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/java_exec.xml b/binsrc/bpel/tests/fault1/java_exec.xml
index 040cd40..e39322d 100644
--- a/binsrc/bpel/tests/fault1/java_exec.xml
+++ b/binsrc/bpel/tests/fault1/java_exec.xml
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/java_exec_bpel.xml b/binsrc/bpel/tests/fault1/java_exec_bpel.xml
index 7075fe5..193bba0 100644
--- a/binsrc/bpel/tests/fault1/java_exec_bpel.xml
+++ b/binsrc/bpel/tests/fault1/java_exec_bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/java_exec_desc.xml b/binsrc/bpel/tests/fault1/java_exec_desc.xml
index f76fdf5..a154c3e 100644
--- a/binsrc/bpel/tests/fault1/java_exec_desc.xml
+++ b/binsrc/bpel/tests/fault1/java_exec_desc.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/servicewsdl.vsp b/binsrc/bpel/tests/fault1/servicewsdl.vsp
index 81db99d..a596ac2 100644
--- a/binsrc/bpel/tests/fault1/servicewsdl.vsp
+++ b/binsrc/bpel/tests/fault1/servicewsdl.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: servicewsdl.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/sql_exec.bpel b/binsrc/bpel/tests/fault1/sql_exec.bpel
index c4c34d0..c767af2 100644
--- a/binsrc/bpel/tests/fault1/sql_exec.bpel
+++ b/binsrc/bpel/tests/fault1/sql_exec.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fault1/sql_exec.wsdl b/binsrc/bpel/tests/fault1/sql_exec.wsdl
index 7faed29..a4c7e29 100644
--- a/binsrc/bpel/tests/fault1/sql_exec.wsdl
+++ b/binsrc/bpel/tests/fault1/sql_exec.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fi/bpel.xml b/binsrc/bpel/tests/fi/bpel.xml
index 8ddeae9..3a84f6d 100644
--- a/binsrc/bpel/tests/fi/bpel.xml
+++ b/binsrc/bpel/tests/fi/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fi/fi.bpel b/binsrc/bpel/tests/fi/fi.bpel
index 97afc9e..f0bc700 100644
--- a/binsrc/bpel/tests/fi/fi.bpel
+++ b/binsrc/bpel/tests/fi/fi.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fi/fi.vsp b/binsrc/bpel/tests/fi/fi.vsp
index a7efa52..236dcf1 100644
--- a/binsrc/bpel/tests/fi/fi.vsp
+++ b/binsrc/bpel/tests/fi/fi.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: fi.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fi/fi.wsdl b/binsrc/bpel/tests/fi/fi.wsdl
index 0c59a3e..90b0479 100644
--- a/binsrc/bpel/tests/fi/fi.wsdl
+++ b/binsrc/bpel/tests/fi/fi.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fi/fi.xml b/binsrc/bpel/tests/fi/fi.xml
index d6e3efa..8a40bc8 100644
--- a/binsrc/bpel/tests/fi/fi.xml
+++ b/binsrc/bpel/tests/fi/fi.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fi/fi_wsdl.vsp b/binsrc/bpel/tests/fi/fi_wsdl.vsp
index c08051f..aca2df3 100644
--- a/binsrc/bpel/tests/fi/fi_wsdl.vsp
+++ b/binsrc/bpel/tests/fi/fi_wsdl.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: fi_wsdl.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fi/fia.bpel b/binsrc/bpel/tests/fi/fia.bpel
index fea6402..4515709 100644
--- a/binsrc/bpel/tests/fi/fia.bpel
+++ b/binsrc/bpel/tests/fi/fia.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fi/fia.wsdl b/binsrc/bpel/tests/fi/fia.wsdl
index 31fa413..644ff68 100644
--- a/binsrc/bpel/tests/fi/fia.wsdl
+++ b/binsrc/bpel/tests/fi/fia.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fi/fib.bpel b/binsrc/bpel/tests/fi/fib.bpel
index 9336496..3583609 100644
--- a/binsrc/bpel/tests/fi/fib.bpel
+++ b/binsrc/bpel/tests/fi/fib.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fi/fib.wsdl b/binsrc/bpel/tests/fi/fib.wsdl
index 0bc0521..67c2356 100644
--- a/binsrc/bpel/tests/fi/fib.wsdl
+++ b/binsrc/bpel/tests/fi/fib.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fi/ini.sql b/binsrc/bpel/tests/fi/ini.sql
index b0dba41..7a17108 100644
--- a/binsrc/bpel/tests/fi/ini.sql
+++ b/binsrc/bpel/tests/fi/ini.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: ini.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fi/inv.sql b/binsrc/bpel/tests/fi/inv.sql
index 9f4ad51..cdf053f 100644
--- a/binsrc/bpel/tests/fi/inv.sql
+++ b/binsrc/bpel/tests/fi/inv.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: inv.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fi/options.xml b/binsrc/bpel/tests/fi/options.xml
index f95179b..e03f0e6 100644
--- a/binsrc/bpel/tests/fi/options.xml
+++ b/binsrc/bpel/tests/fi/options.xml
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/fi/service.vsp b/binsrc/bpel/tests/fi/service.vsp
index 60a680a..aca2df3 100644
--- a/binsrc/bpel/tests/fi/service.vsp
+++ b/binsrc/bpel/tests/fi/service.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: service.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/index.vsp b/binsrc/bpel/tests/index.vsp
index 0f454ee..6cef0d5 100644
--- a/binsrc/bpel/tests/index.vsp
+++ b/binsrc/bpel/tests/index.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: index.vsp,v 1.2 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/index.xml b/binsrc/bpel/tests/index.xml
index a09b76f..fb37727 100644
--- a/binsrc/bpel/tests/index.xml
+++ b/binsrc/bpel/tests/index.xml
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/UseCases/MS01-1.bpel b/binsrc/bpel/tests/interop/UseCases/MS01-1.bpel
index a670f90..05e32b9 100644
--- a/binsrc/bpel/tests/interop/UseCases/MS01-1.bpel
+++ b/binsrc/bpel/tests/interop/UseCases/MS01-1.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/UseCases/MS01-2.bpel b/binsrc/bpel/tests/interop/UseCases/MS01-2.bpel
index 90cff9d..2a2bc2e 100644
--- a/binsrc/bpel/tests/interop/UseCases/MS01-2.bpel
+++ b/binsrc/bpel/tests/interop/UseCases/MS01-2.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/UseCases/MS01-3.bpel b/binsrc/bpel/tests/interop/UseCases/MS01-3.bpel
index 37ff055..48e8089 100644
--- a/binsrc/bpel/tests/interop/UseCases/MS01-3.bpel
+++ b/binsrc/bpel/tests/interop/UseCases/MS01-3.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/UseCases/MS01-4.bpel b/binsrc/bpel/tests/interop/UseCases/MS01-4.bpel
index 1eeca1a..1a75423 100644
--- a/binsrc/bpel/tests/interop/UseCases/MS01-4.bpel
+++ b/binsrc/bpel/tests/interop/UseCases/MS01-4.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/UseCases/MS01-5.bpel b/binsrc/bpel/tests/interop/UseCases/MS01-5.bpel
index ba1ce50..7121ccf 100644
--- a/binsrc/bpel/tests/interop/UseCases/MS01-5.bpel
+++ b/binsrc/bpel/tests/interop/UseCases/MS01-5.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/UseCases/MS01-6.bpel b/binsrc/bpel/tests/interop/UseCases/MS01-6.bpel
index adb16b4..c92354f 100644
--- a/binsrc/bpel/tests/interop/UseCases/MS01-6.bpel
+++ b/binsrc/bpel/tests/interop/UseCases/MS01-6.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/UseCases/MS01.sql b/binsrc/bpel/tests/interop/UseCases/MS01.sql
index 17a96b4..ea5f8af 100644
--- a/binsrc/bpel/tests/interop/UseCases/MS01.sql
+++ b/binsrc/bpel/tests/interop/UseCases/MS01.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: MS01.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/UseCases/MS01.wsdl b/binsrc/bpel/tests/interop/UseCases/MS01.wsdl
index 785db0a..9482fd7 100644
--- a/binsrc/bpel/tests/interop/UseCases/MS01.wsdl
+++ b/binsrc/bpel/tests/interop/UseCases/MS01.wsdl
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/UseCases/UseCases.vsp b/binsrc/bpel/tests/interop/UseCases/UseCases.vsp
index 3399e5f..91d5a62 100644
--- a/binsrc/bpel/tests/interop/UseCases/UseCases.vsp
+++ b/binsrc/bpel/tests/interop/UseCases/UseCases.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: UseCases.vsp,v 1.2 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/UseCases/UseCases.xml b/binsrc/bpel/tests/interop/UseCases/UseCases.xml
index dbd9840..ee76e28 100644
--- a/binsrc/bpel/tests/interop/UseCases/UseCases.xml
+++ b/binsrc/bpel/tests/interop/UseCases/UseCases.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/WSE2.0/Sec.bpel b/binsrc/bpel/tests/interop/WSE2.0/Sec.bpel
index ebccc7b..09d84f0 100644
--- a/binsrc/bpel/tests/interop/WSE2.0/Sec.bpel
+++ b/binsrc/bpel/tests/interop/WSE2.0/Sec.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/WSE2.0/Sec.sql b/binsrc/bpel/tests/interop/WSE2.0/Sec.sql
index 6a4faf8..6bfe182 100644
--- a/binsrc/bpel/tests/interop/WSE2.0/Sec.sql
+++ b/binsrc/bpel/tests/interop/WSE2.0/Sec.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: Sec.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/WSE2.0/Sec.wsdl b/binsrc/bpel/tests/interop/WSE2.0/Sec.wsdl
index c354725..a5b4c3e 100644
--- a/binsrc/bpel/tests/interop/WSE2.0/Sec.wsdl
+++ b/binsrc/bpel/tests/interop/WSE2.0/Sec.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/WSE2.0/SecClient/SecClient.cs b/binsrc/bpel/tests/interop/WSE2.0/SecClient/SecClient.cs
index cbea66b..72c9cf2 100644
--- a/binsrc/bpel/tests/interop/WSE2.0/SecClient/SecClient.cs
+++ b/binsrc/bpel/tests/interop/WSE2.0/SecClient/SecClient.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/WSE2.0/SecSvc.wsdl b/binsrc/bpel/tests/interop/WSE2.0/SecSvc.wsdl
index e722eea..bcc7fec 100644
--- a/binsrc/bpel/tests/interop/WSE2.0/SecSvc.wsdl
+++ b/binsrc/bpel/tests/interop/WSE2.0/SecSvc.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/WSE2.0/SecSvc/SecSvc.asmx.cs b/binsrc/bpel/tests/interop/WSE2.0/SecSvc/SecSvc.asmx.cs
index 840e5cf..c3bffec 100644
--- a/binsrc/bpel/tests/interop/WSE2.0/SecSvc/SecSvc.asmx.cs
+++ b/binsrc/bpel/tests/interop/WSE2.0/SecSvc/SecSvc.asmx.cs
@@ -2,7 +2,7 @@
 //  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 //  project.
 //  
-//  Copyright (C) 1998-2006 OpenLink Software
+//  Copyright (C) 1998-2012 OpenLink Software
 //  
 //  This project is free software; you can redistribute it and/or modify it
 //  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/Aecho/bpel.xml b/binsrc/bpel/tests/interop/site/Aecho/bpel.xml
index c06f6a9..0a1f24a 100644
--- a/binsrc/bpel/tests/interop/site/Aecho/bpel.xml
+++ b/binsrc/bpel/tests/interop/site/Aecho/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/Aecho/desc.xml b/binsrc/bpel/tests/interop/site/Aecho/desc.xml
index 61defb8..0661425 100644
--- a/binsrc/bpel/tests/interop/site/Aecho/desc.xml
+++ b/binsrc/bpel/tests/interop/site/Aecho/desc.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/Aecho/echo.bpel b/binsrc/bpel/tests/interop/site/Aecho/echo.bpel
index 97cd5ae..5bee9db 100644
--- a/binsrc/bpel/tests/interop/site/Aecho/echo.bpel
+++ b/binsrc/bpel/tests/interop/site/Aecho/echo.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/Aecho/echo.sql b/binsrc/bpel/tests/interop/site/Aecho/echo.sql
index 0d2114c..1bac542 100644
--- a/binsrc/bpel/tests/interop/site/Aecho/echo.sql
+++ b/binsrc/bpel/tests/interop/site/Aecho/echo.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: echo.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/Aecho/echo.wsdl b/binsrc/bpel/tests/interop/site/Aecho/echo.wsdl
index 217019e..dff997c 100644
--- a/binsrc/bpel/tests/interop/site/Aecho/echo.wsdl
+++ b/binsrc/bpel/tests/interop/site/Aecho/echo.wsdl
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/RMLoan/CreditRating.vsp b/binsrc/bpel/tests/interop/site/RMLoan/CreditRating.vsp
index add2bc1..95e605c 100644
--- a/binsrc/bpel/tests/interop/site/RMLoan/CreditRating.vsp
+++ b/binsrc/bpel/tests/interop/site/RMLoan/CreditRating.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: CreditRating.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/RMLoan/LoanFlow.bpel b/binsrc/bpel/tests/interop/site/RMLoan/LoanFlow.bpel
index 3d38e1d..5dd513b 100644
--- a/binsrc/bpel/tests/interop/site/RMLoan/LoanFlow.bpel
+++ b/binsrc/bpel/tests/interop/site/RMLoan/LoanFlow.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/RMLoan/LoanFlow.sql b/binsrc/bpel/tests/interop/site/RMLoan/LoanFlow.sql
index ce65d66..8a15d5f 100644
--- a/binsrc/bpel/tests/interop/site/RMLoan/LoanFlow.sql
+++ b/binsrc/bpel/tests/interop/site/RMLoan/LoanFlow.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: LoanFlow.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/RMLoan/LoanFlow.wsdl b/binsrc/bpel/tests/interop/site/RMLoan/LoanFlow.wsdl
index c48a83e..df63a21 100644
--- a/binsrc/bpel/tests/interop/site/RMLoan/LoanFlow.wsdl
+++ b/binsrc/bpel/tests/interop/site/RMLoan/LoanFlow.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/RMLoan/LoanFlowDemo.sql b/binsrc/bpel/tests/interop/site/RMLoan/LoanFlowDemo.sql
index 95f0e67..c1017bb 100644
--- a/binsrc/bpel/tests/interop/site/RMLoan/LoanFlowDemo.sql
+++ b/binsrc/bpel/tests/interop/site/RMLoan/LoanFlowDemo.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: LoanFlowDemo.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/RMLoan/RMLoan.vsp b/binsrc/bpel/tests/interop/site/RMLoan/RMLoan.vsp
index 8b376c3..91d5a62 100644
--- a/binsrc/bpel/tests/interop/site/RMLoan/RMLoan.vsp
+++ b/binsrc/bpel/tests/interop/site/RMLoan/RMLoan.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: RMLoan.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/RMLoan/RMLoan.xml b/binsrc/bpel/tests/interop/site/RMLoan/RMLoan.xml
index 4c34afb..2ecd257 100644
--- a/binsrc/bpel/tests/interop/site/RMLoan/RMLoan.xml
+++ b/binsrc/bpel/tests/interop/site/RMLoan/RMLoan.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/RMLoan/StarLoan.vsp b/binsrc/bpel/tests/interop/site/RMLoan/StarLoan.vsp
index 79e4ac6..4be3021 100644
--- a/binsrc/bpel/tests/interop/site/RMLoan/StarLoan.vsp
+++ b/binsrc/bpel/tests/interop/site/RMLoan/StarLoan.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: StarLoan.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/RMLoan/UnitedLoan.vsp b/binsrc/bpel/tests/interop/site/RMLoan/UnitedLoan.vsp
index 6c0090e..17d8c62 100644
--- a/binsrc/bpel/tests/interop/site/RMLoan/UnitedLoan.vsp
+++ b/binsrc/bpel/tests/interop/site/RMLoan/UnitedLoan.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: UnitedLoan.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/RMLoan/bpel.xml b/binsrc/bpel/tests/interop/site/RMLoan/bpel.xml
index 0e43146..e15c3e2 100644
--- a/binsrc/bpel/tests/interop/site/RMLoan/bpel.xml
+++ b/binsrc/bpel/tests/interop/site/RMLoan/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/RMLoan/desc.xml b/binsrc/bpel/tests/interop/site/RMLoan/desc.xml
index d5c3ef2..3ca365c 100644
--- a/binsrc/bpel/tests/interop/site/RMLoan/desc.xml
+++ b/binsrc/bpel/tests/interop/site/RMLoan/desc.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/RMLoan/options.xml b/binsrc/bpel/tests/interop/site/RMLoan/options.xml
index f757ba4..3b0bc6f 100644
--- a/binsrc/bpel/tests/interop/site/RMLoan/options.xml
+++ b/binsrc/bpel/tests/interop/site/RMLoan/options.xml
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/RMecho/bpel.xml b/binsrc/bpel/tests/interop/site/RMecho/bpel.xml
index 06817ae..b93f47b 100644
--- a/binsrc/bpel/tests/interop/site/RMecho/bpel.xml
+++ b/binsrc/bpel/tests/interop/site/RMecho/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/RMecho/desc.xml b/binsrc/bpel/tests/interop/site/RMecho/desc.xml
index bd8ecae..10ddab3 100644
--- a/binsrc/bpel/tests/interop/site/RMecho/desc.xml
+++ b/binsrc/bpel/tests/interop/site/RMecho/desc.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/RMecho/echo.bpel b/binsrc/bpel/tests/interop/site/RMecho/echo.bpel
index b051db5..59819b3 100644
--- a/binsrc/bpel/tests/interop/site/RMecho/echo.bpel
+++ b/binsrc/bpel/tests/interop/site/RMecho/echo.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/RMecho/echo.sql b/binsrc/bpel/tests/interop/site/RMecho/echo.sql
index 2d37a51..7a61f4d 100644
--- a/binsrc/bpel/tests/interop/site/RMecho/echo.sql
+++ b/binsrc/bpel/tests/interop/site/RMecho/echo.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: echo.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/RMecho/echo.wsdl b/binsrc/bpel/tests/interop/site/RMecho/echo.wsdl
index 6366360..66f9f7c 100644
--- a/binsrc/bpel/tests/interop/site/RMecho/echo.wsdl
+++ b/binsrc/bpel/tests/interop/site/RMecho/echo.wsdl
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecAecho/bpel.xml b/binsrc/bpel/tests/interop/site/SecAecho/bpel.xml
index 656c0f2..8df179a 100644
--- a/binsrc/bpel/tests/interop/site/SecAecho/bpel.xml
+++ b/binsrc/bpel/tests/interop/site/SecAecho/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecAecho/desc.xml b/binsrc/bpel/tests/interop/site/SecAecho/desc.xml
index 885adf0..160f053 100644
--- a/binsrc/bpel/tests/interop/site/SecAecho/desc.xml
+++ b/binsrc/bpel/tests/interop/site/SecAecho/desc.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecAecho/echo.bpel b/binsrc/bpel/tests/interop/site/SecAecho/echo.bpel
index 8c58cf0..407ab9b 100644
--- a/binsrc/bpel/tests/interop/site/SecAecho/echo.bpel
+++ b/binsrc/bpel/tests/interop/site/SecAecho/echo.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecAecho/echo.sql b/binsrc/bpel/tests/interop/site/SecAecho/echo.sql
index d5d97c9..721e6bf 100644
--- a/binsrc/bpel/tests/interop/site/SecAecho/echo.sql
+++ b/binsrc/bpel/tests/interop/site/SecAecho/echo.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: echo.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecAecho/echo.wsdl b/binsrc/bpel/tests/interop/site/SecAecho/echo.wsdl
index 217019e..dff997c 100644
--- a/binsrc/bpel/tests/interop/site/SecAecho/echo.wsdl
+++ b/binsrc/bpel/tests/interop/site/SecAecho/echo.wsdl
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecLoan/CreditRating.vsp b/binsrc/bpel/tests/interop/site/SecLoan/CreditRating.vsp
index 847dbb8..2bd78b1 100644
--- a/binsrc/bpel/tests/interop/site/SecLoan/CreditRating.vsp
+++ b/binsrc/bpel/tests/interop/site/SecLoan/CreditRating.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: CreditRating.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecLoan/LoanFlow.bpel b/binsrc/bpel/tests/interop/site/SecLoan/LoanFlow.bpel
index 3d38e1d..5dd513b 100644
--- a/binsrc/bpel/tests/interop/site/SecLoan/LoanFlow.bpel
+++ b/binsrc/bpel/tests/interop/site/SecLoan/LoanFlow.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecLoan/LoanFlow.sql b/binsrc/bpel/tests/interop/site/SecLoan/LoanFlow.sql
index 24e64c2..98a593d 100644
--- a/binsrc/bpel/tests/interop/site/SecLoan/LoanFlow.sql
+++ b/binsrc/bpel/tests/interop/site/SecLoan/LoanFlow.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: LoanFlow.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecLoan/LoanFlow.wsdl b/binsrc/bpel/tests/interop/site/SecLoan/LoanFlow.wsdl
index c48a83e..df63a21 100644
--- a/binsrc/bpel/tests/interop/site/SecLoan/LoanFlow.wsdl
+++ b/binsrc/bpel/tests/interop/site/SecLoan/LoanFlow.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecLoan/LoanFlowDemo.sql b/binsrc/bpel/tests/interop/site/SecLoan/LoanFlowDemo.sql
index c654fbb..b00bd4e 100644
--- a/binsrc/bpel/tests/interop/site/SecLoan/LoanFlowDemo.sql
+++ b/binsrc/bpel/tests/interop/site/SecLoan/LoanFlowDemo.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: LoanFlowDemo.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecLoan/SecLoan.vsp b/binsrc/bpel/tests/interop/site/SecLoan/SecLoan.vsp
index 3ad4cb1..236dcf1 100644
--- a/binsrc/bpel/tests/interop/site/SecLoan/SecLoan.vsp
+++ b/binsrc/bpel/tests/interop/site/SecLoan/SecLoan.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: SecLoan.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecLoan/SecLoan.xml b/binsrc/bpel/tests/interop/site/SecLoan/SecLoan.xml
index aeb9c5c..a746e58 100644
--- a/binsrc/bpel/tests/interop/site/SecLoan/SecLoan.xml
+++ b/binsrc/bpel/tests/interop/site/SecLoan/SecLoan.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecLoan/StarLoan.vsp b/binsrc/bpel/tests/interop/site/SecLoan/StarLoan.vsp
index e47dd3d..7915adc 100644
--- a/binsrc/bpel/tests/interop/site/SecLoan/StarLoan.vsp
+++ b/binsrc/bpel/tests/interop/site/SecLoan/StarLoan.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: StarLoan.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecLoan/UnitedLoan.vsp b/binsrc/bpel/tests/interop/site/SecLoan/UnitedLoan.vsp
index 0843808..79b23ea 100644
--- a/binsrc/bpel/tests/interop/site/SecLoan/UnitedLoan.vsp
+++ b/binsrc/bpel/tests/interop/site/SecLoan/UnitedLoan.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: UnitedLoan.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecLoan/bpel.xml b/binsrc/bpel/tests/interop/site/SecLoan/bpel.xml
index 0e43146..e15c3e2 100644
--- a/binsrc/bpel/tests/interop/site/SecLoan/bpel.xml
+++ b/binsrc/bpel/tests/interop/site/SecLoan/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecLoan/desc.xml b/binsrc/bpel/tests/interop/site/SecLoan/desc.xml
index 4a45c40..e9fac6a 100644
--- a/binsrc/bpel/tests/interop/site/SecLoan/desc.xml
+++ b/binsrc/bpel/tests/interop/site/SecLoan/desc.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecLoan/options.xml b/binsrc/bpel/tests/interop/site/SecLoan/options.xml
index f757ba4..3b0bc6f 100644
--- a/binsrc/bpel/tests/interop/site/SecLoan/options.xml
+++ b/binsrc/bpel/tests/interop/site/SecLoan/options.xml
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecRMLoan/CreditRating.vsp b/binsrc/bpel/tests/interop/site/SecRMLoan/CreditRating.vsp
index 847dbb8..2bd78b1 100644
--- a/binsrc/bpel/tests/interop/site/SecRMLoan/CreditRating.vsp
+++ b/binsrc/bpel/tests/interop/site/SecRMLoan/CreditRating.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: CreditRating.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecRMLoan/LoanFlow.bpel b/binsrc/bpel/tests/interop/site/SecRMLoan/LoanFlow.bpel
index 3d38e1d..5dd513b 100644
--- a/binsrc/bpel/tests/interop/site/SecRMLoan/LoanFlow.bpel
+++ b/binsrc/bpel/tests/interop/site/SecRMLoan/LoanFlow.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecRMLoan/LoanFlow.sql b/binsrc/bpel/tests/interop/site/SecRMLoan/LoanFlow.sql
index d826372..6e70ece 100644
--- a/binsrc/bpel/tests/interop/site/SecRMLoan/LoanFlow.sql
+++ b/binsrc/bpel/tests/interop/site/SecRMLoan/LoanFlow.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: LoanFlow.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecRMLoan/LoanFlow.wsdl b/binsrc/bpel/tests/interop/site/SecRMLoan/LoanFlow.wsdl
index c48a83e..df63a21 100644
--- a/binsrc/bpel/tests/interop/site/SecRMLoan/LoanFlow.wsdl
+++ b/binsrc/bpel/tests/interop/site/SecRMLoan/LoanFlow.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecRMLoan/LoanFlowDemo.sql b/binsrc/bpel/tests/interop/site/SecRMLoan/LoanFlowDemo.sql
index 51780c4..21ab567 100644
--- a/binsrc/bpel/tests/interop/site/SecRMLoan/LoanFlowDemo.sql
+++ b/binsrc/bpel/tests/interop/site/SecRMLoan/LoanFlowDemo.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: LoanFlowDemo.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecRMLoan/SecRMLoan.vsp b/binsrc/bpel/tests/interop/site/SecRMLoan/SecRMLoan.vsp
index fcbd68b..91d5a62 100644
--- a/binsrc/bpel/tests/interop/site/SecRMLoan/SecRMLoan.vsp
+++ b/binsrc/bpel/tests/interop/site/SecRMLoan/SecRMLoan.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: SecRMLoan.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecRMLoan/SecRMLoan.xml b/binsrc/bpel/tests/interop/site/SecRMLoan/SecRMLoan.xml
index a1a369c..ba9ab5b 100644
--- a/binsrc/bpel/tests/interop/site/SecRMLoan/SecRMLoan.xml
+++ b/binsrc/bpel/tests/interop/site/SecRMLoan/SecRMLoan.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecRMLoan/StarLoan.vsp b/binsrc/bpel/tests/interop/site/SecRMLoan/StarLoan.vsp
index c134556..5f7bfee 100644
--- a/binsrc/bpel/tests/interop/site/SecRMLoan/StarLoan.vsp
+++ b/binsrc/bpel/tests/interop/site/SecRMLoan/StarLoan.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: StarLoan.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecRMLoan/UnitedLoan.vsp b/binsrc/bpel/tests/interop/site/SecRMLoan/UnitedLoan.vsp
index 1f8ab57..1442c83 100644
--- a/binsrc/bpel/tests/interop/site/SecRMLoan/UnitedLoan.vsp
+++ b/binsrc/bpel/tests/interop/site/SecRMLoan/UnitedLoan.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: UnitedLoan.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecRMLoan/bpel.xml b/binsrc/bpel/tests/interop/site/SecRMLoan/bpel.xml
index 0e43146..e15c3e2 100644
--- a/binsrc/bpel/tests/interop/site/SecRMLoan/bpel.xml
+++ b/binsrc/bpel/tests/interop/site/SecRMLoan/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecRMLoan/desc.xml b/binsrc/bpel/tests/interop/site/SecRMLoan/desc.xml
index a186901..f477f6e 100644
--- a/binsrc/bpel/tests/interop/site/SecRMLoan/desc.xml
+++ b/binsrc/bpel/tests/interop/site/SecRMLoan/desc.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/SecRMLoan/options.xml b/binsrc/bpel/tests/interop/site/SecRMLoan/options.xml
index f757ba4..3b0bc6f 100644
--- a/binsrc/bpel/tests/interop/site/SecRMLoan/options.xml
+++ b/binsrc/bpel/tests/interop/site/SecRMLoan/options.xml
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/about.vsp b/binsrc/bpel/tests/interop/site/bpel4ws/about.vsp
index 059ba12..62bf76b 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/about.vsp
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/about.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: about.vsp,v 1.2 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/about.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/about.vspx
index dec94e4..572fb78 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/about.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/about.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: about.vspx,v 1.3 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/about.xsl b/binsrc/bpel/tests/interop/site/bpel4ws/about.xsl
index ab06bef..19d0a6b 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/about.xsl
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/about.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!--
  -  
- -  $Id: about.xsl,v 1.3 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/bpelrsc.vsp b/binsrc/bpel/tests/interop/site/bpel4ws/bpelrsc.vsp
index 20b75e3..625d9fb 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/bpelrsc.vsp
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/bpelrsc.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: bpelrsc.vsp,v 1.2 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/bpelrsc.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/bpelrsc.vspx
index 70ac1a4..ea0587e 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/bpelrsc.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/bpelrsc.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: bpelrsc.vspx,v 1.3 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/bpelrsc.xsl b/binsrc/bpel/tests/interop/site/bpel4ws/bpelrsc.xsl
index 7e5fa22..7b2f0e1 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/bpelrsc.xsl
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/bpelrsc.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!--
  -  
- -  $Id: bpelrsc.xsl,v 1.3 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/bpeluct.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/bpeluct.vspx
index 8a9aa54..8a42710 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/bpeluct.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/bpeluct.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: bpeluct.vspx,v 1.3 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/clients/aechoUI.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/clients/aechoUI.vspx
index bcb293f..39a8587 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/clients/aechoUI.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/clients/aechoUI.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: aechoUI.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/clients/echoUI.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/clients/echoUI.vspx
index 5fa33b1..dc33cce 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/clients/echoUI.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/clients/echoUI.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: echoUI.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/clients/rmechoUI.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/clients/rmechoUI.vspx
index 06590b5..061e9b4 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/clients/rmechoUI.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/clients/rmechoUI.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rmechoUI.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/clients/rmloanUI.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/clients/rmloanUI.vspx
index 212c5c3..10a522b 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/clients/rmloanUI.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/clients/rmloanUI.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: rmloanUI.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/clients/secechoUI.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/clients/secechoUI.vspx
index e2aa7a9..6c8db25 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/clients/secechoUI.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/clients/secechoUI.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: secechoUI.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/clients/secloanUI.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/clients/secloanUI.vspx
index ec4e7d1..89de7bc 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/clients/secloanUI.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/clients/secloanUI.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: secloanUI.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/clients/secrmloanUI.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/clients/secrmloanUI.vspx
index c5003d4..d12da1a 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/clients/secrmloanUI.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/clients/secrmloanUI.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: secrmloanUI.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/clients/viewres.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/clients/viewres.vspx
index 8519f6a..24b4937 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/clients/viewres.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/clients/viewres.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: viewres.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/common.xsl b/binsrc/bpel/tests/interop/site/bpel4ws/common.xsl
index 6fac2cc..5f8049b 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/common.xsl
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/common.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!--
  -  
- -  $Id: common.xsl,v 1.3 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/default.css b/binsrc/bpel/tests/interop/site/bpel4ws/default.css
index 26224ba..853e00c 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/default.css
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/default.css
@@ -1,10 +1,10 @@
 /*
- *  $Id: default.css,v 1.2 2006/08/15 22:15:54 source Exp $
+ *  $Id$
  *
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/error.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/error.vspx
index b616afe..354272d 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/error.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/error.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: error.vspx,v 1.3 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/home.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/home.vspx
index 7ba2e0b..25c96cc 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/home.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/home.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -  
- -  $Id: home.vspx,v 1.4 2006/08/17 18:27:57 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/interop.vsp b/binsrc/bpel/tests/interop/site/bpel4ws/interop.vsp
index 28ff040..0dbb99e 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/interop.vsp
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/interop.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: interop.vsp,v 1.2 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/interop.xsl b/binsrc/bpel/tests/interop/site/bpel4ws/interop.xsl
index 3b82487..20c4b29 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/interop.xsl
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/interop.xsl
@@ -155,7 +155,7 @@
 	<A class="m_n" href="http://virtuoso.openlinksw.com/interop/index.htm#">Privacy</A>
       </div>
       <div class="copyright">
-	<xsl:text disable-output-escaping="yes">Copyright &copy; 1998-2011 OpenLink Software</xsl:text>
+	<xsl:text disable-output-escaping="yes">Copyright &copy; 1998-2012 OpenLink Software</xsl:text>
       </div>
     </td>
   </tr>
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/interop_decor.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/interop_decor.vspx
index 8fa4fba..e34b30c 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/interop_decor.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/interop_decor.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: interop_decor.vspx,v 1.3 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/interop_install.sql b/binsrc/bpel/tests/interop/site/bpel4ws/interop_install.sql
index ef86905..57c631a 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/interop_install.sql
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/interop_install.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: interop_install.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/interop_main.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/interop_main.vspx
index 10bb3f4..be70089 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/interop_main.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/interop_main.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: interop_main.vspx,v 1.3 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/interop_navigation_bar.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/interop_navigation_bar.vspx
index 5769aba..beb429b 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/interop_navigation_bar.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/interop_navigation_bar.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: interop_navigation_bar.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/interop_style.xsl b/binsrc/bpel/tests/interop/site/bpel4ws/interop_style.xsl
index c1efbb4..661aef2 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/interop_style.xsl
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/interop_style.xsl
@@ -2,14 +2,14 @@
 <!-- <!DOCTYPE html  PUBLIC "" "ent.dtd"> -->
 <!----
  -  
- -  $Id: interop_style.xsl,v 1.3.2.1 2010/01/07 16:58:12 source Exp $
+ -  $Id$
  -
  -   Virtuoso VSPX XSL-T style-sheet for page class compilation
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/interop_vhost.sql b/binsrc/bpel/tests/interop/site/bpel4ws/interop_vhost.sql
index 476e9d4..901ff94 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/interop_vhost.sql
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/interop_vhost.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: interop_vhost.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/intest.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/intest.vspx
index eda0591..63094e6 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/intest.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/intest.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: intest.vspx,v 1.3 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/mgrsum.vsp b/binsrc/bpel/tests/interop/site/bpel4ws/mgrsum.vsp
index 1554c6f..ab34d4c 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/mgrsum.vsp
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/mgrsum.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: mgrsum.vsp,v 1.2 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/mgrsum.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/mgrsum.vspx
index d5720e1..81f909c 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/mgrsum.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/mgrsum.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: mgrsum.vspx,v 1.3 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/mgrsum.xsl b/binsrc/bpel/tests/interop/site/bpel4ws/mgrsum.xsl
index 40320e0..c310c5f 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/mgrsum.xsl
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/mgrsum.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!--
  -  
- -  $Id: mgrsum.xsl,v 1.3 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/post.vsp b/binsrc/bpel/tests/interop/site/bpel4ws/post.vsp
index dc1777c..d7920d7 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/post.vsp
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/post.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: post.vsp,v 1.2 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/post.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/post.vspx
index 6c59e8f..638efb7 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/post.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/post.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: post.vspx,v 1.3 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/post.xsl b/binsrc/bpel/tests/interop/site/bpel4ws/post.xsl
index 7557605..526a837 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/post.xsl
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/post.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!--
  -  
- -  $Id: post.xsl,v 1.3 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/protocols.vsp b/binsrc/bpel/tests/interop/site/bpel4ws/protocols.vsp
index d48a066..a5e97e2 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/protocols.vsp
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/protocols.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: protocols.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/protocols.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/protocols.vspx
index b5a2382..63b0566 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/protocols.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/protocols.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: protocols.vspx,v 1.3 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/protocols.xml b/binsrc/bpel/tests/interop/site/bpel4ws/protocols.xml
index 2b5b5e6..eae9dec 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/protocols.xml
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/protocols.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/protocols.xsl b/binsrc/bpel/tests/interop/site/bpel4ws/protocols.xsl
index d383c71..ee42d73 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/protocols.xsl
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/protocols.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!--
  -  
- -  $Id: protocols.xsl,v 1.3 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/reply.vsp b/binsrc/bpel/tests/interop/site/bpel4ws/reply.vsp
index 97e094a..d07da88 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/reply.vsp
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/reply.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: reply.vsp,v 1.2 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/results.xml b/binsrc/bpel/tests/interop/site/bpel4ws/results.xml
index d115ade..b77a604 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/results.xml
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/results.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/tables.sql b/binsrc/bpel/tests/interop/site/bpel4ws/tables.sql
index 846e096..3fa4153 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/tables.sql
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/tables.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: tables.sql,v 1.3 2007/01/22 13:11:22 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/tstsum.vsp b/binsrc/bpel/tests/interop/site/bpel4ws/tstsum.vsp
index 283860d..b9a8d59 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/tstsum.vsp
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/tstsum.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: tstsum.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/tstsum.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/tstsum.vspx
index e5a8048..d636a01 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/tstsum.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/tstsum.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: tstsum.vspx,v 1.3 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/tstsum.xsl b/binsrc/bpel/tests/interop/site/bpel4ws/tstsum.xsl
index 35eb82f..07f0032 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/tstsum.xsl
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/tstsum.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!--
  -  
- -  $Id: tstsum.xsl,v 1.3 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/view.vsp b/binsrc/bpel/tests/interop/site/bpel4ws/view.vsp
index ebf3019..4e77d34 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/view.vsp
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/view.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: view.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/view.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/view.vspx
index 7949157..c02fd8c 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/view.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/view.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: view.vspx,v 1.3 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/view.xsl b/binsrc/bpel/tests/interop/site/bpel4ws/view.xsl
index 28abe9f..026eb47 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/view.xsl
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/view.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!--
  -  
- -  $Id: view.xsl,v 1.3 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/wsa.vsp b/binsrc/bpel/tests/interop/site/bpel4ws/wsa.vsp
index 6cdd9a4..2aa47dd 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/wsa.vsp
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/wsa.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: wsa.vsp,v 1.2 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/wsa.vspx b/binsrc/bpel/tests/interop/site/bpel4ws/wsa.vspx
index 1a679dc..4dadad7 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/wsa.vspx
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/wsa.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
  -
- -  $Id: wsa.vspx,v 1.4 2007/01/22 13:11:22 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/bpel4ws/wsa.xsl b/binsrc/bpel/tests/interop/site/bpel4ws/wsa.xsl
index 0ce79cc..3ae7361 100644
--- a/binsrc/bpel/tests/interop/site/bpel4ws/wsa.xsl
+++ b/binsrc/bpel/tests/interop/site/bpel4ws/wsa.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!--
  -  
- -  $Id: wsa.xsl,v 1.4 2007/01/22 13:11:22 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/echo/bpel.xml b/binsrc/bpel/tests/interop/site/echo/bpel.xml
index cb7cd41..aaa4b6a 100644
--- a/binsrc/bpel/tests/interop/site/echo/bpel.xml
+++ b/binsrc/bpel/tests/interop/site/echo/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/echo/desc.xml b/binsrc/bpel/tests/interop/site/echo/desc.xml
index 02ce411..b2fd34f 100644
--- a/binsrc/bpel/tests/interop/site/echo/desc.xml
+++ b/binsrc/bpel/tests/interop/site/echo/desc.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/echo/echo.bpel b/binsrc/bpel/tests/interop/site/echo/echo.bpel
index a7fcfeb..6d7dac7 100644
--- a/binsrc/bpel/tests/interop/site/echo/echo.bpel
+++ b/binsrc/bpel/tests/interop/site/echo/echo.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/echo/echo.sql b/binsrc/bpel/tests/interop/site/echo/echo.sql
index 1596c5d..75c6885 100644
--- a/binsrc/bpel/tests/interop/site/echo/echo.sql
+++ b/binsrc/bpel/tests/interop/site/echo/echo.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: echo.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/echo/echo.wsdl b/binsrc/bpel/tests/interop/site/echo/echo.wsdl
index f1aeb28..691b36d 100644
--- a/binsrc/bpel/tests/interop/site/echo/echo.wsdl
+++ b/binsrc/bpel/tests/interop/site/echo/echo.wsdl
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/index.html b/binsrc/bpel/tests/interop/site/index.html
index dc55c9d..ca23b28 100644
--- a/binsrc/bpel/tests/interop/site/index.html
+++ b/binsrc/bpel/tests/interop/site/index.html
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/interop/site/setup.sql b/binsrc/bpel/tests/interop/site/setup.sql
index 7240a67..b6d2589 100644
--- a/binsrc/bpel/tests/interop/site/setup.sql
+++ b/binsrc/bpel/tests/interop/site/setup.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: setup.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/cmpflow.bpel b/binsrc/bpel/tests/mix/cmpflow.bpel
index a28a015..7a1a932 100644
--- a/binsrc/bpel/tests/mix/cmpflow.bpel
+++ b/binsrc/bpel/tests/mix/cmpflow.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/cmpflow.wsdl b/binsrc/bpel/tests/mix/cmpflow.wsdl
index da5ff24..ac431a8 100644
--- a/binsrc/bpel/tests/mix/cmpflow.wsdl
+++ b/binsrc/bpel/tests/mix/cmpflow.wsdl
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/comp.sql b/binsrc/bpel/tests/mix/comp.sql
index 0401d44..3892d1a 100644
--- a/binsrc/bpel/tests/mix/comp.sql
+++ b/binsrc/bpel/tests/mix/comp.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: comp.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/comp2.bpel b/binsrc/bpel/tests/mix/comp2.bpel
index 6ee27ec..14ca9e9 100644
--- a/binsrc/bpel/tests/mix/comp2.bpel
+++ b/binsrc/bpel/tests/mix/comp2.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/comp2.sql b/binsrc/bpel/tests/mix/comp2.sql
index a9575f4..1a76368 100644
--- a/binsrc/bpel/tests/mix/comp2.sql
+++ b/binsrc/bpel/tests/mix/comp2.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: comp2.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/comp3.bpel b/binsrc/bpel/tests/mix/comp3.bpel
index 71cc399..5d63cdd 100644
--- a/binsrc/bpel/tests/mix/comp3.bpel
+++ b/binsrc/bpel/tests/mix/comp3.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/comp4.bpel b/binsrc/bpel/tests/mix/comp4.bpel
index 15288c4..73cb436 100644
--- a/binsrc/bpel/tests/mix/comp4.bpel
+++ b/binsrc/bpel/tests/mix/comp4.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/comp5.bpel b/binsrc/bpel/tests/mix/comp5.bpel
index 28df1cf..a36f90e 100644
--- a/binsrc/bpel/tests/mix/comp5.bpel
+++ b/binsrc/bpel/tests/mix/comp5.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/comp6.bpel b/binsrc/bpel/tests/mix/comp6.bpel
index 13fde8c..ad1c66b 100644
--- a/binsrc/bpel/tests/mix/comp6.bpel
+++ b/binsrc/bpel/tests/mix/comp6.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/evcomp.bpel b/binsrc/bpel/tests/mix/evcomp.bpel
index 42bd85f..bfbf69c 100644
--- a/binsrc/bpel/tests/mix/evcomp.bpel
+++ b/binsrc/bpel/tests/mix/evcomp.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/evcomp.wsdl b/binsrc/bpel/tests/mix/evcomp.wsdl
index fd3a22f..8f99f52 100644
--- a/binsrc/bpel/tests/mix/evcomp.wsdl
+++ b/binsrc/bpel/tests/mix/evcomp.wsdl
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/fault.wsdl b/binsrc/bpel/tests/mix/fault.wsdl
index 7dd9dd8..431638d 100644
--- a/binsrc/bpel/tests/mix/fault.wsdl
+++ b/binsrc/bpel/tests/mix/fault.wsdl
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/fault4.bpel b/binsrc/bpel/tests/mix/fault4.bpel
index c962760..f16c5f7 100644
--- a/binsrc/bpel/tests/mix/fault4.bpel
+++ b/binsrc/bpel/tests/mix/fault4.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/ini.sql b/binsrc/bpel/tests/mix/ini.sql
index 8a11ecc..3cc1c2b 100644
--- a/binsrc/bpel/tests/mix/ini.sql
+++ b/binsrc/bpel/tests/mix/ini.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: ini.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/ol.bpel b/binsrc/bpel/tests/mix/ol.bpel
index 60b2e93..0619a22 100644
--- a/binsrc/bpel/tests/mix/ol.bpel
+++ b/binsrc/bpel/tests/mix/ol.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/ol.wsdl b/binsrc/bpel/tests/mix/ol.wsdl
index 39573f9..12b1d5e 100644
--- a/binsrc/bpel/tests/mix/ol.wsdl
+++ b/binsrc/bpel/tests/mix/ol.wsdl
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/olservice.wsdl b/binsrc/bpel/tests/mix/olservice.wsdl
index 75e684f..bb8a1c2 100644
--- a/binsrc/bpel/tests/mix/olservice.wsdl
+++ b/binsrc/bpel/tests/mix/olservice.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/recovery_test.sql b/binsrc/bpel/tests/mix/recovery_test.sql
index a135faa..fa6f6cb 100644
--- a/binsrc/bpel/tests/mix/recovery_test.sql
+++ b/binsrc/bpel/tests/mix/recovery_test.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: recovery_test.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/sw.bpel b/binsrc/bpel/tests/mix/sw.bpel
index a85c1be..0e39364 100644
--- a/binsrc/bpel/tests/mix/sw.bpel
+++ b/binsrc/bpel/tests/mix/sw.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/sw.wsdl b/binsrc/bpel/tests/mix/sw.wsdl
index f6708b6..ed2002d 100644
--- a/binsrc/bpel/tests/mix/sw.wsdl
+++ b/binsrc/bpel/tests/mix/sw.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/testsvc.sql b/binsrc/bpel/tests/mix/testsvc.sql
index 7ea8de4..cbe3cec 100644
--- a/binsrc/bpel/tests/mix/testsvc.sql
+++ b/binsrc/bpel/tests/mix/testsvc.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: testsvc.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/timesvc.wsdl b/binsrc/bpel/tests/mix/timesvc.wsdl
index ae08460..a2ac835 100644
--- a/binsrc/bpel/tests/mix/timesvc.wsdl
+++ b/binsrc/bpel/tests/mix/timesvc.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/tsvc.wsdl b/binsrc/bpel/tests/mix/tsvc.wsdl
index 0ee62a7..a394849 100644
--- a/binsrc/bpel/tests/mix/tsvc.wsdl
+++ b/binsrc/bpel/tests/mix/tsvc.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/while1.bpel b/binsrc/bpel/tests/mix/while1.bpel
index ec250d6..6d4fab7 100644
--- a/binsrc/bpel/tests/mix/while1.bpel
+++ b/binsrc/bpel/tests/mix/while1.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/mix/while1.wsdl b/binsrc/bpel/tests/mix/while1.wsdl
index 1de9199..c6454d4 100644
--- a/binsrc/bpel/tests/mix/while1.wsdl
+++ b/binsrc/bpel/tests/mix/while1.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/order/input.xml b/binsrc/bpel/tests/order/input.xml
index aea7857..0b1713a 100644
--- a/binsrc/bpel/tests/order/input.xml
+++ b/binsrc/bpel/tests/order/input.xml
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/order/invoke.sql b/binsrc/bpel/tests/order/invoke.sql
index 2e8f391..3f1e463 100644
--- a/binsrc/bpel/tests/order/invoke.sql
+++ b/binsrc/bpel/tests/order/invoke.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: invoke.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/order/load_all.sql b/binsrc/bpel/tests/order/load_all.sql
index 981892b..064ac5c 100644
--- a/binsrc/bpel/tests/order/load_all.sql
+++ b/binsrc/bpel/tests/order/load_all.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: load_all.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/order/order.bpel b/binsrc/bpel/tests/order/order.bpel
index 32b1a84..2f6a88e 100644
--- a/binsrc/bpel/tests/order/order.bpel
+++ b/binsrc/bpel/tests/order/order.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/order/order.sql b/binsrc/bpel/tests/order/order.sql
index a85a065..70f3bd5 100644
--- a/binsrc/bpel/tests/order/order.sql
+++ b/binsrc/bpel/tests/order/order.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: order.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/order/order.wsdl b/binsrc/bpel/tests/order/order.wsdl
index eae0b0f..534feae 100644
--- a/binsrc/bpel/tests/order/order.wsdl
+++ b/binsrc/bpel/tests/order/order.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/order/order_svc.sql b/binsrc/bpel/tests/order/order_svc.sql
index 4cf8fe0..ae34edc 100644
--- a/binsrc/bpel/tests/order/order_svc.sql
+++ b/binsrc/bpel/tests/order/order_svc.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: order_svc.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/order/servicewsdl.vsp b/binsrc/bpel/tests/order/servicewsdl.vsp
index a7c7881..a6a37c0 100644
--- a/binsrc/bpel/tests/order/servicewsdl.vsp
+++ b/binsrc/bpel/tests/order/servicewsdl.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: servicewsdl.vsp,v 1.3 2006/08/15 19:30:32 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/pick/async_svc.sql b/binsrc/bpel/tests/pick/async_svc.sql
index 315bd0d..8f628b1 100644
--- a/binsrc/bpel/tests/pick/async_svc.sql
+++ b/binsrc/bpel/tests/pick/async_svc.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: async_svc.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/pick/ini.sql b/binsrc/bpel/tests/pick/ini.sql
index 49bddfd..dd9333f 100644
--- a/binsrc/bpel/tests/pick/ini.sql
+++ b/binsrc/bpel/tests/pick/ini.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: ini.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/pick/inv.sql b/binsrc/bpel/tests/pick/inv.sql
index 59b6e3e..2e3cec2 100644
--- a/binsrc/bpel/tests/pick/inv.sql
+++ b/binsrc/bpel/tests/pick/inv.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: inv.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/pick/pick.bpel b/binsrc/bpel/tests/pick/pick.bpel
index bfa8015..92aab38 100644
--- a/binsrc/bpel/tests/pick/pick.bpel
+++ b/binsrc/bpel/tests/pick/pick.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/pick/pick.wsdl b/binsrc/bpel/tests/pick/pick.wsdl
index e9daccb..5dd721e 100644
--- a/binsrc/bpel/tests/pick/pick.wsdl
+++ b/binsrc/bpel/tests/pick/pick.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/pick/service.wsdl b/binsrc/bpel/tests/pick/service.wsdl
index 9b956fc..43f1241 100644
--- a/binsrc/bpel/tests/pick/service.wsdl
+++ b/binsrc/bpel/tests/pick/service.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/pick1/bpel.xml b/binsrc/bpel/tests/pick1/bpel.xml
index a25c636..a5d2e09 100644
--- a/binsrc/bpel/tests/pick1/bpel.xml
+++ b/binsrc/bpel/tests/pick1/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/pick1/build.xml b/binsrc/bpel/tests/pick1/build.xml
index dcbb88d..baed3a4 100644
--- a/binsrc/bpel/tests/pick1/build.xml
+++ b/binsrc/bpel/tests/pick1/build.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/pick1/ini.sql b/binsrc/bpel/tests/pick1/ini.sql
index 12137c2..f97058d 100644
--- a/binsrc/bpel/tests/pick1/ini.sql
+++ b/binsrc/bpel/tests/pick1/ini.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: ini.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/pick1/pick1.bpel b/binsrc/bpel/tests/pick1/pick1.bpel
index beb098a..f2ba9be 100644
--- a/binsrc/bpel/tests/pick1/pick1.bpel
+++ b/binsrc/bpel/tests/pick1/pick1.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/pick1/pick1.wsdl b/binsrc/bpel/tests/pick1/pick1.wsdl
index 3349b9e..451088b 100644
--- a/binsrc/bpel/tests/pick1/pick1.wsdl
+++ b/binsrc/bpel/tests/pick1/pick1.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/post/bpel.xml b/binsrc/bpel/tests/post/bpel.xml
index 6e9ddb0..b3cd307 100644
--- a/binsrc/bpel/tests/post/bpel.xml
+++ b/binsrc/bpel/tests/post/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/post/build.xml b/binsrc/bpel/tests/post/build.xml
index a669be8..c5f0517 100644
--- a/binsrc/bpel/tests/post/build.xml
+++ b/binsrc/bpel/tests/post/build.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/post/ini.sql b/binsrc/bpel/tests/post/ini.sql
index 3b11af2..0998f98 100644
--- a/binsrc/bpel/tests/post/ini.sql
+++ b/binsrc/bpel/tests/post/ini.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: ini.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/post/post.bpel b/binsrc/bpel/tests/post/post.bpel
index aa310bb..994a5ec 100644
--- a/binsrc/bpel/tests/post/post.bpel
+++ b/binsrc/bpel/tests/post/post.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/post/post.wsdl b/binsrc/bpel/tests/post/post.wsdl
index 05010cd..5ab3d36 100644
--- a/binsrc/bpel/tests/post/post.wsdl
+++ b/binsrc/bpel/tests/post/post.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXQuery/XQuerySample.bpel b/binsrc/bpel/tests/processXQuery/XQuerySample.bpel
index 999710d..3ea865f 100644
--- a/binsrc/bpel/tests/processXQuery/XQuerySample.bpel
+++ b/binsrc/bpel/tests/processXQuery/XQuerySample.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXQuery/XQuerySample.wsdl b/binsrc/bpel/tests/processXQuery/XQuerySample.wsdl
index 89bdaed..20854d8 100644
--- a/binsrc/bpel/tests/processXQuery/XQuerySample.wsdl
+++ b/binsrc/bpel/tests/processXQuery/XQuerySample.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXQuery/books.xq b/binsrc/bpel/tests/processXQuery/books.xq
index b6beac7..8dde0a8 100644
--- a/binsrc/bpel/tests/processXQuery/books.xq
+++ b/binsrc/bpel/tests/processXQuery/books.xq
@@ -3,7 +3,7 @@
  :  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  :  project.
  :  
- :  Copyright (C) 1998-2006 OpenLink Software
+ :  Copyright (C) 1998-2012 OpenLink Software
  :  
  :  This project is free software; you can redistribute it and/or modify it
  :  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXQuery/bpel.xml b/binsrc/bpel/tests/processXQuery/bpel.xml
index 01f00aa..f637dd7 100644
--- a/binsrc/bpel/tests/processXQuery/bpel.xml
+++ b/binsrc/bpel/tests/processXQuery/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXQuery/ini.sql b/binsrc/bpel/tests/processXQuery/ini.sql
index 1c7b9a2..397ac6f 100644
--- a/binsrc/bpel/tests/processXQuery/ini.sql
+++ b/binsrc/bpel/tests/processXQuery/ini.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: ini.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXQuery/invoice.xq b/binsrc/bpel/tests/processXQuery/invoice.xq
index 3772e7c..177fc35 100644
--- a/binsrc/bpel/tests/processXQuery/invoice.xq
+++ b/binsrc/bpel/tests/processXQuery/invoice.xq
@@ -3,7 +3,7 @@
  :  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  :  project.
  :  
- :  Copyright (C) 1998-2006 OpenLink Software
+ :  Copyright (C) 1998-2012 OpenLink Software
  :  
  :  This project is free software; you can redistribute it and/or modify it
  :  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXQuery/options.xml b/binsrc/bpel/tests/processXQuery/options.xml
index 611b229..4f12bb5 100644
--- a/binsrc/bpel/tests/processXQuery/options.xml
+++ b/binsrc/bpel/tests/processXQuery/options.xml
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXQuery/processXQuery.vsp b/binsrc/bpel/tests/processXQuery/processXQuery.vsp
index cf7a55d..91d5a62 100644
--- a/binsrc/bpel/tests/processXQuery/processXQuery.vsp
+++ b/binsrc/bpel/tests/processXQuery/processXQuery.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: processXQuery.vsp,v 1.2 2006/08/15 19:30:33 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXQuery/processXQuery.xml b/binsrc/bpel/tests/processXQuery/processXQuery.xml
index 1ace8e3..cb403ca 100644
--- a/binsrc/bpel/tests/processXQuery/processXQuery.xml
+++ b/binsrc/bpel/tests/processXQuery/processXQuery.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSLT/CreditRating.vsp b/binsrc/bpel/tests/processXSLT/CreditRating.vsp
index 5d82db2..c790c01 100644
--- a/binsrc/bpel/tests/processXSLT/CreditRating.vsp
+++ b/binsrc/bpel/tests/processXSLT/CreditRating.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: CreditRating.vsp,v 1.3 2006/08/15 19:30:33 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSLT/InvToPo.xslt b/binsrc/bpel/tests/processXSLT/InvToPo.xslt
index 809fe50..852a8b7 100644
--- a/binsrc/bpel/tests/processXSLT/InvToPo.xslt
+++ b/binsrc/bpel/tests/processXSLT/InvToPo.xslt
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSLT/XSLTSample.bpel b/binsrc/bpel/tests/processXSLT/XSLTSample.bpel
index bee3828..2addf67 100644
--- a/binsrc/bpel/tests/processXSLT/XSLTSample.bpel
+++ b/binsrc/bpel/tests/processXSLT/XSLTSample.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSLT/XSLTSample.wsdl b/binsrc/bpel/tests/processXSLT/XSLTSample.wsdl
index c07a131..8d8296d 100644
--- a/binsrc/bpel/tests/processXSLT/XSLTSample.wsdl
+++ b/binsrc/bpel/tests/processXSLT/XSLTSample.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSLT/XSLTSample.xslt b/binsrc/bpel/tests/processXSLT/XSLTSample.xslt
index 2088e8f..2d85bc5 100644
--- a/binsrc/bpel/tests/processXSLT/XSLTSample.xslt
+++ b/binsrc/bpel/tests/processXSLT/XSLTSample.xslt
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSLT/bpel.xml b/binsrc/bpel/tests/processXSLT/bpel.xml
index d628754..681822f 100644
--- a/binsrc/bpel/tests/processXSLT/bpel.xml
+++ b/binsrc/bpel/tests/processXSLT/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSLT/ini.sql b/binsrc/bpel/tests/processXSLT/ini.sql
index ba14b92..e12ca07 100644
--- a/binsrc/bpel/tests/processXSLT/ini.sql
+++ b/binsrc/bpel/tests/processXSLT/ini.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: ini.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSLT/options.xml b/binsrc/bpel/tests/processXSLT/options.xml
index d4f48e7..be62e8e 100644
--- a/binsrc/bpel/tests/processXSLT/options.xml
+++ b/binsrc/bpel/tests/processXSLT/options.xml
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSLT/processXSLT.sql b/binsrc/bpel/tests/processXSLT/processXSLT.sql
index c647555..4aab281 100644
--- a/binsrc/bpel/tests/processXSLT/processXSLT.sql
+++ b/binsrc/bpel/tests/processXSLT/processXSLT.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: processXSLT.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSLT/processXSLT.vsp b/binsrc/bpel/tests/processXSLT/processXSLT.vsp
index 42f6198..91d5a62 100644
--- a/binsrc/bpel/tests/processXSLT/processXSLT.vsp
+++ b/binsrc/bpel/tests/processXSLT/processXSLT.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: processXSLT.vsp,v 1.3 2006/08/15 19:30:33 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSLT/processXSLT.xml b/binsrc/bpel/tests/processXSLT/processXSLT.xml
index 6f1c716..64bb252 100644
--- a/binsrc/bpel/tests/processXSLT/processXSLT.xml
+++ b/binsrc/bpel/tests/processXSLT/processXSLT.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSQL/XSQLSample.bpel b/binsrc/bpel/tests/processXSQL/XSQLSample.bpel
index c6f39a2..09f6628 100644
--- a/binsrc/bpel/tests/processXSQL/XSQLSample.bpel
+++ b/binsrc/bpel/tests/processXSQL/XSQLSample.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSQL/XSQLSample.wsdl b/binsrc/bpel/tests/processXSQL/XSQLSample.wsdl
index 04b3ff3..c9875de 100644
--- a/binsrc/bpel/tests/processXSQL/XSQLSample.wsdl
+++ b/binsrc/bpel/tests/processXSQL/XSQLSample.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSQL/bpel.xml b/binsrc/bpel/tests/processXSQL/bpel.xml
index 9888f95..f0494dc 100644
--- a/binsrc/bpel/tests/processXSQL/bpel.xml
+++ b/binsrc/bpel/tests/processXSQL/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSQL/ini.sql b/binsrc/bpel/tests/processXSQL/ini.sql
index 0aba471..582a178 100644
--- a/binsrc/bpel/tests/processXSQL/ini.sql
+++ b/binsrc/bpel/tests/processXSQL/ini.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: ini.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSQL/options.xml b/binsrc/bpel/tests/processXSQL/options.xml
index 658bcb9..94ae4cf 100644
--- a/binsrc/bpel/tests/processXSQL/options.xml
+++ b/binsrc/bpel/tests/processXSQL/options.xml
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSQL/processXSQL.vsp b/binsrc/bpel/tests/processXSQL/processXSQL.vsp
index 2d4b3b5..91d5a62 100644
--- a/binsrc/bpel/tests/processXSQL/processXSQL.vsp
+++ b/binsrc/bpel/tests/processXSQL/processXSQL.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: processXSQL.vsp,v 1.2 2006/08/15 19:30:33 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSQL/processXSQL.xml b/binsrc/bpel/tests/processXSQL/processXSQL.xml
index 800b434..f300382 100644
--- a/binsrc/bpel/tests/processXSQL/processXSQL.xml
+++ b/binsrc/bpel/tests/processXSQL/processXSQL.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSQL/processXSQL_ini.sql b/binsrc/bpel/tests/processXSQL/processXSQL_ini.sql
index c9389a5..f8d3f88 100644
--- a/binsrc/bpel/tests/processXSQL/processXSQL_ini.sql
+++ b/binsrc/bpel/tests/processXSQL/processXSQL_ini.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: processXSQL_ini.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSQL/selectCustomer.xsql b/binsrc/bpel/tests/processXSQL/selectCustomer.xsql
index cd8aa23..dbfe3cf 100644
--- a/binsrc/bpel/tests/processXSQL/selectCustomer.xsql
+++ b/binsrc/bpel/tests/processXSQL/selectCustomer.xsql
@@ -4,7 +4,7 @@
   -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
   -  project.
   -  
-  -  Copyright (C) 1998-2006 OpenLink Software
+  -  Copyright (C) 1998-2012 OpenLink Software
   -  
   -  This project is free software; you can redistribute it and/or modify it
   -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/processXSQL/selectProduct.xsql b/binsrc/bpel/tests/processXSQL/selectProduct.xsql
index af3a6ba..d42ae18 100644
--- a/binsrc/bpel/tests/processXSQL/selectProduct.xsql
+++ b/binsrc/bpel/tests/processXSQL/selectProduct.xsql
@@ -4,7 +4,7 @@
   -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
   -  project.
   -  
-  -  Copyright (C) 1998-2006 OpenLink Software
+  -  Copyright (C) 1998-2012 OpenLink Software
   -  
   -  This project is free software; you can redistribute it and/or modify it
   -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/sqlexec/bpel.xml b/binsrc/bpel/tests/sqlexec/bpel.xml
index 5266c11..be8b88b 100644
--- a/binsrc/bpel/tests/sqlexec/bpel.xml
+++ b/binsrc/bpel/tests/sqlexec/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/sqlexec/inventory.bpel b/binsrc/bpel/tests/sqlexec/inventory.bpel
index 3a0d509..121b323 100644
--- a/binsrc/bpel/tests/sqlexec/inventory.bpel
+++ b/binsrc/bpel/tests/sqlexec/inventory.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/sqlexec/inventory.wsdl b/binsrc/bpel/tests/sqlexec/inventory.wsdl
index 4572f9a..c853957 100644
--- a/binsrc/bpel/tests/sqlexec/inventory.wsdl
+++ b/binsrc/bpel/tests/sqlexec/inventory.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/sqlexec/options.xml b/binsrc/bpel/tests/sqlexec/options.xml
index 46d9823..199c9b4 100644
--- a/binsrc/bpel/tests/sqlexec/options.xml
+++ b/binsrc/bpel/tests/sqlexec/options.xml
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/sqlexec/sqlexec.vsp b/binsrc/bpel/tests/sqlexec/sqlexec.vsp
index 0c49254..91d5a62 100644
--- a/binsrc/bpel/tests/sqlexec/sqlexec.vsp
+++ b/binsrc/bpel/tests/sqlexec/sqlexec.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: sqlexec.vsp,v 1.3 2006/08/15 19:30:33 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/sqlexec/sqlexec.xml b/binsrc/bpel/tests/sqlexec/sqlexec.xml
index cf0ff8a..0bf09b3 100644
--- a/binsrc/bpel/tests/sqlexec/sqlexec.xml
+++ b/binsrc/bpel/tests/sqlexec/sqlexec.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/sqlexec/store.sql b/binsrc/bpel/tests/sqlexec/store.sql
index 4fd0a58..882a801 100644
--- a/binsrc/bpel/tests/sqlexec/store.sql
+++ b/binsrc/bpel/tests/sqlexec/store.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: store.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/sqlexec/store.vsp b/binsrc/bpel/tests/sqlexec/store.vsp
index 86834a0..881e717 100644
--- a/binsrc/bpel/tests/sqlexec/store.vsp
+++ b/binsrc/bpel/tests/sqlexec/store.vsp
@@ -1,11 +1,11 @@
 <?xml version="1.0"?><?vsp 
 --  
---  $Id: store.vsp,v 1.3 2006/08/15 19:30:33 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/t1/buyer/Buyer.bpel b/binsrc/bpel/tests/t1/buyer/Buyer.bpel
index fbfa43f..bfe8c97 100644
--- a/binsrc/bpel/tests/t1/buyer/Buyer.bpel
+++ b/binsrc/bpel/tests/t1/buyer/Buyer.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/t1/buyer/Buyer.wsdl b/binsrc/bpel/tests/t1/buyer/Buyer.wsdl
index bf04240..ce55a74 100644
--- a/binsrc/bpel/tests/t1/buyer/Buyer.wsdl
+++ b/binsrc/bpel/tests/t1/buyer/Buyer.wsdl
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/t1/buyer/ini.sql b/binsrc/bpel/tests/t1/buyer/ini.sql
index f1b1a9f..b1a6cf1 100644
--- a/binsrc/bpel/tests/t1/buyer/ini.sql
+++ b/binsrc/bpel/tests/t1/buyer/ini.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: ini.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/t1/buyer/supplyCorrelation.wsdl b/binsrc/bpel/tests/t1/buyer/supplyCorrelation.wsdl
index a8e96ee..4117bf6 100644
--- a/binsrc/bpel/tests/t1/buyer/supplyCorrelation.wsdl
+++ b/binsrc/bpel/tests/t1/buyer/supplyCorrelation.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/t1/buyer/supplyMessages.wsdl b/binsrc/bpel/tests/t1/buyer/supplyMessages.wsdl
index f452b55..1f59b7a 100644
--- a/binsrc/bpel/tests/t1/buyer/supplyMessages.wsdl
+++ b/binsrc/bpel/tests/t1/buyer/supplyMessages.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/t1/seller/Seller.bpel b/binsrc/bpel/tests/t1/seller/Seller.bpel
index 9fc38bf..5475fd8 100644
--- a/binsrc/bpel/tests/t1/seller/Seller.bpel
+++ b/binsrc/bpel/tests/t1/seller/Seller.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/t1/seller/Seller.wsdl b/binsrc/bpel/tests/t1/seller/Seller.wsdl
index cc8f9c9..6010b0b 100644
--- a/binsrc/bpel/tests/t1/seller/Seller.wsdl
+++ b/binsrc/bpel/tests/t1/seller/Seller.wsdl
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/t1/seller/ini.sql b/binsrc/bpel/tests/t1/seller/ini.sql
index 4214b7b..bf0cb62 100644
--- a/binsrc/bpel/tests/t1/seller/ini.sql
+++ b/binsrc/bpel/tests/t1/seller/ini.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: ini.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/t1/seller/supplyCorrelation.wsdl b/binsrc/bpel/tests/t1/seller/supplyCorrelation.wsdl
index a8e96ee..4117bf6 100644
--- a/binsrc/bpel/tests/t1/seller/supplyCorrelation.wsdl
+++ b/binsrc/bpel/tests/t1/seller/supplyCorrelation.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/t1/seller/supplyMessages.wsdl b/binsrc/bpel/tests/t1/seller/supplyMessages.wsdl
index f452b55..1f59b7a 100644
--- a/binsrc/bpel/tests/t1/seller/supplyMessages.wsdl
+++ b/binsrc/bpel/tests/t1/seller/supplyMessages.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/t2/FlowSample.bpel b/binsrc/bpel/tests/t2/FlowSample.bpel
index e743c38..9d1a2a8 100644
--- a/binsrc/bpel/tests/t2/FlowSample.bpel
+++ b/binsrc/bpel/tests/t2/FlowSample.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/t2/FlowSample.wsdl b/binsrc/bpel/tests/t2/FlowSample.wsdl
index 0ceab05..915dc34 100644
--- a/binsrc/bpel/tests/t2/FlowSample.wsdl
+++ b/binsrc/bpel/tests/t2/FlowSample.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/t2/bpel.xml b/binsrc/bpel/tests/t2/bpel.xml
index 79b46c0..aef1322 100644
--- a/binsrc/bpel/tests/t2/bpel.xml
+++ b/binsrc/bpel/tests/t2/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/t2/build.xml b/binsrc/bpel/tests/t2/build.xml
index f6cc83d..d6f7667 100644
--- a/binsrc/bpel/tests/t2/build.xml
+++ b/binsrc/bpel/tests/t2/build.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/t2/ini.sql b/binsrc/bpel/tests/t2/ini.sql
index af6e618..ea62be1 100644
--- a/binsrc/bpel/tests/t2/ini.sql
+++ b/binsrc/bpel/tests/t2/ini.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: ini.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tevent/AsyncBPELService.wsdl b/binsrc/bpel/tests/tevent/AsyncBPELService.wsdl
index 005756a..f03d5f2 100644
--- a/binsrc/bpel/tests/tevent/AsyncBPELService.wsdl
+++ b/binsrc/bpel/tests/tevent/AsyncBPELService.wsdl
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tevent/AsyncBPELService/AsyncBPELService.bpel b/binsrc/bpel/tests/tevent/AsyncBPELService/AsyncBPELService.bpel
index 77c5fb8..0257804 100644
--- a/binsrc/bpel/tests/tevent/AsyncBPELService/AsyncBPELService.bpel
+++ b/binsrc/bpel/tests/tevent/AsyncBPELService/AsyncBPELService.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tevent/AsyncBPELService/AsyncBPELService.wsdl b/binsrc/bpel/tests/tevent/AsyncBPELService/AsyncBPELService.wsdl
index da54899..20354c4 100644
--- a/binsrc/bpel/tests/tevent/AsyncBPELService/AsyncBPELService.wsdl
+++ b/binsrc/bpel/tests/tevent/AsyncBPELService/AsyncBPELService.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tevent/AsyncBPELService/bpel.xml b/binsrc/bpel/tests/tevent/AsyncBPELService/bpel.xml
index 613b066..9905d36 100644
--- a/binsrc/bpel/tests/tevent/AsyncBPELService/bpel.xml
+++ b/binsrc/bpel/tests/tevent/AsyncBPELService/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tevent/Event.bpel b/binsrc/bpel/tests/tevent/Event.bpel
index 8ef6bcc..5d72bf7 100644
--- a/binsrc/bpel/tests/tevent/Event.bpel
+++ b/binsrc/bpel/tests/tevent/Event.bpel
@@ -3,7 +3,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tevent/Event.wsdl b/binsrc/bpel/tests/tevent/Event.wsdl
index 78d1530..692c465 100644
--- a/binsrc/bpel/tests/tevent/Event.wsdl
+++ b/binsrc/bpel/tests/tevent/Event.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tevent/bpel.xml b/binsrc/bpel/tests/tevent/bpel.xml
index e0aed3f..d3cacb2 100644
--- a/binsrc/bpel/tests/tevent/bpel.xml
+++ b/binsrc/bpel/tests/tevent/bpel.xml
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tevent/tevent.sql b/binsrc/bpel/tests/tevent/tevent.sql
index a082373..c463967 100644
--- a/binsrc/bpel/tests/tevent/tevent.sql
+++ b/binsrc/bpel/tests/tevent/tevent.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: tevent.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tpcc/Sut.bpel b/binsrc/bpel/tests/tpcc/Sut.bpel
index 4ac2e95..c1d4e4e 100644
--- a/binsrc/bpel/tests/tpcc/Sut.bpel
+++ b/binsrc/bpel/tests/tpcc/Sut.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tpcc/Sut.wsdl b/binsrc/bpel/tests/tpcc/Sut.wsdl
index dee9f85..cc35a97 100644
--- a/binsrc/bpel/tests/tpcc/Sut.wsdl
+++ b/binsrc/bpel/tests/tpcc/Sut.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tpcc/chk.sql b/binsrc/bpel/tests/tpcc/chk.sql
index f25c27e..c4190af 100644
--- a/binsrc/bpel/tests/tpcc/chk.sql
+++ b/binsrc/bpel/tests/tpcc/chk.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: chk.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tpcc/dbservices.wsdl b/binsrc/bpel/tests/tpcc/dbservices.wsdl
index 288056b..f1c9545 100644
--- a/binsrc/bpel/tests/tpcc/dbservices.wsdl
+++ b/binsrc/bpel/tests/tpcc/dbservices.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tpcc/delqr.sql b/binsrc/bpel/tests/tpcc/delqr.sql
index 3c5ef47..4959581 100644
--- a/binsrc/bpel/tests/tpcc/delqr.sql
+++ b/binsrc/bpel/tests/tpcc/delqr.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: delqr.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tpcc/endp.sql b/binsrc/bpel/tests/tpcc/endp.sql
index 99c3307..6affb9e 100644
--- a/binsrc/bpel/tests/tpcc/endp.sql
+++ b/binsrc/bpel/tests/tpcc/endp.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: endp.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tpcc/load.sql b/binsrc/bpel/tests/tpcc/load.sql
index 562bd94..dabc087 100644
--- a/binsrc/bpel/tests/tpcc/load.sql
+++ b/binsrc/bpel/tests/tpcc/load.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: load.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tpcc/procedures-list-DB.sql b/binsrc/bpel/tests/tpcc/procedures-list-DB.sql
index 9a9b1b0..f3a2c68 100644
--- a/binsrc/bpel/tests/tpcc/procedures-list-DB.sql
+++ b/binsrc/bpel/tests/tpcc/procedures-list-DB.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: procedures-list-DB.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tpcc/procedures-list-TD.sql b/binsrc/bpel/tests/tpcc/procedures-list-TD.sql
index e5b05c1..d75f6f6 100644
--- a/binsrc/bpel/tests/tpcc/procedures-list-TD.sql
+++ b/binsrc/bpel/tests/tpcc/procedures-list-TD.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: procedures-list-TD.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tpcc/qr.sql b/binsrc/bpel/tests/tpcc/qr.sql
index df54ef4..8125080 100644
--- a/binsrc/bpel/tests/tpcc/qr.sql
+++ b/binsrc/bpel/tests/tpcc/qr.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: qr.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tpcc/run.sh b/binsrc/bpel/tests/tpcc/run.sh
index e90f8a1..217e49c 100755
--- a/binsrc/bpel/tests/tpcc/run.sh
+++ b/binsrc/bpel/tests/tpcc/run.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #  
-#  $Id: run.sh,v 1.4 2009/04/14 12:16:49 source Exp $
+#  $Id$
 #
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2009 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tpcc/tdservices.wsdl b/binsrc/bpel/tests/tpcc/tdservices.wsdl
index 4d64a9a..f764cb6 100644
--- a/binsrc/bpel/tests/tpcc/tdservices.wsdl
+++ b/binsrc/bpel/tests/tpcc/tdservices.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tpcc/test.sql b/binsrc/bpel/tests/tpcc/test.sql
index a51de33..a184fdd 100644
--- a/binsrc/bpel/tests/tpcc/test.sql
+++ b/binsrc/bpel/tests/tpcc/test.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: test.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tpcc/test1.sql b/binsrc/bpel/tests/tpcc/test1.sql
index 9faa248..b8e20cd 100644
--- a/binsrc/bpel/tests/tpcc/test1.sql
+++ b/binsrc/bpel/tests/tpcc/test1.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: test1.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tver/service.wsdl b/binsrc/bpel/tests/tver/service.wsdl
index a221b82..d23cb7b 100644
--- a/binsrc/bpel/tests/tver/service.wsdl
+++ b/binsrc/bpel/tests/tver/service.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tver/tver.bpel b/binsrc/bpel/tests/tver/tver.bpel
index 82357e8..3067a82 100644
--- a/binsrc/bpel/tests/tver/tver.bpel
+++ b/binsrc/bpel/tests/tver/tver.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tver/tver.sql b/binsrc/bpel/tests/tver/tver.sql
index eaf5cd2..a0288c1 100644
--- a/binsrc/bpel/tests/tver/tver.sql
+++ b/binsrc/bpel/tests/tver/tver.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: tver.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tver/tver.wsdl b/binsrc/bpel/tests/tver/tver.wsdl
index 5b5d013..c062b3b 100644
--- a/binsrc/bpel/tests/tver/tver.wsdl
+++ b/binsrc/bpel/tests/tver/tver.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tver/tvernew1.bpel b/binsrc/bpel/tests/tver/tvernew1.bpel
index 1406a90..ad7efca 100644
--- a/binsrc/bpel/tests/tver/tvernew1.bpel
+++ b/binsrc/bpel/tests/tver/tvernew1.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/tver/tvernew2.bpel b/binsrc/bpel/tests/tver/tvernew2.bpel
index b22d982..a26f0e7 100644
--- a/binsrc/bpel/tests/tver/tvernew2.bpel
+++ b/binsrc/bpel/tests/tver/tvernew2.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/wsrm/doc.bpel b/binsrc/bpel/tests/wsrm/doc.bpel
index 3b47abe..f96e929 100644
--- a/binsrc/bpel/tests/wsrm/doc.bpel
+++ b/binsrc/bpel/tests/wsrm/doc.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/wsrm/doc.wsdl b/binsrc/bpel/tests/wsrm/doc.wsdl
index c354725..a5b4c3e 100644
--- a/binsrc/bpel/tests/wsrm/doc.wsdl
+++ b/binsrc/bpel/tests/wsrm/doc.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/wsrm/wsrmdoc.sql b/binsrc/bpel/tests/wsrm/wsrmdoc.sql
index 43da1f4..609ce55 100644
--- a/binsrc/bpel/tests/wsrm/wsrmdoc.sql
+++ b/binsrc/bpel/tests/wsrm/wsrmdoc.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: wsrmdoc.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/wsrm/wsrmsvc.wsdl b/binsrc/bpel/tests/wsrm/wsrmsvc.wsdl
index 86075d5..8ff2f8d 100644
--- a/binsrc/bpel/tests/wsrm/wsrmsvc.wsdl
+++ b/binsrc/bpel/tests/wsrm/wsrmsvc.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/wss/doc.bpel b/binsrc/bpel/tests/wss/doc.bpel
index 33fa06f..a19d896 100644
--- a/binsrc/bpel/tests/wss/doc.bpel
+++ b/binsrc/bpel/tests/wss/doc.bpel
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/wss/doc.wsdl b/binsrc/bpel/tests/wss/doc.wsdl
index c354725..a5b4c3e 100644
--- a/binsrc/bpel/tests/wss/doc.wsdl
+++ b/binsrc/bpel/tests/wss/doc.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/wss/secdoc.sql b/binsrc/bpel/tests/wss/secdoc.sql
index 1c1a880..5627c40 100644
--- a/binsrc/bpel/tests/wss/secdoc.sql
+++ b/binsrc/bpel/tests/wss/secdoc.sql
@@ -1,10 +1,10 @@
 --  
---  $Id: secdoc.sql,v 1.2 2006/08/16 07:58:09 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/tests/wss/secsvc.wsdl b/binsrc/bpel/tests/wss/secsvc.wsdl
index 32dac15..66e77ba 100644
--- a/binsrc/bpel/tests/wss/secsvc.wsdl
+++ b/binsrc/bpel/tests/wss/secsvc.wsdl
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/time.vsp b/binsrc/bpel/time.vsp
index 9313c0f..e2b5d3d 100644
--- a/binsrc/bpel/time.vsp
+++ b/binsrc/bpel/time.vsp
@@ -1,11 +1,11 @@
 <?vsp 
 --  
---  $Id: time.vsp,v 1.4 2007/03/14 14:23:25 source Exp $
+--  $Id$
 --  
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/upload_new.vspx b/binsrc/bpel/upload_new.vspx
index a925dd7..ec04bef 100644
--- a/binsrc/bpel/upload_new.vspx
+++ b/binsrc/bpel/upload_new.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: upload_new.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/view.vspx b/binsrc/bpel/view.vspx
index c05ee9a..e7a31ba 100644
--- a/binsrc/bpel/view.vspx
+++ b/binsrc/bpel/view.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: view.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/virtuoso_splash.vspx b/binsrc/bpel/virtuoso_splash.vspx
index b15b958..0f9cf92 100644
--- a/binsrc/bpel/virtuoso_splash.vspx
+++ b/binsrc/bpel/virtuoso_splash.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: virtuoso_splash.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/wsdl.xsd b/binsrc/bpel/wsdl.xsd
index 7c8207b..c41d20e 100644
--- a/binsrc/bpel/wsdl.xsd
+++ b/binsrc/bpel/wsdl.xsd
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/wss_keys.vspx b/binsrc/bpel/wss_keys.vspx
index 95abf89..1dcc4ca 100644
--- a/binsrc/bpel/wss_keys.vspx
+++ b/binsrc/bpel/wss_keys.vspx
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -
- -  $Id: wss_keys.vspx,v 1.2 2006/08/16 00:04:14 source Exp $
+ -  $Id$
  -  
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/xsql.sql b/binsrc/bpel/xsql.sql
index ee27075..83ca3d9 100644
--- a/binsrc/bpel/xsql.sql
+++ b/binsrc/bpel/xsql.sql
@@ -2,7 +2,7 @@
 --  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 --  project.
 --  
---  Copyright (C) 1998-2006 OpenLink Software
+--  Copyright (C) 1998-2012 OpenLink Software
 --  
 --  This project is free software; you can redistribute it and/or modify it
 --  under the terms of the GNU General Public License as published by the
@@ -21,7 +21,7 @@
 create function SYS_XSQL_LIB_VERSION ()
 {
   return subseq ('
---#$$Id: xsql.sql,v 1.1.1.1 2006/04/11 17:56:09 source Exp $$',
+--#$$Id$$',
   4);
 }
 ;
diff --git a/binsrc/bpel/xsql.xsd b/binsrc/bpel/xsql.xsd
index 197bfde..ada0df2 100644
--- a/binsrc/bpel/xsql.xsd
+++ b/binsrc/bpel/xsql.xsd
@@ -4,7 +4,7 @@
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/bpel/xsql2virtPL.xsl b/binsrc/bpel/xsql2virtPL.xsl
index 8998b93..39c8b1c 100644
--- a/binsrc/bpel/xsql2virtPL.xsl
+++ b/binsrc/bpel/xsql2virtPL.xsl
@@ -1,12 +1,12 @@
 <?xml version="1.0"?>
 <!--
  -  
- -  $Id: xsql2virtPL.xsl,v 1.2 2006/08/15 22:09:20 source Exp $
+ -  $Id$
  -
  -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  -  project.
  -  
- -  Copyright (C) 1998-2006 OpenLink Software
+ -  Copyright (C) 1998-2012 OpenLink Software
  -  
  -  This project is free software; you can redistribute it and/or modify it
  -  under the terms of the GNU General Public License as published by the
@@ -30,7 +30,7 @@
   <xsl:param name="page-name" select="'unnamed'"/>
   <xsl:param name="proc-name" select="'XSQL__SAMPLE'"/>
   <xsl:variable name="mylibversion"><xsl:value-of select="xsql:lib-version"/></xsl:variable>
-  <xsl:variable name="myversion">$Id: xsql2virtPL.xsl,v 1.2 2006/08/15 22:09:20 source Exp $</xsl:variable>
+  <xsl:variable name="myversion">$Id$</xsl:variable>
 
   
   <xsl:template match="/">
diff --git a/binsrc/cached_resources/Makefile.am b/binsrc/cached_resources/Makefile.am
index 82bc815..f52d13e 100644
--- a/binsrc/cached_resources/Makefile.am
+++ b/binsrc/cached_resources/Makefile.am
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/cached_resources/Makefile.in b/binsrc/cached_resources/Makefile.in
index ba05917..452e1d7 100644
--- a/binsrc/cached_resources/Makefile.in
+++ b/binsrc/cached_resources/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.10 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,7 +18,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -38,9 +37,8 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -70,7 +68,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/libsrc/Dk/config.h
 CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
 SCRIPTS = $(noinst_SCRIPTS)
 SOURCES =
 DIST_SOURCES =
@@ -162,7 +159,6 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -246,7 +242,6 @@ libexecdir = @libexecdir@
 libxml_file = @libxml_file@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
@@ -267,7 +262,6 @@ srcdir = @srcdir@
 srvrlibs = @srvrlibs@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 vaddir = @vaddir@
@@ -303,14 +297,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu binsrc/cached_resources/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu binsrc/cached_resources/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  binsrc/cached_resources/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  binsrc/cached_resources/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -328,7 +322,6 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -358,17 +351,13 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
 	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
 	    || exit 1; \
 	  fi; \
 	done
@@ -398,7 +387,6 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -416,8 +404,6 @@ dvi-am:
 
 html: html-am
 
-html-am:
-
 info: info-am
 
 info-am:
@@ -426,28 +412,18 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
-install-dvi-am:
-
 install-exec-am:
 
 install-html: install-html-am
 
-install-html-am:
-
 install-info: install-info-am
 
-install-info-am:
-
 install-man:
 
 install-pdf: install-pdf-am
 
-install-pdf-am:
-
 install-ps: install-ps-am
 
-install-ps-am:
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -468,7 +444,7 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: all check install install-am install-strip
+.MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
 	distclean distclean-generic distclean-libtool distdir dvi \
@@ -498,7 +474,6 @@ cached_resources.c: \
 .PHONY: clean
 clean:
 	-rm -f *.tmp
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/binsrc/cached_resources/cache_gen.sh b/binsrc/cached_resources/cache_gen.sh
index 3cd5c4f..69ec1b5 100755
--- a/binsrc/cached_resources/cache_gen.sh
+++ b/binsrc/cached_resources/cache_gen.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 #
-#  $Id: cache_gen.sh,v 1.4.2.3 2011/04/11 15:05:06 source Exp $
+#  $Id$
 #  
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2009 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/cached_resources/cached_resources.c b/binsrc/cached_resources/cached_resources.c
index b45b33f..d6875b4 100644
--- a/binsrc/cached_resources/cached_resources.c
+++ b/binsrc/cached_resources/cached_resources.c
@@ -549,8 +549,8 @@ static const char * cres_xhtml1_frameset_dtd[] =
 "   PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\"\n",
 "   SYSTEM \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\"\n",
 "\n",
-"   \044Revision: 1.1.1.1.2.1 \044\n",
-"   \044Date: 2009/04/15 14:32:21 \044\n",
+"   \044Revision\044\n",
+"   \044Date\044\n",
 "\n",
 "-->\n",
 "\n",
@@ -1789,8 +1789,8 @@ static const char * cres_xhtml1_strict_dtd[] =
 "   PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n",
 "   SYSTEM \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"\n",
 "\n",
-"   \044Revision: 1.1.1.1.2.1 \044\n",
-"   \044Date: 2009/04/15 14:32:21 \044\n",
+"   \044Revision\044\n",
+"   \044Date\044\n",
 "\n",
 "-->\n",
 "\n",
@@ -2772,8 +2772,8 @@ static const char * cres_xhtml1_transitional_dtd[] =
 "   PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n",
 "   SYSTEM \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"\n",
 "\n",
-"   \044Revision: 1.1.1.1.2.1 \044\n",
-"   \044Date: 2009/04/15 14:32:21 \044\n",
+"   \044Revision\044\n",
+"   \044Date\044\n",
 "\n",
 "-->\n",
 "\n",
@@ -4672,7 +4672,7 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "#  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)\n",
 "#  project.\n",
 "#  \n",
-"#  Copyright (C) 1998-2009 OpenLink Software\n",
+"#  Copyright (C) 1998-2012 OpenLink Software\n",
 "#  \n",
 "#  This project is free software; you can redistribute it and/or modify it\n",
 "#  under the terms of the GNU General Public License as published by the\n",
@@ -4703,6 +4703,8 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "virtrdf:version virtrdf:loadAs virtrdf:jsoTriple .\n",
 "virtrdf:isSpecialPredicate virtrdf:loadAs virtrdf:jsoTriple .\n",
 "virtrdf:isGcResistantType virtrdf:loadAs virtrdf:jsoTriple .\n",
+"virtrdf:isEndpointOfService virtrdf:loadAs virtrdf:jsoTriple .\n",
+"virtrdf:dialect virtrdf:loadAs virtrdf:jsoTriple .\n",
 "\n",
 "bif:contains virtrdf:isSpecialPredicate bif:contains .\n",
 "bif:xcontains virtrdf:isSpecialPredicate bif:xcontains .\n",
@@ -4715,7 +4717,7 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "\n",
 "# Don't forget to change version, both here and in DB.DBA.SPARQL_RELOAD_QM_GRAPH, to force reload.\n",
 "<http://www.openlinksw.com/sparql/virtrdf-data-formats.ttl>\n",
-"  virtrdf:version '2011-09-01 0001v6g' ;\n",
+"  virtrdf:version '2012-05-17 0001v6g' ;\n",
 "  virtrdf:item\n",
 "    rdfdf:default-iid ,				rdfdf:default-iid-nullable ,\n",
 "    rdfdf:default-iid-nonblank ,		rdfdf:default-iid-nonblank-nullable ,\n",
@@ -4780,7 +4782,7 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfSqlvalTmpl \" __id2i (^{alias-dot}^^{column}^)\";			# STRING REQUIRED \"sqlval\" value template, can be NULL\n",
 "  virtrdf:qmfBoolTmpl \" NULL\";							# STRING REQUIRED Boolean value template, can be NULL\n",
 "# Templates of booleans that tell whether the short is of some sort:\n",
-"  virtrdf:qmfIsrefOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is ref\n",
+"  virtrdf:qmfIsrefOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" (^{tree}^ < min_bnode_iri_id ())\";			# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" (^{tree}^ >= min_bnode_iri_id ())\";			# STRING REQUIRED ... whether the short is blank node ref\n",
 "  virtrdf:qmfIslitOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is literal\n",
@@ -4960,7 +4962,8 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";					# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIsnumericOfShortTmpl \" 0\";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" DB.DBA.RDF_MAKE_LONG_OF_SQLVAL (^{tree}^)\";	# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" ^{tree}^\";		# STRING REQUIRED ... SQL value from short\n",
@@ -5026,7 +5029,7 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is literal\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" DB.DBA.RDF_MAKE_LONG_OF_TYPEDSQLVAL (^{tree-0}^, __i2idn (^{tree-1}^), null)\";	# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" ^{tree-0}^\";					# STRING REQUIRED ... SQL value from short\n",
@@ -5090,7 +5093,8 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIsnumericOfShortTmpl \" 0\";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" DB.DBA.RDF_MAKE_LONG_OF_TYPEDSQLVAL (^{tree-0}^, null, ^{tree-1}^)\";	# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" ^{tree-0}^\";					# STRING REQUIRED ... SQL value from short\n",
@@ -5254,7 +5258,8 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIsnumericOfShortTmpl \" 0\";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" DB.DBA.RDF_MAKE_LONG_OF_SQLVAL (^{tree}^)\";	# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" ^{tree}^\";					# STRING REQUIRED ... SQL value from short\n",
@@ -5320,7 +5325,7 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is literal\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" DB.DBA.RDF_MAKE_LONG_OF_TYPEDSQLVAL (^{tree-0}^, __i2idn (^{tree-1}^), null)\";	# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" ^{tree-0}^\";					# STRING REQUIRED ... SQL value from short\n",
@@ -5384,7 +5389,7 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is literal\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" DB.DBA.RDF_MAKE_LONG_OF_TYPEDSQLVAL (^{tree-0}^, null, ^{tree-1}^)\";	# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" ^{tree-0}^\";					# STRING REQUIRED ... SQL value from short\n",
@@ -5543,23 +5548,24 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfShortTmpl \" ^{alias-dot}^^{column}^\";				# STRING REQUIRED \"short\" value template, can be NULL\n",
 "  virtrdf:qmfLongTmpl \" ^{alias-dot}^^{column}^\";				# STRING REQUIRED \"long\" value template, can be NULL\n",
 "  virtrdf:qmfSqlvalTmpl \" cast (^{alias-dot}^^{column}^ as varbinary)\";		# STRING REQUIRED \"sqlval\" value template, can be NULL\n",
-"  virtrdf:qmfBoolTmpl \" 1\";							# STRING REQUIRED Boolean value template, can be NULL\n",
+"  virtrdf:qmfBoolTmpl \" isnotnull (^{tree}^)\";					# STRING REQUIRED Boolean value template, can be NULL\n",
 "# Templates of booleans that tell whether the short is of some sort:\n",
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";					# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIsnumericOfShortTmpl \" 0\";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" ^{tree}^\";					# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" cast (^{tree}^ as varbinary)\";			# STRING REQUIRED ... SQL value from short\n",
 "  virtrdf:qmfDatatypeOfShortTmpl \" 'http://www.w3.org/2001/XMLSchema#octetStream'\";  # STRING REQUIRED ... datatype IRI STRING from short\n",
 "  virtrdf:qmfLanguageOfShortTmpl \" NULL\";					# STRING REQUIRED ... language ID STRING from short\n",
-"  virtrdf:qmfBoolOfShortTmpl \" 1\";						# STRING REQUIRED ... boolean value from short\n",
+"  virtrdf:qmfBoolOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... boolean value from short\n",
 "  virtrdf:qmfIidOfShortTmpl \" NULL\";\n",
 "  virtrdf:qmfUriOfShortTmpl \" NULL\";						# STRING REQUIRED ... URI STRING from short\n",
 "  virtrdf:qmfStrsqlvalOfShortTmpl \" cast (^{tree}^ as varchar)\";		# STRING REQUIRED ... SQL representation of the STRING value of short\n",
 "# Templates of expressions that make short values from other representations\n",
-"  virtrdf:qmfShortOfTypedsqlvalTmpl \" (case (^{datatype-of-tree}^)) when 'http://www.w3.org/2001/XMLSchema#octetStream' then ^{sqlval-of-tree}^ else NULL end)\";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language\n",
+"  virtrdf:qmfShortOfTypedsqlvalTmpl \" (case (^{datatype-of-tree}^) when 'http://www.w3.org/2001/XMLSchema#octetStream' then ^{sqlval-of-tree}^ else NULL end)\";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language\n",
 "  virtrdf:qmfShortOfSqlvalTmpl \" (case (__tag (^{sqlval-of-tree}^)) when 131 then (^{sqlval-of-tree}^) else NULL end)\";	# STRING REQUIRED ... makes short by sqlvalue with no language and a datatype specified by SQL type\n",
 "  virtrdf:qmfShortOfLongTmpl \" (case (__tag (^{tree}^)) when 131 then (^{tree}^) else NULL end)\";	# STRING REQUIRED ... makes short by long\n",
 "  virtrdf:qmfShortOfUriTmpl \" NULL\";						# STRING REQUIRED ... makes short by uri\n",
@@ -5608,10 +5614,11 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfSqlvalTmpl \" __spfi (^{custom-string-1}^, ^{alias-dot}^^{column}^)\";	# STRING REQUIRED \"sqlval\" value template, can be NULL\n",
 "  virtrdf:qmfBoolTmpl \" NULL\";							# STRING REQUIRED Boolean value template, can be NULL\n",
 "# Templates of booleans that tell whether the short is of some sort:\n",
-"  virtrdf:qmfIsrefOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is ref\n",
-"  virtrdf:qmfIsuriOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is uri\n",
+"  virtrdf:qmfIsrefOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is ref\n",
+"  virtrdf:qmfIsuriOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";					# STRING REQUIRED ... whether the short is blank node ref\n",
 "  virtrdf:qmfIslitOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIsnumericOfShortTmpl \" 0\";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" __i2id (__spfi (^{custom-string-1}^, ^{tree}^))\";		# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" __spfi (^{custom-string-1}^, ^{tree}^)\";	# STRING REQUIRED ... SQL value from short\n",
@@ -5682,7 +5689,8 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";					# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIsnumericOfShortTmpl \" 0\";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" __spf (^{custom-string-1}^, ^{tree}^)\";		# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" __spf (^{custom-string-1}^, ^{tree}^)\";	# STRING REQUIRED ... SQL value from short\n",
@@ -5799,7 +5807,7 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";					# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is literal\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" ^{tree}^\";		# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" ^{tree}^\";		# STRING REQUIRED ... SQL value from short\n",
@@ -5810,7 +5818,7 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfUriOfShortTmpl \" NULL\";						# STRING REQUIRED ... URI STRING from short\n",
 "  virtrdf:qmfStrsqlvalOfShortTmpl \" cast (^{tree}^ as varchar)\";		# STRING REQUIRED ... SQL representation of the STRING value of short\n",
 "# Templates of expressions that make short values from other representations\n",
-"  virtrdf:qmfShortOfTypedsqlvalTmpl \" (case (^{datatype-of-tree}^)) when 'http://www.w3.org/2001/XMLSchema#integer' then ^{sqlval-of-tree}^ else NULL end)\";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language\n",
+"  virtrdf:qmfShortOfTypedsqlvalTmpl \" (case (^{datatype-of-tree}^) when 'http://www.w3.org/2001/XMLSchema#integer' then ^{sqlval-of-tree}^ else NULL end)\";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language\n",
 "  virtrdf:qmfShortOfSqlvalTmpl \" ^{sqlval-of-tree}^\";				# STRING REQUIRED ... makes short by sqlvalue with no language and a datatype specified by SQL type\n",
 "  virtrdf:qmfShortOfLongTmpl \" ^{tree}^\";					# STRING REQUIRED ... makes short by long\n",
 "  virtrdf:qmfShortOfUriTmpl \" NULL\";						# STRING REQUIRED ... makes short by uri\n",
@@ -5953,7 +5961,8 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";					# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIsnumericOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" ^{tree}^\";		# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" ^{tree}^\";		# STRING REQUIRED ... SQL value from short\n",
@@ -5964,7 +5973,7 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfUriOfShortTmpl \" NULL\";						# STRING REQUIRED ... URI STRING from short\n",
 "  virtrdf:qmfStrsqlvalOfShortTmpl \" cast (^{tree}^ as varchar)\";		# STRING REQUIRED ... SQL representation of the STRING value of short\n",
 "# Templates of expressions that make short values from other representations\n",
-"  virtrdf:qmfShortOfTypedsqlvalTmpl \" (case (^{datatype-of-tree}^)) when 'http://www.w3.org/2001/XMLSchema#double' then ^{sqlval-of-tree}^ else NULL end)\";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language\n",
+"  virtrdf:qmfShortOfTypedsqlvalTmpl \" (case (^{datatype-of-tree}^) when 'http://www.w3.org/2001/XMLSchema#double' then ^{sqlval-of-tree}^ else NULL end)\";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language\n",
 "  virtrdf:qmfShortOfSqlvalTmpl \" ^{sqlval-of-tree}^\";				# STRING REQUIRED ... makes short by sqlvalue with no language and a datatype specified by SQL type\n",
 "  virtrdf:qmfShortOfLongTmpl \" ^{tree}^\";					# STRING REQUIRED ... makes short by long\n",
 "  virtrdf:qmfShortOfUriTmpl \" NULL\";						# STRING REQUIRED ... makes short by uri\n",
@@ -6020,7 +6029,8 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";					# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIsnumericOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" ^{tree}^\";		# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" ^{tree}^\";		# STRING REQUIRED ... SQL value from short\n",
@@ -6031,7 +6041,7 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfUriOfShortTmpl \" NULL\";						# STRING REQUIRED ... URI STRING from short\n",
 "  virtrdf:qmfStrsqlvalOfShortTmpl \" cast (^{tree}^ as varchar)\";		# STRING REQUIRED ... SQL representation of the STRING value of short\n",
 "# Templates of expressions that make short values from other representations\n",
-"  virtrdf:qmfShortOfTypedsqlvalTmpl \" (case (^{datatype-of-tree}^)) when 'http://www.w3.org/2001/XMLSchema#numeric' then ^{sqlval-of-tree}^ else NULL end)\";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language\n",
+"  virtrdf:qmfShortOfTypedsqlvalTmpl \" (case (^{datatype-of-tree}^) when 'http://www.w3.org/2001/XMLSchema#numeric' then ^{sqlval-of-tree}^ else NULL end)\";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language\n",
 "  virtrdf:qmfShortOfSqlvalTmpl \" ^{sqlval-of-tree}^\";				# STRING REQUIRED ... makes short by sqlvalue with no language and a datatype specified by SQL type\n",
 "  virtrdf:qmfShortOfLongTmpl \" ^{tree}^\";					# STRING REQUIRED ... makes short by long\n",
 "  virtrdf:qmfShortOfUriTmpl \" NULL\";						# STRING REQUIRED ... makes short by uri\n",
@@ -6174,7 +6184,8 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";					# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIsnumericOfShortTmpl \" 0\";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" ^{tree}^\";		# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" ^{tree}^\";		# STRING REQUIRED ... SQL value from short\n",
@@ -6185,7 +6196,7 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfUriOfShortTmpl \" NULL\";						# STRING REQUIRED ... URI STRING from short\n",
 "  virtrdf:qmfStrsqlvalOfShortTmpl \" cast (^{tree}^ as varchar)\";		# STRING REQUIRED ... SQL representation of the STRING value of short\n",
 "# Templates of expressions that make short values from other representations\n",
-"  virtrdf:qmfShortOfTypedsqlvalTmpl \" (case (^{datatype-of-tree}^)) when 'http://www.w3.org/2001/XMLSchema#date' then ^{sqlval-of-tree}^ else NULL end)\";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language\n",
+"  virtrdf:qmfShortOfTypedsqlvalTmpl \" (case (^{datatype-of-tree}^) when 'http://www.w3.org/2001/XMLSchema#date' then ^{sqlval-of-tree}^ else NULL end)\";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language\n",
 "  virtrdf:qmfShortOfSqlvalTmpl \" ^{sqlval-of-tree}^\";				# STRING REQUIRED ... makes short by sqlvalue with no language and a datatype specified by SQL type\n",
 "  virtrdf:qmfShortOfLongTmpl \" ^{tree}^\";					# STRING REQUIRED ... makes short by long\n",
 "  virtrdf:qmfShortOfUriTmpl \" NULL\";						# STRING REQUIRED ... makes short by uri\n",
@@ -6245,7 +6256,8 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";					# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIsnumericOfShortTmpl \" 0\";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" ^{tree}^\";		# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" ^{tree}^\";		# STRING REQUIRED ... SQL value from short\n",
@@ -6256,7 +6268,7 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfUriOfShortTmpl \" NULL\";						# STRING REQUIRED ... URI STRING from short\n",
 "  virtrdf:qmfStrsqlvalOfShortTmpl \" cast (^{tree}^ as varchar)\";		# STRING REQUIRED ... SQL representation of the STRING value of short\n",
 "# Templates of expressions that make short values from other representations\n",
-"  virtrdf:qmfShortOfTypedsqlvalTmpl \" (case (^{datatype-of-tree}^)) when 'http://www.w3.org/2001/XMLSchema#time' then ^{sqlval-of-tree}^ else NULL end)\";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language\n",
+"  virtrdf:qmfShortOfTypedsqlvalTmpl \" (case (^{datatype-of-tree}^) when 'http://www.w3.org/2001/XMLSchema#time' then ^{sqlval-of-tree}^ else NULL end)\";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language\n",
 "  virtrdf:qmfShortOfSqlvalTmpl \" ^{sqlval-of-tree}^\";				# STRING REQUIRED ... makes short by sqlvalue with no language and a datatype specified by SQL type\n",
 "  virtrdf:qmfShortOfLongTmpl \" ^{tree}^\";					# STRING REQUIRED ... makes short by long\n",
 "  virtrdf:qmfShortOfUriTmpl \" NULL\";						# STRING REQUIRED ... makes short by uri\n",
@@ -6313,7 +6325,8 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";					# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIsnumericOfShortTmpl \" 0\";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" ^{tree}^\";		# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" ^{tree}^\";		# STRING REQUIRED ... SQL value from short\n",
@@ -6324,7 +6337,7 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfUriOfShortTmpl \" NULL\";						# STRING REQUIRED ... URI STRING from short\n",
 "  virtrdf:qmfStrsqlvalOfShortTmpl \" cast (^{tree}^ as varchar)\";		# STRING REQUIRED ... SQL representation of the STRING value of short\n",
 "# Templates of expressions that make short values from other representations\n",
-"  virtrdf:qmfShortOfTypedsqlvalTmpl \" (case (^{datatype-of-tree}^)) when 'http://www.w3.org/2001/XMLSchema#datetime' then ^{sqlval-of-tree}^ else NULL end)\";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language\n",
+"  virtrdf:qmfShortOfTypedsqlvalTmpl \" (case (^{datatype-of-tree}^) when 'http://www.w3.org/2001/XMLSchema#datetime' then ^{sqlval-of-tree}^ else NULL end)\";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language\n",
 "  virtrdf:qmfShortOfSqlvalTmpl \" ^{sqlval-of-tree}^\";				# STRING REQUIRED ... makes short by sqlvalue with no language and a datatype specified by SQL type\n",
 "  virtrdf:qmfShortOfLongTmpl \" ^{tree}^\";					# STRING REQUIRED ... makes short by long\n",
 "  virtrdf:qmfShortOfUriTmpl \" NULL\";						# STRING REQUIRED ... makes short by uri\n",
@@ -6377,10 +6390,11 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfSqlvalTmpl \" __spfi (^{custom-string-1}^, ^{comma-list-begin}^ ^{alias-N-dot}^^{column-N}^^{end}^)\";	# STRING REQUIRED \"sqlval\" value template, can be NULL\n",
 "  virtrdf:qmfBoolTmpl \" NULL\";							# STRING REQUIRED Boolean value template, can be NULL\n",
 "# Templates of booleans that tell whether the short is of some sort:\n",
-"  virtrdf:qmfIsrefOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is ref\n",
-"  virtrdf:qmfIsuriOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is uri\n",
+"  virtrdf:qmfIsrefOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is ref\n",
+"  virtrdf:qmfIsuriOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";					# STRING REQUIRED ... whether the short is blank node ref\n",
 "  virtrdf:qmfIslitOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIsnumericOfShortTmpl \" 0\";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" __i2id (__spfi (^{custom-string-1}^, ^{comma-list-begin}^ ^{tree-N}^^{end}^))\";	# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" __spfi (^{custom-string-1}^, ^{comma-list-begin}^ ^{tree-N}^^{end}^)\";		# STRING REQUIRED ... SQL value from short\n",
@@ -6452,7 +6466,8 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";					# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIsnumericOfShortTmpl \" 0\";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" __spf (^{custom-string-1}^, ^{comma-list-begin}^ ^{tree-N}^^{end}^)\";	# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" __spf (^{custom-string-1}^, ^{comma-list-begin}^ ^{tree-N}^^{end}^)\";		# STRING REQUIRED ... SQL value from short\n",
@@ -6521,10 +6536,11 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfSqlvalTmpl \" __bft (^{custom-verbatim-1}^ (^{comma-list-begin}^ ^{alias-N-dot}^^{column-N}^^{end}^), 1)\";	# STRING REQUIRED \"sqlval\" value template, can be NULL\n",
 "  virtrdf:qmfBoolTmpl \" NULL\";							# STRING REQUIRED Boolean value template, can be NULL\n",
 "# Templates of booleans that tell whether the short is of some sort:\n",
-"  virtrdf:qmfIsrefOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is ref\n",
-"  virtrdf:qmfIsuriOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is uri\n",
+"  virtrdf:qmfIsrefOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is ref\n",
+"  virtrdf:qmfIsuriOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";					# STRING REQUIRED ... whether the short is blank node ref\n",
 "  virtrdf:qmfIslitOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIsnumericOfShortTmpl \" 0\";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" __i2id (^{custom-verbatim-1}^ (^{comma-list-begin}^ ^{tree-N}^^{end}^))\";	# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" __bft (^{custom-verbatim-1}^ (^{comma-list-begin}^ ^{tree-N}^^{end}^), 1)\";		# STRING REQUIRED ... SQL value from short\n",
@@ -6572,7 +6588,7 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is literal\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";					# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is literal\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" DB.DBA.RDF_LONG_OF_SQLVAL (^{custom-verbatim-1}^ (^{comma-list-begin}^ ^{tree-N}^^{end}^))\";	# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" ^{custom-verbatim-1}^ (^{comma-list-begin}^ ^{tree-N}^^{end}^)\";		# STRING REQUIRED ... SQL value from short\n",
@@ -6617,10 +6633,11 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfSqlvalTmpl \" __spfi (^{custom-string-1}^)\";			# STRING REQUIRED \"sqlval\" value template, can be NULL\n",
 "  virtrdf:qmfBoolTmpl \" NULL\";							# STRING REQUIRED Boolean value template, can be NULL\n",
 "# Templates of booleans that tell whether the short is of some sort:\n",
-"  virtrdf:qmfIsrefOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is ref\n",
-"  virtrdf:qmfIsuriOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is uri\n",
+"  virtrdf:qmfIsrefOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is ref\n",
+"  virtrdf:qmfIsuriOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is blank node ref\n",
 "  virtrdf:qmfIslitOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIsnumericOfShortTmpl \" 0\";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" __i2id (__spfi (^{custom-string-1}^))\";	# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" __spfi (^{custom-string-1}^)\";		# STRING REQUIRED ... SQL value from short\n",
@@ -6690,7 +6707,8 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIsnumericOfShortTmpl \" 0\";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" __spf (^{custom-string-1}^)\";	# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" __spf (^{custom-string-1}^)\";		# STRING REQUIRED ... SQL value from short\n",
@@ -6757,10 +6775,11 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfSqlvalTmpl \" __bft (^{custom-verbatim-1}^ (), 1)\";				# STRING REQUIRED \"sqlval\" value template, can be NULL\n",
 "  virtrdf:qmfBoolTmpl \" NULL\";							# STRING REQUIRED Boolean value template, can be NULL\n",
 "# Templates of booleans that tell whether the short is of some sort:\n",
-"  virtrdf:qmfIsrefOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is ref\n",
-"  virtrdf:qmfIsuriOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is uri\n",
+"  virtrdf:qmfIsrefOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is ref\n",
+"  virtrdf:qmfIsuriOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is blank node ref\n",
 "  virtrdf:qmfIslitOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIsnumericOfShortTmpl \" 0\";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" __i2id (^{custom-verbatim-1}^ ())\";		# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" __bft (^{custom-verbatim-1}^ (), 1)\";		# STRING REQUIRED ... SQL value from short\n",
@@ -6808,7 +6827,7 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";							# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";							# STRING REQUIRED ... whether the short is literal\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";							# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";							# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";					# STRING REQUIRED ... whether the short is literal\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" DB.DBA.RDF_LONG_OF_SQLVAL (^{custom-verbatim-1}^ ())\";	# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" ^{custom-verbatim-1}^ ()\";				# STRING REQUIRED ... SQL value from short\n",
@@ -6853,10 +6872,11 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfSqlvalTmpl \" __bft (^{custom-verbatim-1}^ (^{alias-dot}^^{column}^), 1)\";	# STRING REQUIRED \"sqlval\" value template, can be NULL\n",
 "  virtrdf:qmfBoolTmpl \" NULL\";							# STRING REQUIRED Boolean value template, can be NULL\n",
 "# Templates of booleans that tell whether the short is of some sort:\n",
-"  virtrdf:qmfIsrefOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is ref\n",
-"  virtrdf:qmfIsuriOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is uri\n",
+"  virtrdf:qmfIsrefOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is ref\n",
+"  virtrdf:qmfIsuriOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";					# STRING REQUIRED ... whether the short is blank node ref\n",
 "  virtrdf:qmfIslitOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIsnumericOfShortTmpl \" 0\";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" __i2id (^{custom-verbatim-1}^ (^{tree}^))\";	# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" __bft (^{custom-verbatim-1}^ (^{tree}^), 1)\";		# STRING REQUIRED ... SQL value from short\n",
@@ -7015,7 +7035,7 @@ static const char * cres_virtrdf_data_formats_ttl[] =
 "  virtrdf:qmfIsrefOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is ref\n",
 "  virtrdf:qmfIsuriOfShortTmpl \" 0\";						# STRING REQUIRED ... whether the short is uri\n",
 "  virtrdf:qmfIsblankOfShortTmpl \" 0\";					# STRING REQUIRED ... whether the short is blank node ref\n",
-"  virtrdf:qmfIslitOfShortTmpl \" 1\";						# STRING REQUIRED ... whether the short is literal\n",
+"  virtrdf:qmfIslitOfShortTmpl \" isnotnull (^{tree}^)\";				# STRING REQUIRED ... whether the short is literal\n",
 "# Templates that convert short value into other types (can be applied to both field and not field expression)\n",
 "  virtrdf:qmfLongOfShortTmpl \" DB.DBA.RDF_MAKE_LONG_OF_SQLVAL (^{custom-verbatim-1}^ (^{tree}^))\";		# STRING REQUIRED ... long from short\n",
 "  virtrdf:qmfSqlvalOfShortTmpl \" ^{custom-verbatim-1}^ (^{tree}^)\";	# STRING REQUIRED ... SQL value from short\n",
diff --git a/binsrc/cached_resources/openlinksw-sparql/virtrdf-data-formats.ttl b/binsrc/cached_resources/openlinksw-sparql/virtrdf-data-formats.ttl
index 7213cad..42009d2 100644
--- a/binsrc/cached_resources/openlinksw-sparql/virtrdf-data-formats.ttl
+++ b/binsrc/cached_resources/openlinksw-sparql/virtrdf-data-formats.ttl
@@ -2,7 +2,7 @@
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2009 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -33,6 +33,8 @@ virtrdf:isSubclassOf virtrdf:loadAs virtrdf:jsoTriple .
 virtrdf:version virtrdf:loadAs virtrdf:jsoTriple .
 virtrdf:isSpecialPredicate virtrdf:loadAs virtrdf:jsoTriple .
 virtrdf:isGcResistantType virtrdf:loadAs virtrdf:jsoTriple .
+virtrdf:isEndpointOfService virtrdf:loadAs virtrdf:jsoTriple .
+virtrdf:dialect virtrdf:loadAs virtrdf:jsoTriple .
 
 bif:contains virtrdf:isSpecialPredicate bif:contains .
 bif:xcontains virtrdf:isSpecialPredicate bif:xcontains .
@@ -45,7 +47,7 @@ virtrdf:QuadStorage virtrdf:isGcResistantType "2" .
 
 # Don't forget to change version, both here and in DB.DBA.SPARQL_RELOAD_QM_GRAPH, to force reload.
 <http://www.openlinksw.com/sparql/virtrdf-data-formats.ttl>
-  virtrdf:version '2011-09-01 0001v6g' ;
+  virtrdf:version '2012-05-17 0001v6g' ;
   virtrdf:item
     rdfdf:default-iid ,				rdfdf:default-iid-nullable ,
     rdfdf:default-iid-nonblank ,		rdfdf:default-iid-nonblank-nullable ,
@@ -110,7 +112,7 @@ rdfdf:default-iid
   virtrdf:qmfSqlvalTmpl " __id2i (^{alias-dot}^^{column}^)";			# STRING REQUIRED "sqlval" value template, can be NULL
   virtrdf:qmfBoolTmpl " NULL";							# STRING REQUIRED Boolean value template, can be NULL
 # Templates of booleans that tell whether the short is of some sort:
-  virtrdf:qmfIsrefOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is ref
+  virtrdf:qmfIsrefOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " (^{tree}^ < min_bnode_iri_id ())";			# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " (^{tree}^ >= min_bnode_iri_id ())";			# STRING REQUIRED ... whether the short is blank node ref
   virtrdf:qmfIslitOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is literal
@@ -290,7 +292,8 @@ rdfdf:sql-varchar
   virtrdf:qmfIsrefOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";					# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIsnumericOfShortTmpl " 0";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " DB.DBA.RDF_MAKE_LONG_OF_SQLVAL (^{tree}^)";	# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " ^{tree}^";		# STRING REQUIRED ... SQL value from short
@@ -356,7 +359,7 @@ rdfdf:sql-varchar-dt
   virtrdf:qmfIsrefOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is literal
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " DB.DBA.RDF_MAKE_LONG_OF_TYPEDSQLVAL (^{tree-0}^, __i2idn (^{tree-1}^), null)";	# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " ^{tree-0}^";					# STRING REQUIRED ... SQL value from short
@@ -420,7 +423,8 @@ rdfdf:sql-varchar-lang
   virtrdf:qmfIsrefOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIsnumericOfShortTmpl " 0";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " DB.DBA.RDF_MAKE_LONG_OF_TYPEDSQLVAL (^{tree-0}^, null, ^{tree-1}^)";	# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " ^{tree-0}^";					# STRING REQUIRED ... SQL value from short
@@ -584,7 +588,8 @@ rdfdf:sql-nvarchar
   virtrdf:qmfIsrefOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIsnumericOfShortTmpl " 0";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " DB.DBA.RDF_MAKE_LONG_OF_SQLVAL (^{tree}^)";	# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " ^{tree}^";					# STRING REQUIRED ... SQL value from short
@@ -650,7 +655,7 @@ rdfdf:sql-nvarchar-dt
   virtrdf:qmfIsrefOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is literal
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " DB.DBA.RDF_MAKE_LONG_OF_TYPEDSQLVAL (^{tree-0}^, __i2idn (^{tree-1}^), null)";	# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " ^{tree-0}^";					# STRING REQUIRED ... SQL value from short
@@ -714,7 +719,7 @@ rdfdf:sql-nvarchar-lang
   virtrdf:qmfIsrefOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is literal
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " DB.DBA.RDF_MAKE_LONG_OF_TYPEDSQLVAL (^{tree-0}^, null, ^{tree-1}^)";	# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " ^{tree-0}^";					# STRING REQUIRED ... SQL value from short
@@ -873,23 +878,24 @@ rdfdf:sql-longvarbinary
   virtrdf:qmfShortTmpl " ^{alias-dot}^^{column}^";				# STRING REQUIRED "short" value template, can be NULL
   virtrdf:qmfLongTmpl " ^{alias-dot}^^{column}^";				# STRING REQUIRED "long" value template, can be NULL
   virtrdf:qmfSqlvalTmpl " cast (^{alias-dot}^^{column}^ as varbinary)";		# STRING REQUIRED "sqlval" value template, can be NULL
-  virtrdf:qmfBoolTmpl " 1";							# STRING REQUIRED Boolean value template, can be NULL
+  virtrdf:qmfBoolTmpl " isnotnull (^{tree}^)";					# STRING REQUIRED Boolean value template, can be NULL
 # Templates of booleans that tell whether the short is of some sort:
   virtrdf:qmfIsrefOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";					# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIsnumericOfShortTmpl " 0";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " ^{tree}^";					# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " cast (^{tree}^ as varbinary)";			# STRING REQUIRED ... SQL value from short
   virtrdf:qmfDatatypeOfShortTmpl " 'http://www.w3.org/2001/XMLSchema#octetStream'";  # STRING REQUIRED ... datatype IRI STRING from short
   virtrdf:qmfLanguageOfShortTmpl " NULL";					# STRING REQUIRED ... language ID STRING from short
-  virtrdf:qmfBoolOfShortTmpl " 1";						# STRING REQUIRED ... boolean value from short
+  virtrdf:qmfBoolOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... boolean value from short
   virtrdf:qmfIidOfShortTmpl " NULL";
   virtrdf:qmfUriOfShortTmpl " NULL";						# STRING REQUIRED ... URI STRING from short
   virtrdf:qmfStrsqlvalOfShortTmpl " cast (^{tree}^ as varchar)";		# STRING REQUIRED ... SQL representation of the STRING value of short
 # Templates of expressions that make short values from other representations
-  virtrdf:qmfShortOfTypedsqlvalTmpl " (case (^{datatype-of-tree}^)) when 'http://www.w3.org/2001/XMLSchema#octetStream' then ^{sqlval-of-tree}^ else NULL end)";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language
+  virtrdf:qmfShortOfTypedsqlvalTmpl " (case (^{datatype-of-tree}^) when 'http://www.w3.org/2001/XMLSchema#octetStream' then ^{sqlval-of-tree}^ else NULL end)";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language
   virtrdf:qmfShortOfSqlvalTmpl " (case (__tag (^{sqlval-of-tree}^)) when 131 then (^{sqlval-of-tree}^) else NULL end)";	# STRING REQUIRED ... makes short by sqlvalue with no language and a datatype specified by SQL type
   virtrdf:qmfShortOfLongTmpl " (case (__tag (^{tree}^)) when 131 then (^{tree}^) else NULL end)";	# STRING REQUIRED ... makes short by long
   virtrdf:qmfShortOfUriTmpl " NULL";						# STRING REQUIRED ... makes short by uri
@@ -938,10 +944,11 @@ rdfdf:sql-varchar-uri
   virtrdf:qmfSqlvalTmpl " __spfi (^{custom-string-1}^, ^{alias-dot}^^{column}^)";	# STRING REQUIRED "sqlval" value template, can be NULL
   virtrdf:qmfBoolTmpl " NULL";							# STRING REQUIRED Boolean value template, can be NULL
 # Templates of booleans that tell whether the short is of some sort:
-  virtrdf:qmfIsrefOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is ref
-  virtrdf:qmfIsuriOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is uri
+  virtrdf:qmfIsrefOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is ref
+  virtrdf:qmfIsuriOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";					# STRING REQUIRED ... whether the short is blank node ref
   virtrdf:qmfIslitOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIsnumericOfShortTmpl " 0";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " __i2id (__spfi (^{custom-string-1}^, ^{tree}^))";		# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " __spfi (^{custom-string-1}^, ^{tree}^)";	# STRING REQUIRED ... SQL value from short
@@ -1012,7 +1019,8 @@ rdfdf:sql-varchar-literal
   virtrdf:qmfIsrefOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";					# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIsnumericOfShortTmpl " 0";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " __spf (^{custom-string-1}^, ^{tree}^)";		# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " __spf (^{custom-string-1}^, ^{tree}^)";	# STRING REQUIRED ... SQL value from short
@@ -1129,7 +1137,7 @@ rdfdf:sql-integer
   virtrdf:qmfIsrefOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";					# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is literal
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " ^{tree}^";		# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " ^{tree}^";		# STRING REQUIRED ... SQL value from short
@@ -1140,7 +1148,7 @@ rdfdf:sql-integer
   virtrdf:qmfUriOfShortTmpl " NULL";						# STRING REQUIRED ... URI STRING from short
   virtrdf:qmfStrsqlvalOfShortTmpl " cast (^{tree}^ as varchar)";		# STRING REQUIRED ... SQL representation of the STRING value of short
 # Templates of expressions that make short values from other representations
-  virtrdf:qmfShortOfTypedsqlvalTmpl " (case (^{datatype-of-tree}^)) when 'http://www.w3.org/2001/XMLSchema#integer' then ^{sqlval-of-tree}^ else NULL end)";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language
+  virtrdf:qmfShortOfTypedsqlvalTmpl " (case (^{datatype-of-tree}^) when 'http://www.w3.org/2001/XMLSchema#integer' then ^{sqlval-of-tree}^ else NULL end)";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language
   virtrdf:qmfShortOfSqlvalTmpl " ^{sqlval-of-tree}^";				# STRING REQUIRED ... makes short by sqlvalue with no language and a datatype specified by SQL type
   virtrdf:qmfShortOfLongTmpl " ^{tree}^";					# STRING REQUIRED ... makes short by long
   virtrdf:qmfShortOfUriTmpl " NULL";						# STRING REQUIRED ... makes short by uri
@@ -1283,7 +1291,8 @@ rdfdf:sql-doubleprecision
   virtrdf:qmfIsrefOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";					# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIsnumericOfShortTmpl " isnotnull (^{tree}^)";				# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " ^{tree}^";		# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " ^{tree}^";		# STRING REQUIRED ... SQL value from short
@@ -1294,7 +1303,7 @@ rdfdf:sql-doubleprecision
   virtrdf:qmfUriOfShortTmpl " NULL";						# STRING REQUIRED ... URI STRING from short
   virtrdf:qmfStrsqlvalOfShortTmpl " cast (^{tree}^ as varchar)";		# STRING REQUIRED ... SQL representation of the STRING value of short
 # Templates of expressions that make short values from other representations
-  virtrdf:qmfShortOfTypedsqlvalTmpl " (case (^{datatype-of-tree}^)) when 'http://www.w3.org/2001/XMLSchema#double' then ^{sqlval-of-tree}^ else NULL end)";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language
+  virtrdf:qmfShortOfTypedsqlvalTmpl " (case (^{datatype-of-tree}^) when 'http://www.w3.org/2001/XMLSchema#double' then ^{sqlval-of-tree}^ else NULL end)";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language
   virtrdf:qmfShortOfSqlvalTmpl " ^{sqlval-of-tree}^";				# STRING REQUIRED ... makes short by sqlvalue with no language and a datatype specified by SQL type
   virtrdf:qmfShortOfLongTmpl " ^{tree}^";					# STRING REQUIRED ... makes short by long
   virtrdf:qmfShortOfUriTmpl " NULL";						# STRING REQUIRED ... makes short by uri
@@ -1350,7 +1359,8 @@ rdfdf:sql-numeric
   virtrdf:qmfIsrefOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";					# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIsnumericOfShortTmpl " isnotnull (^{tree}^)";				# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " ^{tree}^";		# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " ^{tree}^";		# STRING REQUIRED ... SQL value from short
@@ -1361,7 +1371,7 @@ rdfdf:sql-numeric
   virtrdf:qmfUriOfShortTmpl " NULL";						# STRING REQUIRED ... URI STRING from short
   virtrdf:qmfStrsqlvalOfShortTmpl " cast (^{tree}^ as varchar)";		# STRING REQUIRED ... SQL representation of the STRING value of short
 # Templates of expressions that make short values from other representations
-  virtrdf:qmfShortOfTypedsqlvalTmpl " (case (^{datatype-of-tree}^)) when 'http://www.w3.org/2001/XMLSchema#numeric' then ^{sqlval-of-tree}^ else NULL end)";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language
+  virtrdf:qmfShortOfTypedsqlvalTmpl " (case (^{datatype-of-tree}^) when 'http://www.w3.org/2001/XMLSchema#numeric' then ^{sqlval-of-tree}^ else NULL end)";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language
   virtrdf:qmfShortOfSqlvalTmpl " ^{sqlval-of-tree}^";				# STRING REQUIRED ... makes short by sqlvalue with no language and a datatype specified by SQL type
   virtrdf:qmfShortOfLongTmpl " ^{tree}^";					# STRING REQUIRED ... makes short by long
   virtrdf:qmfShortOfUriTmpl " NULL";						# STRING REQUIRED ... makes short by uri
@@ -1504,7 +1514,8 @@ rdfdf:sql-date
   virtrdf:qmfIsrefOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";					# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIsnumericOfShortTmpl " 0";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " ^{tree}^";		# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " ^{tree}^";		# STRING REQUIRED ... SQL value from short
@@ -1515,7 +1526,7 @@ rdfdf:sql-date
   virtrdf:qmfUriOfShortTmpl " NULL";						# STRING REQUIRED ... URI STRING from short
   virtrdf:qmfStrsqlvalOfShortTmpl " cast (^{tree}^ as varchar)";		# STRING REQUIRED ... SQL representation of the STRING value of short
 # Templates of expressions that make short values from other representations
-  virtrdf:qmfShortOfTypedsqlvalTmpl " (case (^{datatype-of-tree}^)) when 'http://www.w3.org/2001/XMLSchema#date' then ^{sqlval-of-tree}^ else NULL end)";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language
+  virtrdf:qmfShortOfTypedsqlvalTmpl " (case (^{datatype-of-tree}^) when 'http://www.w3.org/2001/XMLSchema#date' then ^{sqlval-of-tree}^ else NULL end)";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language
   virtrdf:qmfShortOfSqlvalTmpl " ^{sqlval-of-tree}^";				# STRING REQUIRED ... makes short by sqlvalue with no language and a datatype specified by SQL type
   virtrdf:qmfShortOfLongTmpl " ^{tree}^";					# STRING REQUIRED ... makes short by long
   virtrdf:qmfShortOfUriTmpl " NULL";						# STRING REQUIRED ... makes short by uri
@@ -1575,7 +1586,8 @@ rdfdf:sql-time
   virtrdf:qmfIsrefOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";					# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIsnumericOfShortTmpl " 0";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " ^{tree}^";		# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " ^{tree}^";		# STRING REQUIRED ... SQL value from short
@@ -1586,7 +1598,7 @@ rdfdf:sql-time
   virtrdf:qmfUriOfShortTmpl " NULL";						# STRING REQUIRED ... URI STRING from short
   virtrdf:qmfStrsqlvalOfShortTmpl " cast (^{tree}^ as varchar)";		# STRING REQUIRED ... SQL representation of the STRING value of short
 # Templates of expressions that make short values from other representations
-  virtrdf:qmfShortOfTypedsqlvalTmpl " (case (^{datatype-of-tree}^)) when 'http://www.w3.org/2001/XMLSchema#time' then ^{sqlval-of-tree}^ else NULL end)";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language
+  virtrdf:qmfShortOfTypedsqlvalTmpl " (case (^{datatype-of-tree}^) when 'http://www.w3.org/2001/XMLSchema#time' then ^{sqlval-of-tree}^ else NULL end)";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language
   virtrdf:qmfShortOfSqlvalTmpl " ^{sqlval-of-tree}^";				# STRING REQUIRED ... makes short by sqlvalue with no language and a datatype specified by SQL type
   virtrdf:qmfShortOfLongTmpl " ^{tree}^";					# STRING REQUIRED ... makes short by long
   virtrdf:qmfShortOfUriTmpl " NULL";						# STRING REQUIRED ... makes short by uri
@@ -1643,7 +1655,8 @@ rdfdf:sql-datetime
   virtrdf:qmfIsrefOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";					# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIsnumericOfShortTmpl " 0";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " ^{tree}^";		# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " ^{tree}^";		# STRING REQUIRED ... SQL value from short
@@ -1654,7 +1667,7 @@ rdfdf:sql-datetime
   virtrdf:qmfUriOfShortTmpl " NULL";						# STRING REQUIRED ... URI STRING from short
   virtrdf:qmfStrsqlvalOfShortTmpl " cast (^{tree}^ as varchar)";		# STRING REQUIRED ... SQL representation of the STRING value of short
 # Templates of expressions that make short values from other representations
-  virtrdf:qmfShortOfTypedsqlvalTmpl " (case (^{datatype-of-tree}^)) when 'http://www.w3.org/2001/XMLSchema#datetime' then ^{sqlval-of-tree}^ else NULL end)";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language
+  virtrdf:qmfShortOfTypedsqlvalTmpl " (case (^{datatype-of-tree}^) when 'http://www.w3.org/2001/XMLSchema#datetime' then ^{sqlval-of-tree}^ else NULL end)";	# STRING REQUIRED ... makes short by SQL value with specified type and/or language
   virtrdf:qmfShortOfSqlvalTmpl " ^{sqlval-of-tree}^";				# STRING REQUIRED ... makes short by sqlvalue with no language and a datatype specified by SQL type
   virtrdf:qmfShortOfLongTmpl " ^{tree}^";					# STRING REQUIRED ... makes short by long
   virtrdf:qmfShortOfUriTmpl " NULL";						# STRING REQUIRED ... makes short by uri
@@ -1707,10 +1720,11 @@ rdfdf:multipart-uri
   virtrdf:qmfSqlvalTmpl " __spfi (^{custom-string-1}^, ^{comma-list-begin}^ ^{alias-N-dot}^^{column-N}^^{end}^)";	# STRING REQUIRED "sqlval" value template, can be NULL
   virtrdf:qmfBoolTmpl " NULL";							# STRING REQUIRED Boolean value template, can be NULL
 # Templates of booleans that tell whether the short is of some sort:
-  virtrdf:qmfIsrefOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is ref
-  virtrdf:qmfIsuriOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is uri
+  virtrdf:qmfIsrefOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is ref
+  virtrdf:qmfIsuriOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";					# STRING REQUIRED ... whether the short is blank node ref
   virtrdf:qmfIslitOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIsnumericOfShortTmpl " 0";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " __i2id (__spfi (^{custom-string-1}^, ^{comma-list-begin}^ ^{tree-N}^^{end}^))";	# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " __spfi (^{custom-string-1}^, ^{comma-list-begin}^ ^{tree-N}^^{end}^)";		# STRING REQUIRED ... SQL value from short
@@ -1782,7 +1796,8 @@ rdfdf:multipart-literal
   virtrdf:qmfIsrefOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";					# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIsnumericOfShortTmpl " 0";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " __spf (^{custom-string-1}^, ^{comma-list-begin}^ ^{tree-N}^^{end}^)";	# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " __spf (^{custom-string-1}^, ^{comma-list-begin}^ ^{tree-N}^^{end}^)";		# STRING REQUIRED ... SQL value from short
@@ -1851,10 +1866,11 @@ rdfdf:multipart-uri-fn-nullable
   virtrdf:qmfSqlvalTmpl " __bft (^{custom-verbatim-1}^ (^{comma-list-begin}^ ^{alias-N-dot}^^{column-N}^^{end}^), 1)";	# STRING REQUIRED "sqlval" value template, can be NULL
   virtrdf:qmfBoolTmpl " NULL";							# STRING REQUIRED Boolean value template, can be NULL
 # Templates of booleans that tell whether the short is of some sort:
-  virtrdf:qmfIsrefOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is ref
-  virtrdf:qmfIsuriOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is uri
+  virtrdf:qmfIsrefOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is ref
+  virtrdf:qmfIsuriOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";					# STRING REQUIRED ... whether the short is blank node ref
   virtrdf:qmfIslitOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIsnumericOfShortTmpl " 0";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " __i2id (^{custom-verbatim-1}^ (^{comma-list-begin}^ ^{tree-N}^^{end}^))";	# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " __bft (^{custom-verbatim-1}^ (^{comma-list-begin}^ ^{tree-N}^^{end}^), 1)";		# STRING REQUIRED ... SQL value from short
@@ -1902,7 +1918,7 @@ rdfdf:multipart-literal-fn-nullable
   virtrdf:qmfIsrefOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is literal
   virtrdf:qmfIsblankOfShortTmpl " 0";					# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is literal
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " DB.DBA.RDF_LONG_OF_SQLVAL (^{custom-verbatim-1}^ (^{comma-list-begin}^ ^{tree-N}^^{end}^))";	# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " ^{custom-verbatim-1}^ (^{comma-list-begin}^ ^{tree-N}^^{end}^)";		# STRING REQUIRED ... SQL value from short
@@ -1947,10 +1963,11 @@ rdfdf:zeropart-uri
   virtrdf:qmfSqlvalTmpl " __spfi (^{custom-string-1}^)";			# STRING REQUIRED "sqlval" value template, can be NULL
   virtrdf:qmfBoolTmpl " NULL";							# STRING REQUIRED Boolean value template, can be NULL
 # Templates of booleans that tell whether the short is of some sort:
-  virtrdf:qmfIsrefOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is ref
-  virtrdf:qmfIsuriOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is uri
+  virtrdf:qmfIsrefOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is ref
+  virtrdf:qmfIsuriOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is blank node ref
   virtrdf:qmfIslitOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIsnumericOfShortTmpl " 0";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " __i2id (__spfi (^{custom-string-1}^))";	# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " __spfi (^{custom-string-1}^)";		# STRING REQUIRED ... SQL value from short
@@ -2020,7 +2037,8 @@ rdfdf:zeropart-literal
   virtrdf:qmfIsrefOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIsnumericOfShortTmpl " 0";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " __spf (^{custom-string-1}^)";	# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " __spf (^{custom-string-1}^)";		# STRING REQUIRED ... SQL value from short
@@ -2087,10 +2105,11 @@ rdfdf:zeropart-uri-fn-nullable
   virtrdf:qmfSqlvalTmpl " __bft (^{custom-verbatim-1}^ (), 1)";				# STRING REQUIRED "sqlval" value template, can be NULL
   virtrdf:qmfBoolTmpl " NULL";							# STRING REQUIRED Boolean value template, can be NULL
 # Templates of booleans that tell whether the short is of some sort:
-  virtrdf:qmfIsrefOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is ref
-  virtrdf:qmfIsuriOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is uri
+  virtrdf:qmfIsrefOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is ref
+  virtrdf:qmfIsuriOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is blank node ref
   virtrdf:qmfIslitOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIsnumericOfShortTmpl " 0";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " __i2id (^{custom-verbatim-1}^ ())";		# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " __bft (^{custom-verbatim-1}^ (), 1)";		# STRING REQUIRED ... SQL value from short
@@ -2138,7 +2157,7 @@ rdfdf:zeropart-literal-fn-nullable
   virtrdf:qmfIsrefOfShortTmpl " 0";							# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";							# STRING REQUIRED ... whether the short is literal
   virtrdf:qmfIsblankOfShortTmpl " 0";							# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";							# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";					# STRING REQUIRED ... whether the short is literal
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " DB.DBA.RDF_LONG_OF_SQLVAL (^{custom-verbatim-1}^ ())";	# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " ^{custom-verbatim-1}^ ()";				# STRING REQUIRED ... SQL value from short
@@ -2183,10 +2202,11 @@ rdfdf:sql-varchar-uri-fn
   virtrdf:qmfSqlvalTmpl " __bft (^{custom-verbatim-1}^ (^{alias-dot}^^{column}^), 1)";	# STRING REQUIRED "sqlval" value template, can be NULL
   virtrdf:qmfBoolTmpl " NULL";							# STRING REQUIRED Boolean value template, can be NULL
 # Templates of booleans that tell whether the short is of some sort:
-  virtrdf:qmfIsrefOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is ref
-  virtrdf:qmfIsuriOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is uri
+  virtrdf:qmfIsrefOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is ref
+  virtrdf:qmfIsuriOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";					# STRING REQUIRED ... whether the short is blank node ref
   virtrdf:qmfIslitOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIsnumericOfShortTmpl " 0";						# STRING OPTIONAL ... whether the short is number (unlike SSG_VALMODE_NUM, no DATE/TIME etc., only number)
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " __i2id (^{custom-verbatim-1}^ (^{tree}^))";	# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " __bft (^{custom-verbatim-1}^ (^{tree}^), 1)";		# STRING REQUIRED ... SQL value from short
@@ -2345,7 +2365,7 @@ rdfdf:sql-varchar-literal-fn
   virtrdf:qmfIsrefOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is ref
   virtrdf:qmfIsuriOfShortTmpl " 0";						# STRING REQUIRED ... whether the short is uri
   virtrdf:qmfIsblankOfShortTmpl " 0";					# STRING REQUIRED ... whether the short is blank node ref
-  virtrdf:qmfIslitOfShortTmpl " 1";						# STRING REQUIRED ... whether the short is literal
+  virtrdf:qmfIslitOfShortTmpl " isnotnull (^{tree}^)";				# STRING REQUIRED ... whether the short is literal
 # Templates that convert short value into other types (can be applied to both field and not field expression)
   virtrdf:qmfLongOfShortTmpl " DB.DBA.RDF_MAKE_LONG_OF_SQLVAL (^{custom-verbatim-1}^ (^{tree}^))";		# STRING REQUIRED ... long from short
   virtrdf:qmfSqlvalOfShortTmpl " ^{custom-verbatim-1}^ (^{tree}^)";	# STRING REQUIRED ... SQL value from short
diff --git a/binsrc/cached_resources/res_to_c.awk b/binsrc/cached_resources/res_to_c.awk
index 31b4c5c..f7f4989 100644
--- a/binsrc/cached_resources/res_to_c.awk
+++ b/binsrc/cached_resources/res_to_c.awk
@@ -1,14 +1,14 @@
 #
 # sql_to_c.awk
 #
-# $Id: res_to_c.awk,v 1.1.1.1.2.1 2011/09/08 15:28:27 source Exp $
+# $Id$
 #
 # Embeds text into a C file
 #  
 #  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 #  project.
 #  
-#  Copyright (C) 1998-2006 OpenLink Software
+#  Copyright (C) 1998-2012 OpenLink Software
 #  
 #  This project is free software; you can redistribute it and/or modify it
 #  under the terms of the GNU General Public License as published by the
@@ -30,13 +30,7 @@ BEGIN   {
 	}
 	{
 	  fun = $0
-	  # was: gsub ( /\\/, "\\\\", fun)
-	  q = "\\\\"
-	  if (PROCINFO["version"] ~ /^4/)
-	    gsub ( q, q q, fun)
-	  else
-	    gsub ( q, q, fun)
-
+          gsub ( "\\\\", "&&", fun)
 	  gsub ( /"/, "\\\"", fun)
 	  gsub ( /\$/, "\\044", fun)
 	  gsub ( /.*/, "\"&\\n\",", fun)
diff --git a/binsrc/cached_resources/w3-TR-xhtml1-DTD/xhtml1-frameset.dtd b/binsrc/cached_resources/w3-TR-xhtml1-DTD/xhtml1-frameset.dtd
index a35bbda..37194aa 100644
--- a/binsrc/cached_resources/w3-TR-xhtml1-DTD/xhtml1-frameset.dtd
+++ b/binsrc/cached_resources/w3-TR-xhtml1-DTD/xhtml1-frameset.dtd
@@ -16,8 +16,8 @@
    PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
    SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"
 
-   $Revision: 1.1.1.1.2.1 $
-   $Date: 2009/04/15 14:32:21 $
+   $Revision$
+   $Date$
 
 -->
 
diff --git a/binsrc/cached_resources/w3-TR-xhtml1-DTD/xhtml1-strict.dtd b/binsrc/cached_resources/w3-TR-xhtml1-DTD/xhtml1-strict.dtd
index 291b7f8..63f4c44 100644
--- a/binsrc/cached_resources/w3-TR-xhtml1-DTD/xhtml1-strict.dtd
+++ b/binsrc/cached_resources/w3-TR-xhtml1-DTD/xhtml1-strict.dtd
@@ -16,8 +16,8 @@
    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
 
-   $Revision: 1.1.1.1.2.1 $
-   $Date: 2009/04/15 14:32:21 $
+   $Revision$
+   $Date$
 
 -->
 
diff --git a/binsrc/cached_resources/w3-TR-xhtml1-DTD/xhtml1-transitional.dtd b/binsrc/cached_resources/w3-TR-xhtml1-DTD/xhtml1-transitional.dtd
index ec5e945..ba9be61 100644
--- a/binsrc/cached_resources/w3-TR-xhtml1-DTD/xhtml1-transitional.dtd
+++ b/binsrc/cached_resources/w3-TR-xhtml1-DTD/xhtml1-transitional.dtd
@@ -16,8 +16,8 @@
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
 
-   $Revision: 1.1.1.1.2.1 $
-   $Date: 2009/04/15 14:32:21 $
+   $Revision$
+   $Date$
 
 -->
 
diff --git a/binsrc/config/ccdefs.c b/binsrc/config/ccdefs.c
index 2e3874c..78fad28 100644
--- a/binsrc/config/ccdefs.c
+++ b/binsrc/config/ccdefs.c
@@ -1,14 +1,14 @@
 /*
  *  ccdefs.c
  *
- *  $Id: ccdefs.c,v 1.2 2008/07/03 13:44:22 source Exp $
+ *  $Id$
  *
  *  Determine & report the Makeconfig variables
  *  
  *  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
  *  project.
  *  
- *  Copyright (C) 1998-2006 OpenLink Software
+ *  Copyright (C) 1998-2012 OpenLink Software
  *  
  *  This project is free software; you can redistribute it and/or modify it
  *  under the terms of the GNU General Public License as published by the
diff --git a/binsrc/config/config.guess b/binsrc/config/config.guess
index e6b5d5b..396482d 100755
--- a/binsrc/config/config.guess
+++ b/binsrc/config/config.guess
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-#   Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+#   Inc.
 
-timestamp='2008-01-08'
+timestamp='2006-07-02'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -56,8 +56,8 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -139,16 +139,6 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
-case "${UNAME_MACHINE}" in
-    i?86)
-	test -z "$VENDOR" && VENDOR=pc
-	;;
-    *)
-	test -z "$VENDOR" && VENDOR=unknown
-	;;
-esac
-test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=suse
-
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -171,7 +161,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	    arm*) machine=arm-unknown ;;
 	    sh3el) machine=shl-unknown ;;
 	    sh3eb) machine=sh-unknown ;;
-	    sh5el) machine=sh5le-unknown ;;
 	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
 	esac
 	# The Operating System including object format, if it has switched
@@ -340,7 +329,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
-    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+    i86pc:SunOS:5.*:*)
 	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     sun4*:SunOS:6*:*)
@@ -542,7 +531,7 @@ EOF
 		echo rs6000-ibm-aix3.2
 	fi
 	exit ;;
-    *:AIX:*:[456])
+    *:AIX:*:[45])
 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
 	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
 		IBM_ARCH=rs6000
@@ -791,7 +780,7 @@ EOF
     i*:CYGWIN*:*)
 	echo ${UNAME_MACHINE}-pc-cygwin
 	exit ;;
-    *:MINGW*:*)
+    i*:MINGW*:*)
 	echo ${UNAME_MACHINE}-pc-mingw32
 	exit ;;
     i*:windows32*:*)
@@ -801,18 +790,12 @@ EOF
     i*:PW*:*)
 	echo ${UNAME_MACHINE}-pc-pw32
 	exit ;;
-    *:Interix*:[3456]*)
-    	case ${UNAME_MACHINE} in
-	    x86)
-		echo i586-pc-interix${UNAME_RELEASE}
-		exit ;;
-	    EM64T | authenticamd)
-		echo x86_64-unknown-interix${UNAME_RELEASE}
-		exit ;;
-	    IA64)
-		echo ia64-unknown-interix${UNAME_RELEASE}
-		exit ;;
-	esac ;;
+    x86:Interix*:[3456]*)
+	echo i586-pc-interix${UNAME_RELEASE}
+	exit ;;
+    EM64T:Interix*:[3456]*)
+	echo x86_64-unknown-interix${UNAME_RELEASE}
+	exit ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 	echo i${UNAME_MACHINE}-pc-mks
 	exit ;;
@@ -846,17 +829,10 @@ EOF
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
     arm*:Linux:*:*)
-	eval $set_cc_for_build
-	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
-	    | grep -q __ARM_EABI__
-	then
-	    echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
-	else
-	    echo ${UNAME_MACHINE}-${VENDOR}-linux-gnueabi
-	fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     avr32*:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     cris:Linux:*:*)
 	echo cris-axis-linux-gnu
@@ -865,16 +841,16 @@ EOF
 	echo crisv32-axis-linux-gnu
 	exit ;;
     frv:Linux:*:*)
-    	echo frv-${VENDOR}-linux-gnu
+    	echo frv-unknown-linux-gnu
 	exit ;;
     ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     m32r*:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     mips:Linux:*:*)
 	eval $set_cc_for_build
@@ -897,7 +873,7 @@ EOF
 		s: ::g
 		p
 	    }'`"
-	test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux-gnu"; exit; }
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     mips64:Linux:*:*)
 	eval $set_cc_for_build
@@ -920,16 +896,16 @@ EOF
 		s: ::g
 		p
 	    }'`"
-	test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux-gnu"; exit; }
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     or32:Linux:*:*)
-	echo or32-${VENDOR}-linux-gnu
+	echo or32-unknown-linux-gnu
 	exit ;;
     ppc:Linux:*:*)
-	echo powerpc-${VENDOR}-linux-gnu
+	echo powerpc-unknown-linux-gnu
 	exit ;;
     ppc64:Linux:*:*)
-	echo powerpc64-${VENDOR}-linux-gnu
+	echo powerpc64-unknown-linux-gnu
 	exit ;;
     alpha:Linux:*:*)
 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -943,39 +919,36 @@ EOF
         esac
 	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
 	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu${LIBC}
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
 	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-${VENDOR}-linux-gnu ;;
-	  PA8*) echo hppa2.0-${VENDOR}-linux-gnu ;;
-	  *)    echo hppa-${VENDOR}-linux-gnu ;;
+	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
+	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
+	  *)    echo hppa-unknown-linux-gnu ;;
 	esac
 	exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-${VENDOR}-linux-gnu
+	echo hppa64-unknown-linux-gnu
 	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
 	echo ${UNAME_MACHINE}-ibm-linux
 	exit ;;
     sh64*:Linux:*:*)
-    	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     vax:Linux:*:*)
 	echo ${UNAME_MACHINE}-dec-linux-gnu
 	exit ;;
     x86_64:Linux:*:*)
-	echo x86_64-${VENDOR}-linux-gnu
-	exit ;;
-    xtensa*:Linux:*:*)
-    	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo x86_64-unknown-linux-gnu
 	exit ;;
     i*86:Linux:*:*)
 	# The BFD linker knows what the default object file format is, so
@@ -990,18 +963,18 @@ EOF
 				    p'`
         case "$ld_supported_targets" in
 	  elf32-i386)
-		TENTATIVE="${UNAME_MACHINE}-${VENDOR}-linux-gnu"
+		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
 		;;
 	  a.out-i386-linux)
-		echo "${UNAME_MACHINE}-${VENDOR}-linux-gnuaout"
+		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
 		exit ;;
 	  coff-i386)
-		echo "${UNAME_MACHINE}-${VENDOR}-linux-gnucoff"
+		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
 		exit ;;
 	  "")
 		# Either a pre-BFD a.out linker (linux-gnuoldld) or
 		# one that does not give us useful --help.
-		echo "${UNAME_MACHINE}-${VENDOR}-linux-gnuoldld"
+		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
 		exit ;;
 	esac
 	# Determine whether the default compiler is a.out or elf
@@ -1035,7 +1008,7 @@ EOF
 		p
 	    }'`"
 	test x"${LIBC}" != x && {
-		echo "${UNAME_MACHINE}-${VENDOR}-linux-${LIBC}"
+		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
 		exit
 	}
 	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
@@ -1235,15 +1208,6 @@ EOF
     SX-6:SUPER-UX:*:*)
 	echo sx6-nec-superux${UNAME_RELEASE}
 	exit ;;
-    SX-7:SUPER-UX:*:*)
-	echo sx7-nec-superux${UNAME_RELEASE}
-	exit ;;
-    SX-8:SUPER-UX:*:*)
-	echo sx8-nec-superux${UNAME_RELEASE}
-	exit ;;
-    SX-8R:SUPER-UX:*:*)
-	echo sx8r-nec-superux${UNAME_RELEASE}
-	exit ;;
     Power*:Rhapsody:*:*)
 	echo powerpc-apple-rhapsody${UNAME_RELEASE}
 	exit ;;
diff --git a/binsrc/config/config.sub b/binsrc/config/config.sub
index 6759825..fab0aa3 100755
--- a/binsrc/config/config.sub
+++ b/binsrc/config/config.sub
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-#   Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+#   Inc.
 
-timestamp='2008-01-16'
+timestamp='2006-09-20'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -72,8 +72,8 @@ Report bugs and patches to <config-patches at gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -245,12 +245,12 @@ case $basic_machine in
 	| bfin \
 	| c4x | clipper \
 	| d10v | d30v | dlx | dsp16xx \
-	| fido | fr30 | frv \
+	| fr30 | frv \
 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 	| i370 | i860 | i960 | ia64 \
 	| ip2k | iq2000 \
 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-	| maxq | mb | microblaze | mcore | mep \
+	| maxq | mb | microblaze | mcore \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
@@ -324,7 +324,7 @@ case $basic_machine in
 	| clipper-* | craynv-* | cydra-* \
 	| d10v-* | d30v-* | dlx-* \
 	| elxsi-* \
-	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
 	| h8300-* | h8500-* \
 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 	| i*86-* | i860-* | i960-* | ia64-* \
@@ -369,14 +369,10 @@ case $basic_machine in
 	| v850-* | v850e-* | vax-* \
 	| we32k-* \
 	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
-	| xstormy16-* | xtensa*-* \
+	| xstormy16-* | xtensa-* \
 	| ymp-* \
 	| z8k-*)
 		;;
-	# Recognize the basic CPU types without company name, with glob match.
-	xtensa*)
-		basic_machine=$basic_machine-unknown
-		;;
 	# Recognize the various machine names and aliases which stand
 	# for a CPU type and a company and sometimes even an OS.
 	386bsd)
@@ -447,14 +443,6 @@ case $basic_machine in
 		basic_machine=ns32k-sequent
 		os=-dynix
 		;;
-	blackfin)
-		basic_machine=bfin-unknown
-		os=-linux
-		;;
-	blackfin-*)
-		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
-		os=-linux
-		;;
 	c90)
 		basic_machine=c90-cray
 		os=-unicos
@@ -487,8 +475,8 @@ case $basic_machine in
 		basic_machine=craynv-cray
 		os=-unicosmp
 		;;
-	cr16)
-		basic_machine=cr16-unknown
+	cr16c)
+		basic_machine=cr16c-unknown
 		os=-elf
 		;;
 	crds | unos)
@@ -680,14 +668,6 @@ case $basic_machine in
 		basic_machine=m68k-isi
 		os=-sysv
 		;;
-	m68knommu)
-		basic_machine=m68k-unknown
-		os=-linux
-		;;
-	m68knommu-*)
-		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
-		os=-linux
-		;;
 	m88k-omron*)
 		basic_machine=m88k-omron
 		;;
@@ -703,10 +683,6 @@ case $basic_machine in
 		basic_machine=i386-pc
 		os=-mingw32
 		;;
-	mingw32ce)
-		basic_machine=arm-unknown
-		os=-mingw32ce
-		;;
 	miniframe)
 		basic_machine=m68000-convergent
 		;;
@@ -833,14 +809,6 @@ case $basic_machine in
 		basic_machine=i860-intel
 		os=-osf
 		;;
-	parisc)
-		basic_machine=hppa-unknown
-		os=-linux
-		;;
-	parisc-*)
-		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
-		os=-linux
-		;;
 	pbd)
 		basic_machine=sparc-tti
 		;;
@@ -957,9 +925,6 @@ case $basic_machine in
 		basic_machine=sh-hitachi
 		os=-hms
 		;;
-	sh5el)
-		basic_machine=sh5le-unknown
-		;;
 	sh64)
 		basic_machine=sh64-unknown
 		;;
@@ -1049,10 +1014,6 @@ case $basic_machine in
 		basic_machine=tic6x-unknown
 		os=-coff
 		;;
-	tile*)
-		basic_machine=tile-unknown
-		os=-linux-gnu
-		;;
 	tx39)
 		basic_machine=mipstx39-unknown
 		;;
@@ -1258,7 +1219,7 @@ case $os in
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
+	      | -skyos* | -haiku* | -rdos* | -toppers*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1453,9 +1414,6 @@ case $basic_machine in
 	m68*-cisco)
 		os=-aout
 		;;
-        mep-*)
-		os=-elf
-		;;
 	mips*-cisco)
 		os=-elf
 		;;
diff --git a/binsrc/config/depcomp b/binsrc/config/depcomp
index e5f9736..ca5ea4e 100755
--- a/binsrc/config/depcomp
+++ b/binsrc/config/depcomp
@@ -1,9 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2007-03-29.01
+scriptversion=2006-10-15.18
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software
 # Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
@@ -215,39 +215,34 @@ aix)
   # current directory.  Also, the AIX compiler puts `$object:' at the
   # start of each line; $object doesn't have directory information.
   # Version 6 uses the directory in both cases.
-  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-  test "x$dir" = "x$object" && dir=
-  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
+  tmpdepfile="$stripped.u"
   if test "$libtool" = yes; then
-    tmpdepfile1=$dir$base.u
-    tmpdepfile2=$base.u
-    tmpdepfile3=$dir.libs/$base.u
     "$@" -Wc,-M
   else
-    tmpdepfile1=$dir$base.u
-    tmpdepfile2=$dir$base.u
-    tmpdepfile3=$dir$base.u
     "$@" -M
   fi
   stat=$?
 
+  if test -f "$tmpdepfile"; then :
+  else
+    stripped=`echo "$stripped" | sed 's,^.*/,,'`
+    tmpdepfile="$stripped.u"
+  fi
+
   if test $stat -eq 0; then :
   else
-    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    rm -f "$tmpdepfile"
     exit $stat
   fi
 
-  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
-  do
-    test -f "$tmpdepfile" && break
-  done
   if test -f "$tmpdepfile"; then
+    outname="$stripped.o"
     # Each line is of the form `foo.o: dependent.h'.
     # Do two passes, one to just change these to
     # `$object: dependent.h' and one to simply `dependent.h:'.
-    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-    # That's a tab and a space in the [].
-    sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
+    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
   else
     # The sourcefile does not contain any dependencies, so just
     # store a dummy comment line, to avoid errors with the Makefile
diff --git a/binsrc/config/install-sh b/binsrc/config/install-sh
index a5897de..4fbbae7 100755
--- a/binsrc/config/install-sh
+++ b/binsrc/config/install-sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2006-12-25.00
+scriptversion=2006-10-14.15
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -48,7 +48,7 @@ IFS=" ""	$nl"
 # set DOITPROG to echo to test this script
 
 # Don't use :- since 4.3BSD and earlier shells don't like it.
-doit=${DOITPROG-}
+doit="${DOITPROG-}"
 if test -z "$doit"; then
   doit_exec=exec
 else
@@ -58,49 +58,34 @@ fi
 # Put in absolute file names if you don't have them in your path;
 # or use environment vars.
 
-chgrpprog=${CHGRPPROG-chgrp}
-chmodprog=${CHMODPROG-chmod}
-chownprog=${CHOWNPROG-chown}
-cmpprog=${CMPPROG-cmp}
-cpprog=${CPPROG-cp}
-mkdirprog=${MKDIRPROG-mkdir}
-mvprog=${MVPROG-mv}
-rmprog=${RMPROG-rm}
-stripprog=${STRIPPROG-strip}
-
-posix_glob='?'
-initialize_posix_glob='
-  test "$posix_glob" != "?" || {
-    if (set -f) 2>/dev/null; then
-      posix_glob=
-    else
-      posix_glob=:
-    fi
-  }
-'
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
 
+posix_glob=
 posix_mkdir=
 
 # Desired mode of installed file.
 mode=0755
 
-chgrpcmd=
 chmodcmd=$chmodprog
 chowncmd=
-mvcmd=$mvprog
-rmcmd="$rmprog -f"
+chgrpcmd=
 stripcmd=
-
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
 src=
 dst=
 dir_arg=
-dst_arg=
-
-copy_on_change=false
+dstarg=
 no_target_directory=
 
-usage="\
-Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
    or: $0 [OPTION]... SRCFILES... DIRECTORY
    or: $0 [OPTION]... -t DIRECTORY SRCFILES...
    or: $0 [OPTION]... -d DIRECTORIES...
@@ -110,55 +95,65 @@ In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
 In the 4th, create DIRECTORIES.
 
 Options:
-     --help     display this help and exit.
-     --version  display version info and exit.
-
-  -c            (ignored)
-  -C            install only if different (preserve the last data modification time)
-  -d            create directories instead of installing files.
-  -g GROUP      $chgrpprog installed files to GROUP.
-  -m MODE       $chmodprog installed files to MODE.
-  -o USER       $chownprog installed files to USER.
-  -s            $stripprog installed files.
-  -t DIRECTORY  install into DIRECTORY.
-  -T            report an error if DSTFILE is a directory.
+-c         (ignored)
+-d         create directories instead of installing files.
+-g GROUP   $chgrpprog installed files to GROUP.
+-m MODE    $chmodprog installed files to MODE.
+-o USER    $chownprog installed files to USER.
+-s         $stripprog installed files.
+-t DIRECTORY  install into DIRECTORY.
+-T         report an error if DSTFILE is a directory.
+--help     display this help and exit.
+--version  display version info and exit.
 
 Environment variables override the default commands:
-  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
-  RMPROG STRIPPROG
+  CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
 "
 
 while test $# -ne 0; do
   case $1 in
-    -c) ;;
-
-    -C) copy_on_change=true;;
+    -c) shift
+        continue;;
 
-    -d) dir_arg=true;;
+    -d) dir_arg=true
+        shift
+        continue;;
 
     -g) chgrpcmd="$chgrpprog $2"
-	shift;;
+        shift
+        shift
+        continue;;
 
     --help) echo "$usage"; exit $?;;
 
     -m) mode=$2
+        shift
+        shift
 	case $mode in
 	  *' '* | *'	'* | *'
 '*	  | *'*'* | *'?'* | *'['*)
 	    echo "$0: invalid mode: $mode" >&2
 	    exit 1;;
 	esac
-	shift;;
+        continue;;
 
     -o) chowncmd="$chownprog $2"
-	shift;;
+        shift
+        shift
+        continue;;
 
-    -s) stripcmd=$stripprog;;
+    -s) stripcmd=$stripprog
+        shift
+        continue;;
 
-    -t) dst_arg=$2
-	shift;;
+    -t) dstarg=$2
+	shift
+	shift
+	continue;;
 
-    -T) no_target_directory=true;;
+    -T) no_target_directory=true
+	shift
+	continue;;
 
     --version) echo "$0 $scriptversion"; exit $?;;
 
@@ -170,22 +165,21 @@ while test $# -ne 0; do
 
     *)  break;;
   esac
-  shift
 done
 
-if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+if test $# -ne 0 && test -z "$dir_arg$dstarg"; then
   # When -d is used, all remaining arguments are directories to create.
   # When -t is used, the destination is already specified.
   # Otherwise, the last argument is the destination.  Remove it from $@.
   for arg
   do
-    if test -n "$dst_arg"; then
+    if test -n "$dstarg"; then
       # $@ is not empty: it contains at least $arg.
-      set fnord "$@" "$dst_arg"
+      set fnord "$@" "$dstarg"
       shift # fnord
     fi
     shift # arg
-    dst_arg=$arg
+    dstarg=$arg
   done
 fi
 
@@ -230,7 +224,7 @@ for src
 do
   # Protect names starting with `-'.
   case $src in
-    -*) src=./$src;;
+    -*) src=./$src ;;
   esac
 
   if test -n "$dir_arg"; then
@@ -248,22 +242,22 @@ do
       exit 1
     fi
 
-    if test -z "$dst_arg"; then
+    if test -z "$dstarg"; then
       echo "$0: no destination specified." >&2
       exit 1
     fi
 
-    dst=$dst_arg
+    dst=$dstarg
     # Protect names starting with `-'.
     case $dst in
-      -*) dst=./$dst;;
+      -*) dst=./$dst ;;
     esac
 
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
     if test -d "$dst"; then
       if test -n "$no_target_directory"; then
-	echo "$0: $dst_arg: Is a directory" >&2
+	echo "$0: $dstarg: Is a directory" >&2
 	exit 1
       fi
       dstdir=$dst
@@ -384,19 +378,26 @@ do
       # directory the slow way, step by step, checking for races as we go.
 
       case $dstdir in
-	/*) prefix='/';;
-	-*) prefix='./';;
-	*)  prefix='';;
+	/*) prefix=/ ;;
+	-*) prefix=./ ;;
+	*)  prefix= ;;
       esac
 
-      eval "$initialize_posix_glob"
+      case $posix_glob in
+        '')
+	  if (set -f) 2>/dev/null; then
+	    posix_glob=true
+	  else
+	    posix_glob=false
+	  fi ;;
+      esac
 
       oIFS=$IFS
       IFS=/
-      $posix_glob set -f
+      $posix_glob && set -f
       set fnord $dstdir
       shift
-      $posix_glob set +f
+      $posix_glob && set +f
       IFS=$oIFS
 
       prefixes=
@@ -458,54 +459,41 @@ do
     # ignore errors from any of these, just make sure not to ignore
     # errors from the above "$doit $cpprog $src $dsttmp" command.
     #
-    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
-    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
-    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
-    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
-
-    # If -C, don't bother to copy if it wouldn't change the file.
-    if $copy_on_change &&
-       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
-       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&
-
-       eval "$initialize_posix_glob" &&
-       $posix_glob set -f &&
-       set X $old && old=:$2:$4:$5:$6 &&
-       set X $new && new=:$2:$4:$5:$6 &&
-       $posix_glob set +f &&
-
-       test "$old" = "$new" &&
-       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
-    then
-      rm -f "$dsttmp"
-    else
-      # Rename the file to the real destination.
-      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
-
-      # The rename failed, perhaps because mv can't rename something else
-      # to itself, or perhaps because mv is so ancient that it does not
-      # support -f.
-      {
-	# Now remove or move aside any old file at destination location.
-	# We try this two ways since rm can't unlink itself on some
-	# systems and the destination file might be busy for other
-	# reasons.  In this case, the final cleanup might fail but the new
-	# file should still install successfully.
-	{
-	  test ! -f "$dst" ||
-	  $doit $rmcmd -f "$dst" 2>/dev/null ||
-	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
-	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
-	  } ||
-	  { echo "$0: cannot unlink or rename $dst" >&2
-	    (exit 1); exit 1
-	  }
-	} &&
-
-	# Now rename the file to the real destination.
-	$doit $mvcmd "$dsttmp" "$dst"
-      }
-    fi || exit 1
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
+      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
+      && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
+      && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+    # Now rename the file to the real destination.
+    { $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \
+      || {
+	   # The rename failed, perhaps because mv can't rename something else
+	   # to itself, or perhaps because mv is so ancient that it does not
+	   # support -f.
+
+	   # Now remove or move aside any old file at destination location.
+	   # We try this two ways since rm can't unlink itself on some
+	   # systems and the destination file might be busy for other
+	   # reasons.  In this case, the final cleanup might fail but the new
+	   # file should still install successfully.
+	   {
+	     if test -f "$dst"; then
+	       $doit $rmcmd -f "$dst" 2>/dev/null \
+	       || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \
+		     && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\
+	       || {
+		 echo "$0: cannot unlink or rename $dst" >&2
+		 (exit 1); exit 1
+	       }
+	     else
+	       :
+	     fi
+	   } &&
+
+	   # Now rename the file to the real destination.
+	   $doit $mvcmd "$dsttmp" "$dst"
+	 }
+    } || exit 1
 
     trap '' 0
   fi
diff --git a/binsrc/config/libtool.m4 b/binsrc/config/libtool.m4
index 4ff44c8..dfd4817 100644
--- a/binsrc/config/libtool.m4
+++ b/binsrc/config/libtool.m4
@@ -1,7 +1,8 @@
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+#                 Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
@@ -10,7 +11,8 @@
 
 m4_define([_LT_COPYING], [dnl
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
+#                 Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -37,7 +39,7 @@ m4_define([_LT_COPYING], [dnl
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 ])
 
-# serial 56 LT_INIT
+# serial 57 LT_INIT
 
 
 # LT_PREREQ(VERSION)
@@ -66,6 +68,7 @@ esac
 # ------------------
 AC_DEFUN([LT_INIT],
 [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
 AC_BEFORE([$0], [LT_LANG])dnl
 AC_BEFORE([$0], [LT_OUTPUT])dnl
 AC_BEFORE([$0], [LTDL_INIT])dnl
@@ -82,6 +85,8 @@ AC_REQUIRE([LTVERSION_VERSION])dnl
 AC_REQUIRE([LTOBSOLETE_VERSION])dnl
 m4_require([_LT_PROG_LTMAIN])dnl
 
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
 dnl Parse OPTIONS
 _LT_SET_OPTIONS([$0], [$1])
 
@@ -118,7 +123,7 @@ m4_defun([_LT_CC_BASENAME],
     *) break;;
   esac
 done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
 ])
 
 
@@ -138,6 +143,9 @@ m4_defun([_LT_FILEUTILS_DEFAULTS],
 m4_defun([_LT_SETUP],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+
 _LT_DECL([], [host_alias], [0], [The host system])dnl
 _LT_DECL([], [host], [0])dnl
 _LT_DECL([], [host_os], [0])dnl
@@ -179,7 +187,6 @@ fi
 _LT_CHECK_OBJDIR
 
 m4_require([_LT_TAG_COMPILER])dnl
-_LT_PROG_ECHO_BACKSLASH
 
 case $host_os in
 aix3*)
@@ -193,23 +200,6 @@ aix3*)
   ;;
 esac
 
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
 # Global variables:
 ofile=libtool
 can_build_shared=yes
@@ -250,6 +240,28 @@ _LT_CONFIG_COMMANDS
 ])# _LT_SETUP
 
 
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
+[# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+])
+
 # _LT_PROG_LTMAIN
 # ---------------
 # Note that this code is called both from `configure', and `config.status'
@@ -408,7 +420,7 @@ m4_define([_lt_decl_all_varnames],
 # declaration there will have the same value as in `configure'.  VARNAME
 # must have a single quote delimited value for this to work.
 m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
+[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
 
 
 # _LT_CONFIG_STATUS_DECLARATIONS
@@ -418,7 +430,7 @@ m4_define([_LT_CONFIG_STATUS_DECLARE],
 # embedded single quotes properly.  In configure, this macro expands
 # each variable declared with _LT_DECL (and _LT_TAGDECL) into:
 #
-#    <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
+#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
 m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
 [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
     [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
@@ -517,12 +529,20 @@ LTCC='$LTCC'
 LTCFLAGS='$LTCFLAGS'
 co